diff --git a/.gitignore b/.gitignore index 34ff076649..8751344a26 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ node_modules/ packages/typescript-json/src/ package-lock.json +pnpm-lock.yaml *.log *.tgz \ No newline at end of file diff --git a/benchmark/package.json b/benchmark/package.json index caab67d0ad..6686e62a9a 100644 --- a/benchmark/package.json +++ b/benchmark/package.json @@ -73,6 +73,6 @@ "suppress-warnings": "^1.0.2", "tstl": "^2.5.13", "uuid": "^9.0.1", - "typia": "D:\\github\\samchon\\typia\\typia-5.4.1.tgz" + "typia": "D:\\github\\samchon\\typia@master\\typia-5.4.2.tgz" } } \ No newline at end of file diff --git a/errors/package.json b/errors/package.json index 88576a3120..db6cc54780 100644 --- a/errors/package.json +++ b/errors/package.json @@ -32,6 +32,6 @@ "typescript": "^5.3.2" }, "dependencies": { - "typia": "D:\\github\\samchon\\typia\\typia-5.4.1.tgz" + "typia": "D:\\github\\samchon\\typia@master\\typia-5.4.2.tgz" } } \ No newline at end of file diff --git a/package.json b/package.json index 74d261f9dd..55132176c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typia", - "version": "5.4.1", + "version": "5.4.2", "description": "Superfast runtime validators with only one line", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -79,6 +79,7 @@ "@types/ts-expose-internals": "npm:ts-expose-internals@5.3.2", "@typescript-eslint/eslint-plugin": "^5.59.11", "@typescript-eslint/parser": "^5.59.11", + "chalk": "^4.0.0", "prettier": "^2.6.2", "rimraf": "^5.0.5", "ts-node": "^10.9.1", diff --git a/packages/typescript-json/package.json b/packages/typescript-json/package.json index ae7a1414f6..1ad64ab5df 100644 --- a/packages/typescript-json/package.json +++ b/packages/typescript-json/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json", - "version": "5.4.1", + "version": "5.4.2", "description": "Superfast runtime validators with only one line", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -61,7 +61,7 @@ }, "homepage": "https://typia.io", "dependencies": { - "typia": "5.4.1" + "typia": "5.4.2" }, "peerDependencies": { "typescript": ">=4.8.0 <5.5.0" diff --git a/src/programmers/internal/application_schema.ts b/src/programmers/internal/application_schema.ts index 8d765d0b54..95c2d44ec2 100644 --- a/src/programmers/internal/application_schema.ts +++ b/src/programmers/internal/application_schema.ts @@ -60,9 +60,9 @@ export const application_schema = // toJSON() METHOD if (meta.escaped !== null) - union.push( - ...application_escaped(options)(blockNever)(components)(meta.escaped), - ); + application_escaped(options)(blockNever)(components)( + meta.escaped, + ).forEach(insert); // ATOMIC TYPES if (meta.templates.length && AtomicPredicator.template(meta)) diff --git a/test/package.json b/test/package.json index bf2f3e0e05..2b75d3a839 100644 --- a/test/package.json +++ b/test/package.json @@ -51,6 +51,6 @@ "suppress-warnings": "^1.0.2", "tstl": "^2.5.13", "uuid": "^9.0.1", - "typia": "D:\\github\\samchon\\typia\\typia-5.4.1.tgz" + "typia": "D:\\github\\samchon\\typia@master\\typia-5.4.2.tgz" } } \ No newline at end of file diff --git a/test/schemas/json/ajv_standard/ObjectDate.json b/test/schemas/json/ajv_standard/ObjectDate.json new file mode 100644 index 0000000000..234808ab79 --- /dev/null +++ b/test/schemas/json/ajv_standard/ObjectDate.json @@ -0,0 +1,80 @@ +{ + "schemas": [ + { + "$ref": "#/components/schemas/ObjectDate" + } + ], + "components": { + "schemas": { + "ObjectDate": { + "$id": "#/components/schemas/ObjectDate", + "type": "object", + "properties": { + "classDate": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "date": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "format": "date" + } + ] + }, + "datetime": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "time": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "format": "time" + } + ] + }, + "duration": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "format": "duration" + } + ] + } + }, + "required": [ + "date", + "datetime", + "time", + "duration" + ] + } + } + }, + "purpose": "ajv", + "surplus": false +} \ No newline at end of file diff --git a/test/schemas/json/ajv_surplus/ObjectDate.json b/test/schemas/json/ajv_surplus/ObjectDate.json new file mode 100644 index 0000000000..558898bd25 --- /dev/null +++ b/test/schemas/json/ajv_surplus/ObjectDate.json @@ -0,0 +1,153 @@ +{ + "schemas": [ + { + "$ref": "#/components/schemas/ObjectDate" + } + ], + "components": { + "schemas": { + "ObjectDate": { + "$id": "#/components/schemas/ObjectDate", + "type": "object", + "properties": { + "classDate": { + "oneOf": [ + { + "x-typia-required": true, + "x-typia-optional": true, + "type": "null" + }, + { + "type": "string", + "format": "date-time" + } + ], + "x-typia-required": true, + "x-typia-optional": true + }, + "date": { + "oneOf": [ + { + "x-typia-required": true, + "x-typia-optional": false, + "type": "null" + }, + { + "type": "string", + "format": "date", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"date\">", + "kind": "format", + "value": "date", + "validate": "/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ] + } + ], + "x-typia-required": true, + "x-typia-optional": false + }, + "datetime": { + "oneOf": [ + { + "x-typia-required": true, + "x-typia-optional": false, + "type": "null" + }, + { + "type": "string", + "format": "date-time", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"date-time\">", + "kind": "format", + "value": "date-time", + "validate": "!isNaN(new Date($input).getTime())", + "exclusive": [ + "format", + "pattern" + ] + } + ] + } + ], + "x-typia-required": true, + "x-typia-optional": false + }, + "time": { + "oneOf": [ + { + "x-typia-required": true, + "x-typia-optional": false, + "type": "null" + }, + { + "type": "string", + "format": "time", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"time\">", + "kind": "format", + "value": "time", + "validate": "/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ] + } + ], + "x-typia-required": true, + "x-typia-optional": false + }, + "duration": { + "oneOf": [ + { + "x-typia-required": true, + "x-typia-optional": false, + "type": "null" + }, + { + "type": "string", + "format": "duration", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"duration\">", + "kind": "format", + "value": "duration", + "validate": "/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ] + } + ], + "x-typia-required": true, + "x-typia-optional": false + } + }, + "required": [ + "date", + "datetime", + "time", + "duration" + ], + "x-typia-jsDocTags": [] + } + } + }, + "purpose": "ajv", + "surplus": true +} \ No newline at end of file diff --git a/test/schemas/json/swagger_standard/ObjectDate.json b/test/schemas/json/swagger_standard/ObjectDate.json new file mode 100644 index 0000000000..ea5e56a87b --- /dev/null +++ b/test/schemas/json/swagger_standard/ObjectDate.json @@ -0,0 +1,50 @@ +{ + "schemas": [ + { + "$ref": "#/components/schemas/ObjectDate" + } + ], + "components": { + "schemas": { + "ObjectDate": { + "type": "object", + "properties": { + "classDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "date": { + "type": "string", + "format": "date", + "nullable": true + }, + "datetime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "time": { + "type": "string", + "format": "time", + "nullable": true + }, + "duration": { + "type": "string", + "format": "duration", + "nullable": true + } + }, + "nullable": false, + "required": [ + "date", + "datetime", + "time", + "duration" + ] + } + } + }, + "purpose": "swagger", + "surplus": false +} \ No newline at end of file diff --git a/test/schemas/json/swagger_surplus/ObjectDate.json b/test/schemas/json/swagger_surplus/ObjectDate.json new file mode 100644 index 0000000000..7d413613be --- /dev/null +++ b/test/schemas/json/swagger_surplus/ObjectDate.json @@ -0,0 +1,113 @@ +{ + "schemas": [ + { + "$ref": "#/components/schemas/ObjectDate" + } + ], + "components": { + "schemas": { + "ObjectDate": { + "type": "object", + "properties": { + "classDate": { + "type": "string", + "format": "date-time", + "nullable": true, + "x-typia-required": true, + "x-typia-optional": true + }, + "date": { + "type": "string", + "format": "date", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"date\">", + "kind": "format", + "value": "date", + "validate": "/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ], + "nullable": true, + "x-typia-required": true, + "x-typia-optional": false + }, + "datetime": { + "type": "string", + "format": "date-time", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"date-time\">", + "kind": "format", + "value": "date-time", + "validate": "!isNaN(new Date($input).getTime())", + "exclusive": [ + "format", + "pattern" + ] + } + ], + "nullable": true, + "x-typia-required": true, + "x-typia-optional": false + }, + "time": { + "type": "string", + "format": "time", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"time\">", + "kind": "format", + "value": "time", + "validate": "/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ], + "nullable": true, + "x-typia-required": true, + "x-typia-optional": false + }, + "duration": { + "type": "string", + "format": "duration", + "x-typia-typeTags": [ + { + "target": "string", + "name": "Format<\"duration\">", + "kind": "format", + "value": "duration", + "validate": "/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ], + "nullable": true, + "x-typia-required": true, + "x-typia-optional": false + } + }, + "nullable": false, + "required": [ + "date", + "datetime", + "time", + "duration" + ], + "x-typia-jsDocTags": [] + } + } + }, + "purpose": "swagger", + "surplus": true +} \ No newline at end of file diff --git a/test/schemas/reflect/metadata/ObjectDate.json b/test/schemas/reflect/metadata/ObjectDate.json new file mode 100644 index 0000000000..c63c2a7971 --- /dev/null +++ b/test/schemas/reflect/metadata/ObjectDate.json @@ -0,0 +1,410 @@ +{ + "metadatas": [ + { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [], + "constants": [], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [ + "ObjectDate" + ], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + } + ], + "components": { + "objects": [ + { + "name": "ObjectDate", + "properties": [ + { + "key": { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [], + "constants": [ + { + "type": "string", + "values": [ + "classDate" + ] + } + ], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "value": { + "any": false, + "required": true, + "optional": true, + "nullable": true, + "functional": false, + "atomics": [], + "constants": [], + "templates": [], + "escaped": { + "original": { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [], + "constants": [], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [ + "Date" + ], + "sets": [], + "maps": [] + }, + "returns": { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [ + { + "type": "string", + "tags": [] + } + ], + "constants": [], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + } + }, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "description": null, + "jsDocTags": [] + }, + { + "key": { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [], + "constants": [ + { + "type": "string", + "values": [ + "date" + ] + } + ], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "value": { + "any": false, + "required": true, + "optional": false, + "nullable": true, + "functional": false, + "atomics": [ + { + "type": "string", + "tags": [ + [ + { + "target": "string", + "name": "Format<\"date\">", + "kind": "format", + "value": "date", + "validate": "/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ] + ] + } + ], + "constants": [], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "description": null, + "jsDocTags": [] + }, + { + "key": { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [], + "constants": [ + { + "type": "string", + "values": [ + "datetime" + ] + } + ], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "value": { + "any": false, + "required": true, + "optional": false, + "nullable": true, + "functional": false, + "atomics": [ + { + "type": "string", + "tags": [ + [ + { + "target": "string", + "name": "Format<\"date-time\">", + "kind": "format", + "value": "date-time", + "validate": "!isNaN(new Date($input).getTime())", + "exclusive": [ + "format", + "pattern" + ] + } + ] + ] + } + ], + "constants": [], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "description": null, + "jsDocTags": [] + }, + { + "key": { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [], + "constants": [ + { + "type": "string", + "values": [ + "time" + ] + } + ], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "value": { + "any": false, + "required": true, + "optional": false, + "nullable": true, + "functional": false, + "atomics": [ + { + "type": "string", + "tags": [ + [ + { + "target": "string", + "name": "Format<\"time\">", + "kind": "format", + "value": "time", + "validate": "/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ] + ] + } + ], + "constants": [], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "description": null, + "jsDocTags": [] + }, + { + "key": { + "any": false, + "required": true, + "optional": false, + "nullable": false, + "functional": false, + "atomics": [], + "constants": [ + { + "type": "string", + "values": [ + "duration" + ] + } + ], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "value": { + "any": false, + "required": true, + "optional": false, + "nullable": true, + "functional": false, + "atomics": [ + { + "type": "string", + "tags": [ + [ + { + "target": "string", + "name": "Format<\"duration\">", + "kind": "format", + "value": "duration", + "validate": "/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/.test($input)", + "exclusive": [ + "format", + "pattern" + ] + } + ] + ] + } + ], + "constants": [], + "templates": [], + "escaped": null, + "rest": null, + "arrays": [], + "tuples": [], + "objects": [], + "aliases": [], + "natives": [], + "sets": [], + "maps": [] + }, + "description": null, + "jsDocTags": [] + } + ], + "jsDocTags": [], + "index": 0, + "recursive": false, + "nullables": [ + false + ] + } + ], + "aliases": [], + "arrays": [], + "tuples": [] + } +} \ No newline at end of file diff --git a/test/src/features/assert/test_assert_ObjectDate.ts b/test/src/features/assert/test_assert_ObjectDate.ts new file mode 100644 index 0000000000..1e0289e431 --- /dev/null +++ b/test/src/features/assert/test_assert_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_assert } from "../../internal/_test_assert"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_assert_ObjectDate = _test_assert("ObjectDate")( + ObjectDate, +)((input) => typia.assert(input)); diff --git a/test/src/features/assertGuard/test_assertGuard_ObjectDate.ts b/test/src/features/assertGuard/test_assertGuard_ObjectDate.ts new file mode 100644 index 0000000000..0547549bb7 --- /dev/null +++ b/test/src/features/assertGuard/test_assertGuard_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_assertGuard } from "../../internal/_test_assertGuard"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_assertGuard_ObjectDate = _test_assertGuard( + "ObjectDate", +)(ObjectDate)((input) => typia.assertGuard(input)); diff --git a/test/src/features/createAssert/test_createAssert_ObjectDate.ts b/test/src/features/createAssert/test_createAssert_ObjectDate.ts new file mode 100644 index 0000000000..3a96efac42 --- /dev/null +++ b/test/src/features/createAssert/test_createAssert_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_assert } from "../../internal/_test_assert"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_createAssert_ObjectDate = _test_assert( + "ObjectDate", +)(ObjectDate)(typia.createAssert()); diff --git a/test/src/features/createAssertGuard/test_createAssertGuard_ObjectDate.ts b/test/src/features/createAssertGuard/test_createAssertGuard_ObjectDate.ts new file mode 100644 index 0000000000..3a1fdb5022 --- /dev/null +++ b/test/src/features/createAssertGuard/test_createAssertGuard_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_assertGuard } from "../../internal/_test_assertGuard"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_createAssertGuard_ObjectDate = _test_assertGuard( + "ObjectDate", +)(ObjectDate)(typia.createAssertGuard()); diff --git a/test/src/features/createIs/test_createIs_ObjectDate.ts b/test/src/features/createIs/test_createIs_ObjectDate.ts new file mode 100644 index 0000000000..752d56a5c2 --- /dev/null +++ b/test/src/features/createIs/test_createIs_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_is } from "../../internal/_test_is"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_createIs_ObjectDate = _test_is("ObjectDate")( + ObjectDate, +)(typia.createIs()); diff --git a/test/src/features/createRandom/test_createRandom_ObjectDate.ts b/test/src/features/createRandom/test_createRandom_ObjectDate.ts new file mode 100644 index 0000000000..620c2c2577 --- /dev/null +++ b/test/src/features/createRandom/test_createRandom_ObjectDate.ts @@ -0,0 +1,11 @@ +import typia from "typia"; + +import { _test_random } from "../../internal/_test_random"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_createRandom_ObjectDate = _test_random( + "ObjectDate", +)(ObjectDate)({ + random: typia.createRandom((ObjectDate as any).RANDOM), + assert: typia.createAssert(), +}); diff --git a/test/src/features/createValidate/test_createValidate_ObjectDate.ts b/test/src/features/createValidate/test_createValidate_ObjectDate.ts new file mode 100644 index 0000000000..4c741558b7 --- /dev/null +++ b/test/src/features/createValidate/test_createValidate_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_validate } from "../../internal/_test_validate"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_createValidate_ObjectDate = _test_validate( + "ObjectDate", +)(ObjectDate)(typia.createValidate()); diff --git a/test/src/features/is/test_is_ObjectDate.ts b/test/src/features/is/test_is_ObjectDate.ts new file mode 100644 index 0000000000..9f4509277f --- /dev/null +++ b/test/src/features/is/test_is_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_is } from "../../internal/_test_is"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_is_ObjectDate = _test_is("ObjectDate")( + ObjectDate, +)((input) => typia.is(input)); diff --git a/test/src/features/json.application/ajv_standard/test_json_application_ajv_standard_ObjectDate.ts b/test/src/features/json.application/ajv_standard/test_json_application_ajv_standard_ObjectDate.ts new file mode 100644 index 0000000000..3a10972759 --- /dev/null +++ b/test/src/features/json.application/ajv_standard/test_json_application_ajv_standard_ObjectDate.ts @@ -0,0 +1,11 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../internal/_test_json_application"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_application_ajv_standard_ObjectDate = + _test_json_application({ + purpose: "ajv", + surplus: false, + name: "ObjectDate", + })(typia.json.application<[ObjectDate], "ajv", false>()); diff --git a/test/src/features/json.application/ajv_surplus/test_json_application_ajv_surplus_ObjectDate.ts b/test/src/features/json.application/ajv_surplus/test_json_application_ajv_surplus_ObjectDate.ts new file mode 100644 index 0000000000..d65f97ac05 --- /dev/null +++ b/test/src/features/json.application/ajv_surplus/test_json_application_ajv_surplus_ObjectDate.ts @@ -0,0 +1,9 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../internal/_test_json_application"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_application_ajv_surplus_ObjectDate = + _test_json_application({ purpose: "ajv", surplus: true, name: "ObjectDate" })( + typia.json.application<[ObjectDate], "ajv", true>(), + ); diff --git a/test/src/features/json.application/swagger_standard/test_json_application_swagger_standard_ObjectDate.ts b/test/src/features/json.application/swagger_standard/test_json_application_swagger_standard_ObjectDate.ts new file mode 100644 index 0000000000..6a04d600fe --- /dev/null +++ b/test/src/features/json.application/swagger_standard/test_json_application_swagger_standard_ObjectDate.ts @@ -0,0 +1,11 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../internal/_test_json_application"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_application_swagger_standard_ObjectDate = + _test_json_application({ + purpose: "swagger", + surplus: false, + name: "ObjectDate", + })(typia.json.application<[ObjectDate], "swagger", false>()); diff --git a/test/src/features/json.application/swagger_surplus/test_json_application_swagger_surplus_ObjectDate.ts b/test/src/features/json.application/swagger_surplus/test_json_application_swagger_surplus_ObjectDate.ts new file mode 100644 index 0000000000..f1eb643fae --- /dev/null +++ b/test/src/features/json.application/swagger_surplus/test_json_application_swagger_surplus_ObjectDate.ts @@ -0,0 +1,11 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../internal/_test_json_application"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_application_swagger_surplus_ObjectDate = + _test_json_application({ + purpose: "swagger", + surplus: true, + name: "ObjectDate", + })(typia.json.application<[ObjectDate], "swagger", true>()); diff --git a/test/src/features/json.assertStringify/test_json_assertStringify_ObjectDate.ts b/test/src/features/json.assertStringify/test_json_assertStringify_ObjectDate.ts new file mode 100644 index 0000000000..77b848a782 --- /dev/null +++ b/test/src/features/json.assertStringify/test_json_assertStringify_ObjectDate.ts @@ -0,0 +1,10 @@ +import typia from "typia"; + +import { _test_json_assertStringify } from "../../internal/_test_json_assertStringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_assertStringify_ObjectDate = _test_json_assertStringify( + "ObjectDate", +)(ObjectDate)((input) => + typia.json.assertStringify(input), +); diff --git a/test/src/features/json.createAssertStringify/test_json_createAssertStringify_ObjectDate.ts b/test/src/features/json.createAssertStringify/test_json_createAssertStringify_ObjectDate.ts new file mode 100644 index 0000000000..f79f604ff9 --- /dev/null +++ b/test/src/features/json.createAssertStringify/test_json_createAssertStringify_ObjectDate.ts @@ -0,0 +1,9 @@ +import typia from "typia"; + +import { _test_json_assertStringify } from "../../internal/_test_json_assertStringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_createAssertStringify_ObjectDate = + _test_json_assertStringify("ObjectDate")(ObjectDate)( + typia.json.createAssertStringify(), + ); diff --git a/test/src/features/json.createIsStringify/test_json_createIsStringify_ObjectDate.ts b/test/src/features/json.createIsStringify/test_json_createIsStringify_ObjectDate.ts new file mode 100644 index 0000000000..9922e175da --- /dev/null +++ b/test/src/features/json.createIsStringify/test_json_createIsStringify_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_json_isStringify } from "../../internal/_test_json_isStringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_createIsStringify_ObjectDate = _test_json_isStringify( + "ObjectDate", +)(ObjectDate)(typia.json.createIsStringify()); diff --git a/test/src/features/json.createStringify/test_json_createStringify_ObjectDate.ts b/test/src/features/json.createStringify/test_json_createStringify_ObjectDate.ts new file mode 100644 index 0000000000..657cbf2152 --- /dev/null +++ b/test/src/features/json.createStringify/test_json_createStringify_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_json_stringify } from "../../internal/_test_json_stringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_createStringify_ObjectDate = _test_json_stringify( + "ObjectDate", +)(ObjectDate)(typia.json.createStringify()); diff --git a/test/src/features/json.createValidateStringify/test_json_createValidateStringify_ObjectDate.ts b/test/src/features/json.createValidateStringify/test_json_createValidateStringify_ObjectDate.ts new file mode 100644 index 0000000000..342ded00e2 --- /dev/null +++ b/test/src/features/json.createValidateStringify/test_json_createValidateStringify_ObjectDate.ts @@ -0,0 +1,9 @@ +import typia from "typia"; + +import { _test_json_validateStringify } from "../../internal/_test_json_validateStringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_createValidateStringify_ObjectDate = + _test_json_validateStringify("ObjectDate")(ObjectDate)( + typia.json.createValidateStringify(), + ); diff --git a/test/src/features/json.isStringify/test_json_isStringify_ObjectDate.ts b/test/src/features/json.isStringify/test_json_isStringify_ObjectDate.ts new file mode 100644 index 0000000000..011635f9f2 --- /dev/null +++ b/test/src/features/json.isStringify/test_json_isStringify_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_json_isStringify } from "../../internal/_test_json_isStringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_isStringify_ObjectDate = _test_json_isStringify( + "ObjectDate", +)(ObjectDate)((input) => typia.json.isStringify(input)); diff --git a/test/src/features/json.stringify/test_json_stringify_ObjectDate.ts b/test/src/features/json.stringify/test_json_stringify_ObjectDate.ts new file mode 100644 index 0000000000..e7ec5e9275 --- /dev/null +++ b/test/src/features/json.stringify/test_json_stringify_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_json_stringify } from "../../internal/_test_json_stringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_stringify_ObjectDate = _test_json_stringify( + "ObjectDate", +)(ObjectDate)((input) => typia.json.stringify(input)); diff --git a/test/src/features/json.validateStringify/test_json_validateStringify_ObjectDate.ts b/test/src/features/json.validateStringify/test_json_validateStringify_ObjectDate.ts new file mode 100644 index 0000000000..0a78ae4c0c --- /dev/null +++ b/test/src/features/json.validateStringify/test_json_validateStringify_ObjectDate.ts @@ -0,0 +1,9 @@ +import typia from "typia"; + +import { _test_json_validateStringify } from "../../internal/_test_json_validateStringify"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_json_validateStringify_ObjectDate = + _test_json_validateStringify("ObjectDate")(ObjectDate)((input) => + typia.json.validateStringify(input), + ); diff --git a/test/src/features/misc.assertClone/test_misc_assertClone_ObjectDate.ts b/test/src/features/misc.assertClone/test_misc_assertClone_ObjectDate.ts new file mode 100644 index 0000000000..c39fc2a8ad --- /dev/null +++ b/test/src/features/misc.assertClone/test_misc_assertClone_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_misc_assertClone } from "../../internal/_test_misc_assertClone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_assertClone_ObjectDate = _test_misc_assertClone( + "ObjectDate", +)(ObjectDate)((input) => typia.misc.assertClone(input)); diff --git a/test/src/features/misc.clone/test_misc_clone_ObjectDate.ts b/test/src/features/misc.clone/test_misc_clone_ObjectDate.ts new file mode 100644 index 0000000000..5f2a5937f0 --- /dev/null +++ b/test/src/features/misc.clone/test_misc_clone_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_misc_clone } from "../../internal/_test_misc_clone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_clone_ObjectDate = _test_misc_clone( + "ObjectDate", +)(ObjectDate)((input) => typia.misc.clone(input)); diff --git a/test/src/features/misc.createAssertClone/test_misc_createAssertClone_ObjectDate.ts b/test/src/features/misc.createAssertClone/test_misc_createAssertClone_ObjectDate.ts new file mode 100644 index 0000000000..d73f2fc03e --- /dev/null +++ b/test/src/features/misc.createAssertClone/test_misc_createAssertClone_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_misc_assertClone } from "../../internal/_test_misc_assertClone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_createAssertClone_ObjectDate = _test_misc_assertClone( + "ObjectDate", +)(ObjectDate)(typia.misc.createAssertClone()); diff --git a/test/src/features/misc.createClone/test_misc_createClone_ObjectDate.ts b/test/src/features/misc.createClone/test_misc_createClone_ObjectDate.ts new file mode 100644 index 0000000000..4a81b137b1 --- /dev/null +++ b/test/src/features/misc.createClone/test_misc_createClone_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_misc_clone } from "../../internal/_test_misc_clone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_createClone_ObjectDate = _test_misc_clone( + "ObjectDate", +)(ObjectDate)(typia.misc.createClone()); diff --git a/test/src/features/misc.createIsClone/test_misc_createIsClone_ObjectDate.ts b/test/src/features/misc.createIsClone/test_misc_createIsClone_ObjectDate.ts new file mode 100644 index 0000000000..0980c3f430 --- /dev/null +++ b/test/src/features/misc.createIsClone/test_misc_createIsClone_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_misc_isClone } from "../../internal/_test_misc_isClone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_createIsClone_ObjectDate = _test_misc_isClone( + "ObjectDate", +)(ObjectDate)(typia.misc.createIsClone()); diff --git a/test/src/features/misc.createValidateClone/test_misc_createValidateClone_ObjectDate.ts b/test/src/features/misc.createValidateClone/test_misc_createValidateClone_ObjectDate.ts new file mode 100644 index 0000000000..dcb4ccd93b --- /dev/null +++ b/test/src/features/misc.createValidateClone/test_misc_createValidateClone_ObjectDate.ts @@ -0,0 +1,9 @@ +import typia from "typia"; + +import { _test_misc_validateClone } from "../../internal/_test_misc_validateClone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_createValidateClone_ObjectDate = + _test_misc_validateClone("ObjectDate")(ObjectDate)( + typia.misc.createValidateClone(), + ); diff --git a/test/src/features/misc.isClone/test_misc_isClone_ObjectDate.ts b/test/src/features/misc.isClone/test_misc_isClone_ObjectDate.ts new file mode 100644 index 0000000000..b74e5096b8 --- /dev/null +++ b/test/src/features/misc.isClone/test_misc_isClone_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_misc_isClone } from "../../internal/_test_misc_isClone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_isClone_ObjectDate = _test_misc_isClone( + "ObjectDate", +)(ObjectDate)((input) => typia.misc.isClone(input)); diff --git a/test/src/features/misc.validateClone/test_misc_validateClone_ObjectDate.ts b/test/src/features/misc.validateClone/test_misc_validateClone_ObjectDate.ts new file mode 100644 index 0000000000..7f61241fdd --- /dev/null +++ b/test/src/features/misc.validateClone/test_misc_validateClone_ObjectDate.ts @@ -0,0 +1,10 @@ +import typia from "typia"; + +import { _test_misc_validateClone } from "../../internal/_test_misc_validateClone"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_misc_validateClone_ObjectDate = _test_misc_validateClone( + "ObjectDate", +)(ObjectDate)((input) => + typia.misc.validateClone(input), +); diff --git a/test/src/features/notation.camel/test_notation_camel_ObjectDate.ts b/test/src/features/notation.camel/test_notation_camel_ObjectDate.ts new file mode 100644 index 0000000000..9084c0302e --- /dev/null +++ b/test/src/features/notation.camel/test_notation_camel_ObjectDate.ts @@ -0,0 +1,12 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_notation_validateCamel_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.CamelCase + >({ + convert: (input) => typia.notations.validateCamel(input), + assert: typia.createAssert>(), + }); diff --git a/test/src/features/notation.createCamel/test_notation_createCamel_ObjectDate.ts b/test/src/features/notation.createCamel/test_notation_createCamel_ObjectDate.ts new file mode 100644 index 0000000000..70a8b92ca7 --- /dev/null +++ b/test/src/features/notation.createCamel/test_notation_createCamel_ObjectDate.ts @@ -0,0 +1,12 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_notation_createValidateCamel_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.CamelCase + >({ + convert: typia.notations.createValidateCamel(), + assert: typia.createAssert>(), + }); diff --git a/test/src/features/notation.createPascal/test_notation_createPascal_ObjectDate.ts b/test/src/features/notation.createPascal/test_notation_createPascal_ObjectDate.ts new file mode 100644 index 0000000000..65504a5a43 --- /dev/null +++ b/test/src/features/notation.createPascal/test_notation_createPascal_ObjectDate.ts @@ -0,0 +1,12 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_notation_createValidatePascal_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.PascalCase + >({ + convert: typia.notations.createValidatePascal(), + assert: typia.createAssert>(), + }); diff --git a/test/src/features/notation.createSnake/test_notation_createSnake_ObjectDate.ts b/test/src/features/notation.createSnake/test_notation_createSnake_ObjectDate.ts new file mode 100644 index 0000000000..bfe4898e5d --- /dev/null +++ b/test/src/features/notation.createSnake/test_notation_createSnake_ObjectDate.ts @@ -0,0 +1,12 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_notation_createValidateSnake_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.SnakeCase + >({ + convert: typia.notations.createValidateSnake(), + assert: typia.createAssert>(), + }); diff --git a/test/src/features/notation.pascal/test_notation_pascal_ObjectDate.ts b/test/src/features/notation.pascal/test_notation_pascal_ObjectDate.ts new file mode 100644 index 0000000000..4a228dcfa2 --- /dev/null +++ b/test/src/features/notation.pascal/test_notation_pascal_ObjectDate.ts @@ -0,0 +1,12 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_notation_validatePascal_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.PascalCase + >({ + convert: (input) => typia.notations.validatePascal(input), + assert: typia.createAssert>(), + }); diff --git a/test/src/features/notation.snake/test_notation_snake_ObjectDate.ts b/test/src/features/notation.snake/test_notation_snake_ObjectDate.ts new file mode 100644 index 0000000000..6e55cb9479 --- /dev/null +++ b/test/src/features/notation.snake/test_notation_snake_ObjectDate.ts @@ -0,0 +1,12 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_notation_validateSnake_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.SnakeCase + >({ + convert: (input) => typia.notations.validateSnake(input), + assert: typia.createAssert>(), + }); diff --git a/test/src/features/random/test_random_ObjectDate.ts b/test/src/features/random/test_random_ObjectDate.ts new file mode 100644 index 0000000000..61c48a323a --- /dev/null +++ b/test/src/features/random/test_random_ObjectDate.ts @@ -0,0 +1,11 @@ +import typia from "typia"; + +import { _test_random } from "../../internal/_test_random"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_random_ObjectDate = _test_random("ObjectDate")( + ObjectDate, +)({ + random: () => typia.random((ObjectDate as any).RANDOM), + assert: typia.createAssert(), +}); diff --git a/test/src/features/reflect.metadata/test_reflect_metadata_ObjectDate.ts b/test/src/features/reflect.metadata/test_reflect_metadata_ObjectDate.ts new file mode 100644 index 0000000000..13cec2db8a --- /dev/null +++ b/test/src/features/reflect.metadata/test_reflect_metadata_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_reflect_metadata } from "../../internal/_test_reflect_metadata"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_reflect_metadata_ObjectDate = _test_reflect_metadata( + "ObjectDate", +)(typia.reflect.metadata<[ObjectDate]>()); diff --git a/test/src/features/validate/test_validate_ObjectDate.ts b/test/src/features/validate/test_validate_ObjectDate.ts new file mode 100644 index 0000000000..e9e001e200 --- /dev/null +++ b/test/src/features/validate/test_validate_ObjectDate.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import { _test_validate } from "../../internal/_test_validate"; +import { ObjectDate } from "../../structures/ObjectDate"; + +export const test_validate_ObjectDate = _test_validate( + "ObjectDate", +)(ObjectDate)((input) => typia.validate(input)); diff --git a/test/src/generated/output/assert/test_assert_ObjectDate.ts b/test/src/generated/output/assert/test_assert_ObjectDate.ts new file mode 100644 index 0000000000..2e74b9edd8 --- /dev/null +++ b/test/src/generated/output/assert/test_assert_ObjectDate.ts @@ -0,0 +1,126 @@ +import typia from "typia"; + +import { _test_assert } from "../../../internal/_test_assert"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_assert_ObjectDate = _test_assert("ObjectDate")( + ObjectDate, +)((input) => + ((input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.assert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + })(input), +); diff --git a/test/src/generated/output/assertGuard/test_assertGuard_ObjectDate.ts b/test/src/generated/output/assertGuard/test_assertGuard_ObjectDate.ts new file mode 100644 index 0000000000..dd1bc3c9bf --- /dev/null +++ b/test/src/generated/output/assertGuard/test_assertGuard_ObjectDate.ts @@ -0,0 +1,125 @@ +import typia from "typia"; + +import { _test_assertGuard } from "../../../internal/_test_assertGuard"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_assertGuard_ObjectDate = _test_assertGuard( + "ObjectDate", +)(ObjectDate)((input) => + ((input: any): asserts input is ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.assertGuard as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + })(input), +); diff --git a/test/src/generated/output/createAssert/test_createAssert_ObjectDate.ts b/test/src/generated/output/createAssert/test_createAssert_ObjectDate.ts new file mode 100644 index 0000000000..9cbad4284b --- /dev/null +++ b/test/src/generated/output/createAssert/test_createAssert_ObjectDate.ts @@ -0,0 +1,124 @@ +import typia from "typia"; + +import { _test_assert } from "../../../internal/_test_assert"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_createAssert_ObjectDate = _test_assert( + "ObjectDate", +)(ObjectDate)((input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.createAssert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; +}); diff --git a/test/src/generated/output/createAssertGuard/test_createAssertGuard_ObjectDate.ts b/test/src/generated/output/createAssertGuard/test_createAssertGuard_ObjectDate.ts new file mode 100644 index 0000000000..430332bc06 --- /dev/null +++ b/test/src/generated/output/createAssertGuard/test_createAssertGuard_ObjectDate.ts @@ -0,0 +1,123 @@ +import typia from "typia"; + +import { _test_assertGuard } from "../../../internal/_test_assertGuard"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_createAssertGuard_ObjectDate = _test_assertGuard( + "ObjectDate", +)(ObjectDate)((input: any): asserts input is ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.createAssertGuard as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); +}); diff --git a/test/src/generated/output/createIs/test_createIs_ObjectDate.ts b/test/src/generated/output/createIs/test_createIs_ObjectDate.ts new file mode 100644 index 0000000000..2476cf6427 --- /dev/null +++ b/test/src/generated/output/createIs/test_createIs_ObjectDate.ts @@ -0,0 +1,30 @@ +import typia from "typia"; + +import { _test_is } from "../../../internal/_test_is"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_createIs_ObjectDate = _test_is("ObjectDate")( + ObjectDate, +)((input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); +}); diff --git a/test/src/generated/output/createRandom/test_createRandom_ObjectDate.ts b/test/src/generated/output/createRandom/test_createRandom_ObjectDate.ts new file mode 100644 index 0000000000..a57c0a647a --- /dev/null +++ b/test/src/generated/output/createRandom/test_createRandom_ObjectDate.ts @@ -0,0 +1,184 @@ +import typia from "typia"; + +import { _test_random } from "../../../internal/_test_random"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_createRandom_ObjectDate = _test_random( + "ObjectDate", +)(ObjectDate)({ + random: ( + generator: Partial = (ObjectDate as any).RANDOM, + ): typia.Resolved => { + const $generator = (typia.createRandom as any).generator; + const $pick = (typia.createRandom as any).pick; + const $ro0 = (_recursive: boolean = false, _depth: number = 0): any => ({ + classDate: $pick([ + () => undefined, + () => null, + () => new Date((generator?.datetime ?? $generator.datetime)()), + ])(), + date: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"date">', + kind: "format", + value: "date", + }, + ]) ?? (generator?.date ?? $generator.date)(), + ])(), + datetime: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"date-time">', + kind: "format", + value: "date-time", + }, + ]) ?? (generator?.datetime ?? $generator.datetime)(), + ])(), + time: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"time">', + kind: "format", + value: "time", + }, + ]) ?? (generator?.time ?? $generator.time)(), + ])(), + duration: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"duration">', + kind: "format", + value: "duration", + }, + ]) ?? (generator?.duration ?? $generator.duration)(), + ])(), + }); + return $ro0(); + }, + assert: (input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.createAssert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }, +}); diff --git a/test/src/generated/output/createValidate/test_createValidate_ObjectDate.ts b/test/src/generated/output/createValidate/test_createValidate_ObjectDate.ts new file mode 100644 index 0000000000..0223c864af --- /dev/null +++ b/test/src/generated/output/createValidate/test_createValidate_ObjectDate.ts @@ -0,0 +1,133 @@ +import typia from "typia"; + +import { _test_validate } from "../../../internal/_test_validate"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_createValidate_ObjectDate = _test_validate( + "ObjectDate", +)(ObjectDate)((input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.createValidate as any).report(errors); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; +}); diff --git a/test/src/generated/output/is/test_is_ObjectDate.ts b/test/src/generated/output/is/test_is_ObjectDate.ts new file mode 100644 index 0000000000..f1393dce62 --- /dev/null +++ b/test/src/generated/output/is/test_is_ObjectDate.ts @@ -0,0 +1,32 @@ +import typia from "typia"; + +import { _test_is } from "../../../internal/_test_is"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_is_ObjectDate = _test_is("ObjectDate")( + ObjectDate, +)((input) => + ((input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + })(input), +); diff --git a/test/src/generated/output/json.application/ajv_standard/test_json_application_ajv_standard_ObjectDate.ts b/test/src/generated/output/json.application/ajv_standard/test_json_application_ajv_standard_ObjectDate.ts new file mode 100644 index 0000000000..951f52a6a7 --- /dev/null +++ b/test/src/generated/output/json.application/ajv_standard/test_json_application_ajv_standard_ObjectDate.ts @@ -0,0 +1,85 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../../internal/_test_json_application"; +import { ObjectDate } from "../../../../structures/ObjectDate"; + +export const test_json_application_ajv_standard_ObjectDate = + _test_json_application({ + purpose: "ajv", + surplus: false, + name: "ObjectDate", + })({ + schemas: [ + { + $ref: "#/components/schemas/ObjectDate", + }, + ], + components: { + schemas: { + ObjectDate: { + $id: "#/components/schemas/ObjectDate", + type: "object", + properties: { + classDate: { + oneOf: [ + { + type: "null", + }, + { + type: "string", + format: "date-time", + }, + ], + }, + date: { + oneOf: [ + { + type: "null", + }, + { + type: "string", + format: "date", + }, + ], + }, + datetime: { + oneOf: [ + { + type: "null", + }, + { + type: "string", + format: "date-time", + }, + ], + }, + time: { + oneOf: [ + { + type: "null", + }, + { + type: "string", + format: "time", + }, + ], + }, + duration: { + oneOf: [ + { + type: "null", + }, + { + type: "string", + format: "duration", + }, + ], + }, + }, + required: ["date", "datetime", "time", "duration"], + }, + }, + }, + purpose: "ajv", + surplus: false, + }); diff --git a/test/src/generated/output/json.application/ajv_surplus/test_json_application_ajv_surplus_ObjectDate.ts b/test/src/generated/output/json.application/ajv_surplus/test_json_application_ajv_surplus_ObjectDate.ts new file mode 100644 index 0000000000..1f6970cf52 --- /dev/null +++ b/test/src/generated/output/json.application/ajv_surplus/test_json_application_ajv_surplus_ObjectDate.ts @@ -0,0 +1,146 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../../internal/_test_json_application"; +import { ObjectDate } from "../../../../structures/ObjectDate"; + +export const test_json_application_ajv_surplus_ObjectDate = + _test_json_application({ purpose: "ajv", surplus: true, name: "ObjectDate" })( + { + schemas: [ + { + $ref: "#/components/schemas/ObjectDate", + }, + ], + components: { + schemas: { + ObjectDate: { + $id: "#/components/schemas/ObjectDate", + type: "object", + properties: { + classDate: { + oneOf: [ + { + "x-typia-required": true, + "x-typia-optional": true, + type: "null", + }, + { + type: "string", + format: "date-time", + }, + ], + "x-typia-required": true, + "x-typia-optional": true, + }, + date: { + oneOf: [ + { + "x-typia-required": true, + "x-typia-optional": false, + type: "null", + }, + { + type: "string", + format: "date", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"date">', + kind: "format", + value: "date", + validate: "/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)", + exclusive: ["format", "pattern"], + }, + ], + }, + ], + "x-typia-required": true, + "x-typia-optional": false, + }, + datetime: { + oneOf: [ + { + "x-typia-required": true, + "x-typia-optional": false, + type: "null", + }, + { + type: "string", + format: "date-time", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"date-time">', + kind: "format", + value: "date-time", + validate: "!isNaN(new Date($input).getTime())", + exclusive: ["format", "pattern"], + }, + ], + }, + ], + "x-typia-required": true, + "x-typia-optional": false, + }, + time: { + oneOf: [ + { + "x-typia-required": true, + "x-typia-optional": false, + type: "null", + }, + { + type: "string", + format: "time", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"time">', + kind: "format", + value: "time", + validate: + "/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i.test($input)", + exclusive: ["format", "pattern"], + }, + ], + }, + ], + "x-typia-required": true, + "x-typia-optional": false, + }, + duration: { + oneOf: [ + { + "x-typia-required": true, + "x-typia-optional": false, + type: "null", + }, + { + type: "string", + format: "duration", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"duration">', + kind: "format", + value: "duration", + validate: + "/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/.test($input)", + exclusive: ["format", "pattern"], + }, + ], + }, + ], + "x-typia-required": true, + "x-typia-optional": false, + }, + }, + required: ["date", "datetime", "time", "duration"], + "x-typia-jsDocTags": [], + }, + }, + }, + purpose: "ajv", + surplus: true, + }, + ); diff --git a/test/src/generated/output/json.application/swagger_standard/test_json_application_swagger_standard_ObjectDate.ts b/test/src/generated/output/json.application/swagger_standard/test_json_application_swagger_standard_ObjectDate.ts new file mode 100644 index 0000000000..d07089c96e --- /dev/null +++ b/test/src/generated/output/json.application/swagger_standard/test_json_application_swagger_standard_ObjectDate.ts @@ -0,0 +1,55 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../../internal/_test_json_application"; +import { ObjectDate } from "../../../../structures/ObjectDate"; + +export const test_json_application_swagger_standard_ObjectDate = + _test_json_application({ + purpose: "swagger", + surplus: false, + name: "ObjectDate", + })({ + schemas: [ + { + $ref: "#/components/schemas/ObjectDate", + }, + ], + components: { + schemas: { + ObjectDate: { + type: "object", + properties: { + classDate: { + type: "string", + format: "date-time", + nullable: true, + }, + date: { + type: "string", + format: "date", + nullable: true, + }, + datetime: { + type: "string", + format: "date-time", + nullable: true, + }, + time: { + type: "string", + format: "time", + nullable: true, + }, + duration: { + type: "string", + format: "duration", + nullable: true, + }, + }, + nullable: false, + required: ["date", "datetime", "time", "duration"], + }, + }, + }, + purpose: "swagger", + surplus: false, + }); diff --git a/test/src/generated/output/json.application/swagger_surplus/test_json_application_swagger_surplus_ObjectDate.ts b/test/src/generated/output/json.application/swagger_surplus/test_json_application_swagger_surplus_ObjectDate.ts new file mode 100644 index 0000000000..98839572f6 --- /dev/null +++ b/test/src/generated/output/json.application/swagger_surplus/test_json_application_swagger_surplus_ObjectDate.ts @@ -0,0 +1,108 @@ +import typia from "typia"; + +import { _test_json_application } from "../../../../internal/_test_json_application"; +import { ObjectDate } from "../../../../structures/ObjectDate"; + +export const test_json_application_swagger_surplus_ObjectDate = + _test_json_application({ + purpose: "swagger", + surplus: true, + name: "ObjectDate", + })({ + schemas: [ + { + $ref: "#/components/schemas/ObjectDate", + }, + ], + components: { + schemas: { + ObjectDate: { + type: "object", + properties: { + classDate: { + type: "string", + format: "date-time", + nullable: true, + "x-typia-required": true, + "x-typia-optional": true, + }, + date: { + type: "string", + format: "date", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"date">', + kind: "format", + value: "date", + validate: "/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)", + exclusive: ["format", "pattern"], + }, + ], + nullable: true, + "x-typia-required": true, + "x-typia-optional": false, + }, + datetime: { + type: "string", + format: "date-time", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"date-time">', + kind: "format", + value: "date-time", + validate: "!isNaN(new Date($input).getTime())", + exclusive: ["format", "pattern"], + }, + ], + nullable: true, + "x-typia-required": true, + "x-typia-optional": false, + }, + time: { + type: "string", + format: "time", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"time">', + kind: "format", + value: "time", + validate: + "/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i.test($input)", + exclusive: ["format", "pattern"], + }, + ], + nullable: true, + "x-typia-required": true, + "x-typia-optional": false, + }, + duration: { + type: "string", + format: "duration", + "x-typia-typeTags": [ + { + target: "string", + name: 'Format<"duration">', + kind: "format", + value: "duration", + validate: + "/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/.test($input)", + exclusive: ["format", "pattern"], + }, + ], + nullable: true, + "x-typia-required": true, + "x-typia-optional": false, + }, + }, + nullable: false, + required: ["date", "datetime", "time", "duration"], + "x-typia-jsDocTags": [], + }, + }, + }, + purpose: "swagger", + surplus: true, + }); diff --git a/test/src/generated/output/json.assertStringify/test_json_assertStringify_ObjectDate.ts b/test/src/generated/output/json.assertStringify/test_json_assertStringify_ObjectDate.ts new file mode 100644 index 0000000000..0d3c76bd5c --- /dev/null +++ b/test/src/generated/output/json.assertStringify/test_json_assertStringify_ObjectDate.ts @@ -0,0 +1,153 @@ +import typia from "typia"; + +import { _test_json_assertStringify } from "../../../internal/_test_json_assertStringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_assertStringify_ObjectDate = _test_json_assertStringify( + "ObjectDate", +)(ObjectDate)((input) => + ((input: any): string => { + const assert = (input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.json.assertStringify as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }; + const stringify = (input: ObjectDate): string => { + const $string = (typia.json.assertStringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${ + null !== input.date ? $string(input.date) : "null" + },"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${ + null !== input.time ? $string(input.time) : "null" + },"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); + }; + return stringify(assert(input)); + })(input), +); diff --git a/test/src/generated/output/json.createAssertStringify/test_json_createAssertStringify_ObjectDate.ts b/test/src/generated/output/json.createAssertStringify/test_json_createAssertStringify_ObjectDate.ts new file mode 100644 index 0000000000..d04d45e79f --- /dev/null +++ b/test/src/generated/output/json.createAssertStringify/test_json_createAssertStringify_ObjectDate.ts @@ -0,0 +1,152 @@ +import typia from "typia"; + +import { _test_json_assertStringify } from "../../../internal/_test_json_assertStringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_createAssertStringify_ObjectDate = + _test_json_assertStringify("ObjectDate")(ObjectDate)( + (input: any): string => { + const assert = (input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.json.createAssertStringify as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }; + const stringify = (input: ObjectDate): string => { + const $string = (typia.json.createAssertStringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${ + null !== input.date ? $string(input.date) : "null" + },"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${ + null !== input.time ? $string(input.time) : "null" + },"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); + }; + return stringify(assert(input)); + }, + ); diff --git a/test/src/generated/output/json.createIsStringify/test_json_createIsStringify_ObjectDate.ts b/test/src/generated/output/json.createIsStringify/test_json_createIsStringify_ObjectDate.ts new file mode 100644 index 0000000000..eff4fe578a --- /dev/null +++ b/test/src/generated/output/json.createIsStringify/test_json_createIsStringify_ObjectDate.ts @@ -0,0 +1,57 @@ +import typia from "typia"; + +import { _test_json_isStringify } from "../../../internal/_test_json_isStringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_createIsStringify_ObjectDate = _test_json_isStringify( + "ObjectDate", +)(ObjectDate)((input: ObjectDate): string | null => { + const is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + const stringify = (input: ObjectDate): string => { + const $string = (typia.json.createIsStringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${ + null !== input.date ? $string(input.date) : "null" + },"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${ + null !== input.time ? $string(input.time) : "null" + },"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); + }; + return is(input) ? stringify(input) : null; +}); diff --git a/test/src/generated/output/json.createStringify/test_json_createStringify_ObjectDate.ts b/test/src/generated/output/json.createStringify/test_json_createStringify_ObjectDate.ts new file mode 100644 index 0000000000..2c5930e4db --- /dev/null +++ b/test/src/generated/output/json.createStringify/test_json_createStringify_ObjectDate.ts @@ -0,0 +1,27 @@ +import typia from "typia"; + +import { _test_json_stringify } from "../../../internal/_test_json_stringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_createStringify_ObjectDate = _test_json_stringify( + "ObjectDate", +)(ObjectDate)((input: ObjectDate): string => { + const $string = (typia.json.createStringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${null !== input.date ? $string(input.date) : "null"},"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${null !== input.time ? $string(input.time) : "null"},"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); +}); diff --git a/test/src/generated/output/json.createValidateStringify/test_json_createValidateStringify_ObjectDate.ts b/test/src/generated/output/json.createValidateStringify/test_json_createValidateStringify_ObjectDate.ts new file mode 100644 index 0000000000..200ce292ea --- /dev/null +++ b/test/src/generated/output/json.createValidateStringify/test_json_createValidateStringify_ObjectDate.ts @@ -0,0 +1,165 @@ +import typia from "typia"; + +import { _test_json_validateStringify } from "../../../internal/_test_json_validateStringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_createValidateStringify_ObjectDate = + _test_json_validateStringify("ObjectDate")(ObjectDate)( + (input: ObjectDate): typia.IValidation => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.json.createValidateStringify as any).report( + errors, + ); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const stringify = (input: ObjectDate): string => { + const $string = (typia.json.createValidateStringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${ + null !== input.date ? $string(input.date) : "null" + },"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${ + null !== input.time ? $string(input.time) : "null" + },"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); + }; + const output = validate(input) as any; + if (output.success) output.data = stringify(input); + return output; + }, + ); diff --git a/test/src/generated/output/json.isStringify/test_json_isStringify_ObjectDate.ts b/test/src/generated/output/json.isStringify/test_json_isStringify_ObjectDate.ts new file mode 100644 index 0000000000..8f68ea544f --- /dev/null +++ b/test/src/generated/output/json.isStringify/test_json_isStringify_ObjectDate.ts @@ -0,0 +1,59 @@ +import typia from "typia"; + +import { _test_json_isStringify } from "../../../internal/_test_json_isStringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_isStringify_ObjectDate = _test_json_isStringify( + "ObjectDate", +)(ObjectDate)((input) => + ((input: ObjectDate): string | null => { + const is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + const stringify = (input: ObjectDate): string => { + const $string = (typia.json.isStringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${ + null !== input.date ? $string(input.date) : "null" + },"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${ + null !== input.time ? $string(input.time) : "null" + },"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); + }; + return is(input) ? stringify(input) : null; + })(input), +); diff --git a/test/src/generated/output/json.stringify/test_json_stringify_ObjectDate.ts b/test/src/generated/output/json.stringify/test_json_stringify_ObjectDate.ts new file mode 100644 index 0000000000..7aa0caf2d5 --- /dev/null +++ b/test/src/generated/output/json.stringify/test_json_stringify_ObjectDate.ts @@ -0,0 +1,33 @@ +import typia from "typia"; + +import { _test_json_stringify } from "../../../internal/_test_json_stringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_stringify_ObjectDate = _test_json_stringify( + "ObjectDate", +)(ObjectDate)((input) => + ((input: ObjectDate): string => { + const $string = (typia.json.stringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${ + null !== input.date ? $string(input.date) : "null" + },"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${ + null !== input.time ? $string(input.time) : "null" + },"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); + })(input), +); diff --git a/test/src/generated/output/json.validateStringify/test_json_validateStringify_ObjectDate.ts b/test/src/generated/output/json.validateStringify/test_json_validateStringify_ObjectDate.ts new file mode 100644 index 0000000000..96e3af04e1 --- /dev/null +++ b/test/src/generated/output/json.validateStringify/test_json_validateStringify_ObjectDate.ts @@ -0,0 +1,163 @@ +import typia from "typia"; + +import { _test_json_validateStringify } from "../../../internal/_test_json_validateStringify"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_json_validateStringify_ObjectDate = + _test_json_validateStringify("ObjectDate")(ObjectDate)((input) => + ((input: ObjectDate): typia.IValidation => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.json.validateStringify as any).report(errors); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const stringify = (input: ObjectDate): string => { + const $string = (typia.json.validateStringify as any).string; + const $so0 = (input: any): any => + `{${ + undefined === input.classDate + ? "" + : `"classDate":${ + undefined !== input.classDate + ? null !== input.classDate + ? $string(input.classDate.toJSON()) + : "null" + : undefined + },` + }"date":${ + null !== input.date ? $string(input.date) : "null" + },"datetime":${ + null !== input.datetime ? $string(input.datetime) : "null" + },"time":${ + null !== input.time ? $string(input.time) : "null" + },"duration":${ + null !== input.duration ? $string(input.duration) : "null" + }}`; + return $so0(input); + }; + const output = validate(input) as any; + if (output.success) output.data = stringify(input); + return output; + })(input), + ); diff --git a/test/src/generated/output/misc.assertClone/test_misc_assertClone_ObjectDate.ts b/test/src/generated/output/misc.assertClone/test_misc_assertClone_ObjectDate.ts new file mode 100644 index 0000000000..6da42b2ecc --- /dev/null +++ b/test/src/generated/output/misc.assertClone/test_misc_assertClone_ObjectDate.ts @@ -0,0 +1,146 @@ +import typia from "typia"; + +import { _test_misc_assertClone } from "../../../internal/_test_misc_assertClone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_assertClone_ObjectDate = _test_misc_assertClone( + "ObjectDate", +)(ObjectDate)((input) => + ((input: any): typia.Resolved => { + const assert = (input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.misc.assertClone as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }; + const clone = (input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + assert(input); + const output = clone(input); + return output; + })(input), +); diff --git a/test/src/generated/output/misc.clone/test_misc_clone_ObjectDate.ts b/test/src/generated/output/misc.clone/test_misc_clone_ObjectDate.ts new file mode 100644 index 0000000000..1272088879 --- /dev/null +++ b/test/src/generated/output/misc.clone/test_misc_clone_ObjectDate.ts @@ -0,0 +1,24 @@ +import typia from "typia"; + +import { _test_misc_clone } from "../../../internal/_test_misc_clone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_clone_ObjectDate = _test_misc_clone( + "ObjectDate", +)(ObjectDate)((input) => + ((input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + })(input), +); diff --git a/test/src/generated/output/misc.createAssertClone/test_misc_createAssertClone_ObjectDate.ts b/test/src/generated/output/misc.createAssertClone/test_misc_createAssertClone_ObjectDate.ts new file mode 100644 index 0000000000..df7a0ea5e7 --- /dev/null +++ b/test/src/generated/output/misc.createAssertClone/test_misc_createAssertClone_ObjectDate.ts @@ -0,0 +1,144 @@ +import typia from "typia"; + +import { _test_misc_assertClone } from "../../../internal/_test_misc_assertClone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_createAssertClone_ObjectDate = _test_misc_assertClone( + "ObjectDate", +)(ObjectDate)((input: any): typia.Resolved => { + const assert = (input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.misc.createAssertClone as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }; + const clone = (input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + assert(input); + const output = clone(input); + return output; +}); diff --git a/test/src/generated/output/misc.createClone/test_misc_createClone_ObjectDate.ts b/test/src/generated/output/misc.createClone/test_misc_createClone_ObjectDate.ts new file mode 100644 index 0000000000..92a2f58e0e --- /dev/null +++ b/test/src/generated/output/misc.createClone/test_misc_createClone_ObjectDate.ts @@ -0,0 +1,22 @@ +import typia from "typia"; + +import { _test_misc_clone } from "../../../internal/_test_misc_clone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_createClone_ObjectDate = _test_misc_clone( + "ObjectDate", +)(ObjectDate)((input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); +}); diff --git a/test/src/generated/output/misc.createIsClone/test_misc_createIsClone_ObjectDate.ts b/test/src/generated/output/misc.createIsClone/test_misc_createIsClone_ObjectDate.ts new file mode 100644 index 0000000000..e43aae4528 --- /dev/null +++ b/test/src/generated/output/misc.createIsClone/test_misc_createIsClone_ObjectDate.ts @@ -0,0 +1,50 @@ +import typia from "typia"; + +import { _test_misc_isClone } from "../../../internal/_test_misc_isClone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_createIsClone_ObjectDate = _test_misc_isClone( + "ObjectDate", +)(ObjectDate)((input: any): typia.Resolved | null => { + const is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + const clone = (input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + if (!is(input)) return null; + const output = clone(input); + return output; +}); diff --git a/test/src/generated/output/misc.createValidateClone/test_misc_createValidateClone_ObjectDate.ts b/test/src/generated/output/misc.createValidateClone/test_misc_createValidateClone_ObjectDate.ts new file mode 100644 index 0000000000..7d44aaf72d --- /dev/null +++ b/test/src/generated/output/misc.createValidateClone/test_misc_createValidateClone_ObjectDate.ts @@ -0,0 +1,156 @@ +import typia from "typia"; + +import { _test_misc_validateClone } from "../../../internal/_test_misc_validateClone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_createValidateClone_ObjectDate = + _test_misc_validateClone("ObjectDate")(ObjectDate)( + (input: any): typia.IValidation> => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.misc.createValidateClone as any).report( + errors, + ); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const clone = (input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + const output = validate(input) as any; + if (output.success) output.data = clone(input); + return output; + }, + ); diff --git a/test/src/generated/output/misc.isClone/test_misc_isClone_ObjectDate.ts b/test/src/generated/output/misc.isClone/test_misc_isClone_ObjectDate.ts new file mode 100644 index 0000000000..97f2bcaf68 --- /dev/null +++ b/test/src/generated/output/misc.isClone/test_misc_isClone_ObjectDate.ts @@ -0,0 +1,52 @@ +import typia from "typia"; + +import { _test_misc_isClone } from "../../../internal/_test_misc_isClone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_isClone_ObjectDate = _test_misc_isClone( + "ObjectDate", +)(ObjectDate)((input) => + ((input: any): typia.Resolved | null => { + const is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + const clone = (input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + if (!is(input)) return null; + const output = clone(input); + return output; + })(input), +); diff --git a/test/src/generated/output/misc.validateClone/test_misc_validateClone_ObjectDate.ts b/test/src/generated/output/misc.validateClone/test_misc_validateClone_ObjectDate.ts new file mode 100644 index 0000000000..5d7287d89c --- /dev/null +++ b/test/src/generated/output/misc.validateClone/test_misc_validateClone_ObjectDate.ts @@ -0,0 +1,155 @@ +import typia from "typia"; + +import { _test_misc_validateClone } from "../../../internal/_test_misc_validateClone"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_misc_validateClone_ObjectDate = _test_misc_validateClone( + "ObjectDate", +)(ObjectDate)((input) => + ((input: any): typia.IValidation> => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.misc.validateClone as any).report(errors); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const clone = (input: ObjectDate): typia.Resolved => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + const output = validate(input) as any; + if (output.success) output.data = clone(input); + return output; + })(input), +); diff --git a/test/src/generated/output/notation.camel/test_notation_camel_ObjectDate.ts b/test/src/generated/output/notation.camel/test_notation_camel_ObjectDate.ts new file mode 100644 index 0000000000..9a7b88bcd2 --- /dev/null +++ b/test/src/generated/output/notation.camel/test_notation_camel_ObjectDate.ts @@ -0,0 +1,276 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_notation_validateCamel_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.CamelCase + >({ + convert: (input) => + ((input: any): typia.IValidation> => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.notations.validateCamel as any).report( + errors, + ); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const general = (input: ObjectDate): typia.CamelCase => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + const output = validate(input) as any; + if (output.success) output.data = general(input); + return output; + })(input), + assert: (input: any): typia.CamelCase => { + const __is = (input: any): input is typia.CamelCase => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is typia.CamelCase => { + const $guard = (typia.createAssert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }, + }); diff --git a/test/src/generated/output/notation.createCamel/test_notation_createCamel_ObjectDate.ts b/test/src/generated/output/notation.createCamel/test_notation_createCamel_ObjectDate.ts new file mode 100644 index 0000000000..62988d62cf --- /dev/null +++ b/test/src/generated/output/notation.createCamel/test_notation_createCamel_ObjectDate.ts @@ -0,0 +1,275 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_notation_createValidateCamel_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.CamelCase + >({ + convert: (input: any): typia.IValidation> => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.notations.createValidateCamel as any).report( + errors, + ); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const general = (input: ObjectDate): typia.CamelCase => { + const $co0 = (input: any): any => ({ + classDate: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + const output = validate(input) as any; + if (output.success) output.data = general(input); + return output; + }, + assert: (input: any): typia.CamelCase => { + const __is = (input: any): input is typia.CamelCase => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is typia.CamelCase => { + const $guard = (typia.createAssert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }, + }); diff --git a/test/src/generated/output/notation.createSnake/test_notation_createSnake_ObjectDate.ts b/test/src/generated/output/notation.createSnake/test_notation_createSnake_ObjectDate.ts new file mode 100644 index 0000000000..6a5d7c1579 --- /dev/null +++ b/test/src/generated/output/notation.createSnake/test_notation_createSnake_ObjectDate.ts @@ -0,0 +1,275 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_notation_createValidateSnake_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.SnakeCase + >({ + convert: (input: any): typia.IValidation> => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.notations.createValidateSnake as any).report( + errors, + ); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const general = (input: ObjectDate): typia.SnakeCase => { + const $co0 = (input: any): any => ({ + class_date: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + const output = validate(input) as any; + if (output.success) output.data = general(input); + return output; + }, + assert: (input: any): typia.SnakeCase => { + const __is = (input: any): input is typia.SnakeCase => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is typia.SnakeCase => { + const $guard = (typia.createAssert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }, + }); diff --git a/test/src/generated/output/notation.snake/test_notation_snake_ObjectDate.ts b/test/src/generated/output/notation.snake/test_notation_snake_ObjectDate.ts new file mode 100644 index 0000000000..30a47e1df9 --- /dev/null +++ b/test/src/generated/output/notation.snake/test_notation_snake_ObjectDate.ts @@ -0,0 +1,276 @@ +import typia from "typia"; + +import { _test_notation_validateGeneral } from "../../../internal/_test_notation_validateGeneral"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_notation_validateSnake_ObjectDate = + _test_notation_validateGeneral("ObjectDate")(ObjectDate)< + typia.SnakeCase + >({ + convert: (input) => + ((input: any): typia.IValidation> => { + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.notations.validateSnake as any).report( + errors, + ); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + }; + const general = (input: ObjectDate): typia.SnakeCase => { + const $co0 = (input: any): any => ({ + class_date: + input.classDate instanceof Date + ? new Date(input.classDate) + : (input.classDate as any), + date: input.date as any, + datetime: input.datetime as any, + time: input.time as any, + duration: input.duration as any, + }); + return "object" === typeof input && null !== input + ? $co0(input) + : (input as any); + }; + const output = validate(input) as any; + if (output.success) output.data = general(input); + return output; + })(input), + assert: (input: any): typia.SnakeCase => { + const __is = (input: any): input is typia.SnakeCase => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is typia.SnakeCase => { + const $guard = (typia.createAssert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }, + }); diff --git a/test/src/generated/output/random/test_random_ObjectDate.ts b/test/src/generated/output/random/test_random_ObjectDate.ts new file mode 100644 index 0000000000..27840c15b7 --- /dev/null +++ b/test/src/generated/output/random/test_random_ObjectDate.ts @@ -0,0 +1,185 @@ +import typia from "typia"; + +import { _test_random } from "../../../internal/_test_random"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_random_ObjectDate = _test_random("ObjectDate")( + ObjectDate, +)({ + random: () => + (( + generator?: Partial, + ): typia.Resolved => { + const $generator = (typia.random as any).generator; + const $pick = (typia.random as any).pick; + const $ro0 = (_recursive: boolean = false, _depth: number = 0): any => ({ + classDate: $pick([ + () => undefined, + () => null, + () => new Date((generator?.datetime ?? $generator.datetime)()), + ])(), + date: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"date">', + kind: "format", + value: "date", + }, + ]) ?? (generator?.date ?? $generator.date)(), + ])(), + datetime: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"date-time">', + kind: "format", + value: "date-time", + }, + ]) ?? (generator?.datetime ?? $generator.datetime)(), + ])(), + time: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"time">', + kind: "format", + value: "time", + }, + ]) ?? (generator?.time ?? $generator.time)(), + ])(), + duration: $pick([ + () => null, + () => + (generator?.customs ?? $generator.customs)?.string?.([ + { + name: 'Format<"duration">', + kind: "format", + value: "duration", + }, + ]) ?? (generator?.duration ?? $generator.duration)(), + ])(), + }); + return $ro0(); + })((ObjectDate as any).RANDOM), + assert: (input: any): ObjectDate => { + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $guard = (typia.createAssert as any).guard; + const $ao0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $guard(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + })) && + (null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $guard(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $guard(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + })) && + (null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $guard(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + })) && + (null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $guard(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $guard(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + })) && + (null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $guard(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + })); + return ( + ((("object" === typeof input && null !== input) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $ao0(input, _path + "", true)) || + $guard(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + return input; + }, +}); diff --git a/test/src/generated/output/reflect.metadata/test_reflect_metadata_ObjectDate.ts b/test/src/generated/output/reflect.metadata/test_reflect_metadata_ObjectDate.ts new file mode 100644 index 0000000000..e1fd37cb6f --- /dev/null +++ b/test/src/generated/output/reflect.metadata/test_reflect_metadata_ObjectDate.ts @@ -0,0 +1,391 @@ +import typia from "typia"; + +import { _test_reflect_metadata } from "../../../internal/_test_reflect_metadata"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_reflect_metadata_ObjectDate = _test_reflect_metadata( + "ObjectDate", +)({ + metadatas: [ + { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [], + constants: [], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: ["ObjectDate"], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + ], + components: { + objects: [ + { + name: "ObjectDate", + properties: [ + { + key: { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [], + constants: [ + { + type: "string", + values: ["classDate"], + }, + ], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + value: { + any: false, + required: true, + optional: true, + nullable: true, + functional: false, + atomics: [], + constants: [], + templates: [], + escaped: { + original: { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [], + constants: [], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: ["Date"], + sets: [], + maps: [], + }, + returns: { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [ + { + type: "string", + tags: [], + }, + ], + constants: [], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + }, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + description: null, + jsDocTags: [], + }, + { + key: { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [], + constants: [ + { + type: "string", + values: ["date"], + }, + ], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + value: { + any: false, + required: true, + optional: false, + nullable: true, + functional: false, + atomics: [ + { + type: "string", + tags: [ + [ + { + target: "string", + name: 'Format<"date">', + kind: "format", + value: "date", + validate: "/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)", + exclusive: ["format", "pattern"], + }, + ], + ], + }, + ], + constants: [], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + description: null, + jsDocTags: [], + }, + { + key: { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [], + constants: [ + { + type: "string", + values: ["datetime"], + }, + ], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + value: { + any: false, + required: true, + optional: false, + nullable: true, + functional: false, + atomics: [ + { + type: "string", + tags: [ + [ + { + target: "string", + name: 'Format<"date-time">', + kind: "format", + value: "date-time", + validate: "!isNaN(new Date($input).getTime())", + exclusive: ["format", "pattern"], + }, + ], + ], + }, + ], + constants: [], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + description: null, + jsDocTags: [], + }, + { + key: { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [], + constants: [ + { + type: "string", + values: ["time"], + }, + ], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + value: { + any: false, + required: true, + optional: false, + nullable: true, + functional: false, + atomics: [ + { + type: "string", + tags: [ + [ + { + target: "string", + name: 'Format<"time">', + kind: "format", + value: "time", + validate: + "/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i.test($input)", + exclusive: ["format", "pattern"], + }, + ], + ], + }, + ], + constants: [], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + description: null, + jsDocTags: [], + }, + { + key: { + any: false, + required: true, + optional: false, + nullable: false, + functional: false, + atomics: [], + constants: [ + { + type: "string", + values: ["duration"], + }, + ], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + value: { + any: false, + required: true, + optional: false, + nullable: true, + functional: false, + atomics: [ + { + type: "string", + tags: [ + [ + { + target: "string", + name: 'Format<"duration">', + kind: "format", + value: "duration", + validate: + "/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/.test($input)", + exclusive: ["format", "pattern"], + }, + ], + ], + }, + ], + constants: [], + templates: [], + escaped: null, + rest: null, + arrays: [], + tuples: [], + objects: [], + aliases: [], + natives: [], + sets: [], + maps: [], + }, + description: null, + jsDocTags: [], + }, + ], + jsDocTags: [], + index: 0, + recursive: false, + nullables: [false], + }, + ], + aliases: [], + arrays: [], + tuples: [], + }, +}); diff --git a/test/src/generated/output/validate/test_validate_ObjectDate.ts b/test/src/generated/output/validate/test_validate_ObjectDate.ts new file mode 100644 index 0000000000..9799f0fc83 --- /dev/null +++ b/test/src/generated/output/validate/test_validate_ObjectDate.ts @@ -0,0 +1,135 @@ +import typia from "typia"; + +import { _test_validate } from "../../../internal/_test_validate"; +import { ObjectDate } from "../../../structures/ObjectDate"; + +export const test_validate_ObjectDate = _test_validate( + "ObjectDate", +)(ObjectDate)((input) => + ((input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is ObjectDate => { + const $io0 = (input: any): boolean => + (null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date) && + (null === input.date || + ("string" === typeof input.date && + /^(\d{4})-(\d{2})-(\d{2})$/.test(input.date))) && + (null === input.datetime || + ("string" === typeof input.datetime && + !isNaN(new Date(input.datetime).getTime()))) && + (null === input.time || + ("string" === typeof input.time && + /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ))) && + (null === input.duration || + ("string" === typeof input.duration && + /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ))); + return "object" === typeof input && null !== input && $io0(input); + }; + if (false === __is(input)) { + const $report = (typia.validate as any).report(errors); + (( + input: any, + _path: string, + _exceptionable: boolean = true, + ): input is ObjectDate => { + const $vo0 = ( + input: any, + _path: string, + _exceptionable: boolean = true, + ): boolean => + [ + null === input.classDate || + undefined === input.classDate || + input.classDate instanceof Date || + $report(_exceptionable, { + path: _path + ".classDate", + expected: "(Date | null | undefined)", + value: input.classDate, + }), + null === input.date || + ("string" === typeof input.date && + (/^(\d{4})-(\d{2})-(\d{2})$/.test(input.date) || + $report(_exceptionable, { + path: _path + ".date", + expected: 'string & Format<"date">', + value: input.date, + }))) || + $report(_exceptionable, { + path: _path + ".date", + expected: '((string & Format<"date">) | null)', + value: input.date, + }), + null === input.datetime || + ("string" === typeof input.datetime && + (!isNaN(new Date(input.datetime).getTime()) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: 'string & Format<"date-time">', + value: input.datetime, + }))) || + $report(_exceptionable, { + path: _path + ".datetime", + expected: '((string & Format<"date-time">) | null)', + value: input.datetime, + }), + null === input.time || + ("string" === typeof input.time && + (/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i.test( + input.time, + ) || + $report(_exceptionable, { + path: _path + ".time", + expected: 'string & Format<"time">', + value: input.time, + }))) || + $report(_exceptionable, { + path: _path + ".time", + expected: '((string & Format<"time">) | null)', + value: input.time, + }), + null === input.duration || + ("string" === typeof input.duration && + (/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/.test( + input.duration, + ) || + $report(_exceptionable, { + path: _path + ".duration", + expected: 'string & Format<"duration">', + value: input.duration, + }))) || + $report(_exceptionable, { + path: _path + ".duration", + expected: '((string & Format<"duration">) | null)', + value: input.duration, + }), + ].every((flag: boolean) => flag); + return ( + ((("object" === typeof input && null !== input) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + })) && + $vo0(input, _path + "", true)) || + $report(true, { + path: _path + "", + expected: "ObjectDate", + value: input, + }) + ); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined, + } as any; + })(input), +); diff --git a/test/src/structures/ObjectDate.ts b/test/src/structures/ObjectDate.ts new file mode 100644 index 0000000000..7eddcb83a9 --- /dev/null +++ b/test/src/structures/ObjectDate.ts @@ -0,0 +1,50 @@ +import { tags } from "typia"; + +import { Spoiler } from "../helpers/Spoiler"; +import { TestRandomGenerator } from "../helpers/TestRandomGenerator"; + +export interface ObjectDate { + classDate?: Date | null; + date: (string & tags.Format<"date">) | null; + datetime: (string & tags.Format<"date-time">) | null; + time: (string & tags.Format<"time">) | null; + duration: (string & tags.Format<"duration">) | null; +} +export namespace ObjectDate { + export const ADDABLE = false; + export const BINARABLE = false; + export const PRIMITIVE = false; + + export function generate(): ObjectDate { + return { + classDate: new Date(), + date: new Date().toISOString().substring(0, 10), + datetime: new Date().toISOString(), + time: new Date().toISOString().substring(11, 23), + duration: TestRandomGenerator.duration(), + }; + } + + export const SPOILERS: Spoiler[] = [ + (input) => { + input.classDate = {} as any; + return ["$input.classDate"]; + }, + (input) => { + input.date = new Date().toString(); + return ["$input.date"]; + }, + (input) => { + input.datetime = "invalid datetime"; + return ["$input.datetime"]; + }, + (input) => { + input.time = "123456"; + return ["$input.time"]; + }, + (input) => { + input.duration = "30D"; + return ["$input.duration"]; + }, + ]; +} diff --git a/website/package-lock.json b/website/package-lock.json index 4c4e279e83..3e44be79de 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -32,15 +32,15 @@ "prettier": "^2.8.8", "rimraf": "^5.0.0", "ts-node": "^10.9.1", - "typia": "^5.4.1" + "typia": "5.4.2" } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -119,9 +119,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } @@ -135,9 +135,9 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -148,9 +148,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -160,9 +160,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", - "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -171,14 +171,14 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" @@ -206,12 +206,12 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -221,9 +221,9 @@ } }, "node_modules/@babel/traverse/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -231,11 +231,11 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, @@ -315,14 +315,14 @@ "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, "node_modules/@emotion/react": { - "version": "11.11.1", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", - "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "version": "11.11.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.3.tgz", + "integrity": "sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.2", + "@emotion/serialize": "^1.1.3", "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", "@emotion/utils": "^1.2.1", "@emotion/weak-memoize": "^0.3.1", @@ -338,9 +338,9 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", - "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", "dependencies": { "@emotion/hash": "^0.9.1", "@emotion/memoize": "^0.8.1", @@ -400,28 +400,28 @@ "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "node_modules/@floating-ui/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", "dependencies": { - "@floating-ui/utils": "^0.1.3" + "@floating-ui/utils": "^0.2.1" } }, "node_modules/@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.1.tgz", + "integrity": "sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ==", "dependencies": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.1" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", - "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", "dependencies": { - "@floating-ui/dom": "^1.5.1" + "@floating-ui/dom": "^1.6.1" }, "peerDependencies": { "react": ">=16.8.0", @@ -429,15 +429,16 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" }, "node_modules/@headlessui/react": { - "version": "1.7.17", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.17.tgz", - "integrity": "sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow==", + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.18.tgz", + "integrity": "sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==", "dependencies": { + "@tanstack/react-virtual": "^3.0.0-beta.60", "client-only": "^0.0.1" }, "engines": { @@ -688,16 +689,16 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-beta.23", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.23.tgz", - "integrity": "sha512-9L8SQUGAWtd/Qi7Qem26+oSSgpY7f2iQTuvcz/rsGpyZjSomMMO6lwYeQSA0CpWM7+aN7eGoSY/WV6wxJiIxXw==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@floating-ui/react-dom": "^2.0.2", - "@mui/types": "^7.2.8", - "@mui/utils": "^5.14.17", + "version": "5.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.34.tgz", + "integrity": "sha512-e2mbTGTtReD/y5RFwnhkl1Tgl3XwgJhY040IlfkTVaU9f5LWrVhEnpRsYXu3B1CtLrwiWs4cu7aMHV9yRd4jpw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.7", "@popperjs/core": "^2.11.8", - "clsx": "^2.0.0", + "clsx": "^2.1.0", "prop-types": "^15.8.1" }, "engines": { @@ -705,7 +706,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -719,20 +720,20 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.14.17", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.17.tgz", - "integrity": "sha512-eE0uxrpJAEL2ZXkeGLKg8HQDafsiXY+6eNpP4lcv3yIjFfGbU6Hj9/P7Adt8jpU+6JIhmxvILGj2r27pX+zdrQ==", + "version": "5.15.7", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.7.tgz", + "integrity": "sha512-AuF+Wo2Mp/edaO6vJnWjg+gj4tzEz5ChMZnAQpc22DXpSvM8ddgGcZvM7D7F99pIBoSv8ub+Iz0viL+yuGVmhg==", "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.4.tgz", - "integrity": "sha512-q/Yk7aokN8qGMpR7bwoDpBSeaNe6Bv7vaY9yHYodP37c64TM6ime05ueb/wgksOVszrKkNXC67E/XYbRWOoUFA==", + "version": "5.15.7", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.7.tgz", + "integrity": "sha512-EDAc8TVJGIA/imAvR3u4nANl2W5h3QeHieu2gK7Ypez/nIA55p08tHjf8UrMXEpxCAvfZO6piY9S9uaxETdicA==", "dependencies": { - "@babel/runtime": "^7.23.7" + "@babel/runtime": "^7.23.9" }, "engines": { "node": ">=12.0.0" @@ -753,18 +754,18 @@ } }, "node_modules/@mui/material": { - "version": "5.14.17", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.17.tgz", - "integrity": "sha512-+y0VeOLWfEA4Z98We/UH6KCo8+f2HLZDK45FY+sJf8kSojLy3VntadKtC/u0itqnXXb1Pr4wKB2tSIBW02zY4Q==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/base": "5.0.0-beta.23", - "@mui/core-downloads-tracker": "^5.14.17", - "@mui/system": "^5.14.17", - "@mui/types": "^7.2.8", - "@mui/utils": "^5.14.17", - "@types/react-transition-group": "^4.4.8", - "clsx": "^2.0.0", + "version": "5.15.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.7.tgz", + "integrity": "sha512-l6+AiKZH3iOJmZCnlpel8ghYQe9Lq0BEuKP8fGj3g5xz4arO9GydqYAtLPMvuHKtArj8lJGNuT2yHYxmejincA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.34", + "@mui/core-downloads-tracker": "^5.15.7", + "@mui/system": "^5.15.7", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.7", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", "csstype": "^3.1.2", "prop-types": "^15.8.1", "react-is": "^18.2.0", @@ -775,7 +776,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -797,12 +798,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.14.17", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.17.tgz", - "integrity": "sha512-u4zxsCm9xmQrlhVPug+Ccrtsjv7o2+rehvrgHoh0siSguvVgVQq5O3Hh10+tp/KWQo2JR4/nCEwquSXgITS1+g==", + "version": "5.15.7", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.7.tgz", + "integrity": "sha512-bcEeeXm7GyQCQvN9dwo8htGv8/6tP05p0i02Z7GXm5EoDPlBcqTNGugsjNLoGq6B0SsdyanjJGw0Jw00o1yAOA==", "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/utils": "^5.14.17", + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.7", "prop-types": "^15.8.1" }, "engines": { @@ -810,7 +811,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -823,11 +824,11 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.14.17", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.17.tgz", - "integrity": "sha512-AqpVjBEA7wnBvKPW168bNlqB6EN7HxTjLOY7oi275AzD/b1C7V0wqELy6NWoJb2yya5sRf7ENf4iNi3+T5cOgw==", + "version": "5.15.7", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.7.tgz", + "integrity": "sha512-ixSdslOjK1kzdGcxqj7O3d14By/LPQ7EWknsViQ8RaeT863EAQemS+zvUJDTcOpkfJh6q6gPnYMIb2TJCs9eWA==", "dependencies": { - "@babel/runtime": "^7.23.2", + "@babel/runtime": "^7.23.9", "@emotion/cache": "^11.11.0", "csstype": "^3.1.2", "prop-types": "^15.8.1" @@ -837,7 +838,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.4.1", @@ -854,16 +855,16 @@ } }, "node_modules/@mui/system": { - "version": "5.14.17", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.17.tgz", - "integrity": "sha512-Ccz3XlbCqka6DnbHfpL3o3TfOeWQPR+ewvNAgm8gnS9M0yVMmzzmY6z0w/C1eebb+7ZP7IoLUj9vojg/GBaTPg==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/private-theming": "^5.14.17", - "@mui/styled-engine": "^5.14.17", - "@mui/types": "^7.2.8", - "@mui/utils": "^5.14.17", - "clsx": "^2.0.0", + "version": "5.15.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.7.tgz", + "integrity": "sha512-9alZ4/dLxsTwUOdqakgzxiL5YW6ntqj0CfzWImgWnBMTZhgGcPsbYpBLniNkkk7/jptma4/bykWXHwju/ls/pg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.7", + "@mui/styled-engine": "^5.15.7", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.7", + "clsx": "^2.1.0", "csstype": "^3.1.2", "prop-types": "^15.8.1" }, @@ -872,7 +873,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -893,9 +894,9 @@ } }, "node_modules/@mui/types": { - "version": "7.2.8", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.8.tgz", - "integrity": "sha512-9u0ji+xspl96WPqvrYJF/iO+1tQ1L5GTaDOeG3vCR893yy7VcWwRNiVMmPdPNpMDqx0WV1wtEW9OMwK9acWJzQ==", + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", + "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0" }, @@ -906,12 +907,12 @@ } }, "node_modules/@mui/utils": { - "version": "5.14.17", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.17.tgz", - "integrity": "sha512-yxnWgSS4J6DMFPw2Dof85yBkG02VTbEiqsikymMsnZnXDurtVGTIhlNuV24GTmFTuJMzEyTTU9UF+O7zaL8LEQ==", + "version": "5.15.7", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.7.tgz", + "integrity": "sha512-8qhsxQRNV6aEOjjSk6YQIYJxkF5klhj8oG1FEEU4z6HV78TjNqRxMP08QGcdsibEbez+nihAaz6vu83b4XqbAg==", "dependencies": { - "@babel/runtime": "^7.23.2", - "@types/prop-types": "^15.7.9", + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", "prop-types": "^15.8.1", "react-is": "^18.2.0" }, @@ -920,7 +921,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -933,30 +934,30 @@ } }, "node_modules/@napi-rs/simple-git": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.9.tgz", - "integrity": "sha512-qKzDS0+VjMvVyU28px+C6zlD1HKy83NIdYzfMQWa/g/V1iG/Ic8uwrS2ihHfm7mp7X0PPrmINLiTTi6ieUIKfw==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.16.tgz", + "integrity": "sha512-C5wRPw9waqL2jk3jEDeJv+f7ScuO3N0a39HVdyFLkwKxHH4Sya4ZbzZsu2JLi6eEqe7RuHipHL6mC7B2OfYZZw==", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@napi-rs/simple-git-android-arm-eabi": "0.1.9", - "@napi-rs/simple-git-android-arm64": "0.1.9", - "@napi-rs/simple-git-darwin-arm64": "0.1.9", - "@napi-rs/simple-git-darwin-x64": "0.1.9", - "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.9", - "@napi-rs/simple-git-linux-arm64-gnu": "0.1.9", - "@napi-rs/simple-git-linux-arm64-musl": "0.1.9", - "@napi-rs/simple-git-linux-x64-gnu": "0.1.9", - "@napi-rs/simple-git-linux-x64-musl": "0.1.9", - "@napi-rs/simple-git-win32-arm64-msvc": "0.1.9", - "@napi-rs/simple-git-win32-x64-msvc": "0.1.9" + "@napi-rs/simple-git-android-arm-eabi": "0.1.16", + "@napi-rs/simple-git-android-arm64": "0.1.16", + "@napi-rs/simple-git-darwin-arm64": "0.1.16", + "@napi-rs/simple-git-darwin-x64": "0.1.16", + "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.16", + "@napi-rs/simple-git-linux-arm64-gnu": "0.1.16", + "@napi-rs/simple-git-linux-arm64-musl": "0.1.16", + "@napi-rs/simple-git-linux-x64-gnu": "0.1.16", + "@napi-rs/simple-git-linux-x64-musl": "0.1.16", + "@napi-rs/simple-git-win32-arm64-msvc": "0.1.16", + "@napi-rs/simple-git-win32-x64-msvc": "0.1.16" } }, "node_modules/@napi-rs/simple-git-android-arm-eabi": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.9.tgz", - "integrity": "sha512-9D4JnfePMpgL4pg9aMUX7/TIWEUQ+Tgx8n3Pf8TNCMGjUbImJyYsDSLJzbcv9wH7srgn4GRjSizXFJHAPjzEug==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.16.tgz", + "integrity": "sha512-dbrCL0Pl5KZG7x7tXdtVsA5CO6At5ohDX3myf5xIYn9kN4jDFxsocl8bNt6Vb/hZQoJd8fI+k5VlJt+rFhbdVw==", "cpu": [ "arm" ], @@ -969,9 +970,9 @@ } }, "node_modules/@napi-rs/simple-git-android-arm64": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.9.tgz", - "integrity": "sha512-Krilsw0gPrrASZzudNEl9pdLuNbhoTK0j7pUbfB8FRifpPdFB/zouwuEm0aSnsDXN4ftGrmGG82kuiR/2MeoPg==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.16.tgz", + "integrity": "sha512-xYz+TW5J09iK8SuTAKK2D5MMIsBUXVSs8nYp7HcMi8q6FCRO7yJj96YfP9PvKsc/k64hOyqGmL5DhCzY9Cu1FQ==", "cpu": [ "arm64" ], @@ -984,9 +985,9 @@ } }, "node_modules/@napi-rs/simple-git-darwin-arm64": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.9.tgz", - "integrity": "sha512-H/F09nDgYjv4gcFrZBgdTKkZEepqt0KLYcCJuUADuxkKupmjLdecMhypXLk13AzvLW4UQI7NlLTLDXUFLyr2BA==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.16.tgz", + "integrity": "sha512-XfgsYqxhUE022MJobeiX563TJqyQyX4FmYCnqrtJwAfivESVeAJiH6bQIum8dDEYMHXCsG7nL8Ok0Dp8k2m42g==", "cpu": [ "arm64" ], @@ -999,9 +1000,9 @@ } }, "node_modules/@napi-rs/simple-git-darwin-x64": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.9.tgz", - "integrity": "sha512-jBR2xS9nVPqmHv0TWz874W0m/d453MGrMeLjB+boK5IPPLhg3AWIZj0aN9jy2Je1BGVAa0w3INIQJtBBeB6kFA==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.16.tgz", + "integrity": "sha512-tkEVBhD6vgRCbeWsaAQqM3bTfpIVGeitamPPRVSbsq8qgzJ5Dx6ZedH27R7KSsA/uao7mZ3dsrNLXbu1Wy5MzA==", "cpu": [ "x64" ], @@ -1014,9 +1015,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.9.tgz", - "integrity": "sha512-3n0+VpO4YfZxndZ0sCvsHIvsazd+JmbSjrlTRBCnJeAU1/sfos3skNZtKGZksZhjvd+3o+/GFM8L7Xnv01yggA==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.16.tgz", + "integrity": "sha512-R6VAyNnp/yRaT7DV1Ao3r67SqTWDa+fNq2LrNy0Z8gXk2wB9ZKlrxFtLPE1WSpWknWtyRDLpRlsorh7Evk7+7w==", "cpu": [ "arm" ], @@ -1029,9 +1030,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-arm64-gnu": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.9.tgz", - "integrity": "sha512-lIzf0KHU2SKC12vMrWwCtysG2Sdt31VHRPMUiz9lD9t3xwVn8qhFSTn5yDkTeG3rgX6o0p5EKalfQN5BXsJq2w==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.16.tgz", + "integrity": "sha512-LAGI0opFKw/HBMCV2qIBK3uWSEW9h4xd2ireZKLJy8DBPymX6NrWIamuxYNyCuACnFdPRxR4LaRFy4J5ZwuMdw==", "cpu": [ "arm64" ], @@ -1044,9 +1045,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-arm64-musl": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.9.tgz", - "integrity": "sha512-KQozUoNXrxrB8k741ncWXSiMbjl1AGBGfZV21PANzUM8wH4Yem2bg3kfglYS/QIx3udspsT35I9abu49n7D1/w==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.16.tgz", + "integrity": "sha512-I57Ph0F0Yn2KW93ep+V1EzKhACqX0x49vvSiapqIsdDA2PifdEWLc1LJarBolmK7NKoPqKmf6lAKKO9lhiZzkg==", "cpu": [ "arm64" ], @@ -1059,9 +1060,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-x64-gnu": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.9.tgz", - "integrity": "sha512-O/Niui5mnHPcK3iYC3ui8wgERtJWsQ3Y74W/09t0bL/3dgzGMl4oQt0qTj9dWCsnoGsIEYHPzwCBp/2vqYp/pw==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.16.tgz", + "integrity": "sha512-AZYYFY2V7hlcQASPEOWyOa3e1skzTct9QPzz0LiDM3f/hCFY/wBaU2M6NC5iG3d2Kr38heuyFS/+JqxLm5WaKA==", "cpu": [ "x64" ], @@ -1074,9 +1075,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-x64-musl": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.9.tgz", - "integrity": "sha512-L9n+e8Wn3hKr3RsIdY8GaB+ry4xZ4BaGwyKExgoB8nDGQuRUY9oP6p0WA4hWfJvJnU1H6hvo36a5UFPReyBO7A==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.16.tgz", + "integrity": "sha512-9TyMcYSBJwjT8jwjY9m24BZbu7ozyWTjsmYBYNtK3B0Um1Ov6jthSNneLVvouQ6x+k3Ow+00TiFh6bvmT00r8g==", "cpu": [ "x64" ], @@ -1089,9 +1090,9 @@ } }, "node_modules/@napi-rs/simple-git-win32-arm64-msvc": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.9.tgz", - "integrity": "sha512-Z6Ja/SZK+lMvRWaxj7wjnvSbAsGrH006sqZo8P8nxKUdZfkVvoCaAWr1r0cfkk2Z3aijLLtD+vKeXGlUPH6gGQ==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.16.tgz", + "integrity": "sha512-uslJ1WuAHCYJWui6xjsyT47SjX6KOHDtClmNO8hqKz1pmDSNY7AjyUY8HxvD1lK9bDnWwc4JYhikS9cxCqHybw==", "cpu": [ "arm64" ], @@ -1104,9 +1105,9 @@ } }, "node_modules/@napi-rs/simple-git-win32-x64-msvc": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.9.tgz", - "integrity": "sha512-VAZj1UvC+R2MjKOD3I/Y7dmQlHWAYy4omhReQJRpbCf+oGCBi9CWiIduGqeYEq723nLIKdxP7XjaO0wl1NnUww==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.16.tgz", + "integrity": "sha512-SoEaVeCZCDF1MP+M9bMSXsZWgEjk4On9GWADO5JOulvzR1bKjk0s9PMHwe/YztR9F0sJzrCxwtvBZowhSJsQPg==", "cpu": [ "x64" ], @@ -1320,6 +1321,31 @@ "tslib": "^2.4.0" } }, + "node_modules/@tanstack/react-virtual": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.0.2.tgz", + "integrity": "sha512-9XbRLPKgnhMwwmuQMnJMv+5a9sitGNCSEtf/AZXzmJdesYk7XsjYHaEDny+IrJzvPNwZliIIDwCRiaUqR3zzCA==", + "dependencies": { + "@tanstack/virtual-core": "3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.0.0.tgz", + "integrity": "sha512-SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@theguild/remark-mermaid": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.0.5.tgz", @@ -1342,9 +1368,9 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.1.tgz", - "integrity": "sha512-iuy2MPVURGdxILTchHr15VAioItuYBejKfcTmQFlxIuqA7jeaT6ngr5aUIG6S6U096d6a6lJCgaOwlRrPLlOPg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", + "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==", "dev": true, "dependencies": { "@babel/generator": "7.17.7", @@ -1418,9 +1444,9 @@ } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.2.tgz", - "integrity": "sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", + "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==" }, "node_modules/@types/d3-time": { "version": "3.0.3", @@ -1428,9 +1454,9 @@ "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" }, "node_modules/@types/debug": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.11.tgz", - "integrity": "sha512-R2qflTjHDs4CL6D/6TkqBeIHr54WzZfIxN729xvCNlYIVp2LknlnCro5Yo3frNaX2E5gO9pZ3/QAPVdGmu+q9w==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dependencies": { "@types/ms": "*" } @@ -1441,17 +1467,17 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/estree-jsx": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.3.tgz", - "integrity": "sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.4.tgz", + "integrity": "sha512-5idy3hvI9lAMqsyilBM+N+boaCf1MgoefbDxN6KEO5aK17TOHwFAYT9sjxzeKAiIWRUBgLxmZ9mPcnzZXtTcRQ==", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/hast": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.8.tgz", - "integrity": "sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==", + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", "dependencies": { "@types/unist": "^2" } @@ -1462,9 +1488,9 @@ "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==" }, "node_modules/@types/katex": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.6.tgz", - "integrity": "sha512-rZYO1HInM99rAFYNwGqbYPxHZHxu2IwZYKj4bJ4oh6edVrm1UId8mmbHIZLBtG253qU6y3piag0XYe/joNnwzQ==" + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" }, "node_modules/@types/mdast": { "version": "3.0.15", @@ -1475,9 +1501,9 @@ } }, "node_modules/@types/mdx": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz", - "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.11.tgz", + "integrity": "sha512-HM5bwOaIQJIQbAYfax35HCKxx7a3KrK3nBtIqJgSOitivTD1y3oW9P3rxY9RkXYPUk7y/AjAohfHKmFpGE79zw==" }, "node_modules/@types/ms": { "version": "0.7.34", @@ -1485,9 +1511,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "18.18.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", - "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", + "version": "18.19.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", + "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1499,14 +1525,14 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { - "version": "15.7.10", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", - "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/react": { - "version": "18.2.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.37.tgz", - "integrity": "sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==", + "version": "18.2.51", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.51.tgz", + "integrity": "sha512-XeoMaU4CzyjdRr3c4IQQtiH7Rpo18V07rYZUucEZQwOUEtGgTXv7e6igQiQ+xnV6MbMe1qjEmKdgMNnfppnXfg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1514,17 +1540,17 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.9.tgz", - "integrity": "sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", "dependencies": { "@types/react": "*" } }, "node_modules/@types/scheduler": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", - "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/unist": { "version": "2.0.10", @@ -1537,9 +1563,9 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -1556,9 +1582,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -1815,9 +1841,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "version": "1.0.30001583", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz", + "integrity": "sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==", "funding": [ { "type": "opencollective", @@ -1918,9 +1944,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", - "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -1965,9 +1991,9 @@ } }, "node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } @@ -2084,14 +2110,14 @@ } }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cytoscape": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.27.0.tgz", - "integrity": "sha512-pPZJilfX9BxESwujODz5pydeGi+FBrXq1rcaB1mfhFXXFJ9GjE6CNndAk+8jPzoXGD+16LtSS4xlYEIUiW4Abg==", + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.28.1.tgz", + "integrity": "sha512-xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==", "dependencies": { "heap": "^0.2.6", "lodash": "^4.17.21" @@ -2603,11 +2629,11 @@ } }, "node_modules/delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", "dependencies": { - "robust-predicates": "^3.0.0" + "robust-predicates": "^3.0.2" } }, "node_modules/dequal": { @@ -2649,9 +2675,9 @@ } }, "node_modules/dompurify": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz", - "integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.8.tgz", + "integrity": "sha512-b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==" }, "node_modules/drange": { "version": "1.1.1", @@ -2669,9 +2695,9 @@ "dev": true }, "node_modules/elkjs": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", - "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==" + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.9.1.tgz", + "integrity": "sha512-JWKDyqAdltuUcyxaECtYG6H4sqysXSLeoXuGUBfRNESMTkj+w+qdb0jya8Z/WI0jVd03WQtCGhS6FOFtlhD5FQ==" }, "node_modules/email-addresses": { "version": "5.0.0", @@ -2892,9 +2918,9 @@ } }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", + "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -2998,9 +3024,9 @@ } }, "node_modules/flexsearch": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.31.tgz", - "integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==" + "version": "0.7.43", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz", + "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==" }, "node_modules/focus-visible": { "version": "5.2.0", @@ -3314,9 +3340,9 @@ } }, "node_modules/hast-util-from-dom/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3354,17 +3380,17 @@ } }, "node_modules/hast-util-from-html-isomorphic/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } }, "node_modules/hast-util-from-html/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3420,9 +3446,9 @@ } }, "node_modules/hast-util-from-parse5/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3471,9 +3497,9 @@ } }, "node_modules/hast-util-is-element/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3491,17 +3517,17 @@ } }, "node_modules/hast-util-parse-selector/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } }, "node_modules/hast-util-raw": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.1.tgz", - "integrity": "sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", + "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -3523,9 +3549,9 @@ } }, "node_modules/hast-util-raw/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3618,9 +3644,9 @@ } }, "node_modules/hast-util-to-parse5/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3641,9 +3667,9 @@ } }, "node_modules/hast-util-to-text/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3679,9 +3705,9 @@ } }, "node_modules/hastscript/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -4145,9 +4171,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" }, "node_modules/jsonfile": { "version": "4.0.0", @@ -4401,12 +4427,12 @@ } }, "node_modules/match-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", - "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.3.tgz", + "integrity": "sha512-sgiXxrRijEe0SzHKGX4HouCpfHRPnqteH42UdMEW7BlWy990ZkzcvonJGv4Uu9WE7Y1f8Yocm91+4qFPCbmNww==", "dependencies": { - "@babel/runtime": "^7.12.5", - "remove-accents": "0.4.2" + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" } }, "node_modules/mdast-util-definitions": { @@ -4752,9 +4778,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -4763,7 +4789,8 @@ "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -4771,9 +4798,9 @@ } }, "node_modules/mdast-util-to-hast/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -4792,9 +4819,9 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, "node_modules/mdast-util-to-hast/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -4887,6 +4914,32 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-to-hast/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-to-markdown": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", @@ -4955,9 +5008,9 @@ } }, "node_modules/mermaid": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.6.1.tgz", - "integrity": "sha512-Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.7.0.tgz", + "integrity": "sha512-PsvGupPCkN1vemAAjScyw4pw34p4/0dZkSrqvAB26hUvJulOWGIwt35FZWmT9wPIi4r0QLa5X0PB4YLIGn0/YQ==", "dependencies": { "@braintree/sanitize-url": "^6.0.1", "@types/d3-scale": "^4.0.3", @@ -4970,7 +5023,7 @@ "dagre-d3-es": "7.0.10", "dayjs": "^1.11.7", "dompurify": "^3.0.5", - "elkjs": "^0.8.2", + "elkjs": "^0.9.0", "khroma": "^2.0.0", "lodash-es": "^4.17.21", "mdast-util-from-markdown": "^1.3.0", @@ -5938,11 +5991,11 @@ } }, "node_modules/nextra": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nextra/-/nextra-2.13.2.tgz", - "integrity": "sha512-pIgOSXNUqTz1laxV4ChFZOU7lzJAoDHHaBPj8L09PuxrLKqU1BU/iZtXAG6bQeKCx8EPdBsoXxEuENnL9QGnGA==", + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/nextra/-/nextra-2.13.3.tgz", + "integrity": "sha512-OBVuyQKh+oqrbVt0AosgNYnuReWuNrtJVEN7q18b/oEg2wEpuiq3UJfmIvGgOdNYc3zv3OYrzbcq7IhwtdHHEw==", "dependencies": { - "@headlessui/react": "^1.7.10", + "@headlessui/react": "^1.7.17", "@mdx-js/mdx": "^2.3.0", "@mdx-js/react": "^2.3.0", "@napi-rs/simple-git": "^0.1.9", @@ -5979,12 +6032,12 @@ } }, "node_modules/nextra-theme-docs": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-2.13.2.tgz", - "integrity": "sha512-yE4umXaImp1/kf/sFciPj2+EFrNSwd9Db26hi98sIIiujzGf3+9eUgAz45vF9CwBw50FSXxm1QGRcY+slQ4xQQ==", + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-2.13.3.tgz", + "integrity": "sha512-B6xrnR86Gg4GzV56AomSwtmvSyAvnJz1xKOGGav1XKxkwvC8QeI17jdt/CqiKyIObJ+5bLqSFiKhaAZ5DYQP3g==", "dependencies": { - "@headlessui/react": "^1.7.10", - "@popperjs/core": "^2.11.6", + "@headlessui/react": "^1.7.17", + "@popperjs/core": "^2.11.8", "clsx": "^2.0.0", "escape-string-regexp": "^5.0.0", "flexsearch": "^0.7.31", @@ -5994,12 +6047,12 @@ "match-sorter": "^6.3.1", "next-seo": "^6.0.0", "next-themes": "^0.2.1", - "scroll-into-view-if-needed": "^3.0.0", + "scroll-into-view-if-needed": "^3.1.0", "zod": "^3.22.3" }, "peerDependencies": { "next": ">=9.5.3", - "nextra": "2.13.2", + "nextra": "2.13.3", "react": ">=16.13.1", "react-dom": ">=16.13.1" } @@ -6361,9 +6414,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -6504,9 +6557,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/property-information": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz", - "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", + "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6618,9 +6671,9 @@ "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/rehype-katex": { "version": "7.0.0", @@ -6641,9 +6694,9 @@ } }, "node_modules/rehype-katex/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -6710,9 +6763,9 @@ } }, "node_modules/rehype-raw/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -6905,9 +6958,9 @@ } }, "node_modules/remove-accents": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", - "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" }, "node_modules/repeat-string": { "version": "1.6.1", @@ -7182,9 +7235,9 @@ } }, "node_modules/shiki": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", - "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", "dependencies": { "ansi-sequence-parser": "^1.1.0", "jsonc-parser": "^3.2.0", @@ -7591,9 +7644,9 @@ } }, "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -7668,9 +7721,9 @@ } }, "node_modules/typia": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/typia/-/typia-5.4.1.tgz", - "integrity": "sha512-jFpno7ow23hQcnIfywXdTro1UmcC0weSmD2UhOgPuTBn8/xOg56J7KF0cWsn2jztz0n2kKt6K5j56+5w33+HOA==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typia/-/typia-5.4.2.tgz", + "integrity": "sha512-NF1qOPqr8rKiuXh6GFyQS9QFTArdFOJH4JU0V+xhr/xi58U25mI/H79eyE2L/BSR9CfzLL8hoO/xGgYHw3L6Sg==", "dev": true, "dependencies": { "commander": "^10.0.0", @@ -8157,9 +8210,9 @@ } }, "node_modules/web-worker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz", - "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", + "integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==" }, "node_modules/which": { "version": "1.3.1", diff --git a/website/package.json b/website/package.json index 1a45b9edff..a253b49902 100644 --- a/website/package.json +++ b/website/package.json @@ -42,6 +42,6 @@ "prettier": "^2.8.8", "rimraf": "^5.0.0", "ts-node": "^10.9.1", - "typia": "^5.4.1" + "typia": "5.4.2" } } diff --git a/website/public/sitemap-0.xml b/website/public/sitemap-0.xml index 0f51c76a5c..9ecf5c813f 100644 --- a/website/public/sitemap-0.xml +++ b/website/public/sitemap-0.xml @@ -1,23 +1,23 @@ -https://typia.io/2024-01-25T17:22:02.858Zdaily0.7 -https://typia.io/docs/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/json/parse/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/json/schema/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/json/stringify/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/misc/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/protobuf/decode/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/protobuf/encode/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/protobuf/message/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/pure/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/random/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/setup/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/utilization/nestjs/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/utilization/prisma/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/utilization/trpc/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/validators/assert/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/validators/is/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/validators/tags/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/docs/validators/validate/2024-01-25T17:22:02.859Zdaily0.7 -https://typia.io/playground/2024-01-25T17:22:02.859Zdaily0.7 +https://typia.io/2024-02-02T09:04:33.961Zdaily0.7 +https://typia.io/docs/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/json/parse/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/json/schema/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/json/stringify/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/misc/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/protobuf/decode/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/protobuf/encode/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/protobuf/message/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/pure/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/random/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/setup/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/utilization/nestjs/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/utilization/prisma/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/utilization/trpc/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/validators/assert/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/validators/is/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/validators/tags/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/docs/validators/validate/2024-02-02T09:04:33.962Zdaily0.7 +https://typia.io/playground/2024-02-02T09:04:33.962Zdaily0.7 \ No newline at end of file