From fe886ad33d2f0ebd56571ff4ec300441bd50378e Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Fri, 6 Sep 2024 20:02:33 +0900
Subject: [PATCH 1/8] `typia.llm.schema()` function.
Added `typia.llm.schema()` function which generates type schema information of the LLM function callimg by TypeScript type.
---
benchmark/package.json | 2 +-
debug/package.json | 2 +-
debug/src/llm-schema.ts | 26 ++
debug/src/pattern.ts | 6 -
errors/package.json | 2 +-
package.json | 4 +-
packages/typescript-json/package.json | 4 +-
.../metadata/emplace_metadata_object.ts | 4 +-
src/llm.ts | 20 +
src/module.ts | 1 +
.../internal/application_escaped.ts | 10 +-
src/programmers/internal/llm_schema_array.ts | 22 +
.../internal/llm_schema_escaped.ts | 61 +++
src/programmers/internal/llm_schema_native.ts | 17 +
src/programmers/internal/llm_schema_object.ts | 129 ++++++
.../internal/llm_schema_station.ts | 185 ++++++++
src/programmers/internal/llm_schema_tuple.ts | 31 ++
.../json/JsonApplicationProgrammer.ts | 2 +-
src/programmers/llm/LlmSchemaProgrammer.ts | 49 ++
src/transformers/CallExpressionTransformer.ts | 7 +-
.../features/llm/LlmSchemaTransformer.ts | 52 +++
test-esm/package.json | 2 +-
...enerator.ts => TestJsonSchemaGenerator.ts} | 2 +-
test/build/internal/TestLlmSchemaGenerator.ts | 80 ++++
test/build/internal/TestStructure.ts | 1 +
test/build/template.ts | 10 +-
test/package.json | 2 +-
test/schemas/llm/type/ArrayAny.json | 53 +++
test/schemas/llm/type/ArrayAtomicAlias.json | 27 ++
test/schemas/llm/type/ArrayAtomicSimple.json | 27 ++
test/schemas/llm/type/ArrayHierarchical.json | 126 +++++
.../llm/type/ArrayHierarchicalPointer.json | 135 ++++++
test/schemas/llm/type/ArrayMatrix.json | 12 +
test/schemas/llm/type/ArraySimple.json | 43 ++
test/schemas/llm/type/ArrayUnion.json | 25 +
test/schemas/llm/type/AtomicAlias.json | 18 +
test/schemas/llm/type/AtomicClass.json | 18 +
test/schemas/llm/type/AtomicIntersection.json | 18 +
test/schemas/llm/type/AtomicSimple.json | 18 +
test/schemas/llm/type/AtomicUnion.json | 19 +
test/schemas/llm/type/ClassGetter.json | 21 +
test/schemas/llm/type/ClassMethod.json | 16 +
.../llm/type/ClassPropertyAssignment.json | 34 ++
test/schemas/llm/type/CommentTagArray.json | 63 +++
.../llm/type/CommentTagArrayUnion.json | 52 +++
.../llm/type/CommentTagAtomicUnion.json | 34 ++
test/schemas/llm/type/CommentTagDefault.json | 121 +++++
test/schemas/llm/type/CommentTagFormat.json | 118 +++++
test/schemas/llm/type/CommentTagLength.json | 48 ++
.../llm/type/CommentTagObjectUnion.json | 34 ++
test/schemas/llm/type/CommentTagPattern.json | 28 ++
test/schemas/llm/type/CommentTagRange.json | 76 +++
test/schemas/llm/type/CommentTagType.json | 52 +++
.../llm/type/ConstantAtomicAbsorbed.json | 18 +
.../llm/type/ConstantAtomicSimple.json | 28 ++
.../llm/type/ConstantAtomicTagged.json | 38 ++
.../schemas/llm/type/ConstantAtomicUnion.json | 42 ++
.../llm/type/ConstantAtomicWrapper.json | 45 ++
.../llm/type/ConstantConstEnumeration.json | 22 +
.../schemas/llm/type/ConstantEnumeration.json | 22 +
.../llm/type/ConstantIntersection.json | 27 ++
test/schemas/llm/type/DynamicArray.json | 20 +
test/schemas/llm/type/DynamicComposite.json | 29 ++
test/schemas/llm/type/DynamicConstant.json | 33 ++
test/schemas/llm/type/DynamicEnumeration.json | 45 ++
test/schemas/llm/type/DynamicNever.json | 5 +
test/schemas/llm/type/DynamicSimple.json | 17 +
test/schemas/llm/type/DynamicTemplate.json | 18 +
test/schemas/llm/type/DynamicUndefined.json | 5 +
test/schemas/llm/type/DynamicUnion.json | 15 +
test/schemas/llm/type/ObjectAlias.json | 55 +++
test/schemas/llm/type/ObjectDate.json | 37 ++
test/schemas/llm/type/ObjectDescription.json | 44 ++
test/schemas/llm/type/ObjectDynamic.json | 18 +
test/schemas/llm/type/ObjectGeneric.json | 156 +++++++
test/schemas/llm/type/ObjectGenericAlias.json | 12 +
test/schemas/llm/type/ObjectGenericArray.json | 53 +++
test/schemas/llm/type/ObjectGenericUnion.json | 319 +++++++++++++
test/schemas/llm/type/ObjectHierarchical.json | 277 +++++++++++
test/schemas/llm/type/ObjectInternal.json | 16 +
test/schemas/llm/type/ObjectIntersection.json | 20 +
test/schemas/llm/type/ObjectJsonTag.json | 31 ++
.../llm/type/ObjectLiteralProperty.json | 16 +
test/schemas/llm/type/ObjectLiteralType.json | 20 +
test/schemas/llm/type/ObjectNullable.json | 107 +++++
test/schemas/llm/type/ObjectOptional.json | 18 +
test/schemas/llm/type/ObjectPrimitive.json | 69 +++
.../llm/type/ObjectPropertyNullable.json | 98 ++++
test/schemas/llm/type/ObjectSimple.json | 92 ++++
test/schemas/llm/type/ObjectTuple.json | 49 ++
test/schemas/llm/type/ObjectUndefined.json | 46 ++
.../llm/type/ObjectUnionComposite.json | 371 +++++++++++++++
.../llm/type/ObjectUnionCompositePointer.json | 389 ++++++++++++++++
test/schemas/llm/type/ObjectUnionDouble.json | 146 ++++++
.../schemas/llm/type/ObjectUnionExplicit.json | 375 +++++++++++++++
.../llm/type/ObjectUnionExplicitPointer.json | 393 ++++++++++++++++
.../schemas/llm/type/ObjectUnionImplicit.json | 432 ++++++++++++++++++
.../llm/type/ObjectUnionNonPredictable.json | 97 ++++
test/schemas/llm/type/TemplateAtomic.json | 51 +++
test/schemas/llm/type/TemplateConstant.json | 53 +++
test/schemas/llm/type/TemplateUnion.json | 80 ++++
test/schemas/llm/type/ToJsonArray.json | 42 ++
test/schemas/llm/type/ToJsonAtomicSimple.json | 18 +
test/schemas/llm/type/ToJsonAtomicUnion.json | 19 +
test/schemas/llm/type/ToJsonDouble.json | 16 +
test/schemas/llm/type/ToJsonNull.json | 3 +
test/schemas/llm/type/ToJsonTuple.json | 34 ++
test/schemas/llm/type/ToJsonUnion.json | 76 +++
test/schemas/llm/type/TupleHierarchical.json | 120 +++++
test/schemas/llm/type/TupleRestArray.json | 20 +
test/schemas/llm/type/TupleRestAtomic.json | 17 +
test/schemas/llm/type/TupleRestObject.json | 26 ++
test/schemas/llm/type/TypeTagArray.json | 68 +++
test/schemas/llm/type/TypeTagArrayUnion.json | 57 +++
test/schemas/llm/type/TypeTagAtomicUnion.json | 34 ++
test/schemas/llm/type/TypeTagCustom.json | 28 ++
test/schemas/llm/type/TypeTagDefault.json | 107 +++++
test/schemas/llm/type/TypeTagFormat.json | 118 +++++
test/schemas/llm/type/TypeTagLength.json | 48 ++
test/schemas/llm/type/TypeTagMatrix.json | 23 +
test/schemas/llm/type/TypeTagObjectUnion.json | 34 ++
test/schemas/llm/type/TypeTagPattern.json | 28 ++
test/schemas/llm/type/TypeTagRange.json | 76 +++
test/schemas/llm/type/TypeTagTuple.json | 48 ++
test/schemas/llm/type/TypeTagType.json | 48 ++
.../llm.schema/test_llm_schema_ArrayAny.ts | 8 +
.../test_llm_schema_ArrayAtomicAlias.ts | 8 +
.../test_llm_schema_ArrayAtomicSimple.ts | 8 +
.../test_llm_schema_ArrayHierarchical.ts | 8 +
...est_llm_schema_ArrayHierarchicalPointer.ts | 8 +
.../llm.schema/test_llm_schema_ArrayMatrix.ts | 8 +
.../llm.schema/test_llm_schema_ArraySimple.ts | 8 +
.../llm.schema/test_llm_schema_ArrayUnion.ts | 8 +
.../llm.schema/test_llm_schema_AtomicAlias.ts | 8 +
.../llm.schema/test_llm_schema_AtomicClass.ts | 8 +
.../test_llm_schema_AtomicIntersection.ts | 8 +
.../test_llm_schema_AtomicSimple.ts | 8 +
.../llm.schema/test_llm_schema_AtomicUnion.ts | 8 +
.../llm.schema/test_llm_schema_ClassGetter.ts | 8 +
.../llm.schema/test_llm_schema_ClassMethod.ts | 8 +
...test_llm_schema_ClassPropertyAssignment.ts | 8 +
.../test_llm_schema_CommentTagArray.ts | 8 +
.../test_llm_schema_CommentTagArrayUnion.ts | 8 +
.../test_llm_schema_CommentTagAtomicUnion.ts | 8 +
.../test_llm_schema_CommentTagDefault.ts | 8 +
.../test_llm_schema_CommentTagFormat.ts | 8 +
.../test_llm_schema_CommentTagLength.ts | 8 +
.../test_llm_schema_CommentTagObjectUnion.ts | 8 +
.../test_llm_schema_CommentTagPattern.ts | 8 +
.../test_llm_schema_CommentTagRange.ts | 8 +
.../test_llm_schema_CommentTagType.ts | 8 +
.../test_llm_schema_ConstantAtomicAbsorbed.ts | 8 +
.../test_llm_schema_ConstantAtomicSimple.ts | 8 +
.../test_llm_schema_ConstantAtomicTagged.ts | 8 +
.../test_llm_schema_ConstantAtomicUnion.ts | 8 +
.../test_llm_schema_ConstantAtomicWrapper.ts | 8 +
...est_llm_schema_ConstantConstEnumeration.ts | 8 +
.../test_llm_schema_ConstantEnumeration.ts | 8 +
.../test_llm_schema_ConstantIntersection.ts | 8 +
.../test_llm_schema_DynamicArray.ts | 8 +
.../test_llm_schema_DynamicComposite.ts | 8 +
.../test_llm_schema_DynamicConstant.ts | 8 +
.../test_llm_schema_DynamicEnumeration.ts | 8 +
.../test_llm_schema_DynamicNever.ts | 8 +
.../test_llm_schema_DynamicSimple.ts | 8 +
.../test_llm_schema_DynamicTemplate.ts | 8 +
.../test_llm_schema_DynamicUndefined.ts | 8 +
.../test_llm_schema_DynamicUnion.ts | 8 +
.../llm.schema/test_llm_schema_ObjectAlias.ts | 8 +
.../llm.schema/test_llm_schema_ObjectDate.ts | 8 +
.../test_llm_schema_ObjectDescription.ts | 8 +
.../test_llm_schema_ObjectDynamic.ts | 8 +
.../test_llm_schema_ObjectGeneric.ts | 8 +
.../test_llm_schema_ObjectGenericAlias.ts | 8 +
.../test_llm_schema_ObjectGenericArray.ts | 8 +
.../test_llm_schema_ObjectGenericUnion.ts | 8 +
.../test_llm_schema_ObjectHierarchical.ts | 8 +
.../test_llm_schema_ObjectInternal.ts | 8 +
.../test_llm_schema_ObjectIntersection.ts | 8 +
.../test_llm_schema_ObjectJsonTag.ts | 8 +
.../test_llm_schema_ObjectLiteralProperty.ts | 8 +
.../test_llm_schema_ObjectLiteralType.ts | 8 +
.../test_llm_schema_ObjectNullable.ts | 8 +
.../test_llm_schema_ObjectOptional.ts | 8 +
.../test_llm_schema_ObjectPrimitive.ts | 8 +
.../test_llm_schema_ObjectPropertyNullable.ts | 8 +
.../test_llm_schema_ObjectSimple.ts | 8 +
.../llm.schema/test_llm_schema_ObjectTuple.ts | 8 +
.../test_llm_schema_ObjectUndefined.ts | 8 +
.../test_llm_schema_ObjectUnionComposite.ts | 8 +
..._llm_schema_ObjectUnionCompositePointer.ts | 8 +
.../test_llm_schema_ObjectUnionDouble.ts | 8 +
.../test_llm_schema_ObjectUnionExplicit.ts | 8 +
...t_llm_schema_ObjectUnionExplicitPointer.ts | 8 +
.../test_llm_schema_ObjectUnionImplicit.ts | 8 +
...st_llm_schema_ObjectUnionNonPredictable.ts | 8 +
.../test_llm_schema_TemplateAtomic.ts | 8 +
.../test_llm_schema_TemplateConstant.ts | 8 +
.../test_llm_schema_TemplateUnion.ts | 8 +
.../llm.schema/test_llm_schema_ToJsonArray.ts | 8 +
.../test_llm_schema_ToJsonAtomicSimple.ts | 8 +
.../test_llm_schema_ToJsonAtomicUnion.ts | 8 +
.../test_llm_schema_ToJsonDouble.ts | 8 +
.../llm.schema/test_llm_schema_ToJsonNull.ts | 8 +
.../llm.schema/test_llm_schema_ToJsonTuple.ts | 8 +
.../llm.schema/test_llm_schema_ToJsonUnion.ts | 8 +
.../test_llm_schema_TupleHierarchical.ts | 8 +
.../test_llm_schema_TupleRestArray.ts | 8 +
.../test_llm_schema_TupleRestAtomic.ts | 8 +
.../test_llm_schema_TupleRestObject.ts | 8 +
.../test_llm_schema_TypeTagArray.ts | 8 +
.../test_llm_schema_TypeTagArrayUnion.ts | 8 +
.../test_llm_schema_TypeTagAtomicUnion.ts | 8 +
.../test_llm_schema_TypeTagCustom.ts | 8 +
.../test_llm_schema_TypeTagDefault.ts | 8 +
.../test_llm_schema_TypeTagFormat.ts | 8 +
.../test_llm_schema_TypeTagLength.ts | 8 +
.../test_llm_schema_TypeTagMatrix.ts | 8 +
.../test_llm_schema_TypeTagObjectUnion.ts | 8 +
.../test_llm_schema_TypeTagPattern.ts | 8 +
.../test_llm_schema_TypeTagRange.ts | 8 +
.../test_llm_schema_TypeTagTuple.ts | 8 +
.../llm.schema/test_llm_schema_TypeTagType.ts | 8 +
test/src/internal/_test_llm_schema.ts | 35 ++
test/src/structures/ArrayRecursive.ts | 2 +
.../structures/ArrayRecursiveUnionExplicit.ts | 2 +
.../ArrayRecursiveUnionExplicitPointer.ts | 2 +
.../structures/ArrayRecursiveUnionImplicit.ts | 2 +
test/src/structures/ArrayRepeatedNullable.ts | 2 +
test/src/structures/ArrayRepeatedOptional.ts | 2 +
test/src/structures/ArrayRepeatedRequired.ts | 2 +
test/src/structures/ArrayRepeatedUnion.ts | 2 +
.../structures/ArrayRepeatedUnionWithTuple.ts | 2 +
test/src/structures/DynamicTree.ts | 5 +-
test/src/structures/ObjectPartial.ts | 2 +
.../structures/ObjectPartialAndRequired.ts | 2 +
test/src/structures/ObjectRecursive.ts | 1 +
test/src/structures/ObjectRequired.ts | 2 +
test/src/structures/UltimateUnion.ts | 2 +
239 files changed, 8266 insertions(+), 31 deletions(-)
create mode 100644 debug/src/llm-schema.ts
delete mode 100644 debug/src/pattern.ts
create mode 100644 src/llm.ts
create mode 100644 src/programmers/internal/llm_schema_array.ts
create mode 100644 src/programmers/internal/llm_schema_escaped.ts
create mode 100644 src/programmers/internal/llm_schema_native.ts
create mode 100644 src/programmers/internal/llm_schema_object.ts
create mode 100644 src/programmers/internal/llm_schema_station.ts
create mode 100644 src/programmers/internal/llm_schema_tuple.ts
create mode 100644 src/programmers/llm/LlmSchemaProgrammer.ts
create mode 100644 src/transformers/features/llm/LlmSchemaTransformer.ts
rename test/build/internal/{TestJsonApplicationGenerator.ts => TestJsonSchemaGenerator.ts} (98%)
create mode 100644 test/build/internal/TestLlmSchemaGenerator.ts
create mode 100644 test/schemas/llm/type/ArrayAny.json
create mode 100644 test/schemas/llm/type/ArrayAtomicAlias.json
create mode 100644 test/schemas/llm/type/ArrayAtomicSimple.json
create mode 100644 test/schemas/llm/type/ArrayHierarchical.json
create mode 100644 test/schemas/llm/type/ArrayHierarchicalPointer.json
create mode 100644 test/schemas/llm/type/ArrayMatrix.json
create mode 100644 test/schemas/llm/type/ArraySimple.json
create mode 100644 test/schemas/llm/type/ArrayUnion.json
create mode 100644 test/schemas/llm/type/AtomicAlias.json
create mode 100644 test/schemas/llm/type/AtomicClass.json
create mode 100644 test/schemas/llm/type/AtomicIntersection.json
create mode 100644 test/schemas/llm/type/AtomicSimple.json
create mode 100644 test/schemas/llm/type/AtomicUnion.json
create mode 100644 test/schemas/llm/type/ClassGetter.json
create mode 100644 test/schemas/llm/type/ClassMethod.json
create mode 100644 test/schemas/llm/type/ClassPropertyAssignment.json
create mode 100644 test/schemas/llm/type/CommentTagArray.json
create mode 100644 test/schemas/llm/type/CommentTagArrayUnion.json
create mode 100644 test/schemas/llm/type/CommentTagAtomicUnion.json
create mode 100644 test/schemas/llm/type/CommentTagDefault.json
create mode 100644 test/schemas/llm/type/CommentTagFormat.json
create mode 100644 test/schemas/llm/type/CommentTagLength.json
create mode 100644 test/schemas/llm/type/CommentTagObjectUnion.json
create mode 100644 test/schemas/llm/type/CommentTagPattern.json
create mode 100644 test/schemas/llm/type/CommentTagRange.json
create mode 100644 test/schemas/llm/type/CommentTagType.json
create mode 100644 test/schemas/llm/type/ConstantAtomicAbsorbed.json
create mode 100644 test/schemas/llm/type/ConstantAtomicSimple.json
create mode 100644 test/schemas/llm/type/ConstantAtomicTagged.json
create mode 100644 test/schemas/llm/type/ConstantAtomicUnion.json
create mode 100644 test/schemas/llm/type/ConstantAtomicWrapper.json
create mode 100644 test/schemas/llm/type/ConstantConstEnumeration.json
create mode 100644 test/schemas/llm/type/ConstantEnumeration.json
create mode 100644 test/schemas/llm/type/ConstantIntersection.json
create mode 100644 test/schemas/llm/type/DynamicArray.json
create mode 100644 test/schemas/llm/type/DynamicComposite.json
create mode 100644 test/schemas/llm/type/DynamicConstant.json
create mode 100644 test/schemas/llm/type/DynamicEnumeration.json
create mode 100644 test/schemas/llm/type/DynamicNever.json
create mode 100644 test/schemas/llm/type/DynamicSimple.json
create mode 100644 test/schemas/llm/type/DynamicTemplate.json
create mode 100644 test/schemas/llm/type/DynamicUndefined.json
create mode 100644 test/schemas/llm/type/DynamicUnion.json
create mode 100644 test/schemas/llm/type/ObjectAlias.json
create mode 100644 test/schemas/llm/type/ObjectDate.json
create mode 100644 test/schemas/llm/type/ObjectDescription.json
create mode 100644 test/schemas/llm/type/ObjectDynamic.json
create mode 100644 test/schemas/llm/type/ObjectGeneric.json
create mode 100644 test/schemas/llm/type/ObjectGenericAlias.json
create mode 100644 test/schemas/llm/type/ObjectGenericArray.json
create mode 100644 test/schemas/llm/type/ObjectGenericUnion.json
create mode 100644 test/schemas/llm/type/ObjectHierarchical.json
create mode 100644 test/schemas/llm/type/ObjectInternal.json
create mode 100644 test/schemas/llm/type/ObjectIntersection.json
create mode 100644 test/schemas/llm/type/ObjectJsonTag.json
create mode 100644 test/schemas/llm/type/ObjectLiteralProperty.json
create mode 100644 test/schemas/llm/type/ObjectLiteralType.json
create mode 100644 test/schemas/llm/type/ObjectNullable.json
create mode 100644 test/schemas/llm/type/ObjectOptional.json
create mode 100644 test/schemas/llm/type/ObjectPrimitive.json
create mode 100644 test/schemas/llm/type/ObjectPropertyNullable.json
create mode 100644 test/schemas/llm/type/ObjectSimple.json
create mode 100644 test/schemas/llm/type/ObjectTuple.json
create mode 100644 test/schemas/llm/type/ObjectUndefined.json
create mode 100644 test/schemas/llm/type/ObjectUnionComposite.json
create mode 100644 test/schemas/llm/type/ObjectUnionCompositePointer.json
create mode 100644 test/schemas/llm/type/ObjectUnionDouble.json
create mode 100644 test/schemas/llm/type/ObjectUnionExplicit.json
create mode 100644 test/schemas/llm/type/ObjectUnionExplicitPointer.json
create mode 100644 test/schemas/llm/type/ObjectUnionImplicit.json
create mode 100644 test/schemas/llm/type/ObjectUnionNonPredictable.json
create mode 100644 test/schemas/llm/type/TemplateAtomic.json
create mode 100644 test/schemas/llm/type/TemplateConstant.json
create mode 100644 test/schemas/llm/type/TemplateUnion.json
create mode 100644 test/schemas/llm/type/ToJsonArray.json
create mode 100644 test/schemas/llm/type/ToJsonAtomicSimple.json
create mode 100644 test/schemas/llm/type/ToJsonAtomicUnion.json
create mode 100644 test/schemas/llm/type/ToJsonDouble.json
create mode 100644 test/schemas/llm/type/ToJsonNull.json
create mode 100644 test/schemas/llm/type/ToJsonTuple.json
create mode 100644 test/schemas/llm/type/ToJsonUnion.json
create mode 100644 test/schemas/llm/type/TupleHierarchical.json
create mode 100644 test/schemas/llm/type/TupleRestArray.json
create mode 100644 test/schemas/llm/type/TupleRestAtomic.json
create mode 100644 test/schemas/llm/type/TupleRestObject.json
create mode 100644 test/schemas/llm/type/TypeTagArray.json
create mode 100644 test/schemas/llm/type/TypeTagArrayUnion.json
create mode 100644 test/schemas/llm/type/TypeTagAtomicUnion.json
create mode 100644 test/schemas/llm/type/TypeTagCustom.json
create mode 100644 test/schemas/llm/type/TypeTagDefault.json
create mode 100644 test/schemas/llm/type/TypeTagFormat.json
create mode 100644 test/schemas/llm/type/TypeTagLength.json
create mode 100644 test/schemas/llm/type/TypeTagMatrix.json
create mode 100644 test/schemas/llm/type/TypeTagObjectUnion.json
create mode 100644 test/schemas/llm/type/TypeTagPattern.json
create mode 100644 test/schemas/llm/type/TypeTagRange.json
create mode 100644 test/schemas/llm/type/TypeTagTuple.json
create mode 100644 test/schemas/llm/type/TypeTagType.json
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArrayAny.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArrayAtomicAlias.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArrayAtomicSimple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArrayHierarchical.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArrayHierarchicalPointer.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArrayMatrix.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArraySimple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ArrayUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_AtomicAlias.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_AtomicClass.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_AtomicIntersection.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_AtomicSimple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_AtomicUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ClassGetter.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ClassMethod.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ClassPropertyAssignment.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagArray.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagArrayUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagAtomicUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagDefault.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagFormat.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagLength.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagObjectUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagPattern.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagRange.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_CommentTagType.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantAtomicAbsorbed.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantAtomicSimple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantAtomicTagged.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantAtomicUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantAtomicWrapper.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantConstEnumeration.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantEnumeration.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ConstantIntersection.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicArray.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicComposite.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicConstant.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicEnumeration.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicNever.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicSimple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicTemplate.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicUndefined.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_DynamicUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectAlias.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectDate.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectDescription.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectDynamic.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectGeneric.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectGenericAlias.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectGenericArray.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectGenericUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectHierarchical.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectInternal.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectIntersection.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectJsonTag.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectLiteralProperty.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectLiteralType.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectNullable.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectOptional.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectPrimitive.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectPropertyNullable.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectSimple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectTuple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUndefined.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUnionComposite.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUnionCompositePointer.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUnionDouble.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicit.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicitPointer.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUnionImplicit.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ObjectUnionNonPredictable.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TemplateAtomic.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TemplateConstant.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TemplateUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ToJsonArray.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ToJsonAtomicSimple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ToJsonAtomicUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ToJsonDouble.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ToJsonNull.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ToJsonTuple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_ToJsonUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TupleHierarchical.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TupleRestArray.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TupleRestAtomic.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TupleRestObject.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagArray.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagArrayUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagAtomicUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagCustom.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagDefault.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagFormat.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagLength.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagMatrix.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagObjectUnion.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagPattern.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagRange.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagTuple.ts
create mode 100644 test/src/features/llm.schema/test_llm_schema_TypeTagType.ts
create mode 100644 test/src/internal/_test_llm_schema.ts
diff --git a/benchmark/package.json b/benchmark/package.json
index fb88f05244..7b9a3235f7 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -72,6 +72,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240823.tgz"
+ "typia": "../typia-6.10.0-dev.20240906.tgz"
}
}
\ No newline at end of file
diff --git a/debug/package.json b/debug/package.json
index 000fba0654..2233e6d8ee 100644
--- a/debug/package.json
+++ b/debug/package.json
@@ -17,7 +17,7 @@
},
"dependencies": {
"tstl": "^3.0.0",
- "typia": "../typia-6.8.0.tgz",
+ "typia": "../typia-6.10.0-dev.20240823.tgz",
"uuid": "^10.0.0"
}
}
\ No newline at end of file
diff --git a/debug/src/llm-schema.ts b/debug/src/llm-schema.ts
new file mode 100644
index 0000000000..5b755fc56e
--- /dev/null
+++ b/debug/src/llm-schema.ts
@@ -0,0 +1,26 @@
+import { ILlmSchema } from "@samchon/openapi";
+import typia from "typia";
+
+class Parent {
+ public toJSON(): Child {
+ return new Child();
+ }
+}
+class Child {
+ public readonly id: number = 1;
+ public readonly flag: boolean = true;
+
+ public toJSON(): IBrand {
+ return {
+ code: "code",
+ name: "name",
+ };
+ }
+}
+interface IBrand {
+ code: string;
+ name: string;
+}
+
+const schema: ILlmSchema = typia.llm.schema();
+console.log(schema);
diff --git a/debug/src/pattern.ts b/debug/src/pattern.ts
deleted file mode 100644
index bf41f3ef86..0000000000
--- a/debug/src/pattern.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import typia, { tags } from "typia";
-
-typia.createIs<
- string &
- tags.Pattern<"^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$">
->();
diff --git a/errors/package.json b/errors/package.json
index 0b7760fbba..264bf2948d 100644
--- a/errors/package.json
+++ b/errors/package.json
@@ -32,6 +32,6 @@
"typescript": "^5.3.2"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240823.tgz"
+ "typia": "../typia-6.10.0-dev.20240906.tgz"
}
}
\ No newline at end of file
diff --git a/package.json b/package.json
index 0adc5a2ec7..3dcd5040cb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "typia",
- "version": "6.10.0-dev.20240823",
+ "version": "6.10.0-dev.20240906",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
@@ -67,7 +67,7 @@
},
"homepage": "https://typia.io",
"dependencies": {
- "@samchon/openapi": "^0.4.9",
+ "@samchon/openapi": "^0.5.0-dev.20240906-2",
"commander": "^10.0.0",
"comment-json": "^4.2.3",
"inquirer": "^8.2.5",
diff --git a/packages/typescript-json/package.json b/packages/typescript-json/package.json
index 7c1a74f16c..ec296c5ed3 100644
--- a/packages/typescript-json/package.json
+++ b/packages/typescript-json/package.json
@@ -1,6 +1,6 @@
{
"name": "typescript-json",
- "version": "6.10.0-dev.20240823",
+ "version": "6.10.0-dev.20240906",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
@@ -63,7 +63,7 @@
},
"homepage": "https://typia.io",
"dependencies": {
- "typia": "6.10.0-dev.20240823"
+ "typia": "6.10.0-dev.20240906"
},
"peerDependencies": {
"typescript": ">=4.8.0 <5.6.0"
diff --git a/src/factories/internal/metadata/emplace_metadata_object.ts b/src/factories/internal/metadata/emplace_metadata_object.ts
index 887a32ce43..b322f70c43 100644
--- a/src/factories/internal/metadata/emplace_metadata_object.ts
+++ b/src/factories/internal/metadata/emplace_metadata_object.ts
@@ -51,14 +51,14 @@ export const emplace_metadata_object =
): MetadataProperty => {
// COMMENTS AND TAGS
const description: string | null = symbol
- ? CommentFactory.description(symbol) ?? null
+ ? (CommentFactory.description(symbol) ?? null)
: null;
const jsDocTags: ts.JSDocTagInfo[] = (
symbol?.getJsDocTags() ?? []
).filter(filter ?? (() => true));
// THE PROPERTY
- const property = MetadataProperty.create({
+ const property: MetadataProperty = MetadataProperty.create({
key,
value,
description,
diff --git a/src/llm.ts b/src/llm.ts
new file mode 100644
index 0000000000..8c1ebb0f9d
--- /dev/null
+++ b/src/llm.ts
@@ -0,0 +1,20 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+export function schema(): never;
+export function schema(): ILlmSchema;
+
+/**
+ * @internal
+ */
+export function schema(): never {
+ halt("schema");
+}
+
+/**
+ * @internal
+ */
+function halt(name: string): never {
+ throw new Error(
+ `Error on typia.llm.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
+ );
+}
diff --git a/src/module.ts b/src/module.ts
index 6dc3d6427c..478196f1e6 100644
--- a/src/module.ts
+++ b/src/module.ts
@@ -8,6 +8,7 @@ import { TypeGuardError } from "./TypeGuardError";
export * as functional from "./functional";
export * as http from "./http";
+export * as llm from "./llm";
export * as json from "./json";
export * as misc from "./misc";
export * as notations from "./notations";
diff --git a/src/programmers/internal/application_escaped.ts b/src/programmers/internal/application_escaped.ts
index 0e2a070156..8005840cfb 100644
--- a/src/programmers/internal/application_escaped.ts
+++ b/src/programmers/internal/application_escaped.ts
@@ -10,11 +10,11 @@ export const application_escaped =
(
generator: (meta: Metadata) => Schema,
) =>
- (resolved: MetadataEscaped): Schema[] => {
- const output: Schema | null = generator(resolved.returns);
+ (escaped: MetadataEscaped): Schema[] => {
+ const output: Schema | null = generator(escaped.returns);
if (output === null) return [];
- if (is_date(new Set())(resolved.original)) {
+ if (is_date(new Set())(escaped.original)) {
const string: StringSchema | undefined = is_string(output)
? output
: is_one_of(output)
@@ -27,9 +27,7 @@ export const application_escaped =
)
string.format = "date-time";
}
- return is_one_of(output)
- ? (output.oneOf as OneOfSchema[])
- : [output];
+ return is_one_of(output) ? (output.oneOf as Schema[]) : [output];
};
/**
diff --git a/src/programmers/internal/llm_schema_array.ts b/src/programmers/internal/llm_schema_array.ts
new file mode 100644
index 0000000000..3aaa571fad
--- /dev/null
+++ b/src/programmers/internal/llm_schema_array.ts
@@ -0,0 +1,22 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+import { MetadataArray } from "../../schemas/metadata/MetadataArray";
+
+import { application_plugin } from "./application_plugin";
+import { llm_schema_station } from "./llm_schema_station";
+
+/**
+ * @internal
+ */
+export const llm_schema_array = (array: MetadataArray): ILlmSchema.IArray[] =>
+ application_plugin(
+ {
+ type: "array",
+ items: llm_schema_station({
+ metadata: array.type.value,
+ blockNever: false,
+ attribute: {},
+ }),
+ },
+ array.tags,
+ );
diff --git a/src/programmers/internal/llm_schema_escaped.ts b/src/programmers/internal/llm_schema_escaped.ts
new file mode 100644
index 0000000000..3869471291
--- /dev/null
+++ b/src/programmers/internal/llm_schema_escaped.ts
@@ -0,0 +1,61 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+import { Metadata } from "../../schemas/metadata/Metadata";
+import { MetadataEscaped } from "../../schemas/metadata/MetadataEscaped";
+
+import { llm_schema_station } from "./llm_schema_station";
+
+/**
+ * @internal
+ */
+export const llm_schema_escaped = (escaped: MetadataEscaped): ILlmSchema[] => {
+ const output: ILlmSchema | null = llm_schema_station({
+ metadata: escaped.returns,
+ blockNever: false,
+ attribute: {},
+ });
+ if (output === null) return [];
+ else if (is_date(new Set())(escaped.original)) {
+ const string: ILlmSchema.IString | undefined = is_string(output)
+ ? output
+ : is_one_of(output)
+ ? (output.oneOf.find(is_string) as ILlmSchema.IString)
+ : undefined;
+ if (
+ string !== undefined &&
+ string.format !== "date" &&
+ string.format !== "date-time"
+ )
+ string.format = "date-time";
+ }
+ return is_one_of(output) ? (output.oneOf as ILlmSchema[]) : [output];
+};
+
+/**
+ * @internal
+ */
+const is_string = (elem: ILlmSchema): elem is ILlmSchema.IString =>
+ (elem as ILlmSchema.IString).type === "string";
+
+/**
+ * @internal
+ */
+const is_one_of = (elem: ILlmSchema): elem is ILlmSchema.IOneOf =>
+ Array.isArray((elem as ILlmSchema.IOneOf).oneOf);
+
+/**
+ * @internal
+ */
+const is_date =
+ (visited: Set) =>
+ (meta: Metadata): boolean => {
+ if (visited.has(meta)) return false;
+ visited.add(meta);
+
+ return (
+ meta.natives.some((name) => name === "Date") ||
+ meta.arrays.some((array) => is_date(visited)(array.type.value)) ||
+ meta.tuples.some((tuple) => tuple.type.elements.some(is_date(visited))) ||
+ meta.aliases.some((alias) => is_date(visited)(alias.value))
+ );
+ };
diff --git a/src/programmers/internal/llm_schema_native.ts b/src/programmers/internal/llm_schema_native.ts
new file mode 100644
index 0000000000..0278602681
--- /dev/null
+++ b/src/programmers/internal/llm_schema_native.ts
@@ -0,0 +1,17 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+/**
+ * @internal
+ */
+export const llm_schema_native = (
+ name: string,
+): ILlmSchema.IString | ILlmSchema.IObject =>
+ name === "Blob" || name === "File"
+ ? {
+ type: "string",
+ format: "binary",
+ }
+ : {
+ type: "object",
+ properties: {},
+ };
diff --git a/src/programmers/internal/llm_schema_object.ts b/src/programmers/internal/llm_schema_object.ts
new file mode 100644
index 0000000000..55d17f2898
--- /dev/null
+++ b/src/programmers/internal/llm_schema_object.ts
@@ -0,0 +1,129 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+import { CommentFactory } from "../../factories/CommentFactory";
+
+import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
+import { Metadata } from "../../schemas/metadata/Metadata";
+import { MetadataObject } from "../../schemas/metadata/MetadataObject";
+
+import { PatternUtil } from "../../utils/PatternUtil";
+
+import { application_description } from "./application_description";
+import { llm_schema_station } from "./llm_schema_station";
+import { metadata_to_pattern } from "./metadata_to_pattern";
+
+/**
+ * @internal
+ */
+export const llm_schema_object = (props: {
+ object: MetadataObject;
+ nullable: boolean;
+}): ILlmSchema.IObject => {
+ // ITERATE PROPERTIES
+ const properties: Record = {};
+ const extraMeta: ISuperfluous = {
+ patternProperties: {},
+ additionalProperties: undefined,
+ };
+ const required: string[] = [];
+
+ for (const property of props.object.properties) {
+ if (
+ // FUNCTIONAL TYPE
+ property.value.functional === true &&
+ property.value.nullable === false &&
+ property.value.isRequired() === true &&
+ property.value.size() === 0
+ )
+ continue;
+ else if (property.jsDocTags.find((tag) => tag.name === "hidden")) continue; // THE HIDDEN TAG
+
+ const key: string | null = property.key.getSoleLiteral();
+ const schema: ILlmSchema | null = llm_schema_station({
+ blockNever: true,
+ attribute: {
+ deprecated:
+ property.jsDocTags.some((tag) => tag.name === "deprecated") ||
+ undefined,
+ title: (() => {
+ const info: IJsDocTagInfo | undefined = property.jsDocTags.find(
+ (tag) => tag.name === "title",
+ );
+ if (info?.text?.length) return CommentFactory.merge(info.text);
+ else if (!property.description?.length) return undefined;
+
+ const index: number = property.description.indexOf("\n");
+ const top: string = (
+ index === -1
+ ? property.description
+ : property.description.substring(0, index)
+ ).trim();
+ return top.endsWith(".")
+ ? top.substring(0, top.length - 1)
+ : undefined;
+ })(),
+ description: application_description(property),
+ },
+ metadata: property.value,
+ });
+
+ if (schema === null) continue;
+ if (key !== null) {
+ properties[key] = schema;
+ if (property.value.isRequired() === true) required.push(key);
+ } else {
+ const pattern: string = metadata_to_pattern(true)(property.key);
+ if (pattern === PatternUtil.STRING)
+ extraMeta.additionalProperties = [property.value, schema];
+ else extraMeta.patternProperties[pattern] = [property.value, schema];
+ }
+ }
+
+ return {
+ type: "object",
+ properties,
+ nullable: props.nullable,
+ required: required.length ? required : undefined,
+ title: (() => {
+ const info: IJsDocTagInfo | undefined = props.object.jsDocTags.find(
+ (tag) => tag.name === "title",
+ );
+ return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
+ })(),
+ description: application_description(props.object),
+ additionalProperties: join(extraMeta),
+ };
+};
+
+/**
+ * @internal
+ */
+const join = (extra: ISuperfluous): ILlmSchema | undefined => {
+ // LIST UP METADATA
+ const elements: [Metadata, ILlmSchema][] = Object.values(
+ extra.patternProperties || {},
+ );
+ if (extra.additionalProperties) elements.push(extra.additionalProperties);
+
+ // SHORT RETURN
+ if (elements.length === 0) return undefined;
+ else if (elements.length === 1) return elements[0]![1]!;
+
+ // MERGE METADATA AND GENERATE VULNERABLE SCHEMA
+ const meta: Metadata = elements
+ .map((tuple) => tuple[0])
+ .reduce((x, y) => Metadata.merge(x, y));
+ return llm_schema_station({
+ blockNever: true,
+ attribute: {},
+ metadata: meta,
+ });
+};
+
+/**
+ * @internal
+ */
+interface ISuperfluous {
+ additionalProperties?: undefined | [Metadata, ILlmSchema];
+ patternProperties: Record;
+}
diff --git a/src/programmers/internal/llm_schema_station.ts b/src/programmers/internal/llm_schema_station.ts
new file mode 100644
index 0000000000..529f244975
--- /dev/null
+++ b/src/programmers/internal/llm_schema_station.ts
@@ -0,0 +1,185 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+import { Metadata } from "../../schemas/metadata/Metadata";
+import { MetadataAtomic } from "../../schemas/metadata/MetadataAtomic";
+
+import { AtomicPredicator } from "../helpers/AtomicPredicator";
+import { application_bigint } from "./application_bigint";
+import { application_boolean } from "./application_boolean";
+import { application_number } from "./application_number";
+import { application_string } from "./application_string";
+import { application_templates } from "./application_templates";
+import { application_v30_constant } from "./application_v30_constant";
+import { llm_schema_array } from "./llm_schema_array";
+import { llm_schema_escaped } from "./llm_schema_escaped";
+import { llm_schema_native } from "./llm_schema_native";
+import { llm_schema_object } from "./llm_schema_object";
+import { llm_schema_tuple } from "./llm_schema_tuple";
+
+/**
+ * @internal
+ */
+export const llm_schema_station = (props: {
+ metadata: Metadata;
+ blockNever: boolean;
+ attribute: ILlmSchema.__IAttribute;
+}): ILlmSchema => {
+ // VULNERABLE CASE
+ if (props.metadata.any === true)
+ return {
+ ...props.attribute,
+ type: undefined,
+ };
+ else if (props.metadata.nullable === true && props.metadata.empty() === true)
+ return {
+ ...props.attribute,
+ type: "null",
+ };
+
+ //----
+ // GATHER UNION SCHEMAS
+ //----
+ const union: ILlmSchema[] = [];
+ const insert = props.metadata.nullable
+ ? (schema: ILlmSchema) =>
+ union.push({
+ ...schema,
+ nullable: (schema as ILlmSchema.__ISignificant).type
+ ? true
+ : undefined,
+ } as ILlmSchema)
+ : (schema: ILlmSchema) => union.push(schema);
+
+ // toJSON() METHOD
+ if (props.metadata.escaped !== null)
+ llm_schema_escaped(props.metadata.escaped).forEach(insert);
+
+ // ATOMIC TYPES
+ if (
+ props.metadata.templates.length &&
+ AtomicPredicator.template(props.metadata)
+ )
+ application_templates<"3.0">(props.metadata).map(insert);
+ for (const constant of props.metadata.constants)
+ if (AtomicPredicator.constant(props.metadata)(constant.type) === false)
+ continue;
+ else insert(application_v30_constant(constant));
+ for (const a of props.metadata.atomics)
+ if (a.type === "boolean") application_boolean<"3.0">(a).forEach(insert);
+ else if (a.type === "bigint") application_bigint<"3.0">(a).forEach(insert);
+ else if (a.type === "number") application_number<"3.0">(a).forEach(insert);
+ else if (a.type === "string") application_string<"3.0">(a).forEach(insert);
+
+ // ARRAY
+ for (const array of props.metadata.arrays)
+ if (array.type.recursive)
+ throw new Error(
+ "Error on LlmSchemaProgrammer.write(): LLM schema does not allow recursive array type.",
+ );
+ else llm_schema_array(array).forEach(insert);
+
+ // TUPLE
+ for (const tuple of props.metadata.tuples)
+ if (tuple.type.recursive)
+ throw new Error(
+ "Error on LlmSchemaProgrammer.write(): LLM schema does not allow recursive tuple type.",
+ );
+ else
+ insert(
+ llm_schema_tuple({
+ tuple,
+ attribute: props.attribute,
+ }),
+ );
+
+ // NATIVES
+ for (const native of props.metadata.natives)
+ if (AtomicPredicator.native(native)) {
+ const type: string = native.toLowerCase();
+ if (props.metadata.atomics.some((a) => a.type === type)) continue;
+ else if (type === "boolean")
+ insert(
+ application_boolean<"3.0">(
+ MetadataAtomic.create({
+ type: "boolean",
+ tags: [],
+ }),
+ )[0]!,
+ );
+ else if (type === "bigint")
+ insert(
+ application_bigint(
+ MetadataAtomic.create({
+ type: "bigint",
+ tags: [],
+ }),
+ )[0]!,
+ );
+ else if (type === "number")
+ insert(
+ application_number(
+ MetadataAtomic.create({
+ type: "number",
+ tags: [],
+ }),
+ )[0]!,
+ );
+ else if (type === "string")
+ insert(
+ application_string(
+ MetadataAtomic.create({
+ type: "string",
+ tags: [],
+ }),
+ )[0]!,
+ );
+ } else insert(llm_schema_native(native));
+ if (props.metadata.sets.length) insert(llm_schema_native("Set"));
+ if (props.metadata.maps.length) insert(llm_schema_native("Map"));
+
+ // OBJECT
+ for (const object of props.metadata.objects)
+ if (object.recursive)
+ throw new Error(
+ "Error on LlmSchemaProgrammer.write(): LLM schema does not allow recursive object type.",
+ );
+ else
+ insert(
+ llm_schema_object({
+ object,
+ nullable: props.metadata.nullable,
+ }),
+ );
+
+ // ALIASES
+ for (const alias of props.metadata.aliases)
+ if (alias.recursive)
+ throw new Error(
+ "Error on LlmSchemaProgrammer.write(): LLM schema does not allow recursive alias type.",
+ );
+ else
+ insert(
+ llm_schema_station({
+ ...props,
+ metadata: alias.value,
+ }),
+ );
+
+ //----
+ // RETURNS
+ //----
+ if (union.length === 0 && props.blockNever === true) return null!;
+ const schema: ILlmSchema =
+ union.length === 0
+ ? { type: undefined }
+ : union.length === 1
+ ? union[0]!
+ : { oneOf: union };
+ return {
+ ...schema,
+ ...props.attribute,
+ title: props.attribute.title ?? schema.title,
+ description: props.attribute.description ?? schema.description,
+ deprecated: props.attribute.deprecated ?? schema.deprecated,
+ };
+};
diff --git a/src/programmers/internal/llm_schema_tuple.ts b/src/programmers/internal/llm_schema_tuple.ts
new file mode 100644
index 0000000000..219920f0be
--- /dev/null
+++ b/src/programmers/internal/llm_schema_tuple.ts
@@ -0,0 +1,31 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+import { Metadata } from "../../schemas/metadata/Metadata";
+import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
+
+import { llm_schema_station } from "./llm_schema_station";
+
+/**
+ * @internal
+ */
+export const llm_schema_tuple = (props: {
+ tuple: MetadataTuple;
+ attribute: ILlmSchema.__IAttribute;
+}): ILlmSchema.IArray => ({
+ ...props.attribute,
+ type: "array",
+ items: llm_schema_station({
+ blockNever: false,
+ attribute: props.attribute,
+ metadata: props.tuple.type.elements.reduce(
+ (x, y) => Metadata.merge(x.rest ?? x, y.rest ?? y),
+ Metadata.initialize(),
+ ),
+ }),
+ minItems: !!props.tuple.type.elements.at(-1)?.rest
+ ? props.tuple.type.elements.length - 1
+ : props.tuple.type.elements.filter((x) => !x.optional).length,
+ maxItems: !!props.tuple.type.elements.at(-1)?.rest
+ ? undefined!
+ : props.tuple.type.elements.length,
+});
diff --git a/src/programmers/json/JsonApplicationProgrammer.ts b/src/programmers/json/JsonApplicationProgrammer.ts
index 1f42c233ab..86af142dc5 100644
--- a/src/programmers/json/JsonApplicationProgrammer.ts
+++ b/src/programmers/json/JsonApplicationProgrammer.ts
@@ -10,7 +10,7 @@ import { application_v30_schema } from "../internal/application_v30_schema";
import { application_v31_schema } from "../internal/application_v31_schema";
export namespace JsonApplicationProgrammer {
- export const validate = (meta: Metadata) => {
+ export const validate = (meta: Metadata): string[] => {
const output: string[] = [];
if (
meta.atomics.some((a) => a.type === "bigint") ||
diff --git a/src/programmers/llm/LlmSchemaProgrammer.ts b/src/programmers/llm/LlmSchemaProgrammer.ts
new file mode 100644
index 0000000000..953dc876a7
--- /dev/null
+++ b/src/programmers/llm/LlmSchemaProgrammer.ts
@@ -0,0 +1,49 @@
+import { ILlmSchema } from "@samchon/openapi";
+
+import { Metadata } from "../../schemas/metadata/Metadata";
+
+import { AtomicPredicator } from "../helpers/AtomicPredicator";
+import { llm_schema_station } from "../internal/llm_schema_station";
+
+export namespace LlmSchemaProgrammer {
+ export const validate = (meta: Metadata): string[] => {
+ const output: string[] = [];
+ if (
+ meta.atomics.some((a) => a.type === "bigint") ||
+ meta.constants.some((c) => c.type === "bigint")
+ )
+ output.push("LLM schema does not support bigint type.");
+ if (
+ meta.tuples.some((t) =>
+ t.type.elements.some((e) => e.isRequired() === false),
+ ) ||
+ meta.arrays.some((a) => a.type.value.isRequired() === false)
+ )
+ output.push("LLM schema does not support undefined type in array.");
+ if (meta.maps.length) output.push("LLM schema does not support Map type.");
+ if (meta.sets.length) output.push("LLM schema does not support Set type.");
+ for (const native of meta.natives)
+ if (
+ AtomicPredicator.native(native) === false &&
+ native !== "Date" &&
+ native !== "Blob" &&
+ native !== "File"
+ )
+ output.push(`LLM schema does not support ${native} type.`);
+ if (
+ meta.aliases.some((a) => a.recursive) ||
+ meta.arrays.some((a) => a.type.recursive) ||
+ meta.objects.some((o) => o.recursive) ||
+ meta.tuples.some((t) => t.type.recursive)
+ )
+ output.push("LLM schema does not support recursive type.");
+ return output;
+ };
+
+ export const write = (metadata: Metadata): ILlmSchema =>
+ llm_schema_station({
+ metadata,
+ blockNever: true,
+ attribute: {},
+ });
+}
diff --git a/src/transformers/CallExpressionTransformer.ts b/src/transformers/CallExpressionTransformer.ts
index 99a4604f1a..ada190e095 100644
--- a/src/transformers/CallExpressionTransformer.ts
+++ b/src/transformers/CallExpressionTransformer.ts
@@ -64,6 +64,7 @@ import { JsonIsStringifyTransformer } from "./features/json/JsonIsStringifyTrans
import { JsonStringifyTransformer } from "./features/json/JsonStringifyTransformer";
import { JsonValidateParseTransformer } from "./features/json/JsonValidateParseTransformer";
import { JsonValidateStringifyTransformer } from "./features/json/JsonValidateStringifyTransformer";
+import { LlmSchemaTransformer } from "./features/llm/LlmSchemaTransformer";
import { MiscAssertCloneTransformer } from "./features/misc/MiscAssertCloneTransformer";
import { MiscAssertPruneTransformer } from "./features/misc/MiscAssertPruneTransformer";
import { MiscCloneTransformer } from "./features/misc/MiscCloneTransformer";
@@ -353,9 +354,13 @@ const FUNCTORS: Record Task>> = {
createAssertQuery: () => CreateHttpAssertQueryTransformer.transform,
createValidateQuery: () => CreateHttpValidateQueryTransformer.transform,
},
+ llm: {
+ schema: () => (project) => () => LlmSchemaTransformer.transform(project),
+ },
json: {
// SCHEMA
- application: () => (P) => () => JsonApplicationTransformer.transform(P),
+ application: () => (project) => () =>
+ JsonApplicationTransformer.transform(project),
// PARSER
isParse: () => JsonIsParseTransformer.transform,
diff --git a/src/transformers/features/llm/LlmSchemaTransformer.ts b/src/transformers/features/llm/LlmSchemaTransformer.ts
new file mode 100644
index 0000000000..0861625646
--- /dev/null
+++ b/src/transformers/features/llm/LlmSchemaTransformer.ts
@@ -0,0 +1,52 @@
+import { ILlmSchema } from "@samchon/openapi";
+import ts from "typescript";
+
+import { LiteralFactory } from "../../../factories/LiteralFactory";
+import { MetadataCollection } from "../../../factories/MetadataCollection";
+import { MetadataFactory } from "../../../factories/MetadataFactory";
+
+import { Metadata } from "../../../schemas/metadata/Metadata";
+
+import { LlmSchemaProgrammer } from "../../../programmers/llm/LlmSchemaProgrammer";
+
+import { ValidationPipe } from "../../../typings/ValidationPipe";
+
+import { IProject } from "../../IProject";
+import { TransformerError } from "../../TransformerError";
+
+export namespace LlmSchemaTransformer {
+ export const transform =
+ (project: IProject) =>
+ (expression: ts.CallExpression): ts.Expression => {
+ if (!expression.typeArguments?.length)
+ throw new TransformerError({
+ code: "typia.llm.schema",
+ message: "no generic argument.",
+ });
+
+ // GET TYPE
+ const top: ts.Node = expression.typeArguments[0]!;
+ if (ts.isTypeNode(top) === false) return expression;
+
+ const type: ts.Type = project.checker.getTypeFromTypeNode(top);
+ const collection: MetadataCollection = new MetadataCollection({
+ replace: MetadataCollection.replace,
+ });
+ const result: ValidationPipe =
+ MetadataFactory.analyze(
+ project.checker,
+ project.context,
+ )({
+ escape: true,
+ constant: true,
+ absorb: false,
+ validate: LlmSchemaProgrammer.validate,
+ })(collection)(type);
+ if (result.success === false)
+ throw TransformerError.from("typia.llm.schema")(result.errors);
+
+ // GENERATE LLM SCHEMA
+ const schema: ILlmSchema = LlmSchemaProgrammer.write(result.data);
+ return LiteralFactory.generate(schema);
+ };
+}
diff --git a/test-esm/package.json b/test-esm/package.json
index ca4d004fff..f7d1ac4840 100644
--- a/test-esm/package.json
+++ b/test-esm/package.json
@@ -36,6 +36,6 @@
"typescript": "^5.4.5"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240823.tgz"
+ "typia": "../typia-6.10.0-dev.20240906.tgz"
}
}
\ No newline at end of file
diff --git a/test/build/internal/TestJsonApplicationGenerator.ts b/test/build/internal/TestJsonSchemaGenerator.ts
similarity index 98%
rename from test/build/internal/TestJsonApplicationGenerator.ts
rename to test/build/internal/TestJsonSchemaGenerator.ts
index 06c453cc45..0c0e6a3b0b 100644
--- a/test/build/internal/TestJsonApplicationGenerator.ts
+++ b/test/build/internal/TestJsonSchemaGenerator.ts
@@ -3,7 +3,7 @@ import fs from "fs";
import { TestStructure } from "./TestStructure";
-export namespace TestJsonApplicationGenerator {
+export namespace TestJsonSchemaGenerator {
export async function generate(
structures: TestStructure[],
): Promise {
diff --git a/test/build/internal/TestLlmSchemaGenerator.ts b/test/build/internal/TestLlmSchemaGenerator.ts
new file mode 100644
index 0000000000..0746d6a3a7
--- /dev/null
+++ b/test/build/internal/TestLlmSchemaGenerator.ts
@@ -0,0 +1,80 @@
+import cp from "child_process";
+import fs from "fs";
+
+import { TestStructure } from "./TestStructure";
+
+export namespace TestLlmSchemaGenerator {
+ export async function generate(
+ structures: TestStructure[],
+ ): Promise {
+ const location: string = `${__dirname}/../../src/features/llm.schema`;
+ if (fs.existsSync(location)) cp.execSync("npx rimraf " + location);
+ await fs.promises.mkdir(location);
+ await application(structures);
+ }
+
+ async function application(structures: TestStructure[]): Promise {
+ for (const s of structures) {
+ if (s.JSONABLE === false) continue;
+ else if (s.RECURSIVE === true) continue;
+
+ const content: string[] = [
+ `import typia from "typia";`,
+ `import { ${s.name} } from "../../structures/${s.name}";`,
+ `import { _test_llm_schema } from "../../internal/_test_llm_schema";`,
+ "",
+ `export const test_llm_schema_${s.name} = `,
+ ` _test_llm_schema(`,
+ ` ${JSON.stringify(s.name)},`,
+ ` )(typia.llm.schema<${s.name}>());`,
+ ];
+ await fs.promises.writeFile(
+ `${__dirname}/../../src/features/llm.schema/test_llm_schema_${s.name}.ts`,
+ content.join("\n"),
+ "utf8",
+ );
+ }
+ }
+
+ export async function schemas(): Promise {
+ const location: string = `${__dirname}/../../schemas/llm/type`;
+ if (fs.existsSync(location)) cp.execSync("npx rimraf " + location);
+ await mkdir(location);
+ await iterate();
+ }
+
+ function getSchema(content: string): object {
+ const first: number = content.lastIndexOf(`")({`) + 4;
+ const last: number = content.lastIndexOf("}");
+ return new Function("return {" + content.substring(first, last) + "}")();
+ }
+
+ async function iterate() {
+ const path: string = `${__dirname}/../../src/features/llm.schema`;
+ const schemaPath: string = `${__dirname}/../../schemas/llm/type`;
+ for (const file of await fs.promises.readdir(path)) {
+ if (file.substring(file.length - 3) !== ".ts") continue;
+
+ const name: string = file.substring(
+ `test_llm_schema_`.length,
+ file.length - 3,
+ );
+ console.log(name);
+ const location: string =
+ __dirname + `/../../bin/features/llm.schema/${file.slice(0, -3)}.js`;
+ const schema: object = getSchema(
+ await fs.promises.readFile(location, "utf8"),
+ );
+ await fs.promises.writeFile(
+ `${schemaPath}/${name}.json`,
+ JSON.stringify(schema, null, 2),
+ "utf8",
+ );
+ }
+ }
+
+ async function mkdir(path: string): Promise {
+ if (fs.existsSync(path)) cp.execSync(`npx rimraf ${path}`);
+ await fs.promises.mkdir(path, { recursive: true });
+ }
+}
diff --git a/test/build/internal/TestStructure.ts b/test/build/internal/TestStructure.ts
index 47b6987a0b..1b3c617411 100644
--- a/test/build/internal/TestStructure.ts
+++ b/test/build/internal/TestStructure.ts
@@ -15,4 +15,5 @@ export interface TestStructure {
JSONABLE?: boolean;
PRIMITIVE?: boolean;
RANDOM?: false | typia.IRandomGenerator;
+ RECURSIVE?: true;
}
diff --git a/test/build/template.ts b/test/build/template.ts
index 1f7101fc47..182a04e177 100644
--- a/test/build/template.ts
+++ b/test/build/template.ts
@@ -2,7 +2,8 @@ import cp from "child_process";
import fs from "fs";
import { TestFeature } from "./internal/TestFeature";
-import { TestJsonApplicationGenerator } from "./internal/TestJsonApplicationGenerator";
+import { TestJsonSchemaGenerator } from "./internal/TestJsonSchemaGenerator";
+import { TestLlmSchemaGenerator } from "./internal/TestLlmSchemaGenerator";
import { TestProtobufMessageGenerator } from "./internal/TestProtobufMessageGenerator";
import { TestReflectMetadataGenerator } from "./internal/TestReflectMetadataGenerator";
import { TestStructure } from "./internal/TestStructure";
@@ -161,16 +162,19 @@ async function main(): Promise {
if (fs.existsSync(schemas)) cp.execSync(`npx rimraf ${schemas}`);
await fs.promises.mkdir(schemas, { recursive: true });
- await TestJsonApplicationGenerator.generate(structures);
+ await TestJsonSchemaGenerator.generate(structures);
await TestProtobufMessageGenerator.generate(structures);
await TestReflectMetadataGenerator.generate(structures);
+ await TestLlmSchemaGenerator.generate(structures);
// FILL SCHEMA CONTENTS
await new Promise((resolve) => setTimeout(resolve, 1000));
cp.execSync("npm run build", { stdio: "inherit" });
- await TestJsonApplicationGenerator.schemas();
+
+ await TestJsonSchemaGenerator.schemas();
await TestProtobufMessageGenerator.schemas();
await TestReflectMetadataGenerator.schemas();
+ await TestLlmSchemaGenerator.schemas();
cp.execSync("npm run prettier", { stdio: "inherit" });
}
diff --git a/test/package.json b/test/package.json
index 7459f2fa13..1e39dd5e7c 100644
--- a/test/package.json
+++ b/test/package.json
@@ -52,6 +52,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240823.tgz"
+ "typia": "../typia-6.10.0-dev.20240906.tgz"
}
}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArrayAny.json b/test/schemas/llm/type/ArrayAny.json
new file mode 100644
index 0000000000..63e2288e06
--- /dev/null
+++ b/test/schemas/llm/type/ArrayAny.json
@@ -0,0 +1,53 @@
+{
+ "type": "object",
+ "properties": {
+ "anys": {
+ "type": "array",
+ "items": {}
+ },
+ "undefindable1": {
+ "type": "array",
+ "items": {}
+ },
+ "undefindable2": {
+ "type": "array",
+ "items": {}
+ },
+ "nullables1": {
+ "type": "array",
+ "items": {},
+ "nullable": true
+ },
+ "nullables2": {
+ "type": "array",
+ "items": {},
+ "nullable": true
+ },
+ "both1": {
+ "type": "array",
+ "items": {},
+ "nullable": true
+ },
+ "both2": {
+ "type": "array",
+ "items": {},
+ "nullable": true
+ },
+ "both3": {
+ "type": "array",
+ "items": {},
+ "nullable": true
+ },
+ "union": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "nullable": false,
+ "required": [
+ "anys",
+ "nullables1",
+ "nullables2",
+ "union"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArrayAtomicAlias.json b/test/schemas/llm/type/ArrayAtomicAlias.json
new file mode 100644
index 0000000000..69987ae2ea
--- /dev/null
+++ b/test/schemas/llm/type/ArrayAtomicAlias.json
@@ -0,0 +1,27 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "boolean"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArrayAtomicSimple.json b/test/schemas/llm/type/ArrayAtomicSimple.json
new file mode 100644
index 0000000000..69987ae2ea
--- /dev/null
+++ b/test/schemas/llm/type/ArrayAtomicSimple.json
@@ -0,0 +1,27 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "boolean"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArrayHierarchical.json b/test/schemas/llm/type/ArrayHierarchical.json
new file mode 100644
index 0000000000..2479c6c722
--- /dev/null
+++ b/test/schemas/llm/type/ArrayHierarchical.json
@@ -0,0 +1,126 @@
+{
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "serial": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "established_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ },
+ "departments": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "code": {
+ "type": "string"
+ },
+ "sales": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ },
+ "employees": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "age": {
+ "type": "number"
+ },
+ "grade": {
+ "type": "number"
+ },
+ "employeed_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name",
+ "age",
+ "grade",
+ "employeed_at"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "code",
+ "sales",
+ "created_at",
+ "employees"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "serial",
+ "name",
+ "established_at",
+ "departments"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArrayHierarchicalPointer.json b/test/schemas/llm/type/ArrayHierarchicalPointer.json
new file mode 100644
index 0000000000..7d03350cc4
--- /dev/null
+++ b/test/schemas/llm/type/ArrayHierarchicalPointer.json
@@ -0,0 +1,135 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "serial": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "established_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ },
+ "departments": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "code": {
+ "type": "string"
+ },
+ "sales": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ },
+ "employees": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "age": {
+ "type": "number"
+ },
+ "grade": {
+ "type": "number"
+ },
+ "employeed_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name",
+ "age",
+ "grade",
+ "employeed_at"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "code",
+ "sales",
+ "created_at",
+ "employees"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "serial",
+ "name",
+ "established_at",
+ "departments"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArrayMatrix.json b/test/schemas/llm/type/ArrayMatrix.json
new file mode 100644
index 0000000000..b71a8043df
--- /dev/null
+++ b/test/schemas/llm/type/ArrayMatrix.json
@@ -0,0 +1,12 @@
+{
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArraySimple.json b/test/schemas/llm/type/ArraySimple.json
new file mode 100644
index 0000000000..7df4a4f1ea
--- /dev/null
+++ b/test/schemas/llm/type/ArraySimple.json
@@ -0,0 +1,43 @@
+{
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "hobbies": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "rank": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "body",
+ "rank"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "email",
+ "hobbies"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ArrayUnion.json b/test/schemas/llm/type/ArrayUnion.json
new file mode 100644
index 0000000000..6f1b0f65e8
--- /dev/null
+++ b/test/schemas/llm/type/ArrayUnion.json
@@ -0,0 +1,25 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "boolean"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/AtomicAlias.json b/test/schemas/llm/type/AtomicAlias.json
new file mode 100644
index 0000000000..a9dc150cdd
--- /dev/null
+++ b/test/schemas/llm/type/AtomicAlias.json
@@ -0,0 +1,18 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/AtomicClass.json b/test/schemas/llm/type/AtomicClass.json
new file mode 100644
index 0000000000..74c0cf600a
--- /dev/null
+++ b/test/schemas/llm/type/AtomicClass.json
@@ -0,0 +1,18 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 9,
+ "maxItems": 9
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/AtomicIntersection.json b/test/schemas/llm/type/AtomicIntersection.json
new file mode 100644
index 0000000000..a9dc150cdd
--- /dev/null
+++ b/test/schemas/llm/type/AtomicIntersection.json
@@ -0,0 +1,18 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/AtomicSimple.json b/test/schemas/llm/type/AtomicSimple.json
new file mode 100644
index 0000000000..a9dc150cdd
--- /dev/null
+++ b/test/schemas/llm/type/AtomicSimple.json
@@ -0,0 +1,18 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/AtomicUnion.json b/test/schemas/llm/type/AtomicUnion.json
new file mode 100644
index 0000000000..2aaa26775b
--- /dev/null
+++ b/test/schemas/llm/type/AtomicUnion.json
@@ -0,0 +1,19 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string",
+ "nullable": true
+ },
+ {
+ "type": "number",
+ "nullable": true
+ },
+ {
+ "type": "boolean",
+ "nullable": true
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ClassGetter.json b/test/schemas/llm/type/ClassGetter.json
new file mode 100644
index 0000000000..46713c7b20
--- /dev/null
+++ b/test/schemas/llm/type/ClassGetter.json
@@ -0,0 +1,21 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "dead": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name",
+ "dead"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ClassMethod.json b/test/schemas/llm/type/ClassMethod.json
new file mode 100644
index 0000000000..4ebac9586b
--- /dev/null
+++ b/test/schemas/llm/type/ClassMethod.json
@@ -0,0 +1,16 @@
+{
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "age": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "age"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ClassPropertyAssignment.json b/test/schemas/llm/type/ClassPropertyAssignment.json
new file mode 100644
index 0000000000..50f0bc8d52
--- /dev/null
+++ b/test/schemas/llm/type/ClassPropertyAssignment.json
@@ -0,0 +1,34 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "note": {
+ "type": "string",
+ "enum": [
+ "assignment"
+ ]
+ },
+ "editable": {
+ "type": "boolean",
+ "enum": [
+ false
+ ]
+ },
+ "incremental": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name",
+ "note",
+ "editable",
+ "incremental"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagArray.json b/test/schemas/llm/type/CommentTagArray.json
new file mode 100644
index 0000000000..5b94c5c1c7
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagArray.json
@@ -0,0 +1,63 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 3,
+ "maxItems": 3
+ },
+ "minItems": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ },
+ "minItems": 3
+ },
+ "both": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 3,
+ "maxItems": 7
+ },
+ "equal": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ },
+ "minItems": 10,
+ "maxItems": 10
+ },
+ "unique": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "items",
+ "minItems",
+ "both",
+ "equal",
+ "unique"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagArrayUnion.json b/test/schemas/llm/type/CommentTagArrayUnion.json
new file mode 100644
index 0000000000..aaf7cebf78
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagArrayUnion.json
@@ -0,0 +1,52 @@
+{
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 3,
+ "maxItems": 3
+ },
+ "minItems": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ },
+ "minItems": 3
+ },
+ "maxItems": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "maxItems": 7
+ },
+ "both": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 3,
+ "maxItems": 7
+ }
+ },
+ "nullable": false,
+ "required": [
+ "items",
+ "minItems",
+ "maxItems",
+ "both"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagAtomicUnion.json b/test/schemas/llm/type/CommentTagAtomicUnion.json
new file mode 100644
index 0000000000..3cc9923e85
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagAtomicUnion.json
@@ -0,0 +1,34 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "oneOf": [
+ {
+ "type": "string",
+ "minLength": 3,
+ "maxLength": 7
+ },
+ {
+ "type": "number",
+ "minimum": 3
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagDefault.json b/test/schemas/llm/type/CommentTagDefault.json
new file mode 100644
index 0000000000..6184dbc26a
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagDefault.json
@@ -0,0 +1,121 @@
+{
+ "type": "object",
+ "properties": {
+ "boolean": {
+ "type": "boolean",
+ "title": "Default tag on `boolean` typed value",
+ "description": "Default tag on `boolean` typed value."
+ },
+ "number": {
+ "type": "number",
+ "title": "Default tag on `number` typed value",
+ "description": "Default tag on `number` typed value."
+ },
+ "string": {
+ "type": "string",
+ "title": "Default tag on `string` typed value",
+ "description": "Default tag on `string` typed value."
+ },
+ "text": {
+ "type": "string",
+ "title": "Default tag on `string` typed value with long characters",
+ "description": "Default tag on `string` typed value with long characters."
+ },
+ "boolean_and_number_and_string": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ],
+ "title": "Default value on union typed property",
+ "description": "Default value on union typed property."
+ },
+ "union_but_boolean": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ],
+ "title": "Default value on union typed property",
+ "description": "Default value on union typed property."
+ },
+ "union_but_number": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ],
+ "title": "Default value on union typed property",
+ "description": "Default value on union typed property."
+ },
+ "union_but_string": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ],
+ "title": "Default value on union typed property",
+ "description": "Default value on union typed property."
+ },
+ "vulnerable_range": {
+ "type": "number",
+ "minimum": 3,
+ "maximum": 5,
+ "title": "Default value on union typed property",
+ "description": "Default value on union typed property."
+ },
+ "boolean_and_number_and_template": {
+ "oneOf": [
+ {
+ "type": "string",
+ "pattern": "^(prefix_(.*))"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ],
+ "title": "Default value on union typed property",
+ "description": "Default value on union typed property."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "boolean",
+ "number",
+ "string",
+ "text",
+ "boolean_and_number_and_string",
+ "union_but_boolean",
+ "union_but_number",
+ "union_but_string",
+ "vulnerable_range",
+ "boolean_and_number_and_template"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagFormat.json b/test/schemas/llm/type/CommentTagFormat.json
new file mode 100644
index 0000000000..f306d185b7
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagFormat.json
@@ -0,0 +1,118 @@
+{
+ "type": "object",
+ "properties": {
+ "byte": {
+ "type": "string",
+ "format": "byte"
+ },
+ "password": {
+ "type": "string",
+ "format": "password"
+ },
+ "regex": {
+ "type": "string",
+ "format": "regex"
+ },
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "hostname": {
+ "type": "string",
+ "format": "hostname"
+ },
+ "idnEmail": {
+ "type": "string",
+ "format": "idn-email"
+ },
+ "idnHostname": {
+ "type": "string",
+ "format": "idn-hostname"
+ },
+ "iri": {
+ "type": "string",
+ "format": "iri"
+ },
+ "iriReference": {
+ "type": "string",
+ "format": "iri-reference"
+ },
+ "ipv4": {
+ "type": "string",
+ "format": "ipv4"
+ },
+ "ipv6": {
+ "type": "string",
+ "format": "ipv6"
+ },
+ "uri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "uriReference": {
+ "type": "string",
+ "format": "uri-reference"
+ },
+ "uriTemplate": {
+ "type": "string",
+ "format": "uri-template"
+ },
+ "url": {
+ "type": "string",
+ "format": "url"
+ },
+ "datetime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "date": {
+ "type": "string",
+ "format": "date"
+ },
+ "time": {
+ "type": "string",
+ "format": "time"
+ },
+ "duration": {
+ "type": "string",
+ "format": "duration"
+ },
+ "jsonPointer": {
+ "type": "string",
+ "format": "json-pointer"
+ },
+ "relativeJsonPointer": {
+ "type": "string",
+ "format": "relative-json-pointer"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "byte",
+ "password",
+ "regex",
+ "uuid",
+ "email",
+ "hostname",
+ "idnEmail",
+ "idnHostname",
+ "iri",
+ "iriReference",
+ "ipv4",
+ "ipv6",
+ "uri",
+ "uriReference",
+ "uriTemplate",
+ "url",
+ "datetime",
+ "date",
+ "time",
+ "duration",
+ "jsonPointer",
+ "relativeJsonPointer"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagLength.json b/test/schemas/llm/type/CommentTagLength.json
new file mode 100644
index 0000000000..b6456ad2ee
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagLength.json
@@ -0,0 +1,48 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "fixed": {
+ "type": "string",
+ "minLength": 5,
+ "maxLength": 5
+ },
+ "minimum": {
+ "type": "string",
+ "minLength": 3
+ },
+ "maximum": {
+ "type": "string",
+ "maxLength": 7
+ },
+ "minimum_and_maximum": {
+ "type": "string",
+ "minLength": 3,
+ "maxLength": 7
+ },
+ "equal": {
+ "type": "string",
+ "minLength": 10,
+ "maxLength": 19
+ }
+ },
+ "nullable": false,
+ "required": [
+ "fixed",
+ "minimum",
+ "maximum",
+ "minimum_and_maximum",
+ "equal"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagObjectUnion.json b/test/schemas/llm/type/CommentTagObjectUnion.json
new file mode 100644
index 0000000000..02727a6a63
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagObjectUnion.json
@@ -0,0 +1,34 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "minimum": 3
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string",
+ "minLength": 3,
+ "maxLength": 7
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagPattern.json b/test/schemas/llm/type/CommentTagPattern.json
new file mode 100644
index 0000000000..fdf27c1f73
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagPattern.json
@@ -0,0 +1,28 @@
+{
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "pattern": "[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
+ },
+ "email": {
+ "type": "string",
+ "pattern": "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
+ },
+ "ipv4": {
+ "type": "string",
+ "pattern": "(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
+ },
+ "ipv6": {
+ "type": "string",
+ "pattern": "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "uuid",
+ "email",
+ "ipv4",
+ "ipv6"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagRange.json b/test/schemas/llm/type/CommentTagRange.json
new file mode 100644
index 0000000000..d026ba955e
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagRange.json
@@ -0,0 +1,76 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "greater": {
+ "type": "integer",
+ "exclusiveMinimum": true,
+ "minimum": 3
+ },
+ "greater_equal": {
+ "type": "integer",
+ "minimum": 3
+ },
+ "less": {
+ "type": "integer",
+ "exclusiveMaximum": true,
+ "maximum": 7
+ },
+ "less_equal": {
+ "type": "integer",
+ "maximum": 7
+ },
+ "greater_less": {
+ "type": "integer",
+ "exclusiveMinimum": true,
+ "minimum": 3,
+ "exclusiveMaximum": true,
+ "maximum": 7
+ },
+ "greater_equal_less": {
+ "type": "integer",
+ "minimum": 3,
+ "exclusiveMaximum": true,
+ "maximum": 7
+ },
+ "greater_less_equal": {
+ "type": "integer",
+ "exclusiveMinimum": true,
+ "minimum": 3,
+ "maximum": 7
+ },
+ "greater_equal_less_equal": {
+ "type": "integer",
+ "minimum": 3,
+ "maximum": 7
+ },
+ "equal": {
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 10
+ }
+ },
+ "nullable": false,
+ "required": [
+ "greater",
+ "greater_equal",
+ "less",
+ "less_equal",
+ "greater_less",
+ "greater_equal_less",
+ "greater_less_equal",
+ "greater_equal_less_equal",
+ "equal"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/CommentTagType.json b/test/schemas/llm/type/CommentTagType.json
new file mode 100644
index 0000000000..8a62d3818c
--- /dev/null
+++ b/test/schemas/llm/type/CommentTagType.json
@@ -0,0 +1,52 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "int": {
+ "type": "integer",
+ "title": "Integer value",
+ "description": "Integer value."
+ },
+ "uint": {
+ "type": "integer",
+ "title": "Unsigned integer value",
+ "description": "Unsigned integer value."
+ },
+ "int32": {
+ "type": "integer"
+ },
+ "uint32": {
+ "type": "integer"
+ },
+ "int64": {
+ "type": "integer"
+ },
+ "uint64": {
+ "type": "integer"
+ },
+ "float": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "int",
+ "uint",
+ "int32",
+ "uint32",
+ "int64",
+ "uint64",
+ "float"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantAtomicAbsorbed.json b/test/schemas/llm/type/ConstantAtomicAbsorbed.json
new file mode 100644
index 0000000000..182c8602f8
--- /dev/null
+++ b/test/schemas/llm/type/ConstantAtomicAbsorbed.json
@@ -0,0 +1,18 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "default": "something"
+ },
+ "age": {
+ "type": "number",
+ "default": 20
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "age"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantAtomicSimple.json b/test/schemas/llm/type/ConstantAtomicSimple.json
new file mode 100644
index 0000000000..031d320b2c
--- /dev/null
+++ b/test/schemas/llm/type/ConstantAtomicSimple.json
@@ -0,0 +1,28 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean",
+ "enum": [
+ false,
+ true
+ ]
+ },
+ {
+ "type": "number",
+ "enum": [
+ 2
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "three"
+ ]
+ }
+ ]
+ },
+ "minItems": 4,
+ "maxItems": 4
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantAtomicTagged.json b/test/schemas/llm/type/ConstantAtomicTagged.json
new file mode 100644
index 0000000000..84c72bf26e
--- /dev/null
+++ b/test/schemas/llm/type/ConstantAtomicTagged.json
@@ -0,0 +1,38 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "oneOf": [
+ {
+ "type": "string",
+ "enum": [
+ "latest"
+ ]
+ },
+ {
+ "type": "string",
+ "format": "uuid"
+ }
+ ]
+ },
+ "age": {
+ "oneOf": [
+ {
+ "type": "number",
+ "enum": [
+ -1
+ ]
+ },
+ {
+ "type": "integer",
+ "maximum": 100
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "age"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantAtomicUnion.json b/test/schemas/llm/type/ConstantAtomicUnion.json
new file mode 100644
index 0000000000..eccbd4f12f
--- /dev/null
+++ b/test/schemas/llm/type/ConstantAtomicUnion.json
@@ -0,0 +1,42 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean",
+ "enum": [
+ false
+ ]
+ },
+ {
+ "type": "number",
+ "enum": [
+ 1,
+ 2
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "three",
+ "four"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string",
+ "enum": [
+ "key"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "key"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantAtomicWrapper.json b/test/schemas/llm/type/ConstantAtomicWrapper.json
new file mode 100644
index 0000000000..5c51ca6176
--- /dev/null
+++ b/test/schemas/llm/type/ConstantAtomicWrapper.json
@@ -0,0 +1,45 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantConstEnumeration.json b/test/schemas/llm/type/ConstantConstEnumeration.json
new file mode 100644
index 0000000000..cc7bc2f458
--- /dev/null
+++ b/test/schemas/llm/type/ConstantConstEnumeration.json
@@ -0,0 +1,22 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "Three",
+ "Four"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantEnumeration.json b/test/schemas/llm/type/ConstantEnumeration.json
new file mode 100644
index 0000000000..cc7bc2f458
--- /dev/null
+++ b/test/schemas/llm/type/ConstantEnumeration.json
@@ -0,0 +1,22 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "Three",
+ "Four"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ConstantIntersection.json b/test/schemas/llm/type/ConstantIntersection.json
new file mode 100644
index 0000000000..9613f21097
--- /dev/null
+++ b/test/schemas/llm/type/ConstantIntersection.json
@@ -0,0 +1,27 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean",
+ "enum": [
+ false
+ ]
+ },
+ {
+ "type": "number",
+ "enum": [
+ 1
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "two"
+ ]
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicArray.json b/test/schemas/llm/type/DynamicArray.json
new file mode 100644
index 0000000000..68e7eba4a8
--- /dev/null
+++ b/test/schemas/llm/type/DynamicArray.json
@@ -0,0 +1,20 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {},
+ "nullable": false,
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicComposite.json b/test/schemas/llm/type/DynamicComposite.json
new file mode 100644
index 0000000000..27209c891d
--- /dev/null
+++ b/test/schemas/llm/type/DynamicComposite.json
@@ -0,0 +1,29 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name"
+ ],
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicConstant.json b/test/schemas/llm/type/DynamicConstant.json
new file mode 100644
index 0000000000..c663e2c274
--- /dev/null
+++ b/test/schemas/llm/type/DynamicConstant.json
@@ -0,0 +1,33 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "a": {
+ "type": "number"
+ },
+ "b": {
+ "type": "number"
+ },
+ "c": {
+ "type": "number"
+ },
+ "d": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "a",
+ "b",
+ "c",
+ "d"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicEnumeration.json b/test/schemas/llm/type/DynamicEnumeration.json
new file mode 100644
index 0000000000..849cb1884a
--- /dev/null
+++ b/test/schemas/llm/type/DynamicEnumeration.json
@@ -0,0 +1,45 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "ar": {
+ "type": "string"
+ },
+ "zh-Hans": {
+ "type": "string"
+ },
+ "zh-Hant": {
+ "type": "string"
+ },
+ "en": {
+ "type": "string"
+ },
+ "fr": {
+ "type": "string"
+ },
+ "de": {
+ "type": "string"
+ },
+ "ja": {
+ "type": "string"
+ },
+ "ko": {
+ "type": "string"
+ },
+ "pt": {
+ "type": "string"
+ },
+ "ru": {
+ "type": "string"
+ }
+ },
+ "nullable": false
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicNever.json b/test/schemas/llm/type/DynamicNever.json
new file mode 100644
index 0000000000..82853a2c15
--- /dev/null
+++ b/test/schemas/llm/type/DynamicNever.json
@@ -0,0 +1,5 @@
+{
+ "type": "object",
+ "properties": {},
+ "nullable": false
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicSimple.json b/test/schemas/llm/type/DynamicSimple.json
new file mode 100644
index 0000000000..d99508e08b
--- /dev/null
+++ b/test/schemas/llm/type/DynamicSimple.json
@@ -0,0 +1,17 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {},
+ "nullable": false,
+ "additionalProperties": {
+ "type": "number"
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicTemplate.json b/test/schemas/llm/type/DynamicTemplate.json
new file mode 100644
index 0000000000..65aded246d
--- /dev/null
+++ b/test/schemas/llm/type/DynamicTemplate.json
@@ -0,0 +1,18 @@
+{
+ "type": "object",
+ "properties": {},
+ "nullable": false,
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicUndefined.json b/test/schemas/llm/type/DynamicUndefined.json
new file mode 100644
index 0000000000..82853a2c15
--- /dev/null
+++ b/test/schemas/llm/type/DynamicUndefined.json
@@ -0,0 +1,5 @@
+{
+ "type": "object",
+ "properties": {},
+ "nullable": false
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/DynamicUnion.json b/test/schemas/llm/type/DynamicUnion.json
new file mode 100644
index 0000000000..8bbb070407
--- /dev/null
+++ b/test/schemas/llm/type/DynamicUnion.json
@@ -0,0 +1,15 @@
+{
+ "type": "object",
+ "properties": {},
+ "nullable": false,
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectAlias.json b/test/schemas/llm/type/ObjectAlias.json
new file mode 100644
index 0000000000..f842e93e60
--- /dev/null
+++ b/test/schemas/llm/type/ObjectAlias.json
@@ -0,0 +1,55 @@
+{
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "nullable": true
+ },
+ "email": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "sex": {
+ "oneOf": [
+ {
+ "type": "number",
+ "enum": [
+ 1,
+ 2
+ ],
+ "nullable": true
+ },
+ {
+ "type": "string",
+ "enum": [
+ "male",
+ "female"
+ ],
+ "nullable": true
+ }
+ ]
+ },
+ "age": {
+ "type": "number",
+ "nullable": true
+ },
+ "dead": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "email",
+ "name",
+ "sex",
+ "age",
+ "dead"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectDate.json b/test/schemas/llm/type/ObjectDate.json
new file mode 100644
index 0000000000..d7d3b6a60b
--- /dev/null
+++ b/test/schemas/llm/type/ObjectDate.json
@@ -0,0 +1,37 @@
+{
+ "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"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectDescription.json b/test/schemas/llm/type/ObjectDescription.json
new file mode 100644
index 0000000000..60129b225c
--- /dev/null
+++ b/test/schemas/llm/type/ObjectDescription.json
@@ -0,0 +1,44 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uuid",
+ "title": "Primary Key",
+ "description": "Primary Key."
+ },
+ "deprecated": {
+ "type": "boolean",
+ "deprecated": true,
+ "title": "Deprecated property",
+ "description": "Deprecated property.\n\nIf `@deprecated` comment tag being utilized, the property will be marked\nas deprecated in the JSON scheam."
+ },
+ "title": {
+ "type": "string",
+ "title": "This is the title",
+ "description": "Title tag can replace the first line of the comment."
+ },
+ "descriptions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Description property",
+ "description": "Description property.\n\nIf you write first line and the first line ends with \".\" character,\nit would be considered as the title. By the way, description does\nnot exclusive the title, so that full content be written."
+ },
+ "newLine": {
+ "type": "number",
+ "description": "New line before dot character\n\nIf dot character (\".\") being used before the first new line, it would not\nbe considered as title in the JSON schema."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "deprecated",
+ "title",
+ "descriptions",
+ "newLine"
+ ],
+ "title": "This is the title of object type",
+ "description": "An interface designed to test JSON schema's object description."
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectDynamic.json b/test/schemas/llm/type/ObjectDynamic.json
new file mode 100644
index 0000000000..65aded246d
--- /dev/null
+++ b/test/schemas/llm/type/ObjectDynamic.json
@@ -0,0 +1,18 @@
+{
+ "type": "object",
+ "properties": {},
+ "nullable": false,
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectGeneric.json b/test/schemas/llm/type/ObjectGeneric.json
new file mode 100644
index 0000000000..4920321243
--- /dev/null
+++ b/test/schemas/llm/type/ObjectGeneric.json
@@ -0,0 +1,156 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "boolean"
+ },
+ "child": {
+ "type": "object",
+ "properties": {
+ "child_value": {
+ "type": "boolean"
+ },
+ "child_next": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "child_value",
+ "child_next"
+ ]
+ },
+ "elements": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "child_value": {
+ "type": "boolean"
+ },
+ "child_next": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "child_value",
+ "child_next"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value",
+ "child",
+ "elements"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number"
+ },
+ "child": {
+ "type": "object",
+ "properties": {
+ "child_value": {
+ "type": "number"
+ },
+ "child_next": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "child_value",
+ "child_next"
+ ]
+ },
+ "elements": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "child_value": {
+ "type": "number"
+ },
+ "child_next": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "child_value",
+ "child_next"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value",
+ "child",
+ "elements"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ },
+ "child": {
+ "type": "object",
+ "properties": {
+ "child_value": {
+ "type": "string"
+ },
+ "child_next": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "child_value",
+ "child_next"
+ ]
+ },
+ "elements": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "child_value": {
+ "type": "string"
+ },
+ "child_next": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "child_value",
+ "child_next"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value",
+ "child",
+ "elements"
+ ]
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectGenericAlias.json b/test/schemas/llm/type/ObjectGenericAlias.json
new file mode 100644
index 0000000000..83106cf013
--- /dev/null
+++ b/test/schemas/llm/type/ObjectGenericAlias.json
@@ -0,0 +1,12 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectGenericArray.json b/test/schemas/llm/type/ObjectGenericArray.json
new file mode 100644
index 0000000000..0813920ba5
--- /dev/null
+++ b/test/schemas/llm/type/ObjectGenericArray.json
@@ -0,0 +1,53 @@
+{
+ "type": "object",
+ "properties": {
+ "pagination": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "number"
+ },
+ "limit": {
+ "type": "number"
+ },
+ "total_count": {
+ "type": "number"
+ },
+ "total_pages": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "page",
+ "limit",
+ "total_count",
+ "total_pages"
+ ]
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "age": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "age"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "pagination",
+ "data"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectGenericUnion.json b/test/schemas/llm/type/ObjectGenericUnion.json
new file mode 100644
index 0000000000..51190e5e6b
--- /dev/null
+++ b/test/schemas/llm/type/ObjectGenericUnion.json
@@ -0,0 +1,319 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "writer": {
+ "type": "string"
+ },
+ "answer": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "hit": {
+ "type": "number"
+ },
+ "contents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "files": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "extension": {
+ "type": "string",
+ "nullable": true
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "extension",
+ "url"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "created_at",
+ "title",
+ "body",
+ "files"
+ ]
+ }
+ },
+ "created_at": {
+ "type": "string"
+ }
+ },
+ "nullable": true,
+ "required": [
+ "id",
+ "hit",
+ "contents",
+ "created_at"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "hit": {
+ "type": "number"
+ },
+ "contents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "files": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "extension": {
+ "type": "string",
+ "nullable": true
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "extension",
+ "url"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "created_at",
+ "title",
+ "body",
+ "files"
+ ]
+ }
+ },
+ "created_at": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "writer",
+ "answer",
+ "id",
+ "hit",
+ "contents",
+ "created_at"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "writer": {
+ "type": "string"
+ },
+ "answer": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "hit": {
+ "type": "number"
+ },
+ "contents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "files": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "extension": {
+ "type": "string",
+ "nullable": true
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "extension",
+ "url"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "created_at",
+ "title",
+ "body",
+ "files"
+ ]
+ }
+ },
+ "created_at": {
+ "type": "string"
+ }
+ },
+ "nullable": true,
+ "required": [
+ "id",
+ "hit",
+ "contents",
+ "created_at"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "hit": {
+ "type": "number"
+ },
+ "contents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "score": {
+ "type": "number"
+ },
+ "id": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "files": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "extension": {
+ "type": "string",
+ "nullable": true
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "extension",
+ "url"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "score",
+ "id",
+ "created_at",
+ "title",
+ "body",
+ "files"
+ ]
+ }
+ },
+ "created_at": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "writer",
+ "answer",
+ "id",
+ "hit",
+ "contents",
+ "created_at"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectHierarchical.json b/test/schemas/llm/type/ObjectHierarchical.json
new file mode 100644
index 0000000000..5bf31571a0
--- /dev/null
+++ b/test/schemas/llm/type/ObjectHierarchical.json
@@ -0,0 +1,277 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "channel": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "code": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "sequence": {
+ "type": "number"
+ },
+ "exclusive": {
+ "type": "boolean"
+ },
+ "priority": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "code",
+ "name",
+ "sequence",
+ "exclusive",
+ "priority",
+ "created_at"
+ ]
+ },
+ "member": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "account": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "code": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "code",
+ "created_at"
+ ]
+ },
+ "enterprise": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "account": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "code": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "code",
+ "created_at"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "grade": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": true,
+ "required": [
+ "id",
+ "account",
+ "name",
+ "grade",
+ "created_at"
+ ]
+ },
+ "emails": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ },
+ "authorized": {
+ "type": "boolean"
+ }
+ },
+ "nullable": true,
+ "required": [
+ "id",
+ "account",
+ "enterprise",
+ "emails",
+ "created_at",
+ "authorized"
+ ]
+ },
+ "account": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "code": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": true,
+ "required": [
+ "id",
+ "code",
+ "created_at"
+ ]
+ },
+ "href": {
+ "type": "string"
+ },
+ "referrer": {
+ "type": "string"
+ },
+ "ip": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ },
+ "minItems": 4,
+ "maxItems": 4
+ },
+ "created_at": {
+ "type": "object",
+ "properties": {
+ "time": {
+ "type": "number"
+ },
+ "zone": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "time",
+ "zone"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "channel",
+ "member",
+ "account",
+ "href",
+ "referrer",
+ "ip",
+ "created_at"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectInternal.json b/test/schemas/llm/type/ObjectInternal.json
new file mode 100644
index 0000000000..a19c59b3b9
--- /dev/null
+++ b/test/schemas/llm/type/ObjectInternal.json
@@ -0,0 +1,16 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectIntersection.json b/test/schemas/llm/type/ObjectIntersection.json
new file mode 100644
index 0000000000..82e04dd71d
--- /dev/null
+++ b/test/schemas/llm/type/ObjectIntersection.json
@@ -0,0 +1,20 @@
+{
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "vulnerable": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "email",
+ "name",
+ "vulnerable"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectJsonTag.json b/test/schemas/llm/type/ObjectJsonTag.json
new file mode 100644
index 0000000000..24b3b0ed77
--- /dev/null
+++ b/test/schemas/llm/type/ObjectJsonTag.json
@@ -0,0 +1,31 @@
+{
+ "type": "object",
+ "properties": {
+ "vulnerable": {
+ "type": "string",
+ "deprecated": true
+ },
+ "description": {
+ "type": "string",
+ "title": "Descripted property",
+ "description": "Descripted property."
+ },
+ "title": {
+ "type": "string",
+ "title": "something",
+ "description": "Titled property."
+ },
+ "complicate_title": {
+ "type": "string",
+ "title": "something weirdo with {@link something } tag",
+ "description": "Complicate title."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "vulnerable",
+ "description",
+ "title",
+ "complicate_title"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectLiteralProperty.json b/test/schemas/llm/type/ObjectLiteralProperty.json
new file mode 100644
index 0000000000..67d27fcc29
--- /dev/null
+++ b/test/schemas/llm/type/ObjectLiteralProperty.json
@@ -0,0 +1,16 @@
+{
+ "type": "object",
+ "properties": {
+ "something-interesting-do-you-want?": {
+ "type": "string"
+ },
+ "or-something-crazy-do-you-want?": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "something-interesting-do-you-want?",
+ "or-something-crazy-do-you-want?"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectLiteralType.json b/test/schemas/llm/type/ObjectLiteralType.json
new file mode 100644
index 0000000000..c7de81935e
--- /dev/null
+++ b/test/schemas/llm/type/ObjectLiteralType.json
@@ -0,0 +1,20 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "age": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name",
+ "age"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectNullable.json b/test/schemas/llm/type/ObjectNullable.json
new file mode 100644
index 0000000000..860077e48a
--- /dev/null
+++ b/test/schemas/llm/type/ObjectNullable.json
@@ -0,0 +1,107 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "manufacturer": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "manufacturer"
+ ]
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "brand": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "brand"
+ ]
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": true,
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "similar": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "brand"
+ ]
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": true,
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "manufacturer"
+ ]
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": true,
+ "required": [
+ "type",
+ "name"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "manufacturer",
+ "brand",
+ "similar"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectOptional.json b/test/schemas/llm/type/ObjectOptional.json
new file mode 100644
index 0000000000..719ea4a9fa
--- /dev/null
+++ b/test/schemas/llm/type/ObjectOptional.json
@@ -0,0 +1,18 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "sequence": {
+ "type": "number"
+ }
+ },
+ "nullable": false
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectPrimitive.json b/test/schemas/llm/type/ObjectPrimitive.json
new file mode 100644
index 0000000000..8c5ef3ce03
--- /dev/null
+++ b/test/schemas/llm/type/ObjectPrimitive.json
@@ -0,0 +1,69 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "extension": {
+ "type": "string",
+ "enum": [
+ "txt",
+ "md",
+ "html"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "files": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "extension": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name",
+ "extension",
+ "url",
+ "created_at"
+ ]
+ }
+ },
+ "secret": {
+ "type": "boolean"
+ },
+ "created_at": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "extension",
+ "title",
+ "body",
+ "files",
+ "secret",
+ "created_at"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectPropertyNullable.json b/test/schemas/llm/type/ObjectPropertyNullable.json
new file mode 100644
index 0000000000..9d5d0d23d0
--- /dev/null
+++ b/test/schemas/llm/type/ObjectPropertyNullable.json
@@ -0,0 +1,98 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "grade": {
+ "type": "number"
+ },
+ "serial": {
+ "type": "number",
+ "nullable": true
+ },
+ "activated": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "nullable": true,
+ "required": [
+ "id",
+ "name",
+ "activated"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ }
+ ]
+ },
+ "minItems": 4,
+ "maxItems": 4
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectSimple.json b/test/schemas/llm/type/ObjectSimple.json
new file mode 100644
index 0000000000..845b92b924
--- /dev/null
+++ b/test/schemas/llm/type/ObjectSimple.json
@@ -0,0 +1,92 @@
+{
+ "type": "object",
+ "properties": {
+ "scale": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "z": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y",
+ "z"
+ ]
+ },
+ "position": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "z": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y",
+ "z"
+ ]
+ },
+ "rotate": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "z": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y",
+ "z"
+ ]
+ },
+ "pivot": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "z": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y",
+ "z"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "scale",
+ "position",
+ "rotate",
+ "pivot"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectTuple.json b/test/schemas/llm/type/ObjectTuple.json
new file mode 100644
index 0000000000..a9c940758a
--- /dev/null
+++ b/test/schemas/llm/type/ObjectTuple.json
@@ -0,0 +1,49 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "code": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "code",
+ "name"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "mobile": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "mobile",
+ "name"
+ ]
+ }
+ ]
+ },
+ "minItems": 2,
+ "maxItems": 2
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUndefined.json b/test/schemas/llm/type/ObjectUndefined.json
new file mode 100644
index 0000000000..e48e2935a8
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUndefined.json
@@ -0,0 +1,46 @@
+{
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "professor": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "classroom": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "name"
+ ]
+ },
+ "grade": {
+ "type": "number"
+ },
+ "unknown": {}
+ },
+ "nullable": false,
+ "required": [
+ "name",
+ "unknown"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUnionComposite.json b/test/schemas/llm/type/ObjectUnionComposite.json
new file mode 100644
index 0000000000..58356e8de7
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUnionComposite.json
@@ -0,0 +1,371 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p4": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3",
+ "p4"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "outer": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "inner": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "outer",
+ "inner"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "outer": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ "inner": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "outer",
+ "inner"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "centroid": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "radius": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "centroid",
+ "radius"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUnionCompositePointer.json b/test/schemas/llm/type/ObjectUnionCompositePointer.json
new file mode 100644
index 0000000000..d4cb9db5f9
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUnionCompositePointer.json
@@ -0,0 +1,389 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p4": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3",
+ "p4"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "outer": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "inner": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "outer",
+ "inner"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "outer": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ "inner": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "outer",
+ "inner"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "centroid": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "radius": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "centroid",
+ "radius"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUnionDouble.json b/test/schemas/llm/type/ObjectUnionDouble.json
new file mode 100644
index 0000000000..201c4298bb
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUnionDouble.json
@@ -0,0 +1,146 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x"
+ ]
+ },
+ "child": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "y": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value",
+ "child"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x"
+ ]
+ },
+ "child": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "y": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "y": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "y"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value",
+ "child"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUnionExplicit.json b/test/schemas/llm/type/ObjectUnionExplicit.json
new file mode 100644
index 0000000000..3dedb1eacc
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUnionExplicit.json
@@ -0,0 +1,375 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "point"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "line"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "triangle"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p4": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "rectangle"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3",
+ "p4",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "polyline"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "outer": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ "inner": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "polygon"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "outer",
+ "inner",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "centroid": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "radius": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "circle"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "centroid",
+ "radius",
+ "type"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUnionExplicitPointer.json b/test/schemas/llm/type/ObjectUnionExplicitPointer.json
new file mode 100644
index 0000000000..92c4b3859c
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUnionExplicitPointer.json
@@ -0,0 +1,393 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "point"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "line"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "triangle"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p4": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "rectangle"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3",
+ "p4",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "polyline"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "outer": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ "inner": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "polygon"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "outer",
+ "inner",
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "centroid": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "radius": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "circle"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "centroid",
+ "radius",
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUnionImplicit.json b/test/schemas/llm/type/ObjectUnionImplicit.json
new file mode 100644
index 0000000000..cf14b4f54a
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUnionImplicit.json
@@ -0,0 +1,432 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "width": {
+ "type": "number",
+ "nullable": true
+ },
+ "distance": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "width": {
+ "type": "number",
+ "nullable": true
+ },
+ "height": {
+ "type": "number",
+ "nullable": true
+ },
+ "area": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "p1": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p2": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p3": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "p4": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "width": {
+ "type": "number",
+ "nullable": true
+ },
+ "height": {
+ "type": "number",
+ "nullable": true
+ },
+ "area": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "p1",
+ "p2",
+ "p3",
+ "p4"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "length": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "outer": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "length": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ },
+ "inner": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ }
+ },
+ "length": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "points"
+ ]
+ }
+ },
+ "area": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "outer"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "radius": {
+ "type": "number"
+ },
+ "centroid": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "slope": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "x",
+ "y"
+ ]
+ },
+ "area": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "radius"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ObjectUnionNonPredictable.json b/test/schemas/llm/type/ObjectUnionNonPredictable.json
new file mode 100644
index 0000000000..65d5ecafa0
--- /dev/null
+++ b/test/schemas/llm/type/ObjectUnionNonPredictable.json
@@ -0,0 +1,97 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TemplateAtomic.json b/test/schemas/llm/type/TemplateAtomic.json
new file mode 100644
index 0000000000..bd8a984d88
--- /dev/null
+++ b/test/schemas/llm/type/TemplateAtomic.json
@@ -0,0 +1,51 @@
+{
+ "type": "object",
+ "properties": {
+ "prefix": {
+ "type": "string",
+ "pattern": "^(prefix_(.*))"
+ },
+ "postfix": {
+ "type": "string",
+ "pattern": "((.*)_postfix)$"
+ },
+ "middle_string": {
+ "type": "string",
+ "pattern": "^(the_(.*)_value)$"
+ },
+ "middle_string_empty": {
+ "type": "string",
+ "pattern": "^(the_(.*)_value)$"
+ },
+ "middle_numeric": {
+ "type": "string",
+ "pattern": "^(the_[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?_value)$"
+ },
+ "middle_boolean": {
+ "type": "string",
+ "enum": [
+ "the_false_value",
+ "the_true_value"
+ ]
+ },
+ "ipv4": {
+ "type": "string",
+ "pattern": "^([+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\.[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\.[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\.[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)$"
+ },
+ "email": {
+ "type": "string",
+ "pattern": "((.*)@(.*)\\.(.*))"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "prefix",
+ "postfix",
+ "middle_string",
+ "middle_string_empty",
+ "middle_numeric",
+ "middle_boolean",
+ "ipv4",
+ "email"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TemplateConstant.json b/test/schemas/llm/type/TemplateConstant.json
new file mode 100644
index 0000000000..04ecd5f5b9
--- /dev/null
+++ b/test/schemas/llm/type/TemplateConstant.json
@@ -0,0 +1,53 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "prefix": {
+ "type": "string",
+ "enum": [
+ "prefix_A",
+ "prefix_B",
+ "prefix_C"
+ ]
+ },
+ "postfix": {
+ "type": "string",
+ "enum": [
+ "1_postfix",
+ "2_postfix",
+ "3_postfix"
+ ]
+ },
+ "combined": {
+ "type": "string",
+ "enum": [
+ "the_1_value_with_label_A",
+ "the_1_value_with_label_B",
+ "the_1_value_with_label_C",
+ "the_2_value_with_label_A",
+ "the_2_value_with_label_B",
+ "the_2_value_with_label_C",
+ "the_3_value_with_label_A",
+ "the_3_value_with_label_B",
+ "the_3_value_with_label_C"
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "prefix",
+ "postfix",
+ "combined"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TemplateUnion.json b/test/schemas/llm/type/TemplateUnion.json
new file mode 100644
index 0000000000..1e15748859
--- /dev/null
+++ b/test/schemas/llm/type/TemplateUnion.json
@@ -0,0 +1,80 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "prefix": {
+ "type": "string",
+ "pattern": "^((prefix_(.*))|(prefix_[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?))$"
+ },
+ "postfix": {
+ "type": "string",
+ "pattern": "(((.*)_postfix)|([+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?_postfix))$"
+ },
+ "middle": {
+ "oneOf": [
+ {
+ "type": "string",
+ "pattern": "^(the_[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?_value)$"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "the_false_value",
+ "the_true_value"
+ ]
+ }
+ ]
+ },
+ "mixed": {
+ "oneOf": [
+ {
+ "type": "string",
+ "pattern": "^(the_[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?_value)$"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "the_A_value",
+ "the_B_value"
+ ]
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "name"
+ ]
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "prefix",
+ "postfix",
+ "middle",
+ "mixed"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ToJsonArray.json b/test/schemas/llm/type/ToJsonArray.json
new file mode 100644
index 0000000000..37a1378c03
--- /dev/null
+++ b/test/schemas/llm/type/ToJsonArray.json
@@ -0,0 +1,42 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "boolean"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id"
+ ]
+ }
+ }
+ ]
+ },
+ "minItems": 4,
+ "maxItems": 4
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ToJsonAtomicSimple.json b/test/schemas/llm/type/ToJsonAtomicSimple.json
new file mode 100644
index 0000000000..a9dc150cdd
--- /dev/null
+++ b/test/schemas/llm/type/ToJsonAtomicSimple.json
@@ -0,0 +1,18 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ToJsonAtomicUnion.json b/test/schemas/llm/type/ToJsonAtomicUnion.json
new file mode 100644
index 0000000000..2aaa26775b
--- /dev/null
+++ b/test/schemas/llm/type/ToJsonAtomicUnion.json
@@ -0,0 +1,19 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string",
+ "nullable": true
+ },
+ {
+ "type": "number",
+ "nullable": true
+ },
+ {
+ "type": "boolean",
+ "nullable": true
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ToJsonDouble.json b/test/schemas/llm/type/ToJsonDouble.json
new file mode 100644
index 0000000000..c96a5c12b6
--- /dev/null
+++ b/test/schemas/llm/type/ToJsonDouble.json
@@ -0,0 +1,16 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "flag": {
+ "type": "boolean"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "flag"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ToJsonNull.json b/test/schemas/llm/type/ToJsonNull.json
new file mode 100644
index 0000000000..743b3af495
--- /dev/null
+++ b/test/schemas/llm/type/ToJsonNull.json
@@ -0,0 +1,3 @@
+{
+ "type": "null"
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ToJsonTuple.json b/test/schemas/llm/type/ToJsonTuple.json
new file mode 100644
index 0000000000..0018d1d01f
--- /dev/null
+++ b/test/schemas/llm/type/ToJsonTuple.json
@@ -0,0 +1,34 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "code",
+ "name"
+ ]
+ }
+ ]
+ },
+ "minItems": 4,
+ "maxItems": 4
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/ToJsonUnion.json b/test/schemas/llm/type/ToJsonUnion.json
new file mode 100644
index 0000000000..94faf372a3
--- /dev/null
+++ b/test/schemas/llm/type/ToJsonUnion.json
@@ -0,0 +1,76 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "mobile": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "mobile",
+ "name"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "manufacturer": {
+ "type": "string"
+ },
+ "brand": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "manufacturer",
+ "brand",
+ "name"
+ ]
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "mobile": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "mobile",
+ "name"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TupleHierarchical.json b/test/schemas/llm/type/TupleHierarchical.json
new file mode 100644
index 0000000000..1c3b3258e8
--- /dev/null
+++ b/test/schemas/llm/type/TupleHierarchical.json
@@ -0,0 +1,120 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean",
+ "nullable": true
+ },
+ {
+ "type": "number",
+ "nullable": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean",
+ "nullable": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 2,
+ "maxItems": 2
+ }
+ ]
+ },
+ "minItems": 2,
+ "maxItems": 2,
+ "nullable": true
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3,
+ "nullable": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 2,
+ "maxItems": 2
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+ }
+ }
+ ]
+ },
+ "minItems": 3,
+ "maxItems": 3
+ }
+ }
+ ]
+ },
+ "minItems": 2,
+ "maxItems": 2,
+ "nullable": true
+ }
+ ]
+ },
+ "minItems": 5,
+ "maxItems": 5
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TupleRestArray.json b/test/schemas/llm/type/TupleRestArray.json
new file mode 100644
index 0000000000..98b9dcf82e
--- /dev/null
+++ b/test/schemas/llm/type/TupleRestArray.json
@@ -0,0 +1,20 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "minItems": 2
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TupleRestAtomic.json b/test/schemas/llm/type/TupleRestAtomic.json
new file mode 100644
index 0000000000..e0857629a7
--- /dev/null
+++ b/test/schemas/llm/type/TupleRestAtomic.json
@@ -0,0 +1,17 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "minItems": 2
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TupleRestObject.json b/test/schemas/llm/type/TupleRestObject.json
new file mode 100644
index 0000000000..8f43262fe7
--- /dev/null
+++ b/test/schemas/llm/type/TupleRestObject.json
@@ -0,0 +1,26 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ ]
+ },
+ "minItems": 2
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagArray.json b/test/schemas/llm/type/TypeTagArray.json
new file mode 100644
index 0000000000..5a29b02321
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagArray.json
@@ -0,0 +1,68 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "minItems": 3,
+ "maxItems": 3
+ },
+ "minItems": {
+ "type": "array",
+ "items": {
+ "type": "number",
+ "minimum": 3
+ },
+ "minItems": 3
+ },
+ "both": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "minItems": 3,
+ "maxItems": 7
+ },
+ "equal": {
+ "type": "array",
+ "items": {
+ "type": "number",
+ "minimum": 10,
+ "maximum": 10
+ },
+ "minItems": 10,
+ "maxItems": 10
+ },
+ "unique": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ },
+ "nullable": false,
+ "required": [
+ "items",
+ "minItems",
+ "both",
+ "equal",
+ "unique"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagArrayUnion.json b/test/schemas/llm/type/TypeTagArrayUnion.json
new file mode 100644
index 0000000000..1d48a385b5
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagArrayUnion.json
@@ -0,0 +1,57 @@
+{
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "minItems": 3,
+ "maxItems": 3
+ },
+ "minItems": {
+ "type": "array",
+ "items": {
+ "type": "number",
+ "minimum": 3
+ },
+ "minItems": 3
+ },
+ "maxItems": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string",
+ "maxLength": 7
+ },
+ {
+ "type": "number",
+ "maximum": 7
+ }
+ ]
+ },
+ "maxItems": 7
+ },
+ "both": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "minItems": 3,
+ "maxItems": 7
+ }
+ },
+ "nullable": false,
+ "required": [
+ "items",
+ "minItems",
+ "maxItems",
+ "both"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagAtomicUnion.json b/test/schemas/llm/type/TypeTagAtomicUnion.json
new file mode 100644
index 0000000000..3cc9923e85
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagAtomicUnion.json
@@ -0,0 +1,34 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "oneOf": [
+ {
+ "type": "string",
+ "minLength": 3,
+ "maxLength": 7
+ },
+ {
+ "type": "number",
+ "minimum": 3
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagCustom.json b/test/schemas/llm/type/TypeTagCustom.json
new file mode 100644
index 0000000000..0664ad68ca
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagCustom.json
@@ -0,0 +1,28 @@
+{
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "dollar": {
+ "type": "string",
+ "x-typia-monetary": "dollar"
+ },
+ "postfix": {
+ "type": "string",
+ "x-typia-postfix": "abcd"
+ },
+ "powerOf": {
+ "type": "number",
+ "x-typia-powerOf": 2
+ }
+ },
+ "nullable": false,
+ "required": [
+ "id",
+ "dollar",
+ "postfix",
+ "powerOf"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagDefault.json b/test/schemas/llm/type/TypeTagDefault.json
new file mode 100644
index 0000000000..692ede47df
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagDefault.json
@@ -0,0 +1,107 @@
+{
+ "type": "object",
+ "properties": {
+ "boolean": {
+ "type": "boolean",
+ "default": false
+ },
+ "number": {
+ "type": "number",
+ "default": 1
+ },
+ "string": {
+ "type": "string",
+ "default": "two"
+ },
+ "text": {
+ "type": "string",
+ "default": "Very long text, can you understand it?"
+ },
+ "boolean_and_number_and_string": {
+ "oneOf": [
+ {
+ "type": "number",
+ "default": 1
+ },
+ {
+ "type": "string",
+ "default": "two"
+ },
+ {
+ "type": "boolean",
+ "default": false
+ }
+ ]
+ },
+ "union_but_boolean": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean",
+ "default": false
+ }
+ ]
+ },
+ "union_but_number": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number",
+ "default": 1
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "union_but_string": {
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string",
+ "default": "two"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "boolean_and_number_and_template": {
+ "oneOf": [
+ {
+ "type": "string",
+ "pattern": "^(prefix_(.*))"
+ },
+ {
+ "type": "number",
+ "default": 2
+ },
+ {
+ "type": "boolean",
+ "default": false
+ }
+ ]
+ }
+ },
+ "nullable": false,
+ "required": [
+ "boolean",
+ "number",
+ "string",
+ "text",
+ "boolean_and_number_and_string",
+ "union_but_boolean",
+ "union_but_number",
+ "union_but_string",
+ "boolean_and_number_and_template"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagFormat.json b/test/schemas/llm/type/TypeTagFormat.json
new file mode 100644
index 0000000000..f306d185b7
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagFormat.json
@@ -0,0 +1,118 @@
+{
+ "type": "object",
+ "properties": {
+ "byte": {
+ "type": "string",
+ "format": "byte"
+ },
+ "password": {
+ "type": "string",
+ "format": "password"
+ },
+ "regex": {
+ "type": "string",
+ "format": "regex"
+ },
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "hostname": {
+ "type": "string",
+ "format": "hostname"
+ },
+ "idnEmail": {
+ "type": "string",
+ "format": "idn-email"
+ },
+ "idnHostname": {
+ "type": "string",
+ "format": "idn-hostname"
+ },
+ "iri": {
+ "type": "string",
+ "format": "iri"
+ },
+ "iriReference": {
+ "type": "string",
+ "format": "iri-reference"
+ },
+ "ipv4": {
+ "type": "string",
+ "format": "ipv4"
+ },
+ "ipv6": {
+ "type": "string",
+ "format": "ipv6"
+ },
+ "uri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "uriReference": {
+ "type": "string",
+ "format": "uri-reference"
+ },
+ "uriTemplate": {
+ "type": "string",
+ "format": "uri-template"
+ },
+ "url": {
+ "type": "string",
+ "format": "url"
+ },
+ "datetime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "date": {
+ "type": "string",
+ "format": "date"
+ },
+ "time": {
+ "type": "string",
+ "format": "time"
+ },
+ "duration": {
+ "type": "string",
+ "format": "duration"
+ },
+ "jsonPointer": {
+ "type": "string",
+ "format": "json-pointer"
+ },
+ "relativeJsonPointer": {
+ "type": "string",
+ "format": "relative-json-pointer"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "byte",
+ "password",
+ "regex",
+ "uuid",
+ "email",
+ "hostname",
+ "idnEmail",
+ "idnHostname",
+ "iri",
+ "iriReference",
+ "ipv4",
+ "ipv6",
+ "uri",
+ "uriReference",
+ "uriTemplate",
+ "url",
+ "datetime",
+ "date",
+ "time",
+ "duration",
+ "jsonPointer",
+ "relativeJsonPointer"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagLength.json b/test/schemas/llm/type/TypeTagLength.json
new file mode 100644
index 0000000000..b6456ad2ee
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagLength.json
@@ -0,0 +1,48 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "fixed": {
+ "type": "string",
+ "minLength": 5,
+ "maxLength": 5
+ },
+ "minimum": {
+ "type": "string",
+ "minLength": 3
+ },
+ "maximum": {
+ "type": "string",
+ "maxLength": 7
+ },
+ "minimum_and_maximum": {
+ "type": "string",
+ "minLength": 3,
+ "maxLength": 7
+ },
+ "equal": {
+ "type": "string",
+ "minLength": 10,
+ "maxLength": 19
+ }
+ },
+ "nullable": false,
+ "required": [
+ "fixed",
+ "minimum",
+ "maximum",
+ "minimum_and_maximum",
+ "equal"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagMatrix.json b/test/schemas/llm/type/TypeTagMatrix.json
new file mode 100644
index 0000000000..be382592e4
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagMatrix.json
@@ -0,0 +1,23 @@
+{
+ "type": "object",
+ "properties": {
+ "matrix": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "minItems": 4,
+ "maxItems": 4
+ },
+ "minItems": 3,
+ "maxItems": 3
+ }
+ },
+ "nullable": false,
+ "required": [
+ "matrix"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagObjectUnion.json b/test/schemas/llm/type/TypeTagObjectUnion.json
new file mode 100644
index 0000000000..02727a6a63
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagObjectUnion.json
@@ -0,0 +1,34 @@
+{
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "minimum": 3
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string",
+ "minLength": 3,
+ "maxLength": 7
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagPattern.json b/test/schemas/llm/type/TypeTagPattern.json
new file mode 100644
index 0000000000..9411000ad9
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagPattern.json
@@ -0,0 +1,28 @@
+{
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "pattern": "^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$"
+ },
+ "email": {
+ "type": "string",
+ "pattern": "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
+ },
+ "ipv4": {
+ "type": "string",
+ "pattern": "^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
+ },
+ "ipv6": {
+ "type": "string",
+ "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "uuid",
+ "email",
+ "ipv4",
+ "ipv6"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagRange.json b/test/schemas/llm/type/TypeTagRange.json
new file mode 100644
index 0000000000..d026ba955e
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagRange.json
@@ -0,0 +1,76 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "greater": {
+ "type": "integer",
+ "exclusiveMinimum": true,
+ "minimum": 3
+ },
+ "greater_equal": {
+ "type": "integer",
+ "minimum": 3
+ },
+ "less": {
+ "type": "integer",
+ "exclusiveMaximum": true,
+ "maximum": 7
+ },
+ "less_equal": {
+ "type": "integer",
+ "maximum": 7
+ },
+ "greater_less": {
+ "type": "integer",
+ "exclusiveMinimum": true,
+ "minimum": 3,
+ "exclusiveMaximum": true,
+ "maximum": 7
+ },
+ "greater_equal_less": {
+ "type": "integer",
+ "minimum": 3,
+ "exclusiveMaximum": true,
+ "maximum": 7
+ },
+ "greater_less_equal": {
+ "type": "integer",
+ "exclusiveMinimum": true,
+ "minimum": 3,
+ "maximum": 7
+ },
+ "greater_equal_less_equal": {
+ "type": "integer",
+ "minimum": 3,
+ "maximum": 7
+ },
+ "equal": {
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 10
+ }
+ },
+ "nullable": false,
+ "required": [
+ "greater",
+ "greater_equal",
+ "less",
+ "less_equal",
+ "greater_less",
+ "greater_equal_less",
+ "greater_less_equal",
+ "greater_equal_less_equal",
+ "equal"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagTuple.json b/test/schemas/llm/type/TypeTagTuple.json
new file mode 100644
index 0000000000..a96c4a967f
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagTuple.json
@@ -0,0 +1,48 @@
+{
+ "type": "object",
+ "properties": {
+ "tuple": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "string",
+ "minLength": 3,
+ "maxLength": 7
+ },
+ {
+ "type": "number",
+ "minimum": 3,
+ "maximum": 7
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 2
+ },
+ "minItems": 3,
+ "maxItems": 7
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 2
+ },
+ "minItems": 3,
+ "maxItems": 7
+ }
+ ]
+ },
+ "minItems": 4,
+ "maxItems": 4
+ }
+ },
+ "nullable": false,
+ "required": [
+ "tuple"
+ ]
+}
\ No newline at end of file
diff --git a/test/schemas/llm/type/TypeTagType.json b/test/schemas/llm/type/TypeTagType.json
new file mode 100644
index 0000000000..3c7b4fdd2a
--- /dev/null
+++ b/test/schemas/llm/type/TypeTagType.json
@@ -0,0 +1,48 @@
+{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "int": {
+ "type": "integer"
+ },
+ "uint": {
+ "type": "integer"
+ },
+ "int32": {
+ "type": "integer"
+ },
+ "uint32": {
+ "type": "integer"
+ },
+ "int64": {
+ "type": "integer"
+ },
+ "uint64": {
+ "type": "integer"
+ },
+ "float": {
+ "type": "number"
+ }
+ },
+ "nullable": false,
+ "required": [
+ "int",
+ "uint",
+ "int32",
+ "uint32",
+ "int64",
+ "uint64",
+ "float"
+ ]
+ }
+ }
+ },
+ "nullable": false,
+ "required": [
+ "value"
+ ]
+}
\ No newline at end of file
diff --git a/test/src/features/llm.schema/test_llm_schema_ArrayAny.ts b/test/src/features/llm.schema/test_llm_schema_ArrayAny.ts
new file mode 100644
index 0000000000..a904bd1152
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArrayAny.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArrayAny } from "../../structures/ArrayAny";
+
+export const test_llm_schema_ArrayAny = _test_llm_schema("ArrayAny")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ArrayAtomicAlias.ts b/test/src/features/llm.schema/test_llm_schema_ArrayAtomicAlias.ts
new file mode 100644
index 0000000000..dcd41f135f
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArrayAtomicAlias.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArrayAtomicAlias } from "../../structures/ArrayAtomicAlias";
+
+export const test_llm_schema_ArrayAtomicAlias = _test_llm_schema(
+ "ArrayAtomicAlias",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ArrayAtomicSimple.ts b/test/src/features/llm.schema/test_llm_schema_ArrayAtomicSimple.ts
new file mode 100644
index 0000000000..bac8cdf2ca
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArrayAtomicSimple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArrayAtomicSimple } from "../../structures/ArrayAtomicSimple";
+
+export const test_llm_schema_ArrayAtomicSimple = _test_llm_schema(
+ "ArrayAtomicSimple",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ArrayHierarchical.ts b/test/src/features/llm.schema/test_llm_schema_ArrayHierarchical.ts
new file mode 100644
index 0000000000..269606153f
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArrayHierarchical.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArrayHierarchical } from "../../structures/ArrayHierarchical";
+
+export const test_llm_schema_ArrayHierarchical = _test_llm_schema(
+ "ArrayHierarchical",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ArrayHierarchicalPointer.ts b/test/src/features/llm.schema/test_llm_schema_ArrayHierarchicalPointer.ts
new file mode 100644
index 0000000000..bc7cbd62ec
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArrayHierarchicalPointer.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArrayHierarchicalPointer } from "../../structures/ArrayHierarchicalPointer";
+
+export const test_llm_schema_ArrayHierarchicalPointer = _test_llm_schema(
+ "ArrayHierarchicalPointer",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ArrayMatrix.ts b/test/src/features/llm.schema/test_llm_schema_ArrayMatrix.ts
new file mode 100644
index 0000000000..463998f627
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArrayMatrix.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArrayMatrix } from "../../structures/ArrayMatrix";
+
+export const test_llm_schema_ArrayMatrix = _test_llm_schema("ArrayMatrix")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ArraySimple.ts b/test/src/features/llm.schema/test_llm_schema_ArraySimple.ts
new file mode 100644
index 0000000000..03f5da4d36
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArraySimple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArraySimple } from "../../structures/ArraySimple";
+
+export const test_llm_schema_ArraySimple = _test_llm_schema("ArraySimple")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ArrayUnion.ts b/test/src/features/llm.schema/test_llm_schema_ArrayUnion.ts
new file mode 100644
index 0000000000..ff4482e315
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ArrayUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ArrayUnion } from "../../structures/ArrayUnion";
+
+export const test_llm_schema_ArrayUnion = _test_llm_schema("ArrayUnion")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_AtomicAlias.ts b/test/src/features/llm.schema/test_llm_schema_AtomicAlias.ts
new file mode 100644
index 0000000000..611950de34
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_AtomicAlias.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { AtomicAlias } from "../../structures/AtomicAlias";
+
+export const test_llm_schema_AtomicAlias = _test_llm_schema("AtomicAlias")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_AtomicClass.ts b/test/src/features/llm.schema/test_llm_schema_AtomicClass.ts
new file mode 100644
index 0000000000..9dc662d8ed
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_AtomicClass.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { AtomicClass } from "../../structures/AtomicClass";
+
+export const test_llm_schema_AtomicClass = _test_llm_schema("AtomicClass")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_AtomicIntersection.ts b/test/src/features/llm.schema/test_llm_schema_AtomicIntersection.ts
new file mode 100644
index 0000000000..47e6577483
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_AtomicIntersection.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { AtomicIntersection } from "../../structures/AtomicIntersection";
+
+export const test_llm_schema_AtomicIntersection = _test_llm_schema(
+ "AtomicIntersection",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_AtomicSimple.ts b/test/src/features/llm.schema/test_llm_schema_AtomicSimple.ts
new file mode 100644
index 0000000000..2053c72f45
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_AtomicSimple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { AtomicSimple } from "../../structures/AtomicSimple";
+
+export const test_llm_schema_AtomicSimple = _test_llm_schema("AtomicSimple")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_AtomicUnion.ts b/test/src/features/llm.schema/test_llm_schema_AtomicUnion.ts
new file mode 100644
index 0000000000..26e29cfbdb
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_AtomicUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { AtomicUnion } from "../../structures/AtomicUnion";
+
+export const test_llm_schema_AtomicUnion = _test_llm_schema("AtomicUnion")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ClassGetter.ts b/test/src/features/llm.schema/test_llm_schema_ClassGetter.ts
new file mode 100644
index 0000000000..b0b2446be3
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ClassGetter.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ClassGetter } from "../../structures/ClassGetter";
+
+export const test_llm_schema_ClassGetter = _test_llm_schema("ClassGetter")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ClassMethod.ts b/test/src/features/llm.schema/test_llm_schema_ClassMethod.ts
new file mode 100644
index 0000000000..db82f44c38
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ClassMethod.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ClassMethod } from "../../structures/ClassMethod";
+
+export const test_llm_schema_ClassMethod = _test_llm_schema("ClassMethod")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ClassPropertyAssignment.ts b/test/src/features/llm.schema/test_llm_schema_ClassPropertyAssignment.ts
new file mode 100644
index 0000000000..bc15f18035
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ClassPropertyAssignment.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ClassPropertyAssignment } from "../../structures/ClassPropertyAssignment";
+
+export const test_llm_schema_ClassPropertyAssignment = _test_llm_schema(
+ "ClassPropertyAssignment",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagArray.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagArray.ts
new file mode 100644
index 0000000000..0ae698de24
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagArray.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagArray } from "../../structures/CommentTagArray";
+
+export const test_llm_schema_CommentTagArray = _test_llm_schema(
+ "CommentTagArray",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagArrayUnion.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagArrayUnion.ts
new file mode 100644
index 0000000000..146f898ed9
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagArrayUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagArrayUnion } from "../../structures/CommentTagArrayUnion";
+
+export const test_llm_schema_CommentTagArrayUnion = _test_llm_schema(
+ "CommentTagArrayUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagAtomicUnion.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagAtomicUnion.ts
new file mode 100644
index 0000000000..2a3cd565d3
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagAtomicUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagAtomicUnion } from "../../structures/CommentTagAtomicUnion";
+
+export const test_llm_schema_CommentTagAtomicUnion = _test_llm_schema(
+ "CommentTagAtomicUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagDefault.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagDefault.ts
new file mode 100644
index 0000000000..dd7541881f
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagDefault.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagDefault } from "../../structures/CommentTagDefault";
+
+export const test_llm_schema_CommentTagDefault = _test_llm_schema(
+ "CommentTagDefault",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagFormat.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagFormat.ts
new file mode 100644
index 0000000000..655159b1ca
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagFormat.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagFormat } from "../../structures/CommentTagFormat";
+
+export const test_llm_schema_CommentTagFormat = _test_llm_schema(
+ "CommentTagFormat",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagLength.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagLength.ts
new file mode 100644
index 0000000000..02a7048d60
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagLength.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagLength } from "../../structures/CommentTagLength";
+
+export const test_llm_schema_CommentTagLength = _test_llm_schema(
+ "CommentTagLength",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagObjectUnion.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagObjectUnion.ts
new file mode 100644
index 0000000000..9f22cdce50
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagObjectUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagObjectUnion } from "../../structures/CommentTagObjectUnion";
+
+export const test_llm_schema_CommentTagObjectUnion = _test_llm_schema(
+ "CommentTagObjectUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagPattern.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagPattern.ts
new file mode 100644
index 0000000000..8b4c2da902
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagPattern.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagPattern } from "../../structures/CommentTagPattern";
+
+export const test_llm_schema_CommentTagPattern = _test_llm_schema(
+ "CommentTagPattern",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagRange.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagRange.ts
new file mode 100644
index 0000000000..392703d652
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagRange.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagRange } from "../../structures/CommentTagRange";
+
+export const test_llm_schema_CommentTagRange = _test_llm_schema(
+ "CommentTagRange",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_CommentTagType.ts b/test/src/features/llm.schema/test_llm_schema_CommentTagType.ts
new file mode 100644
index 0000000000..0259aa953c
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_CommentTagType.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { CommentTagType } from "../../structures/CommentTagType";
+
+export const test_llm_schema_CommentTagType = _test_llm_schema(
+ "CommentTagType",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantAtomicAbsorbed.ts b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicAbsorbed.ts
new file mode 100644
index 0000000000..12679944d2
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicAbsorbed.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantAtomicAbsorbed } from "../../structures/ConstantAtomicAbsorbed";
+
+export const test_llm_schema_ConstantAtomicAbsorbed = _test_llm_schema(
+ "ConstantAtomicAbsorbed",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantAtomicSimple.ts b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicSimple.ts
new file mode 100644
index 0000000000..0f6a3eeeb3
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicSimple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantAtomicSimple } from "../../structures/ConstantAtomicSimple";
+
+export const test_llm_schema_ConstantAtomicSimple = _test_llm_schema(
+ "ConstantAtomicSimple",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantAtomicTagged.ts b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicTagged.ts
new file mode 100644
index 0000000000..3d4ba71e6c
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicTagged.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantAtomicTagged } from "../../structures/ConstantAtomicTagged";
+
+export const test_llm_schema_ConstantAtomicTagged = _test_llm_schema(
+ "ConstantAtomicTagged",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantAtomicUnion.ts b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicUnion.ts
new file mode 100644
index 0000000000..64130e4ad0
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantAtomicUnion } from "../../structures/ConstantAtomicUnion";
+
+export const test_llm_schema_ConstantAtomicUnion = _test_llm_schema(
+ "ConstantAtomicUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantAtomicWrapper.ts b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicWrapper.ts
new file mode 100644
index 0000000000..4b984fb9ea
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantAtomicWrapper.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantAtomicWrapper } from "../../structures/ConstantAtomicWrapper";
+
+export const test_llm_schema_ConstantAtomicWrapper = _test_llm_schema(
+ "ConstantAtomicWrapper",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantConstEnumeration.ts b/test/src/features/llm.schema/test_llm_schema_ConstantConstEnumeration.ts
new file mode 100644
index 0000000000..4afd55f92d
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantConstEnumeration.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantConstEnumeration } from "../../structures/ConstantConstEnumeration";
+
+export const test_llm_schema_ConstantConstEnumeration = _test_llm_schema(
+ "ConstantConstEnumeration",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantEnumeration.ts b/test/src/features/llm.schema/test_llm_schema_ConstantEnumeration.ts
new file mode 100644
index 0000000000..8b5de65645
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantEnumeration.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantEnumeration } from "../../structures/ConstantEnumeration";
+
+export const test_llm_schema_ConstantEnumeration = _test_llm_schema(
+ "ConstantEnumeration",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ConstantIntersection.ts b/test/src/features/llm.schema/test_llm_schema_ConstantIntersection.ts
new file mode 100644
index 0000000000..a03a82d0ee
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ConstantIntersection.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ConstantIntersection } from "../../structures/ConstantIntersection";
+
+export const test_llm_schema_ConstantIntersection = _test_llm_schema(
+ "ConstantIntersection",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicArray.ts b/test/src/features/llm.schema/test_llm_schema_DynamicArray.ts
new file mode 100644
index 0000000000..e94a4d67ad
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicArray.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicArray } from "../../structures/DynamicArray";
+
+export const test_llm_schema_DynamicArray = _test_llm_schema("DynamicArray")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicComposite.ts b/test/src/features/llm.schema/test_llm_schema_DynamicComposite.ts
new file mode 100644
index 0000000000..1e233acd94
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicComposite.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicComposite } from "../../structures/DynamicComposite";
+
+export const test_llm_schema_DynamicComposite = _test_llm_schema(
+ "DynamicComposite",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicConstant.ts b/test/src/features/llm.schema/test_llm_schema_DynamicConstant.ts
new file mode 100644
index 0000000000..0ed4341574
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicConstant.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicConstant } from "../../structures/DynamicConstant";
+
+export const test_llm_schema_DynamicConstant = _test_llm_schema(
+ "DynamicConstant",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicEnumeration.ts b/test/src/features/llm.schema/test_llm_schema_DynamicEnumeration.ts
new file mode 100644
index 0000000000..ae0746504b
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicEnumeration.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicEnumeration } from "../../structures/DynamicEnumeration";
+
+export const test_llm_schema_DynamicEnumeration = _test_llm_schema(
+ "DynamicEnumeration",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicNever.ts b/test/src/features/llm.schema/test_llm_schema_DynamicNever.ts
new file mode 100644
index 0000000000..a8aeea93fb
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicNever.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicNever } from "../../structures/DynamicNever";
+
+export const test_llm_schema_DynamicNever = _test_llm_schema("DynamicNever")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicSimple.ts b/test/src/features/llm.schema/test_llm_schema_DynamicSimple.ts
new file mode 100644
index 0000000000..61e2e29e90
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicSimple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicSimple } from "../../structures/DynamicSimple";
+
+export const test_llm_schema_DynamicSimple = _test_llm_schema("DynamicSimple")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicTemplate.ts b/test/src/features/llm.schema/test_llm_schema_DynamicTemplate.ts
new file mode 100644
index 0000000000..4fe621d1ca
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicTemplate.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicTemplate } from "../../structures/DynamicTemplate";
+
+export const test_llm_schema_DynamicTemplate = _test_llm_schema(
+ "DynamicTemplate",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicUndefined.ts b/test/src/features/llm.schema/test_llm_schema_DynamicUndefined.ts
new file mode 100644
index 0000000000..e959c5e401
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicUndefined.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicUndefined } from "../../structures/DynamicUndefined";
+
+export const test_llm_schema_DynamicUndefined = _test_llm_schema(
+ "DynamicUndefined",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_DynamicUnion.ts b/test/src/features/llm.schema/test_llm_schema_DynamicUnion.ts
new file mode 100644
index 0000000000..19c71f9c35
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_DynamicUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { DynamicUnion } from "../../structures/DynamicUnion";
+
+export const test_llm_schema_DynamicUnion = _test_llm_schema("DynamicUnion")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectAlias.ts b/test/src/features/llm.schema/test_llm_schema_ObjectAlias.ts
new file mode 100644
index 0000000000..205c82de72
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectAlias.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectAlias } from "../../structures/ObjectAlias";
+
+export const test_llm_schema_ObjectAlias = _test_llm_schema("ObjectAlias")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectDate.ts b/test/src/features/llm.schema/test_llm_schema_ObjectDate.ts
new file mode 100644
index 0000000000..75dbe54dc6
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectDate.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectDate } from "../../structures/ObjectDate";
+
+export const test_llm_schema_ObjectDate = _test_llm_schema("ObjectDate")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectDescription.ts b/test/src/features/llm.schema/test_llm_schema_ObjectDescription.ts
new file mode 100644
index 0000000000..c898d096b5
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectDescription.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectDescription } from "../../structures/ObjectDescription";
+
+export const test_llm_schema_ObjectDescription = _test_llm_schema(
+ "ObjectDescription",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectDynamic.ts b/test/src/features/llm.schema/test_llm_schema_ObjectDynamic.ts
new file mode 100644
index 0000000000..9340768a4a
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectDynamic.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectDynamic } from "../../structures/ObjectDynamic";
+
+export const test_llm_schema_ObjectDynamic = _test_llm_schema("ObjectDynamic")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectGeneric.ts b/test/src/features/llm.schema/test_llm_schema_ObjectGeneric.ts
new file mode 100644
index 0000000000..3fc191c257
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectGeneric.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectGeneric } from "../../structures/ObjectGeneric";
+
+export const test_llm_schema_ObjectGeneric = _test_llm_schema("ObjectGeneric")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectGenericAlias.ts b/test/src/features/llm.schema/test_llm_schema_ObjectGenericAlias.ts
new file mode 100644
index 0000000000..276389d697
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectGenericAlias.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectGenericAlias } from "../../structures/ObjectGenericAlias";
+
+export const test_llm_schema_ObjectGenericAlias = _test_llm_schema(
+ "ObjectGenericAlias",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectGenericArray.ts b/test/src/features/llm.schema/test_llm_schema_ObjectGenericArray.ts
new file mode 100644
index 0000000000..d993a03da3
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectGenericArray.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectGenericArray } from "../../structures/ObjectGenericArray";
+
+export const test_llm_schema_ObjectGenericArray = _test_llm_schema(
+ "ObjectGenericArray",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectGenericUnion.ts b/test/src/features/llm.schema/test_llm_schema_ObjectGenericUnion.ts
new file mode 100644
index 0000000000..dfdd28861f
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectGenericUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectGenericUnion } from "../../structures/ObjectGenericUnion";
+
+export const test_llm_schema_ObjectGenericUnion = _test_llm_schema(
+ "ObjectGenericUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectHierarchical.ts b/test/src/features/llm.schema/test_llm_schema_ObjectHierarchical.ts
new file mode 100644
index 0000000000..12bea708c0
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectHierarchical.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectHierarchical } from "../../structures/ObjectHierarchical";
+
+export const test_llm_schema_ObjectHierarchical = _test_llm_schema(
+ "ObjectHierarchical",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectInternal.ts b/test/src/features/llm.schema/test_llm_schema_ObjectInternal.ts
new file mode 100644
index 0000000000..636b92cdcd
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectInternal.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectInternal } from "../../structures/ObjectInternal";
+
+export const test_llm_schema_ObjectInternal = _test_llm_schema(
+ "ObjectInternal",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectIntersection.ts b/test/src/features/llm.schema/test_llm_schema_ObjectIntersection.ts
new file mode 100644
index 0000000000..fc132e8172
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectIntersection.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectIntersection } from "../../structures/ObjectIntersection";
+
+export const test_llm_schema_ObjectIntersection = _test_llm_schema(
+ "ObjectIntersection",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectJsonTag.ts b/test/src/features/llm.schema/test_llm_schema_ObjectJsonTag.ts
new file mode 100644
index 0000000000..8d79e2ae22
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectJsonTag.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectJsonTag } from "../../structures/ObjectJsonTag";
+
+export const test_llm_schema_ObjectJsonTag = _test_llm_schema("ObjectJsonTag")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectLiteralProperty.ts b/test/src/features/llm.schema/test_llm_schema_ObjectLiteralProperty.ts
new file mode 100644
index 0000000000..db74429636
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectLiteralProperty.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectLiteralProperty } from "../../structures/ObjectLiteralProperty";
+
+export const test_llm_schema_ObjectLiteralProperty = _test_llm_schema(
+ "ObjectLiteralProperty",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectLiteralType.ts b/test/src/features/llm.schema/test_llm_schema_ObjectLiteralType.ts
new file mode 100644
index 0000000000..7a98bf9887
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectLiteralType.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectLiteralType } from "../../structures/ObjectLiteralType";
+
+export const test_llm_schema_ObjectLiteralType = _test_llm_schema(
+ "ObjectLiteralType",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectNullable.ts b/test/src/features/llm.schema/test_llm_schema_ObjectNullable.ts
new file mode 100644
index 0000000000..39af55c3fc
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectNullable.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectNullable } from "../../structures/ObjectNullable";
+
+export const test_llm_schema_ObjectNullable = _test_llm_schema(
+ "ObjectNullable",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectOptional.ts b/test/src/features/llm.schema/test_llm_schema_ObjectOptional.ts
new file mode 100644
index 0000000000..f897bc4c8d
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectOptional.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectOptional } from "../../structures/ObjectOptional";
+
+export const test_llm_schema_ObjectOptional = _test_llm_schema(
+ "ObjectOptional",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectPrimitive.ts b/test/src/features/llm.schema/test_llm_schema_ObjectPrimitive.ts
new file mode 100644
index 0000000000..3f7e4489d6
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectPrimitive.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectPrimitive } from "../../structures/ObjectPrimitive";
+
+export const test_llm_schema_ObjectPrimitive = _test_llm_schema(
+ "ObjectPrimitive",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectPropertyNullable.ts b/test/src/features/llm.schema/test_llm_schema_ObjectPropertyNullable.ts
new file mode 100644
index 0000000000..38953c03c0
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectPropertyNullable.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectPropertyNullable } from "../../structures/ObjectPropertyNullable";
+
+export const test_llm_schema_ObjectPropertyNullable = _test_llm_schema(
+ "ObjectPropertyNullable",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectSimple.ts b/test/src/features/llm.schema/test_llm_schema_ObjectSimple.ts
new file mode 100644
index 0000000000..13449e9ba7
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectSimple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectSimple } from "../../structures/ObjectSimple";
+
+export const test_llm_schema_ObjectSimple = _test_llm_schema("ObjectSimple")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectTuple.ts b/test/src/features/llm.schema/test_llm_schema_ObjectTuple.ts
new file mode 100644
index 0000000000..f0a3685e35
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectTuple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectTuple } from "../../structures/ObjectTuple";
+
+export const test_llm_schema_ObjectTuple = _test_llm_schema("ObjectTuple")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUndefined.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUndefined.ts
new file mode 100644
index 0000000000..6aa8908a4f
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUndefined.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUndefined } from "../../structures/ObjectUndefined";
+
+export const test_llm_schema_ObjectUndefined = _test_llm_schema(
+ "ObjectUndefined",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUnionComposite.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUnionComposite.ts
new file mode 100644
index 0000000000..07ec62c6ce
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUnionComposite.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUnionComposite } from "../../structures/ObjectUnionComposite";
+
+export const test_llm_schema_ObjectUnionComposite = _test_llm_schema(
+ "ObjectUnionComposite",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUnionCompositePointer.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUnionCompositePointer.ts
new file mode 100644
index 0000000000..b8805dc304
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUnionCompositePointer.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUnionCompositePointer } from "../../structures/ObjectUnionCompositePointer";
+
+export const test_llm_schema_ObjectUnionCompositePointer = _test_llm_schema(
+ "ObjectUnionCompositePointer",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUnionDouble.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUnionDouble.ts
new file mode 100644
index 0000000000..8f0c340a46
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUnionDouble.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUnionDouble } from "../../structures/ObjectUnionDouble";
+
+export const test_llm_schema_ObjectUnionDouble = _test_llm_schema(
+ "ObjectUnionDouble",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicit.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicit.ts
new file mode 100644
index 0000000000..fc65826006
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicit.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUnionExplicit } from "../../structures/ObjectUnionExplicit";
+
+export const test_llm_schema_ObjectUnionExplicit = _test_llm_schema(
+ "ObjectUnionExplicit",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicitPointer.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicitPointer.ts
new file mode 100644
index 0000000000..debdac1ab2
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUnionExplicitPointer.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUnionExplicitPointer } from "../../structures/ObjectUnionExplicitPointer";
+
+export const test_llm_schema_ObjectUnionExplicitPointer = _test_llm_schema(
+ "ObjectUnionExplicitPointer",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUnionImplicit.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUnionImplicit.ts
new file mode 100644
index 0000000000..ec7afa0e21
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUnionImplicit.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUnionImplicit } from "../../structures/ObjectUnionImplicit";
+
+export const test_llm_schema_ObjectUnionImplicit = _test_llm_schema(
+ "ObjectUnionImplicit",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ObjectUnionNonPredictable.ts b/test/src/features/llm.schema/test_llm_schema_ObjectUnionNonPredictable.ts
new file mode 100644
index 0000000000..b42b5fff51
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ObjectUnionNonPredictable.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ObjectUnionNonPredictable } from "../../structures/ObjectUnionNonPredictable";
+
+export const test_llm_schema_ObjectUnionNonPredictable = _test_llm_schema(
+ "ObjectUnionNonPredictable",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TemplateAtomic.ts b/test/src/features/llm.schema/test_llm_schema_TemplateAtomic.ts
new file mode 100644
index 0000000000..bb1015d44f
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TemplateAtomic.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TemplateAtomic } from "../../structures/TemplateAtomic";
+
+export const test_llm_schema_TemplateAtomic = _test_llm_schema(
+ "TemplateAtomic",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TemplateConstant.ts b/test/src/features/llm.schema/test_llm_schema_TemplateConstant.ts
new file mode 100644
index 0000000000..5e44a3bb24
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TemplateConstant.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TemplateConstant } from "../../structures/TemplateConstant";
+
+export const test_llm_schema_TemplateConstant = _test_llm_schema(
+ "TemplateConstant",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TemplateUnion.ts b/test/src/features/llm.schema/test_llm_schema_TemplateUnion.ts
new file mode 100644
index 0000000000..2e21b1fbf6
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TemplateUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TemplateUnion } from "../../structures/TemplateUnion";
+
+export const test_llm_schema_TemplateUnion = _test_llm_schema("TemplateUnion")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ToJsonArray.ts b/test/src/features/llm.schema/test_llm_schema_ToJsonArray.ts
new file mode 100644
index 0000000000..d4b44bd12e
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ToJsonArray.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ToJsonArray } from "../../structures/ToJsonArray";
+
+export const test_llm_schema_ToJsonArray = _test_llm_schema("ToJsonArray")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ToJsonAtomicSimple.ts b/test/src/features/llm.schema/test_llm_schema_ToJsonAtomicSimple.ts
new file mode 100644
index 0000000000..cae4764af0
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ToJsonAtomicSimple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ToJsonAtomicSimple } from "../../structures/ToJsonAtomicSimple";
+
+export const test_llm_schema_ToJsonAtomicSimple = _test_llm_schema(
+ "ToJsonAtomicSimple",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ToJsonAtomicUnion.ts b/test/src/features/llm.schema/test_llm_schema_ToJsonAtomicUnion.ts
new file mode 100644
index 0000000000..c30568a82c
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ToJsonAtomicUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ToJsonAtomicUnion } from "../../structures/ToJsonAtomicUnion";
+
+export const test_llm_schema_ToJsonAtomicUnion = _test_llm_schema(
+ "ToJsonAtomicUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_ToJsonDouble.ts b/test/src/features/llm.schema/test_llm_schema_ToJsonDouble.ts
new file mode 100644
index 0000000000..4bea2d320b
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ToJsonDouble.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ToJsonDouble } from "../../structures/ToJsonDouble";
+
+export const test_llm_schema_ToJsonDouble = _test_llm_schema("ToJsonDouble")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ToJsonNull.ts b/test/src/features/llm.schema/test_llm_schema_ToJsonNull.ts
new file mode 100644
index 0000000000..5d058cd379
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ToJsonNull.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ToJsonNull } from "../../structures/ToJsonNull";
+
+export const test_llm_schema_ToJsonNull = _test_llm_schema("ToJsonNull")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ToJsonTuple.ts b/test/src/features/llm.schema/test_llm_schema_ToJsonTuple.ts
new file mode 100644
index 0000000000..e3616eda27
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ToJsonTuple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ToJsonTuple } from "../../structures/ToJsonTuple";
+
+export const test_llm_schema_ToJsonTuple = _test_llm_schema("ToJsonTuple")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_ToJsonUnion.ts b/test/src/features/llm.schema/test_llm_schema_ToJsonUnion.ts
new file mode 100644
index 0000000000..61f32dd5f4
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_ToJsonUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { ToJsonUnion } from "../../structures/ToJsonUnion";
+
+export const test_llm_schema_ToJsonUnion = _test_llm_schema("ToJsonUnion")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TupleHierarchical.ts b/test/src/features/llm.schema/test_llm_schema_TupleHierarchical.ts
new file mode 100644
index 0000000000..aff57f6fa8
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TupleHierarchical.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TupleHierarchical } from "../../structures/TupleHierarchical";
+
+export const test_llm_schema_TupleHierarchical = _test_llm_schema(
+ "TupleHierarchical",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TupleRestArray.ts b/test/src/features/llm.schema/test_llm_schema_TupleRestArray.ts
new file mode 100644
index 0000000000..b6c5622836
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TupleRestArray.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TupleRestArray } from "../../structures/TupleRestArray";
+
+export const test_llm_schema_TupleRestArray = _test_llm_schema(
+ "TupleRestArray",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TupleRestAtomic.ts b/test/src/features/llm.schema/test_llm_schema_TupleRestAtomic.ts
new file mode 100644
index 0000000000..b72e4f0285
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TupleRestAtomic.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TupleRestAtomic } from "../../structures/TupleRestAtomic";
+
+export const test_llm_schema_TupleRestAtomic = _test_llm_schema(
+ "TupleRestAtomic",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TupleRestObject.ts b/test/src/features/llm.schema/test_llm_schema_TupleRestObject.ts
new file mode 100644
index 0000000000..f7ea113a4d
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TupleRestObject.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TupleRestObject } from "../../structures/TupleRestObject";
+
+export const test_llm_schema_TupleRestObject = _test_llm_schema(
+ "TupleRestObject",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagArray.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagArray.ts
new file mode 100644
index 0000000000..dfe1663ce3
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagArray.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagArray } from "../../structures/TypeTagArray";
+
+export const test_llm_schema_TypeTagArray = _test_llm_schema("TypeTagArray")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagArrayUnion.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagArrayUnion.ts
new file mode 100644
index 0000000000..1453494e1c
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagArrayUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagArrayUnion } from "../../structures/TypeTagArrayUnion";
+
+export const test_llm_schema_TypeTagArrayUnion = _test_llm_schema(
+ "TypeTagArrayUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagAtomicUnion.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagAtomicUnion.ts
new file mode 100644
index 0000000000..ebb7251e12
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagAtomicUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagAtomicUnion } from "../../structures/TypeTagAtomicUnion";
+
+export const test_llm_schema_TypeTagAtomicUnion = _test_llm_schema(
+ "TypeTagAtomicUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagCustom.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagCustom.ts
new file mode 100644
index 0000000000..c5ff33a23a
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagCustom.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagCustom } from "../../structures/TypeTagCustom";
+
+export const test_llm_schema_TypeTagCustom = _test_llm_schema("TypeTagCustom")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagDefault.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagDefault.ts
new file mode 100644
index 0000000000..3b760ef241
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagDefault.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagDefault } from "../../structures/TypeTagDefault";
+
+export const test_llm_schema_TypeTagDefault = _test_llm_schema(
+ "TypeTagDefault",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagFormat.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagFormat.ts
new file mode 100644
index 0000000000..1cc503fd34
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagFormat.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagFormat } from "../../structures/TypeTagFormat";
+
+export const test_llm_schema_TypeTagFormat = _test_llm_schema("TypeTagFormat")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagLength.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagLength.ts
new file mode 100644
index 0000000000..8a91a27ead
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagLength.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagLength } from "../../structures/TypeTagLength";
+
+export const test_llm_schema_TypeTagLength = _test_llm_schema("TypeTagLength")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagMatrix.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagMatrix.ts
new file mode 100644
index 0000000000..f1c8307cc5
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagMatrix.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagMatrix } from "../../structures/TypeTagMatrix";
+
+export const test_llm_schema_TypeTagMatrix = _test_llm_schema("TypeTagMatrix")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagObjectUnion.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagObjectUnion.ts
new file mode 100644
index 0000000000..896a977c05
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagObjectUnion.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagObjectUnion } from "../../structures/TypeTagObjectUnion";
+
+export const test_llm_schema_TypeTagObjectUnion = _test_llm_schema(
+ "TypeTagObjectUnion",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagPattern.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagPattern.ts
new file mode 100644
index 0000000000..be6156686c
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagPattern.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagPattern } from "../../structures/TypeTagPattern";
+
+export const test_llm_schema_TypeTagPattern = _test_llm_schema(
+ "TypeTagPattern",
+)(typia.llm.schema());
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagRange.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagRange.ts
new file mode 100644
index 0000000000..757e1e01c5
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagRange.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagRange } from "../../structures/TypeTagRange";
+
+export const test_llm_schema_TypeTagRange = _test_llm_schema("TypeTagRange")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagTuple.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagTuple.ts
new file mode 100644
index 0000000000..0dc0a05f44
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagTuple.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagTuple } from "../../structures/TypeTagTuple";
+
+export const test_llm_schema_TypeTagTuple = _test_llm_schema("TypeTagTuple")(
+ typia.llm.schema(),
+);
diff --git a/test/src/features/llm.schema/test_llm_schema_TypeTagType.ts b/test/src/features/llm.schema/test_llm_schema_TypeTagType.ts
new file mode 100644
index 0000000000..dd5b692998
--- /dev/null
+++ b/test/src/features/llm.schema/test_llm_schema_TypeTagType.ts
@@ -0,0 +1,8 @@
+import typia from "typia";
+
+import { _test_llm_schema } from "../../internal/_test_llm_schema";
+import { TypeTagType } from "../../structures/TypeTagType";
+
+export const test_llm_schema_TypeTagType = _test_llm_schema("TypeTagType")(
+ typia.llm.schema(),
+);
diff --git a/test/src/internal/_test_llm_schema.ts b/test/src/internal/_test_llm_schema.ts
new file mode 100644
index 0000000000..580bf08758
--- /dev/null
+++ b/test/src/internal/_test_llm_schema.ts
@@ -0,0 +1,35 @@
+import { ILlmSchema } from "@samchon/openapi";
+import fs from "fs";
+
+export const _test_llm_schema =
+ (name: string) =>
+ (expected: ILlmSchema): void => {
+ const actual: ILlmSchema = JSON.parse(
+ fs.readFileSync(
+ `${__dirname}/../../schemas/llm/type/${name}.json`,
+ "utf8",
+ ),
+ );
+ sort(expected);
+ sort(actual);
+ };
+
+function sort(app: ILlmSchema): void {
+ function object(elem: object) {
+ for (const value of Object.values(elem)) iterate(value);
+ }
+ function array(elem: Array) {
+ for (const v of elem) iterate(v);
+ elem.sort((x, y) => {
+ const alpha = JSON.stringify(x);
+ const beta = JSON.stringify(y);
+ return alpha < beta ? -1 : alpha === beta ? 0 : 1;
+ });
+ }
+ function iterate(elem: any) {
+ if (elem === null || elem === undefined) return;
+ else if (Array.isArray(elem)) array(elem);
+ else if (typeof elem === "object") object(elem);
+ }
+ iterate(app);
+}
diff --git a/test/src/structures/ArrayRecursive.ts b/test/src/structures/ArrayRecursive.ts
index 0108f20b50..e717f345b6 100644
--- a/test/src/structures/ArrayRecursive.ts
+++ b/test/src/structures/ArrayRecursive.ts
@@ -3,6 +3,8 @@ import { TestRandomGenerator } from "../helpers/TestRandomGenerator";
export type ArrayRecursive = ArrayRecursive.ICategory;
export namespace ArrayRecursive {
+ export const RECURSIVE = true;
+
export interface ICategory {
children: ICategory[];
id: number;
diff --git a/test/src/structures/ArrayRecursiveUnionExplicit.ts b/test/src/structures/ArrayRecursiveUnionExplicit.ts
index 78845315b8..7cb8c47ae6 100644
--- a/test/src/structures/ArrayRecursiveUnionExplicit.ts
+++ b/test/src/structures/ArrayRecursiveUnionExplicit.ts
@@ -3,6 +3,8 @@ import { TestRandomGenerator } from "../helpers/TestRandomGenerator";
export type ArrayRecursiveUnionExplicit = ArrayRecursiveUnionExplicit.IBucket[];
export namespace ArrayRecursiveUnionExplicit {
+ export const RECURSIVE = true;
+
export type IBucket =
| IDirectory
| IImageFile
diff --git a/test/src/structures/ArrayRecursiveUnionExplicitPointer.ts b/test/src/structures/ArrayRecursiveUnionExplicitPointer.ts
index 77b5f9498e..c944a43e67 100644
--- a/test/src/structures/ArrayRecursiveUnionExplicitPointer.ts
+++ b/test/src/structures/ArrayRecursiveUnionExplicitPointer.ts
@@ -6,6 +6,8 @@ export type ArrayRecursiveUnionExplicitPointer = IPointer<
ArrayRecursiveUnionExplicitPointer.IBucket[]
>;
export namespace ArrayRecursiveUnionExplicitPointer {
+ export const RECURSIVE = true;
+
export type IBucket = IPointer<
IDirectory | IImageFile | ITextFile | IZipFile | IShortcut
>;
diff --git a/test/src/structures/ArrayRecursiveUnionImplicit.ts b/test/src/structures/ArrayRecursiveUnionImplicit.ts
index 532b0ab834..a36e9263b5 100644
--- a/test/src/structures/ArrayRecursiveUnionImplicit.ts
+++ b/test/src/structures/ArrayRecursiveUnionImplicit.ts
@@ -3,6 +3,8 @@ import { TestRandomGenerator } from "../helpers/TestRandomGenerator";
export type ArrayRecursiveUnionImplicit = ArrayRecursiveUnionImplicit.IBucket[];
export namespace ArrayRecursiveUnionImplicit {
+ export const RECURSIVE = true;
+
export type IBucket =
| IDirectory
| ISharedDirectory
diff --git a/test/src/structures/ArrayRepeatedNullable.ts b/test/src/structures/ArrayRepeatedNullable.ts
index 5bc3e92a9c..cea6a2fed7 100644
--- a/test/src/structures/ArrayRepeatedNullable.ts
+++ b/test/src/structures/ArrayRepeatedNullable.ts
@@ -8,6 +8,8 @@ export type ArrayRepeatedNullable =
| string
| ArrayRepeatedNullable[];
export namespace ArrayRepeatedNullable {
+ export const RECURSIVE = true;
+
export function generate(): ArrayRepeatedNullable {
const random = typia.createRandom();
return [
diff --git a/test/src/structures/ArrayRepeatedOptional.ts b/test/src/structures/ArrayRepeatedOptional.ts
index ee83288885..0a9946942c 100644
--- a/test/src/structures/ArrayRepeatedOptional.ts
+++ b/test/src/structures/ArrayRepeatedOptional.ts
@@ -8,6 +8,8 @@ export type ArrayRepeatedOptional =
| string
| ArrayRepeatedOptional[];
export namespace ArrayRepeatedOptional {
+ export const RECURSIVE = true;
+
export function generate(): ArrayRepeatedOptional {
const random = typia.createRandom();
return [
diff --git a/test/src/structures/ArrayRepeatedRequired.ts b/test/src/structures/ArrayRepeatedRequired.ts
index d18bc8cdc6..f6713eed32 100644
--- a/test/src/structures/ArrayRepeatedRequired.ts
+++ b/test/src/structures/ArrayRepeatedRequired.ts
@@ -4,6 +4,8 @@ import { Spoiler } from "../helpers/Spoiler";
export type ArrayRepeatedRequired = number | string | ArrayRepeatedRequired[];
export namespace ArrayRepeatedRequired {
+ export const RECURSIVE = true;
+
export function generate(): ArrayRepeatedRequired {
const random = typia.createRandom();
return [
diff --git a/test/src/structures/ArrayRepeatedUnion.ts b/test/src/structures/ArrayRepeatedUnion.ts
index 440f0254c8..1692ce71cd 100644
--- a/test/src/structures/ArrayRepeatedUnion.ts
+++ b/test/src/structures/ArrayRepeatedUnion.ts
@@ -9,6 +9,8 @@ export type ArrayRepeatedUnion =
| ArrayRepeatedUnion[]
| ArrayRepeatedUnion.IBox3D[];
export namespace ArrayRepeatedUnion {
+ export const RECURSIVE = true;
+
export interface IBox3D {
scale: IPoint3D;
position: IPoint3D;
diff --git a/test/src/structures/ArrayRepeatedUnionWithTuple.ts b/test/src/structures/ArrayRepeatedUnionWithTuple.ts
index 2740657c3c..a1a9537238 100644
--- a/test/src/structures/ArrayRepeatedUnionWithTuple.ts
+++ b/test/src/structures/ArrayRepeatedUnionWithTuple.ts
@@ -11,6 +11,8 @@ export type ArrayRepeatedUnionWithTuple =
| [string, number, boolean]
| [ArrayRepeatedUnionWithTuple.IBox3D, ArrayRepeatedUnionWithTuple.IPoint3D];
export namespace ArrayRepeatedUnionWithTuple {
+ export const RECURSIVE = true;
+
export interface IBox3D {
scale: IPoint3D;
position: IPoint3D;
diff --git a/test/src/structures/DynamicTree.ts b/test/src/structures/DynamicTree.ts
index 8da6964b0b..786a7b4be5 100644
--- a/test/src/structures/DynamicTree.ts
+++ b/test/src/structures/DynamicTree.ts
@@ -10,6 +10,9 @@ export interface DynamicTree {
children: Record;
}
export namespace DynamicTree {
+ export const ADDABLE = false;
+ export const RECURSIVE = true;
+
export function generate(): DynamicTree {
return create(3, 1);
}
@@ -42,6 +45,4 @@ export namespace DynamicTree {
return [`$input.children["${top.id}"].children["${bottom.id}"].sequence`];
},
];
-
- export const ADDABLE = false;
}
diff --git a/test/src/structures/ObjectPartial.ts b/test/src/structures/ObjectPartial.ts
index c0ee7b0fa6..2d2ba6e7a3 100644
--- a/test/src/structures/ObjectPartial.ts
+++ b/test/src/structures/ObjectPartial.ts
@@ -2,6 +2,8 @@ import { Spoiler } from "../helpers/Spoiler";
export type ObjectPartial = Partial;
export namespace ObjectPartial {
+ export const RECURSIVE = true;
+
export interface IBase {
boolean: boolean;
number: number;
diff --git a/test/src/structures/ObjectPartialAndRequired.ts b/test/src/structures/ObjectPartialAndRequired.ts
index 0b0ba4aee2..dd94bfc521 100644
--- a/test/src/structures/ObjectPartialAndRequired.ts
+++ b/test/src/structures/ObjectPartialAndRequired.ts
@@ -6,6 +6,8 @@ export type ObjectPartialAndRequired = Pick<
> &
Required>;
export namespace ObjectPartialAndRequired {
+ export const RECURSIVE = true;
+
export interface IBase {
boolean: boolean;
number: number;
diff --git a/test/src/structures/ObjectRecursive.ts b/test/src/structures/ObjectRecursive.ts
index 93d0ab5516..9b1ef907e3 100644
--- a/test/src/structures/ObjectRecursive.ts
+++ b/test/src/structures/ObjectRecursive.ts
@@ -4,6 +4,7 @@ import { TestRandomGenerator } from "../helpers/TestRandomGenerator";
export type ObjectRecursive = ObjectRecursive.IDepartment;
export namespace ObjectRecursive {
export const BINARABLE = false;
+ export const RECURSIVE = true;
export interface IDepartment {
parent: IDepartment | null;
diff --git a/test/src/structures/ObjectRequired.ts b/test/src/structures/ObjectRequired.ts
index 5150976913..5c1b460d40 100644
--- a/test/src/structures/ObjectRequired.ts
+++ b/test/src/structures/ObjectRequired.ts
@@ -2,6 +2,8 @@ import { Spoiler } from "../helpers/Spoiler";
export type ObjectRequired = Required;
export namespace ObjectRequired {
+ export const RECURSIVE = true;
+
export interface IBase {
boolean?: boolean;
number?: number;
diff --git a/test/src/structures/UltimateUnion.ts b/test/src/structures/UltimateUnion.ts
index 97b7ef6d29..8c51e9fdfc 100644
--- a/test/src/structures/UltimateUnion.ts
+++ b/test/src/structures/UltimateUnion.ts
@@ -7,6 +7,8 @@ import { ObjectUnionImplicit } from "./ObjectUnionImplicit";
export type UltimateUnion = typia.IJsonApplication[];
export namespace UltimateUnion {
+ export const RECURSIVE = true;
+
export function generate(): typia.IJsonApplication[] {
const output = [
typia.json.application<[ObjectUnionExplicit]>(),
From 0792ef1a17865109340e517b62b792db93540cab Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Sat, 7 Sep 2024 03:51:00 +0900
Subject: [PATCH 2/8] `typia.llm.application()` function.
Added `typia.llm.application()` function which generates set of LLM function calling schemas from the TypeScript class or interface types.
The type `ILlmApplication` and `ILlmSchema` comes from samchon/openapi#44, and requested by @ryoppippi.
---
debug/package.json | 2 +-
debug/src/llm-schema.ts | 26 ---
debug/src/metadata.ts | 7 +
package.json | 4 +-
src/factories/MetadataFactory.ts | 1 +
src/factories/MetadataTypeTagSchemaFactory.ts | 2 +-
src/factories/ProtobufFactory.ts | 2 +-
src/factories/TypeFactory.ts | 2 +-
.../metadata/emplace_metadata_object.ts | 16 +-
.../internal/metadata/iterate_metadata.ts | 6 +
.../metadata/iterate_metadata_coalesce.ts | 5 -
.../metadata/iterate_metadata_function.ts | 85 +++++++
src/llm.ts | 12 +-
src/programmers/CheckerProgrammer.ts | 2 +-
src/programmers/RandomProgrammer.ts | 2 +-
.../internal/FunctionalGeneralProgrammer.ts | 4 +-
.../internal/application_v30_object.ts | 2 +-
.../internal/application_v31_object.ts | 2 +-
src/programmers/internal/llm_schema_object.ts | 2 +-
.../internal/stringify_regular_properties.ts | 8 +-
.../json/JsonStringifyProgrammer.ts | 4 +-
.../llm/LlmApplicationProgrammer.ts | 211 ++++++++++++++++++
src/programmers/misc/MiscCloneProgrammer.ts | 2 +-
.../notations/NotationGeneralProgrammer.ts | 2 +-
src/schemas/metadata/IMetadata.ts | 3 +-
src/schemas/metadata/IMetadataFunction.ts | 8 +
src/schemas/metadata/IMetadataParameter.ts | 9 +
src/schemas/metadata/Metadata.ts | 25 ++-
src/schemas/metadata/MetadataFunction.ts | 49 ++++
src/schemas/metadata/MetadataParameter.ts | 50 +++++
src/transformers/CallExpressionTransformer.ts | 3 +
.../features/llm/LlmApplicationTransformer.ts | 56 +++++
.../features/llm/LlmSchemaTransformer.ts | 3 +-
.../reflect/ReflectMetadataTransformer.ts | 1 +
test/package.json | 2 +-
.../llm.application/test_llm_application.ts | 134 +++++++++++
36 files changed, 681 insertions(+), 73 deletions(-)
delete mode 100644 debug/src/llm-schema.ts
create mode 100644 debug/src/metadata.ts
create mode 100644 src/factories/internal/metadata/iterate_metadata_function.ts
create mode 100644 src/programmers/llm/LlmApplicationProgrammer.ts
create mode 100644 src/schemas/metadata/IMetadataFunction.ts
create mode 100644 src/schemas/metadata/IMetadataParameter.ts
create mode 100644 src/schemas/metadata/MetadataFunction.ts
create mode 100644 src/schemas/metadata/MetadataParameter.ts
create mode 100644 src/transformers/features/llm/LlmApplicationTransformer.ts
create mode 100644 test/src/features/llm.application/test_llm_application.ts
diff --git a/debug/package.json b/debug/package.json
index 2233e6d8ee..496fc3fce3 100644
--- a/debug/package.json
+++ b/debug/package.json
@@ -17,7 +17,7 @@
},
"dependencies": {
"tstl": "^3.0.0",
- "typia": "../typia-6.10.0-dev.20240823.tgz",
+ "typia": "../typia-6.10.0-dev.20240907.tgz",
"uuid": "^10.0.0"
}
}
\ No newline at end of file
diff --git a/debug/src/llm-schema.ts b/debug/src/llm-schema.ts
deleted file mode 100644
index 5b755fc56e..0000000000
--- a/debug/src/llm-schema.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { ILlmSchema } from "@samchon/openapi";
-import typia from "typia";
-
-class Parent {
- public toJSON(): Child {
- return new Child();
- }
-}
-class Child {
- public readonly id: number = 1;
- public readonly flag: boolean = true;
-
- public toJSON(): IBrand {
- return {
- code: "code",
- name: "name",
- };
- }
-}
-interface IBrand {
- code: string;
- name: string;
-}
-
-const schema: ILlmSchema = typia.llm.schema();
-console.log(schema);
diff --git a/debug/src/metadata.ts b/debug/src/metadata.ts
new file mode 100644
index 0000000000..df048015c0
--- /dev/null
+++ b/debug/src/metadata.ts
@@ -0,0 +1,7 @@
+import typia from "typia";
+
+interface Something {
+ setValue: (x: T) => T;
+}
+
+typia.llm.application>();
diff --git a/package.json b/package.json
index 3dcd5040cb..cd15e2896b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "typia",
- "version": "6.10.0-dev.20240906",
+ "version": "6.10.0-dev.20240907",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
@@ -83,7 +83,7 @@
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/inquirer": "^8.2.5",
"@types/node": "^18.15.12",
- "@types/ts-expose-internals": "npm:ts-expose-internals@5.5.3",
+ "@types/ts-expose-internals": "npm:ts-expose-internals@5.5.4",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"chalk": "^4.0.0",
diff --git a/src/factories/MetadataFactory.ts b/src/factories/MetadataFactory.ts
index b837dddb2a..b61d621b24 100644
--- a/src/factories/MetadataFactory.ts
+++ b/src/factories/MetadataFactory.ts
@@ -22,6 +22,7 @@ export namespace MetadataFactory {
escape: boolean;
constant: boolean;
absorb: boolean;
+ functional?: boolean;
validate?: Validator;
onError?: (node: ts.Node | undefined, message: string) => void;
}
diff --git a/src/factories/MetadataTypeTagSchemaFactory.ts b/src/factories/MetadataTypeTagSchemaFactory.ts
index 1d640803c2..63c2251938 100644
--- a/src/factories/MetadataTypeTagSchemaFactory.ts
+++ b/src/factories/MetadataTypeTagSchemaFactory.ts
@@ -30,7 +30,7 @@ export namespace MetadataTypeTagSchemaFactory {
meta.atomics.length ||
meta.arrays.length ||
meta.natives.length ||
- meta.functional
+ meta.functions.length
)
report(`${parent.object.name}.${parent.key} has non-literal type`);
else if (meta.size() > 1)
diff --git a/src/factories/ProtobufFactory.ts b/src/factories/ProtobufFactory.ts
index 840321feed..8eb4fc58db 100644
--- a/src/factories/ProtobufFactory.ts
+++ b/src/factories/ProtobufFactory.ts
@@ -62,7 +62,7 @@ export namespace ProtobufFactory {
// PROHIBIT ANY TYPE
if (meta.any) noSupport("any type");
// PROHIBIT FUNCTIONAL TYPE
- if (meta.functional) noSupport("functional type");
+ if (meta.functions.length) noSupport("functional type");
// PROHIBIT TUPLE TYPE
if (meta.tuples.length) noSupport("tuple type");
// PROHIBIT SET TYPE
diff --git a/src/factories/TypeFactory.ts b/src/factories/TypeFactory.ts
index e0ba1c1791..d1b1d0f0d5 100644
--- a/src/factories/TypeFactory.ts
+++ b/src/factories/TypeFactory.ts
@@ -4,7 +4,7 @@ export namespace TypeFactory {
export const isFunction = (type: ts.Type): boolean =>
getFunction(type) !== null;
- const getFunction = (type: ts.Type) => {
+ export const getFunction = (type: ts.Type) => {
const node = type.symbol?.declarations?.[0];
if (node === undefined) return null;
diff --git a/src/factories/internal/metadata/emplace_metadata_object.ts b/src/factories/internal/metadata/emplace_metadata_object.ts
index b322f70c43..07855afc8f 100644
--- a/src/factories/internal/metadata/emplace_metadata_object.ts
+++ b/src/factories/internal/metadata/emplace_metadata_object.ts
@@ -29,6 +29,7 @@ export const emplace_metadata_object =
// PREPARE ASSETS
const isClass: boolean = parent.isClass();
+ const isProperty = significant(!!options.functional);
const pred: (node: ts.Declaration) => boolean = isClass
? (node) => {
const kind: ts.SyntaxKind | undefined = node
@@ -162,12 +163,15 @@ export const emplace_metadata_object =
return obj;
};
-const isProperty = (node: ts.Declaration) =>
- ts.isParameter(node) ||
- ts.isPropertyDeclaration(node) ||
- ts.isPropertyAssignment(node) ||
- ts.isPropertySignature(node) ||
- ts.isTypeLiteralNode(node);
+const significant = (functional: boolean) =>
+ functional
+ ? (node: ts.Declaration) => !ts.isAccessor(node)
+ : (node: ts.Declaration) =>
+ ts.isParameter(node) ||
+ ts.isPropertyDeclaration(node) ||
+ ts.isPropertyAssignment(node) ||
+ ts.isPropertySignature(node) ||
+ ts.isTypeLiteralNode(node);
const iterate_optional_coalesce = (meta: Metadata, type: ts.Type): void => {
if (type.isUnionOrIntersection())
diff --git a/src/factories/internal/metadata/iterate_metadata.ts b/src/factories/internal/metadata/iterate_metadata.ts
index 9db91096fb..86f9bf738d 100644
--- a/src/factories/internal/metadata/iterate_metadata.ts
+++ b/src/factories/internal/metadata/iterate_metadata.ts
@@ -11,6 +11,7 @@ import { iterate_metadata_atomic } from "./iterate_metadata_atomic";
import { iterate_metadata_coalesce } from "./iterate_metadata_coalesce";
import { iterate_metadata_constant } from "./iterate_metadata_constant";
import { iterate_metadata_escape } from "./iterate_metadata_escape";
+import { iterate_metadata_function } from "./iterate_metadata_function";
import { iterate_metadata_intersection } from "./iterate_metadata_intersection";
import { iterate_metadata_map } from "./iterate_metadata_map";
import { iterate_metadata_native } from "./iterate_metadata_native";
@@ -62,6 +63,11 @@ export const iterate_metadata =
// ITERATE CASES
iterate_metadata_coalesce(meta, type) ||
+ iterate_metadata_function(checker)(options)(collection)(errors)(
+ meta,
+ type,
+ explore,
+ ) ||
iterate_metadata_constant(checker)(options)(meta, type) ||
iterate_metadata_template(checker)(options)(collection)(errors)(
meta,
diff --git a/src/factories/internal/metadata/iterate_metadata_coalesce.ts b/src/factories/internal/metadata/iterate_metadata_coalesce.ts
index 41b7826e52..7bfa923c58 100644
--- a/src/factories/internal/metadata/iterate_metadata_coalesce.ts
+++ b/src/factories/internal/metadata/iterate_metadata_coalesce.ts
@@ -4,8 +4,6 @@ import { Metadata } from "../../../schemas/metadata/Metadata";
import { Writable } from "../../../typings/Writable";
-import { TypeFactory } from "../../TypeFactory";
-
export const iterate_metadata_coalesce = (
meta: Metadata,
type: ts.Type,
@@ -25,9 +23,6 @@ export const iterate_metadata_coalesce = (
) {
Writable(meta).required = false;
return true;
- } else if (TypeFactory.isFunction(type) === true) {
- Writable(meta).functional = true;
- return true;
}
return false;
};
diff --git a/src/factories/internal/metadata/iterate_metadata_function.ts b/src/factories/internal/metadata/iterate_metadata_function.ts
new file mode 100644
index 0000000000..cfa1b99d22
--- /dev/null
+++ b/src/factories/internal/metadata/iterate_metadata_function.ts
@@ -0,0 +1,85 @@
+import ts from "typescript";
+
+import { FunctionalGeneralProgrammer } from "../../../programmers/functional/internal/FunctionalGeneralProgrammer";
+
+import { Metadata } from "../../../schemas/metadata/Metadata";
+import { MetadataFunction } from "../../../schemas/metadata/MetadataFunction";
+import { MetadataParameter } from "../../../schemas/metadata/MetadataParameter";
+
+import { CommentFactory } from "../../CommentFactory";
+import { MetadataCollection } from "../../MetadataCollection";
+import { MetadataFactory } from "../../MetadataFactory";
+import { TypeFactory } from "../../TypeFactory";
+import { explore_metadata } from "./explore_metadata";
+
+export const iterate_metadata_function =
+ (checker: ts.TypeChecker) =>
+ (options: MetadataFactory.IOptions) =>
+ (collection: MetadataCollection) =>
+ (errors: MetadataFactory.IError[]) =>
+ (
+ metadata: Metadata,
+ type: ts.Type,
+ explore: MetadataFactory.IExplore,
+ ): boolean => {
+ const declaration: ts.SignatureDeclaration | null =
+ TypeFactory.getFunction(type);
+ if (declaration === null) return false;
+ else if (!options.functional) {
+ if (metadata.functions.length === 0)
+ metadata.functions.push(
+ MetadataFunction.create({
+ parameters: [],
+ output: Metadata.initialize(),
+ async: false,
+ }),
+ );
+ } else {
+ const [signature] = type.getCallSignatures();
+ if (signature === undefined || signature.declaration === undefined)
+ metadata.functions.push(
+ MetadataFunction.create({
+ parameters: [],
+ output: Metadata.initialize(),
+ async: false,
+ }),
+ );
+ else {
+ const { async }: FunctionalGeneralProgrammer.IOutput =
+ FunctionalGeneralProgrammer.getReturnType(checker)(declaration);
+ metadata.functions.push(
+ MetadataFunction.create({
+ parameters: signature.parameters.map((p) =>
+ MetadataParameter.create({
+ name: p.name,
+ type: explore_metadata(checker)(options)(collection)(errors)(
+ checker.getTypeOfSymbol(p),
+ {
+ ...explore,
+ top: false,
+ },
+ ),
+ description: CommentFactory.description(p) ?? null,
+ jsDocTags: p?.getJsDocTags() ?? [],
+ }),
+ ),
+ async,
+ output: explore_metadata(checker)({
+ ...options,
+ functional: false,
+ })(collection)(errors)(
+ async
+ ? (signature.getReturnType().aliasTypeArguments?.[0] ??
+ checker.getTypeFromTypeNode(TypeFactory.keyword("any")))
+ : signature.getReturnType(),
+ {
+ ...explore,
+ top: false,
+ },
+ ),
+ }),
+ );
+ }
+ }
+ return true;
+ };
diff --git a/src/llm.ts b/src/llm.ts
index 8c1ebb0f9d..e7a41aa9ac 100644
--- a/src/llm.ts
+++ b/src/llm.ts
@@ -1,4 +1,14 @@
-import { ILlmSchema } from "@samchon/openapi";
+import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
+
+export function application(): never;
+export function application(): ILlmApplication;
+
+/**
+ * @internal
+ */
+export function application(): never {
+ halt("application");
+}
export function schema(): never;
export function schema(): ILlmSchema;
diff --git a/src/programmers/CheckerProgrammer.ts b/src/programmers/CheckerProgrammer.ts
index b26016e148..df1a9af508 100644
--- a/src/programmers/CheckerProgrammer.ts
+++ b/src/programmers/CheckerProgrammer.ts
@@ -331,7 +331,7 @@ export namespace CheckerProgrammer {
);
// FUNCTIONAL
- if (meta.functional === true)
+ if (meta.functions.length)
if (OptionPredicator.functional(project.options) || meta.size() !== 1)
add(
true,
diff --git a/src/programmers/RandomProgrammer.ts b/src/programmers/RandomProgrammer.ts
index dcec64566b..ef04f49b0d 100644
--- a/src/programmers/RandomProgrammer.ts
+++ b/src/programmers/RandomProgrammer.ts
@@ -276,7 +276,7 @@ export namespace RandomProgrammer {
expressions.push(ts.factory.createStringLiteral("any type used..."));
// NULL COALESCING
- if (meta.isRequired() === false || meta.functional === true)
+ if (meta.isRequired() === false || meta.functions.length)
expressions.push(ts.factory.createIdentifier("undefined"));
if (meta.nullable === true) expressions.push(ts.factory.createNull());
diff --git a/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts b/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts
index 36c458ff30..fa7851b10c 100644
--- a/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts
+++ b/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts
@@ -9,7 +9,9 @@ export namespace FunctionalGeneralProgrammer {
}
export const getReturnType =
(checker: ts.TypeChecker) =>
- (declaration: ts.FunctionDeclaration): IOutput => {
+ (
+ declaration: ts.FunctionDeclaration | ts.SignatureDeclaration,
+ ): IOutput => {
const signature: ts.Signature | undefined =
checker.getSignatureFromDeclaration(declaration);
const type: ts.Type =
diff --git a/src/programmers/internal/application_v30_object.ts b/src/programmers/internal/application_v30_object.ts
index 636518d325..b8cd5dd8b2 100644
--- a/src/programmers/internal/application_v30_object.ts
+++ b/src/programmers/internal/application_v30_object.ts
@@ -53,7 +53,7 @@ const create_object_schema =
for (const property of obj.properties) {
if (
// FUNCTIONAL TYPE
- property.value.functional === true &&
+ property.value.functions.length &&
property.value.nullable === false &&
property.value.isRequired() === true &&
property.value.size() === 0
diff --git a/src/programmers/internal/application_v31_object.ts b/src/programmers/internal/application_v31_object.ts
index 3d211497ba..5a0376f31a 100644
--- a/src/programmers/internal/application_v31_object.ts
+++ b/src/programmers/internal/application_v31_object.ts
@@ -51,7 +51,7 @@ const create_object_schema =
for (const property of obj.properties) {
if (
// FUNCTIONAL TYPE
- property.value.functional === true &&
+ property.value.functions.length &&
property.value.nullable === false &&
property.value.isRequired() === true &&
property.value.size() === 0
diff --git a/src/programmers/internal/llm_schema_object.ts b/src/programmers/internal/llm_schema_object.ts
index 55d17f2898..30572a101f 100644
--- a/src/programmers/internal/llm_schema_object.ts
+++ b/src/programmers/internal/llm_schema_object.ts
@@ -30,7 +30,7 @@ export const llm_schema_object = (props: {
for (const property of props.object.properties) {
if (
// FUNCTIONAL TYPE
- property.value.functional === true &&
+ property.value.functions.length &&
property.value.nullable === false &&
property.value.isRequired() === true &&
property.value.size() === 0
diff --git a/src/programmers/internal/stringify_regular_properties.ts b/src/programmers/internal/stringify_regular_properties.ts
index cd1c3a6264..4f141a7d30 100644
--- a/src/programmers/internal/stringify_regular_properties.ts
+++ b/src/programmers/internal/stringify_regular_properties.ts
@@ -31,14 +31,14 @@ export const stringify_regular_properties = (
(entry.meta.isRequired() === false &&
entry.meta.nullable === false &&
entry.meta.size() === 0) ||
- (entry.meta.functional &&
+ (!!entry.meta.functions.length &&
entry.meta.nullable === false &&
entry.meta.size() === 1);
if (empty === true) return;
else if (
entry.meta.isRequired() === false ||
- entry.meta.functional === true ||
+ entry.meta.functions.length ||
entry.meta.any === true
)
output.push(
@@ -52,7 +52,7 @@ export const stringify_regular_properties = (
entry.input,
),
);
- if (entry.meta.functional || entry.meta.any)
+ if (entry.meta.functions.length || entry.meta.any)
conditions.push(
ts.factory.createStrictEquality(
ts.factory.createStringLiteral("function"),
@@ -78,4 +78,4 @@ export const stringify_regular_properties = (
* @internal
*/
const sequence = (meta: Metadata): number =>
- meta.any || !meta.isRequired() || meta.functional ? 0 : 1;
+ meta.any || !meta.isRequired() || meta.functions.length ? 0 : 1;
diff --git a/src/programmers/json/JsonStringifyProgrammer.ts b/src/programmers/json/JsonStringifyProgrammer.ts
index 1305a89d2e..9894b6925f 100644
--- a/src/programmers/json/JsonStringifyProgrammer.ts
+++ b/src/programmers/json/JsonStringifyProgrammer.ts
@@ -233,7 +233,7 @@ export namespace JsonStringifyProgrammer {
explore,
),
});
- else if (meta.functional === true)
+ else if (meta.functions.length)
unions.push({
type: "functional",
is: () => IsProgrammer.decode_functional(input),
@@ -797,7 +797,7 @@ export namespace JsonStringifyProgrammer {
meta: Metadata,
explore: FeatureProgrammer.IExplore,
): ((expression: ts.Expression) => ts.Expression) => {
- if (meta.functional === false) return (expression) => expression;
+ if (meta.functions.length === 0) return (expression) => expression;
return (expression) =>
ts.factory.createConditionalExpression(
ts.factory.createStrictInequality(
diff --git a/src/programmers/llm/LlmApplicationProgrammer.ts b/src/programmers/llm/LlmApplicationProgrammer.ts
new file mode 100644
index 0000000000..deec81ea2b
--- /dev/null
+++ b/src/programmers/llm/LlmApplicationProgrammer.ts
@@ -0,0 +1,211 @@
+import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
+import { ILlmFunction } from "@samchon/openapi/lib/structures/ILlmFunction";
+
+import { MetadataFactory } from "../../factories/MetadataFactory";
+
+import { Metadata } from "../../schemas/metadata/Metadata";
+import { MetadataFunction } from "../../schemas/metadata/MetadataFunction";
+import { MetadataObject } from "../../schemas/metadata/MetadataObject";
+
+import { IJsDocTagInfo } from "../../module";
+import { LlmSchemaProgrammer } from "./LlmSchemaProgrammer";
+
+export namespace LlmApplicationProgrammer {
+ export const validate = (
+ meta: Metadata,
+ explore: MetadataFactory.IExplore,
+ ): string[] => {
+ if (explore.top === false) return LlmSchemaProgrammer.validate(meta);
+
+ const output: string[] = [];
+ const valid: boolean =
+ meta.size() === 1 &&
+ meta.objects.length === 1 &&
+ meta.isRequired() === true &&
+ meta.nullable === false;
+ if (valid === false)
+ output.push(
+ "LLM application's generic arugment must be a class/interface type.",
+ );
+
+ const object: MetadataObject | undefined = meta.objects[0];
+ if (object !== undefined) {
+ if (object.properties.some((p) => p.key.isSoleLiteral() === false))
+ output.push("LLM application does not allow dynamic keys.");
+ let least: boolean = false;
+ for (const p of object.properties) {
+ const value: Metadata = p.value;
+ if (value.functions.length) {
+ least ||= true;
+ if (valid === false) {
+ if (value.functions.length !== 1 || value.size() !== 1)
+ output.push(
+ "LLM application's function type does not allow union type.",
+ );
+ if (value.isRequired() === false)
+ output.push("LLM application's function type must be required.");
+ if (value.nullable === true)
+ output.push(
+ "LLM application's function type must not be nullable.",
+ );
+ }
+ }
+ }
+ if (least === false)
+ output.push(
+ "LLM application's target type must have at least a function type.",
+ );
+ }
+ return output;
+ };
+
+ export const write = (metadata: Metadata): ILlmApplication => {
+ const errors: string[] = validate(metadata, {
+ top: true,
+ object: null,
+ property: null,
+ nested: null,
+ escaped: false,
+ aliased: false,
+ });
+ if (errors.length)
+ throw new Error("Failed to write LLM application: " + errors.join("\n"));
+
+ const object: MetadataObject = metadata.objects[0]!;
+ return {
+ functions: object.properties
+ .filter(
+ (p) =>
+ p.value.functions.length === 1 &&
+ p.value.size() === 1 &&
+ p.key.isSoleLiteral(),
+ )
+ .map((p) =>
+ writeFunction({
+ name: p.key.getSoleLiteral()!,
+ function: p.value.functions[0]!,
+ description: p.description,
+ jsDocTags: p.jsDocTags,
+ }),
+ ),
+ options: {
+ separate: null,
+ },
+ };
+ };
+
+ const writeFunction = (props: {
+ name: string;
+ function: MetadataFunction;
+ description: string | null;
+ jsDocTags: IJsDocTagInfo[];
+ }): ILlmFunction => ({
+ name: props.name,
+ parameters: props.function.parameters.map((p) => {
+ const jsDocTagDescription = writeDescriptionFromJsDocTag({
+ jsDocTags: p.jsDocTags,
+ tag: "param",
+ parameter: p.name,
+ });
+ return writeSchema({
+ metadata: p.type,
+ description: jsDocTagDescription ?? p.description,
+ jsDocTags: jsDocTagDescription ? [] : p.jsDocTags,
+ });
+ }),
+ output:
+ props.function.output.size() || props.function.output.nullable
+ ? writeSchema({
+ metadata: props.function.output,
+ description:
+ writeDescriptionFromJsDocTag({
+ jsDocTags: props.jsDocTags,
+ tag: "return",
+ }) ??
+ writeDescriptionFromJsDocTag({
+ jsDocTags: props.jsDocTags,
+ tag: "returns",
+ }),
+ jsDocTags: [],
+ })
+ : undefined,
+ description: props.description ?? undefined,
+ });
+
+ const writeSchema = (props: {
+ metadata: Metadata;
+ description: string | null;
+ jsDocTags: IJsDocTagInfo[];
+ }): ILlmSchema => {
+ const schema: ILlmSchema = LlmSchemaProgrammer.write(props.metadata);
+ const explicit: Pick =
+ writeDescription({
+ description: props.description,
+ jsDocTags: props.jsDocTags,
+ });
+ return {
+ ...schema,
+ ...(!!explicit.title?.length || !!explicit.description?.length
+ ? explicit
+ : {}),
+ };
+ };
+
+ const writeDescription = (props: {
+ description: string | null;
+ jsDocTags: IJsDocTagInfo[];
+ }): Pick => {
+ const title: string | undefined = (() => {
+ const [explicit] = getJsDocTexts({
+ jsDocTags: props.jsDocTags,
+ name: "title",
+ });
+ if (explicit?.length) return explicit;
+ else if (!props.description?.length) return undefined;
+
+ const index: number = props.description.indexOf("\n");
+ const top: string = (
+ index === -1 ? props.description : props.description.substring(0, index)
+ ).trim();
+ return top.endsWith(".") ? top.substring(0, top.length - 1) : undefined;
+ })();
+ return {
+ title: title,
+ description: props.description?.length ? props.description : undefined,
+ } as any;
+ };
+
+ const writeDescriptionFromJsDocTag = (props: {
+ jsDocTags: IJsDocTagInfo[];
+ tag: string;
+ parameter?: string;
+ }): string | null => {
+ const parametric: (elem: IJsDocTagInfo) => boolean = props.parameter
+ ? (tag) =>
+ tag.text!.find(
+ (elem) =>
+ elem.kind === "parameterName" && elem.text === props.parameter,
+ ) !== undefined
+ : () => true;
+ const tag: IJsDocTagInfo | undefined = props.jsDocTags.find(
+ (tag) => tag.name === props.tag && tag.text && parametric(tag),
+ );
+ return tag && tag.text
+ ? (tag.text.find((elem) => elem.kind === "text")?.text ?? null)
+ : null;
+ };
+
+ const getJsDocTexts = (props: {
+ jsDocTags: IJsDocTagInfo[];
+ name: string;
+ }): string[] =>
+ props.jsDocTags
+ .filter(
+ (tag) =>
+ tag.name === props.name &&
+ tag.text &&
+ tag.text.find((elem) => elem.kind === "text" && elem.text.length) !==
+ undefined,
+ )
+ .map((tag) => tag.text!.find((elem) => elem.kind === "text")!.text);
+}
diff --git a/src/programmers/misc/MiscCloneProgrammer.ts b/src/programmers/misc/MiscCloneProgrammer.ts
index c2bf09052e..b17abebdab 100644
--- a/src/programmers/misc/MiscCloneProgrammer.ts
+++ b/src/programmers/misc/MiscCloneProgrammer.ts
@@ -179,7 +179,7 @@ export namespace MiscCloneProgrammer {
// LIST UP UNION TYPES
//----
// FUNCTIONAL
- if (meta.functional)
+ if (meta.functions.length)
unions.push({
type: "functional",
is: () =>
diff --git a/src/programmers/notations/NotationGeneralProgrammer.ts b/src/programmers/notations/NotationGeneralProgrammer.ts
index 7b70bbe519..d2ac40a6c8 100644
--- a/src/programmers/notations/NotationGeneralProgrammer.ts
+++ b/src/programmers/notations/NotationGeneralProgrammer.ts
@@ -193,7 +193,7 @@ export namespace NotationGeneralProgrammer {
// LIST UP UNION TYPES
//----
// FUNCTIONAL
- if (meta.functional)
+ if (meta.functions.length)
unions.push({
type: "functional",
is: () =>
diff --git a/src/schemas/metadata/IMetadata.ts b/src/schemas/metadata/IMetadata.ts
index aa2e679e5b..27d81384ea 100644
--- a/src/schemas/metadata/IMetadata.ts
+++ b/src/schemas/metadata/IMetadata.ts
@@ -2,6 +2,7 @@ import { IMetadataAtomic } from "./IMetadataAtomic";
import { IMetadataConstant } from "./IMetadataConstant";
import { IMetadataEntry } from "./IMetadataEntry";
import { IMetadataEscaped } from "./IMetadataEscaped";
+import { IMetadataFunction } from "./IMetadataFunction";
import { IMetadataTemplate } from "./IMetadataTemplate";
import { IMetadataTypeTag } from "./IMetadataTypeTag";
@@ -10,7 +11,7 @@ export interface IMetadata {
required: boolean;
optional: boolean;
nullable: boolean;
- functional: boolean;
+ functions: IMetadataFunction[];
atomics: IMetadataAtomic[];
constants: IMetadataConstant[];
diff --git a/src/schemas/metadata/IMetadataFunction.ts b/src/schemas/metadata/IMetadataFunction.ts
new file mode 100644
index 0000000000..a18605ec89
--- /dev/null
+++ b/src/schemas/metadata/IMetadataFunction.ts
@@ -0,0 +1,8 @@
+import { IMetadata } from "./IMetadata";
+import { IMetadataParameter } from "./IMetadataParameter";
+
+export interface IMetadataFunction {
+ parameters: IMetadataParameter[];
+ output: IMetadata;
+ async: boolean;
+}
diff --git a/src/schemas/metadata/IMetadataParameter.ts b/src/schemas/metadata/IMetadataParameter.ts
new file mode 100644
index 0000000000..bed0e0c53b
--- /dev/null
+++ b/src/schemas/metadata/IMetadataParameter.ts
@@ -0,0 +1,9 @@
+import { IJsDocTagInfo } from "./IJsDocTagInfo";
+import { IMetadata } from "./IMetadata";
+
+export interface IMetadataParameter {
+ name: string;
+ type: IMetadata;
+ description: string | null;
+ jsDocTags: IJsDocTagInfo[];
+}
diff --git a/src/schemas/metadata/Metadata.ts b/src/schemas/metadata/Metadata.ts
index ae5823b77a..5c0a06f282 100644
--- a/src/schemas/metadata/Metadata.ts
+++ b/src/schemas/metadata/Metadata.ts
@@ -10,6 +10,7 @@ import { MetadataArray } from "./MetadataArray";
import { MetadataAtomic } from "./MetadataAtomic";
import { MetadataConstant } from "./MetadataConstant";
import { MetadataEscaped } from "./MetadataEscaped";
+import { MetadataFunction } from "./MetadataFunction";
import { MetadataObject } from "./MetadataObject";
import { MetadataTemplate } from "./MetadataTemplate";
import { MetadataTuple } from "./MetadataTuple";
@@ -19,7 +20,6 @@ export class Metadata {
public required: boolean;
public optional: boolean;
public nullable: boolean;
- public functional: boolean;
public escaped: MetadataEscaped | null;
public atomics: MetadataAtomic[];
@@ -31,6 +31,7 @@ export class Metadata {
public arrays: MetadataArray[];
public tuples: MetadataTuple[];
public objects: MetadataObject[];
+ public functions: MetadataFunction[];
public natives: string[];
public sets: Metadata[];
@@ -53,7 +54,7 @@ export class Metadata {
this.required = props.required;
this.optional = props.optional;
this.nullable = props.nullable;
- this.functional = props.functional;
+ this.functions = props.functions;
this.escaped = props.escaped;
this.atomics = props.atomics;
@@ -87,7 +88,6 @@ export class Metadata {
nullable: false,
required: true,
optional: false,
- functional: false,
escaped: null,
constants: [],
@@ -97,6 +97,7 @@ export class Metadata {
tuples: [],
objects: [],
aliases: [],
+ functions: [],
rest: null,
natives: [],
@@ -113,7 +114,7 @@ export class Metadata {
required: this.required,
optional: this.optional,
nullable: this.nullable,
- functional: this.functional,
+ functions: this.functions.map((f) => f.toJSON()),
atomics: this.atomics.map((a) => a.toJSON()),
constants: this.constants.map((c) => c.toJSON()),
@@ -147,7 +148,7 @@ export class Metadata {
required: meta.required,
optional: meta.optional,
nullable: meta.nullable,
- functional: meta.functional,
+ functions: meta.functions.map((f) => MetadataFunction.from(f, dict)),
constants: meta.constants.map(MetadataConstant.from),
atomics: meta.atomics.map(MetadataAtomic.from),
@@ -218,7 +219,6 @@ export class Metadata {
return (
(this.any ? 1 : 0) +
(this.escaped ? 1 : 0) +
- (this.functional ? 1 : 0) +
(this.rest ? this.rest.size() : 0) +
this.templates.length +
this.atomics.length +
@@ -229,6 +229,7 @@ export class Metadata {
this.maps.length +
this.sets.length +
this.objects.length +
+ this.functions.length +
this.aliases.length
);
}
@@ -237,7 +238,6 @@ export class Metadata {
return (
(this.any ? 1 : 0) +
(this.escaped ? 1 : 0) +
- (this.functional ? 1 : 0) +
(this.templates.length ? 1 : 0) +
(this.atomics.length ? 1 : 0) +
(this.constants.length ? 1 : 0) +
@@ -248,6 +248,7 @@ export class Metadata {
(this.sets.length ? 1 : 0) +
(this.maps.length ? 1 : 0) +
(this.objects.length ? 1 : 0) +
+ (this.functions.length ? 1 : 0) +
(this.aliases.length ? 1 : 0)
);
}
@@ -301,7 +302,7 @@ export namespace Metadata {
if (x.any || y.any) return true;
if (x.isRequired() === false && false === y.isRequired()) return true;
if (x.nullable === true && true === y.nullable) return true;
- if (x.functional === true && y.functional === true) return true;
+ if (!!x.functions.length && !!y.functions.length === true) return true;
//----
// INSTANCES
@@ -459,7 +460,7 @@ export namespace Metadata {
}
// FUNCTIONAL
- if (x.functional === false && y.functional) return false;
+ if (!!x.functions.length === false && !!y.functions.length) return false;
// SUCCESS
return true;
@@ -474,7 +475,7 @@ export namespace Metadata {
nullable: x.nullable || y.nullable,
required: x.required && y.required,
optional: x.optional || y.optional,
- functional: x.functional || y.functional,
+ functions: x.functions.length ? x.functions : y.functions, // @todo
escaped:
x.escaped !== null && y.escaped !== null
@@ -482,7 +483,7 @@ export namespace Metadata {
original: merge(x.escaped.original, y.escaped.original),
returns: merge(x.escaped.returns, y.escaped.returns),
})
- : x.escaped ?? y.escaped,
+ : (x.escaped ?? y.escaped),
atomics: mergeTaggedTypes({
container: x.atomics,
equals: (x, y) => x.type === y.type,
@@ -494,7 +495,7 @@ export namespace Metadata {
rest:
x.rest !== null && y.rest !== null
? merge(x.rest, y.rest)
- : x.rest ?? y.rest,
+ : (x.rest ?? y.rest),
// arrays: x.arrays.slice(),
arrays: mergeTaggedTypes({
container: x.arrays,
diff --git a/src/schemas/metadata/MetadataFunction.ts b/src/schemas/metadata/MetadataFunction.ts
new file mode 100644
index 0000000000..441b049cc3
--- /dev/null
+++ b/src/schemas/metadata/MetadataFunction.ts
@@ -0,0 +1,49 @@
+import { ClassProperties } from "../../typings/ClassProperties";
+
+import { IMetadataDictionary } from "./IMetadataDictionary";
+import { IMetadataFunction } from "./IMetadataFunction";
+import { Metadata } from "./Metadata";
+import { MetadataParameter } from "./MetadataParameter";
+
+export class MetadataFunction {
+ public parameters: MetadataParameter[];
+ public output: Metadata;
+ public async: boolean;
+
+ /**
+ * @hidden
+ */
+ private constructor(props: ClassProperties) {
+ this.parameters = props.parameters;
+ this.output = props.output;
+ this.async = props.async;
+ }
+
+ /**
+ * @internal
+ */
+ public static create(
+ props: ClassProperties,
+ ): MetadataFunction {
+ return new MetadataFunction(props);
+ }
+
+ public static from(
+ json: IMetadataFunction,
+ dict: IMetadataDictionary,
+ ): MetadataFunction {
+ return MetadataFunction.create({
+ parameters: json.parameters.map((p) => MetadataParameter.from(p, dict)),
+ output: Metadata.from(json.output, dict),
+ async: json.async,
+ });
+ }
+
+ public toJSON(): IMetadataFunction {
+ return {
+ parameters: this.parameters.map((p) => p.toJSON()),
+ output: this.output.toJSON(),
+ async: this.async,
+ };
+ }
+}
diff --git a/src/schemas/metadata/MetadataParameter.ts b/src/schemas/metadata/MetadataParameter.ts
new file mode 100644
index 0000000000..3decbb4797
--- /dev/null
+++ b/src/schemas/metadata/MetadataParameter.ts
@@ -0,0 +1,50 @@
+import { ClassProperties } from "../../typings/ClassProperties";
+
+import { IJsDocTagInfo } from "./IJsDocTagInfo";
+import { IMetadataDictionary } from "./IMetadataDictionary";
+import { IMetadataParameter } from "./IMetadataParameter";
+import { Metadata } from "./Metadata";
+
+export class MetadataParameter {
+ public name: string;
+ public type: Metadata;
+ public description: string | null;
+ public jsDocTags: IJsDocTagInfo[];
+
+ private constructor(props: ClassProperties) {
+ this.name = props.name;
+ this.type = props.type;
+ this.description = props.description;
+ this.jsDocTags = props.jsDocTags;
+ }
+
+ /**
+ * @internal
+ */
+ public static create(
+ props: ClassProperties,
+ ): MetadataParameter {
+ return new MetadataParameter(props);
+ }
+
+ public static from(
+ json: IMetadataParameter,
+ dict: IMetadataDictionary,
+ ): MetadataParameter {
+ return MetadataParameter.create({
+ name: json.name,
+ type: Metadata.from(json.type, dict),
+ description: json.description,
+ jsDocTags: json.jsDocTags,
+ });
+ }
+
+ public toJSON(): IMetadataParameter {
+ return {
+ name: this.name,
+ type: this.type.toJSON(),
+ description: this.description,
+ jsDocTags: this.jsDocTags,
+ };
+ }
+}
diff --git a/src/transformers/CallExpressionTransformer.ts b/src/transformers/CallExpressionTransformer.ts
index ada190e095..839205b92c 100644
--- a/src/transformers/CallExpressionTransformer.ts
+++ b/src/transformers/CallExpressionTransformer.ts
@@ -64,6 +64,7 @@ import { JsonIsStringifyTransformer } from "./features/json/JsonIsStringifyTrans
import { JsonStringifyTransformer } from "./features/json/JsonStringifyTransformer";
import { JsonValidateParseTransformer } from "./features/json/JsonValidateParseTransformer";
import { JsonValidateStringifyTransformer } from "./features/json/JsonValidateStringifyTransformer";
+import { LlmApplicationTransformer } from "./features/llm/LlmApplicationTransformer";
import { LlmSchemaTransformer } from "./features/llm/LlmSchemaTransformer";
import { MiscAssertCloneTransformer } from "./features/misc/MiscAssertCloneTransformer";
import { MiscAssertPruneTransformer } from "./features/misc/MiscAssertPruneTransformer";
@@ -355,6 +356,8 @@ const FUNCTORS: Record Task>> = {
createValidateQuery: () => CreateHttpValidateQueryTransformer.transform,
},
llm: {
+ application: () => (project) => () =>
+ LlmApplicationTransformer.transform(project),
schema: () => (project) => () => LlmSchemaTransformer.transform(project),
},
json: {
diff --git a/src/transformers/features/llm/LlmApplicationTransformer.ts b/src/transformers/features/llm/LlmApplicationTransformer.ts
new file mode 100644
index 0000000000..a2fdf73b17
--- /dev/null
+++ b/src/transformers/features/llm/LlmApplicationTransformer.ts
@@ -0,0 +1,56 @@
+import { ILlmApplication } from "@samchon/openapi";
+import ts from "typescript";
+
+import { LiteralFactory } from "../../../factories/LiteralFactory";
+import { MetadataCollection } from "../../../factories/MetadataCollection";
+import { MetadataFactory } from "../../../factories/MetadataFactory";
+
+import { Metadata } from "../../../schemas/metadata/Metadata";
+
+import { LlmApplicationProgrammer } from "../../../programmers/llm/LlmApplicationProgrammer";
+
+import { ValidationPipe } from "../../../typings/ValidationPipe";
+
+import { IProject } from "../../IProject";
+import { TransformerError } from "../../TransformerError";
+
+export namespace LlmApplicationTransformer {
+ export const transform =
+ (project: IProject) =>
+ (expression: ts.CallExpression): ts.Expression => {
+ // GET GENERIC ARGUMENT
+ if (!expression.typeArguments?.length)
+ throw new TransformerError({
+ code: "typia.llm.schema",
+ message: "no generic argument.",
+ });
+
+ const top: ts.Node = expression.typeArguments[0]!;
+ if (ts.isTypeNode(top) === false) return expression;
+
+ // GET TYPE
+ const type: ts.Type = project.checker.getTypeFromTypeNode(top);
+ const collection: MetadataCollection = new MetadataCollection({
+ replace: MetadataCollection.replace,
+ });
+ const result: ValidationPipe =
+ MetadataFactory.analyze(
+ project.checker,
+ project.context,
+ )({
+ escape: true,
+ constant: true,
+ absorb: false,
+ functional: true,
+ validate: LlmApplicationProgrammer.validate,
+ })(collection)(type);
+ if (result.success === false)
+ throw TransformerError.from("typia.llm.application")(result.errors);
+
+ // GENERATE LLM APPLICATION
+ const schema: ILlmApplication = LlmApplicationProgrammer.write(
+ result.data,
+ );
+ return LiteralFactory.generate(schema);
+ };
+}
diff --git a/src/transformers/features/llm/LlmSchemaTransformer.ts b/src/transformers/features/llm/LlmSchemaTransformer.ts
index 0861625646..b1dfd08f3a 100644
--- a/src/transformers/features/llm/LlmSchemaTransformer.ts
+++ b/src/transformers/features/llm/LlmSchemaTransformer.ts
@@ -18,16 +18,17 @@ export namespace LlmSchemaTransformer {
export const transform =
(project: IProject) =>
(expression: ts.CallExpression): ts.Expression => {
+ // GET GENERIC ARGUMENT
if (!expression.typeArguments?.length)
throw new TransformerError({
code: "typia.llm.schema",
message: "no generic argument.",
});
- // GET TYPE
const top: ts.Node = expression.typeArguments[0]!;
if (ts.isTypeNode(top) === false) return expression;
+ // GET TYPE
const type: ts.Type = project.checker.getTypeFromTypeNode(top);
const collection: MetadataCollection = new MetadataCollection({
replace: MetadataCollection.replace,
diff --git a/src/transformers/features/reflect/ReflectMetadataTransformer.ts b/src/transformers/features/reflect/ReflectMetadataTransformer.ts
index 15da6d9fae..db7c9427af 100644
--- a/src/transformers/features/reflect/ReflectMetadataTransformer.ts
+++ b/src/transformers/features/reflect/ReflectMetadataTransformer.ts
@@ -46,6 +46,7 @@ export namespace ReflectMetadataTransformer {
escape: true,
constant: true,
absorb: true,
+ functional: true,
})(collection)(type);
if (result.success === false)
throw TransformerError.from("typia.reflect.metadata")(result.errors);
diff --git a/test/package.json b/test/package.json
index 1e39dd5e7c..e43185ee71 100644
--- a/test/package.json
+++ b/test/package.json
@@ -52,6 +52,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240906.tgz"
+ "typia": "../typia-6.10.0-dev.20240907.tgz"
}
}
\ No newline at end of file
diff --git a/test/src/features/llm.application/test_llm_application.ts b/test/src/features/llm.application/test_llm_application.ts
new file mode 100644
index 0000000000..ba1e89b65c
--- /dev/null
+++ b/test/src/features/llm.application/test_llm_application.ts
@@ -0,0 +1,134 @@
+import { ILlmApplication } from "@samchon/openapi";
+import typia from "typia";
+
+import { TestValidator } from "../../helpers/TestValidator";
+
+export const test_llm_application = (): void => {
+ const app: ILlmApplication = typia.llm.application();
+ TestValidator.equals("application")(app)({
+ functions: [
+ {
+ name: "getId",
+ parameters: [],
+ output: {
+ type: "string",
+ },
+ description: "Get ID.",
+ },
+ {
+ name: "getValue",
+ parameters: [
+ {
+ type: "number",
+ description: "The value x",
+ },
+ {
+ type: "number",
+ title: "The value y",
+ description: "The value y.\r\n\r\nThe value to be added.",
+ },
+ ],
+ output: {
+ type: "number",
+ title: "Sum of them",
+ description: "Sum of them.\r\n\r\n`this.value + x + y`",
+ },
+ description:
+ "Get value.\n\nGet value with plus operation of member value, x and y.",
+ },
+ {
+ name: "getPerformance",
+ parameters: [],
+ output: {
+ type: "object",
+ properties: {
+ level: {
+ type: "number",
+ title: "Level value",
+ description: "Level value.",
+ },
+ },
+ nullable: false,
+ required: ["level"],
+ description: "Performance interface.",
+ },
+ description: "Get performance.",
+ },
+ {
+ name: "synchronize",
+ parameters: [
+ {
+ type: "boolean",
+ title: "Flag for synchronization",
+ description: "Flag for synchronization.",
+ },
+ ],
+ output: {
+ type: "boolean",
+ },
+ description: "Synchornize with server.",
+ },
+ ],
+ options: {
+ separate: null,
+ },
+ });
+};
+
+class SomeClass {
+ id: string = "id";
+ value: number = 0;
+
+ /**
+ * Get ID.
+ */
+ getId = (): string => {
+ return this.id;
+ };
+
+ /**
+ * Get value.
+ *
+ * Get value with plus operation of member value, x and y.
+ *
+ * @param x The value x
+ * @param y The value y.
+ *
+ * The value to be added.
+ * @returns Sum of them.
+ *
+ * `this.value + x + y`
+ */
+ getValue(x: number, y: number): number {
+ return this.value + x + y;
+ }
+
+ /**
+ * Get performance.
+ */
+ getPerformance(): IPerformance {
+ return { level: 3 };
+ }
+
+ /**
+ * Synchornize with server.
+ */
+ async synchronize(
+ /**
+ * Flag for synchronization.
+ */
+ flag: boolean,
+ ): Promise {
+ return flag && true;
+ }
+}
+
+/**
+ * The performance interface.
+ */
+interface IPerformance {
+ /**
+ * Level value.
+ */
+ level: number;
+}
From 776351fdecd7c6e6916b17941916afb8ed2a9de5 Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Sat, 7 Sep 2024 04:53:06 +0900
Subject: [PATCH 3/8] Fix test level bug
---
test/schemas/reflect/metadata/ArrayAny.json | 40 +-
.../reflect/metadata/ArrayAtomicAlias.json | 14 +-
.../reflect/metadata/ArrayAtomicSimple.json | 14 +-
.../reflect/metadata/ArrayHierarchical.json | 76 +--
.../metadata/ArrayHierarchicalPointer.json | 80 +--
.../schemas/reflect/metadata/ArrayMatrix.json | 8 +-
.../reflect/metadata/ArrayRecursive.json | 32 +-
.../metadata/ArrayRecursiveUnionExplicit.json | 142 ++---
.../ArrayRecursiveUnionExplicitPointer.json | 150 +++---
.../metadata/ArrayRecursiveUnionImplicit.json | 126 ++---
.../metadata/ArrayRepeatedNullable.json | 4 +-
.../metadata/ArrayRepeatedOptional.json | 4 +-
.../metadata/ArrayRepeatedRequired.json | 4 +-
.../reflect/metadata/ArrayRepeatedUnion.json | 36 +-
.../metadata/ArrayRepeatedUnionWithTuple.json | 46 +-
.../schemas/reflect/metadata/ArraySimple.json | 30 +-
.../reflect/metadata/ArraySimpleProtobuf.json | 62 +--
.../metadata/ArraySimpleProtobufNullable.json | 62 +--
.../metadata/ArraySimpleProtobufOptional.json | 62 +--
test/schemas/reflect/metadata/ArrayUnion.json | 10 +-
.../schemas/reflect/metadata/AtomicAlias.json | 8 +-
.../schemas/reflect/metadata/AtomicClass.json | 20 +-
.../reflect/metadata/AtomicIntersection.json | 8 +-
.../reflect/metadata/AtomicSimple.json | 8 +-
.../schemas/reflect/metadata/AtomicUnion.json | 4 +-
.../reflect/metadata/ClassClosure.json | 43 +-
.../schemas/reflect/metadata/ClassGetter.json | 14 +-
.../schemas/reflect/metadata/ClassMethod.json | 90 +++-
.../reflect/metadata/ClassNonPublic.json | 90 +++-
.../metadata/ClassPropertyAssignment.json | 22 +-
.../reflect/metadata/CommentTagArray.json | 32 +-
.../metadata/CommentTagArrayUnion.json | 26 +-
.../metadata/CommentTagAtomicUnion.json | 12 +-
.../reflect/metadata/CommentTagBigInt.json | 22 +-
.../reflect/metadata/CommentTagDefault.json | 46 +-
.../reflect/metadata/CommentTagFormat.json | 90 ++--
.../reflect/metadata/CommentTagInfinite.json | 26 +-
.../reflect/metadata/CommentTagLength.json | 28 +-
.../reflect/metadata/CommentTagNaN.json | 26 +-
.../metadata/CommentTagObjectUnion.json | 12 +-
.../reflect/metadata/CommentTagPattern.json | 18 +-
.../reflect/metadata/CommentTagRange.json | 44 +-
.../metadata/CommentTagRangeBigInt.json | 44 +-
.../reflect/metadata/CommentTagType.json | 36 +-
.../metadata/CommentTagTypeBigInt.json | 10 +-
.../metadata/ConstantAtomicAbsorbed.json | 10 +-
.../metadata/ConstantAtomicSimple.json | 10 +-
.../metadata/ConstantAtomicTagged.json | 10 +-
.../reflect/metadata/ConstantAtomicUnion.json | 8 +-
.../metadata/ConstantAtomicWrapper.json | 20 +-
.../metadata/ConstantConstEnumeration.json | 4 +-
.../reflect/metadata/ConstantEnumeration.json | 4 +-
.../metadata/ConstantIntersection.json | 8 +-
.../reflect/metadata/DynamicArray.json | 12 +-
.../reflect/metadata/DynamicComposite.json | 50 +-
.../reflect/metadata/DynamicConstant.json | 22 +-
.../reflect/metadata/DynamicEnumeration.json | 46 +-
.../reflect/metadata/DynamicJsonValue.json | 8 +-
.../reflect/metadata/DynamicNever.json | 6 +-
.../reflect/metadata/DynamicSimple.json | 10 +-
test/schemas/reflect/metadata/DynamicTag.json | 10 +-
.../reflect/metadata/DynamicTemplate.json | 38 +-
.../schemas/reflect/metadata/DynamicTree.json | 18 +-
.../reflect/metadata/DynamicUndefined.json | 6 +-
.../reflect/metadata/DynamicUnion.json | 34 +-
.../reflect/metadata/FunctionalArray.json | 85 ++-
.../metadata/FunctionalArrayUnion.json | 36 +-
.../metadata/FunctionalObjectUnion.json | 222 +++++++-
.../reflect/metadata/FunctionalProperty.json | 69 ++-
.../metadata/FunctionalPropertyUnion.json | 93 +++-
.../reflect/metadata/FunctionalTuple.json | 200 ++++++-
.../metadata/FunctionalTupleUnion.json | 256 ++++++++-
.../reflect/metadata/FunctionalValue.json | 86 ++-
.../metadata/FunctionalValueUnion.json | 28 +-
.../reflect/metadata/InstanceUnion.json | 162 +++---
test/schemas/reflect/metadata/MapAlias.json | 56 +-
test/schemas/reflect/metadata/MapSimple.json | 56 +-
.../reflect/metadata/MapSimpleProtobuf.json | 58 +-
.../metadata/MapSimpleProtobufNullable.json | 58 +-
.../metadata/MapSimpleProtobufOptional.json | 58 +-
test/schemas/reflect/metadata/MapUnion.json | 38 +-
.../schemas/reflect/metadata/NativeAlias.json | 66 +--
.../reflect/metadata/NativeSimple.json | 66 +--
.../schemas/reflect/metadata/NativeUnion.json | 28 +-
.../schemas/reflect/metadata/ObjectAlias.json | 28 +-
.../reflect/metadata/ObjectClosure.json | 39 +-
test/schemas/reflect/metadata/ObjectDate.json | 26 +-
.../reflect/metadata/ObjectDescription.json | 24 +-
.../reflect/metadata/ObjectDynamic.json | 6 +-
.../reflect/metadata/ObjectGeneric.json | 74 +--
.../reflect/metadata/ObjectGenericAlias.json | 6 +-
.../reflect/metadata/ObjectGenericArray.json | 36 +-
.../reflect/metadata/ObjectGenericUnion.json | 132 ++---
.../reflect/metadata/ObjectHierarchical.json | 136 ++---
.../reflect/metadata/ObjectHttpArray.json | 36 +-
.../reflect/metadata/ObjectHttpAtomic.json | 18 +-
.../metadata/ObjectHttpCommentTag.json | 20 +-
.../reflect/metadata/ObjectHttpConstant.json | 26 +-
.../reflect/metadata/ObjectHttpFormData.json | 36 +-
.../reflect/metadata/ObjectHttpNullable.json | 40 +-
.../reflect/metadata/ObjectHttpTypeTag.json | 26 +-
.../metadata/ObjectHttpUndefindable.json | 34 +-
.../reflect/metadata/ObjectInternal.json | 10 +-
.../reflect/metadata/ObjectIntersection.json | 14 +-
.../reflect/metadata/ObjectJsonTag.json | 18 +-
.../metadata/ObjectLiteralProperty.json | 10 +-
.../reflect/metadata/ObjectLiteralType.json | 14 +-
.../reflect/metadata/ObjectNullable.json | 40 +-
.../reflect/metadata/ObjectOptional.json | 18 +-
.../reflect/metadata/ObjectPartial.json | 44 +-
.../metadata/ObjectPartialAndRequired.json | 24 +-
.../reflect/metadata/ObjectPrimitive.json | 52 +-
.../metadata/ObjectPropertyNullable.json | 54 +-
.../reflect/metadata/ObjectRecursive.json | 34 +-
.../reflect/metadata/ObjectRequired.json | 44 +-
.../reflect/metadata/ObjectSimple.json | 30 +-
.../metadata/ObjectSimpleProtobuf.json | 38 +-
.../ObjectSimpleProtobufNullable.json | 38 +-
.../ObjectSimpleProtobufOptional.json | 38 +-
.../schemas/reflect/metadata/ObjectTuple.json | 30 +-
.../reflect/metadata/ObjectUndefined.json | 40 +-
.../metadata/ObjectUnionComposite.json | 80 +--
.../metadata/ObjectUnionCompositePointer.json | 88 +--
.../reflect/metadata/ObjectUnionDouble.json | 62 +--
.../reflect/metadata/ObjectUnionExplicit.json | 112 ++--
.../metadata/ObjectUnionExplicitPointer.json | 120 ++---
.../reflect/metadata/ObjectUnionImplicit.json | 120 ++---
.../metadata/ObjectUnionNonPredictable.json | 40 +-
test/schemas/reflect/metadata/SetAlias.json | 46 +-
test/schemas/reflect/metadata/SetSimple.json | 46 +-
test/schemas/reflect/metadata/SetUnion.json | 28 +-
.../reflect/metadata/TemplateAtomic.json | 84 +--
.../reflect/metadata/TemplateConstant.json | 20 +-
.../reflect/metadata/TemplateUnion.json | 56 +-
.../schemas/reflect/metadata/ToJsonArray.json | 170 +++++-
.../reflect/metadata/ToJsonAtomicSimple.json | 119 ++++-
.../reflect/metadata/ToJsonAtomicUnion.json | 49 +-
.../reflect/metadata/ToJsonDouble.json | 258 ++++++++-
test/schemas/reflect/metadata/ToJsonNull.json | 34 +-
.../schemas/reflect/metadata/ToJsonTuple.json | 163 +++++-
.../schemas/reflect/metadata/ToJsonUnion.json | 125 ++++-
.../reflect/metadata/TupleHierarchical.json | 46 +-
.../reflect/metadata/TupleOptional.json | 14 +-
.../reflect/metadata/TupleRestArray.json | 12 +-
.../reflect/metadata/TupleRestAtomic.json | 10 +-
.../reflect/metadata/TupleRestObject.json | 14 +-
test/schemas/reflect/metadata/TupleUnion.json | 14 +-
.../reflect/metadata/TypeTagArray.json | 36 +-
.../reflect/metadata/TypeTagArrayUnion.json | 26 +-
.../reflect/metadata/TypeTagAtomicUnion.json | 12 +-
.../reflect/metadata/TypeTagBigInt.json | 22 +-
.../reflect/metadata/TypeTagCustom.json | 18 +-
.../reflect/metadata/TypeTagDefault.json | 42 +-
.../reflect/metadata/TypeTagFormat.json | 90 ++--
.../reflect/metadata/TypeTagInfinite.json | 26 +-
.../reflect/metadata/TypeTagLength.json | 28 +-
.../reflect/metadata/TypeTagMatrix.json | 10 +-
test/schemas/reflect/metadata/TypeTagNaN.json | 26 +-
.../reflect/metadata/TypeTagObjectUnion.json | 12 +-
.../reflect/metadata/TypeTagPattern.json | 18 +-
.../reflect/metadata/TypeTagRange.json | 44 +-
.../reflect/metadata/TypeTagRangeBigInt.json | 44 +-
.../reflect/metadata/TypeTagTuple.json | 18 +-
.../schemas/reflect/metadata/TypeTagType.json | 36 +-
.../reflect/metadata/TypeTagTypeBigInt.json | 10 +-
.../reflect/metadata/TypeTagTypeUnion.json | 42 +-
.../reflect/metadata/UltimateUnion.json | 504 +++++++++---------
.../llm.application/test_llm_application.ts | 2 +-
168 files changed, 5020 insertions(+), 3145 deletions(-)
diff --git a/test/schemas/reflect/metadata/ArrayAny.json b/test/schemas/reflect/metadata/ArrayAny.json
index 63e4e97f21..914ee4747a 100644
--- a/test/schemas/reflect/metadata/ArrayAny.json
+++ b/test/schemas/reflect/metadata/ArrayAny.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -341,7 +341,7 @@
"required": false,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -369,7 +369,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -397,7 +397,7 @@
"required": false,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": false,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -481,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -509,7 +509,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -549,7 +549,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayAtomicAlias.json b/test/schemas/reflect/metadata/ArrayAtomicAlias.json
index 1c66bb66fe..09ca4c5dc3 100644
--- a/test/schemas/reflect/metadata/ArrayAtomicAlias.json
+++ b/test/schemas/reflect/metadata/ArrayAtomicAlias.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -68,7 +68,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -136,7 +136,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -160,7 +160,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -184,7 +184,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayAtomicSimple.json b/test/schemas/reflect/metadata/ArrayAtomicSimple.json
index 3886392df4..0bb7babe4a 100644
--- a/test/schemas/reflect/metadata/ArrayAtomicSimple.json
+++ b/test/schemas/reflect/metadata/ArrayAtomicSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -68,7 +68,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -136,7 +136,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -160,7 +160,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -184,7 +184,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayHierarchical.json b/test/schemas/reflect/metadata/ArrayHierarchical.json
index 3e7b1d0d68..13b5202119 100644
--- a/test/schemas/reflect/metadata/ArrayHierarchical.json
+++ b/test/schemas/reflect/metadata/ArrayHierarchical.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -232,7 +232,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -324,7 +324,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -352,7 +352,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -380,7 +380,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -408,7 +408,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -447,7 +447,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -475,7 +475,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -503,7 +503,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -531,7 +531,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -559,7 +559,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -587,7 +587,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -615,7 +615,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -643,7 +643,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -668,7 +668,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -696,7 +696,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -735,7 +735,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -763,7 +763,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -791,7 +791,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -819,7 +819,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -847,7 +847,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -875,7 +875,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -903,7 +903,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -931,7 +931,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -959,7 +959,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -987,7 +987,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1024,7 +1024,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1053,7 +1053,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1082,7 +1082,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayHierarchicalPointer.json b/test/schemas/reflect/metadata/ArrayHierarchicalPointer.json
index cb4bb89c08..2b9c26d78b 100644
--- a/test/schemas/reflect/metadata/ArrayHierarchicalPointer.json
+++ b/test/schemas/reflect/metadata/ArrayHierarchicalPointer.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -156,7 +156,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -184,7 +184,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -212,7 +212,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -240,7 +240,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -268,7 +268,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -296,7 +296,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -321,7 +321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -349,7 +349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -388,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -472,7 +472,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -511,7 +511,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -539,7 +539,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -567,7 +567,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -595,7 +595,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -623,7 +623,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -651,7 +651,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -679,7 +679,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -707,7 +707,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -732,7 +732,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -760,7 +760,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -799,7 +799,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -827,7 +827,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -855,7 +855,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -883,7 +883,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -911,7 +911,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -939,7 +939,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -967,7 +967,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -995,7 +995,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1023,7 +1023,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1051,7 +1051,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1088,7 +1088,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1117,7 +1117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1146,7 +1146,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayMatrix.json b/test/schemas/reflect/metadata/ArrayMatrix.json
index eb4b9a2fec..dc45eaaf23 100644
--- a/test/schemas/reflect/metadata/ArrayMatrix.json
+++ b/test/schemas/reflect/metadata/ArrayMatrix.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -68,7 +68,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ArrayRecursive.json b/test/schemas/reflect/metadata/ArrayRecursive.json
index 2b18202410..57b733bdc6 100644
--- a/test/schemas/reflect/metadata/ArrayRecursive.json
+++ b/test/schemas/reflect/metadata/ArrayRecursive.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -321,7 +321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -349,7 +349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -377,7 +377,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -405,7 +405,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -445,7 +445,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicit.json b/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicit.json
index c156fb341d..e2f8ddca10 100644
--- a/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicit.json
+++ b/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicit.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -232,7 +232,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -260,7 +260,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -288,7 +288,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -332,7 +332,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -360,7 +360,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -388,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -472,7 +472,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -500,7 +500,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -528,7 +528,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -556,7 +556,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -584,7 +584,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -612,7 +612,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -640,7 +640,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -668,7 +668,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -696,7 +696,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -724,7 +724,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -752,7 +752,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -785,7 +785,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -813,7 +813,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -857,7 +857,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -885,7 +885,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -913,7 +913,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -941,7 +941,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -969,7 +969,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -997,7 +997,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1025,7 +1025,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1053,7 +1053,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1081,7 +1081,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1109,7 +1109,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1137,7 +1137,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1165,7 +1165,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1198,7 +1198,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1226,7 +1226,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1270,7 +1270,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1298,7 +1298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1326,7 +1326,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1354,7 +1354,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1382,7 +1382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1410,7 +1410,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1438,7 +1438,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1466,7 +1466,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1494,7 +1494,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1522,7 +1522,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1550,7 +1550,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1578,7 +1578,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1611,7 +1611,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1639,7 +1639,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1683,7 +1683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1711,7 +1711,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1739,7 +1739,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1767,7 +1767,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1795,7 +1795,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1823,7 +1823,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1851,7 +1851,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1879,7 +1879,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1908,7 +1908,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1936,7 +1936,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1969,7 +1969,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1997,7 +1997,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2042,7 +2042,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2075,7 +2075,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicitPointer.json b/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicitPointer.json
index 51c3758d72..5f5f6a05d3 100644
--- a/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicitPointer.json
+++ b/test/schemas/reflect/metadata/ArrayRecursiveUnionExplicitPointer.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -168,7 +168,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -196,7 +196,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -224,7 +224,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -252,7 +252,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -280,7 +280,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -308,7 +308,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -336,7 +336,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -364,7 +364,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -392,7 +392,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -420,7 +420,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -464,7 +464,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -492,7 +492,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -520,7 +520,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -548,7 +548,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -576,7 +576,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -604,7 +604,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -632,7 +632,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -660,7 +660,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -688,7 +688,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -716,7 +716,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -744,7 +744,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -772,7 +772,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -800,7 +800,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -828,7 +828,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -856,7 +856,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -884,7 +884,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -917,7 +917,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -945,7 +945,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -989,7 +989,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1017,7 +1017,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1045,7 +1045,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1073,7 +1073,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1101,7 +1101,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1129,7 +1129,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1157,7 +1157,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1185,7 +1185,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1213,7 +1213,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1241,7 +1241,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1269,7 +1269,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1297,7 +1297,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1330,7 +1330,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1358,7 +1358,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1402,7 +1402,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1430,7 +1430,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1458,7 +1458,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1486,7 +1486,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1514,7 +1514,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1542,7 +1542,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1570,7 +1570,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1598,7 +1598,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1626,7 +1626,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1654,7 +1654,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1682,7 +1682,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1710,7 +1710,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1743,7 +1743,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1771,7 +1771,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1815,7 +1815,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1843,7 +1843,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1871,7 +1871,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1899,7 +1899,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1927,7 +1927,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1955,7 +1955,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1983,7 +1983,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2011,7 +2011,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2036,7 +2036,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2064,7 +2064,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2097,7 +2097,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2125,7 +2125,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2170,7 +2170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2199,7 +2199,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayRecursiveUnionImplicit.json b/test/schemas/reflect/metadata/ArrayRecursiveUnionImplicit.json
index 88dce5a986..952a276e87 100644
--- a/test/schemas/reflect/metadata/ArrayRecursiveUnionImplicit.json
+++ b/test/schemas/reflect/metadata/ArrayRecursiveUnionImplicit.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -232,7 +232,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -271,7 +271,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -299,7 +299,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -336,7 +336,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -364,7 +364,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -392,7 +392,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -420,7 +420,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -448,7 +448,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -476,7 +476,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -504,7 +504,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -532,7 +532,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -571,7 +571,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -599,7 +599,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -627,7 +627,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -655,7 +655,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -683,7 +683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -711,7 +711,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -739,7 +739,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -767,7 +767,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -795,7 +795,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -823,7 +823,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -851,7 +851,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -879,7 +879,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -907,7 +907,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -935,7 +935,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -974,7 +974,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1002,7 +1002,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1030,7 +1030,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1058,7 +1058,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1086,7 +1086,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1114,7 +1114,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1142,7 +1142,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1170,7 +1170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1198,7 +1198,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1226,7 +1226,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1265,7 +1265,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1293,7 +1293,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1321,7 +1321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1349,7 +1349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1377,7 +1377,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1405,7 +1405,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1433,7 +1433,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1461,7 +1461,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1489,7 +1489,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1517,7 +1517,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1556,7 +1556,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1584,7 +1584,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1612,7 +1612,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1640,7 +1640,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1668,7 +1668,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1696,7 +1696,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1724,7 +1724,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1752,7 +1752,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1794,7 +1794,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1828,7 +1828,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayRepeatedNullable.json b/test/schemas/reflect/metadata/ArrayRepeatedNullable.json
index 2383f04d96..0381065221 100644
--- a/test/schemas/reflect/metadata/ArrayRepeatedNullable.json
+++ b/test/schemas/reflect/metadata/ArrayRepeatedNullable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -45,7 +45,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ArrayRepeatedOptional.json b/test/schemas/reflect/metadata/ArrayRepeatedOptional.json
index 3cc1563352..6caddc060f 100644
--- a/test/schemas/reflect/metadata/ArrayRepeatedOptional.json
+++ b/test/schemas/reflect/metadata/ArrayRepeatedOptional.json
@@ -5,7 +5,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -45,7 +45,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ArrayRepeatedRequired.json b/test/schemas/reflect/metadata/ArrayRepeatedRequired.json
index e079927c62..cb9d7a31e0 100644
--- a/test/schemas/reflect/metadata/ArrayRepeatedRequired.json
+++ b/test/schemas/reflect/metadata/ArrayRepeatedRequired.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -45,7 +45,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ArrayRepeatedUnion.json b/test/schemas/reflect/metadata/ArrayRepeatedUnion.json
index d81bb84301..6b008305d3 100644
--- a/test/schemas/reflect/metadata/ArrayRepeatedUnion.json
+++ b/test/schemas/reflect/metadata/ArrayRepeatedUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -53,7 +53,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -81,7 +81,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -106,7 +106,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -134,7 +134,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -159,7 +159,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -187,7 +187,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -212,7 +212,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -240,7 +240,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -276,7 +276,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -304,7 +304,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -332,7 +332,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -360,7 +360,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -388,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -456,7 +456,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -488,7 +488,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -537,7 +537,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayRepeatedUnionWithTuple.json b/test/schemas/reflect/metadata/ArrayRepeatedUnionWithTuple.json
index ec9e5df6b7..6cb712aac3 100644
--- a/test/schemas/reflect/metadata/ArrayRepeatedUnionWithTuple.json
+++ b/test/schemas/reflect/metadata/ArrayRepeatedUnionWithTuple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -62,7 +62,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -90,7 +90,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -115,7 +115,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -143,7 +143,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -168,7 +168,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -196,7 +196,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -221,7 +221,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -249,7 +249,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -341,7 +341,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -369,7 +369,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -397,7 +397,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -465,7 +465,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -497,7 +497,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -555,7 +555,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -588,7 +588,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -612,7 +612,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -636,7 +636,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -670,7 +670,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -691,7 +691,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArraySimple.json b/test/schemas/reflect/metadata/ArraySimple.json
index 9cd5788da6..829c327c3d 100644
--- a/test/schemas/reflect/metadata/ArraySimple.json
+++ b/test/schemas/reflect/metadata/ArraySimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -215,7 +215,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -243,7 +243,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -271,7 +271,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -299,7 +299,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -327,7 +327,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -395,7 +395,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -424,7 +424,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArraySimpleProtobuf.json b/test/schemas/reflect/metadata/ArraySimpleProtobuf.json
index c7833aecac..00789d8936 100644
--- a/test/schemas/reflect/metadata/ArraySimpleProtobuf.json
+++ b/test/schemas/reflect/metadata/ArraySimpleProtobuf.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -341,7 +341,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -369,7 +369,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -397,7 +397,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -481,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -509,7 +509,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -537,7 +537,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -565,7 +565,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -605,7 +605,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -637,7 +637,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -683,7 +683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -729,7 +729,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -775,7 +775,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -821,7 +821,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -867,7 +867,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -913,7 +913,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -945,7 +945,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -974,7 +974,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArraySimpleProtobufNullable.json b/test/schemas/reflect/metadata/ArraySimpleProtobufNullable.json
index 20bc7b0b39..03787c8454 100644
--- a/test/schemas/reflect/metadata/ArraySimpleProtobufNullable.json
+++ b/test/schemas/reflect/metadata/ArraySimpleProtobufNullable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -341,7 +341,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -369,7 +369,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -397,7 +397,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -481,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -509,7 +509,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -537,7 +537,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -565,7 +565,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -605,7 +605,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -637,7 +637,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -683,7 +683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -729,7 +729,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -775,7 +775,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -821,7 +821,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -867,7 +867,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -913,7 +913,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -945,7 +945,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -974,7 +974,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArraySimpleProtobufOptional.json b/test/schemas/reflect/metadata/ArraySimpleProtobufOptional.json
index 768b5d8239..4fd486af89 100644
--- a/test/schemas/reflect/metadata/ArraySimpleProtobufOptional.json
+++ b/test/schemas/reflect/metadata/ArraySimpleProtobufOptional.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -341,7 +341,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -369,7 +369,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -397,7 +397,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -481,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -509,7 +509,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -537,7 +537,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -565,7 +565,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -605,7 +605,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -637,7 +637,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -683,7 +683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -729,7 +729,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -775,7 +775,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -821,7 +821,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -867,7 +867,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -913,7 +913,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -945,7 +945,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -974,7 +974,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ArrayUnion.json b/test/schemas/reflect/metadata/ArrayUnion.json
index 49cea43a66..35443923a5 100644
--- a/test/schemas/reflect/metadata/ArrayUnion.json
+++ b/test/schemas/reflect/metadata/ArrayUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -76,7 +76,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -108,7 +108,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -140,7 +140,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/AtomicAlias.json b/test/schemas/reflect/metadata/AtomicAlias.json
index 80aeb15c94..581adeb7d0 100644
--- a/test/schemas/reflect/metadata/AtomicAlias.json
+++ b/test/schemas/reflect/metadata/AtomicAlias.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -39,7 +39,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -63,7 +63,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -87,7 +87,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/AtomicClass.json b/test/schemas/reflect/metadata/AtomicClass.json
index 0207515208..524270ba9c 100644
--- a/test/schemas/reflect/metadata/AtomicClass.json
+++ b/test/schemas/reflect/metadata/AtomicClass.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -39,7 +39,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -60,7 +60,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -91,7 +91,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -138,7 +138,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -169,7 +169,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -216,7 +216,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -247,7 +247,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/AtomicIntersection.json b/test/schemas/reflect/metadata/AtomicIntersection.json
index 17ad8844ec..5a14e8c761 100644
--- a/test/schemas/reflect/metadata/AtomicIntersection.json
+++ b/test/schemas/reflect/metadata/AtomicIntersection.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -39,7 +39,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -63,7 +63,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -87,7 +87,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/AtomicSimple.json b/test/schemas/reflect/metadata/AtomicSimple.json
index ad6e9b383b..b742797615 100644
--- a/test/schemas/reflect/metadata/AtomicSimple.json
+++ b/test/schemas/reflect/metadata/AtomicSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -39,7 +39,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -63,7 +63,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -87,7 +87,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/AtomicUnion.json b/test/schemas/reflect/metadata/AtomicUnion.json
index 6b1058506e..f583bb0785 100644
--- a/test/schemas/reflect/metadata/AtomicUnion.json
+++ b/test/schemas/reflect/metadata/AtomicUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ClassClosure.json b/test/schemas/reflect/metadata/ClassClosure.json
index a55339aabd..d0fefced20 100644
--- a/test/schemas/reflect/metadata/ClassClosure.json
+++ b/test/schemas/reflect/metadata/ClassClosure.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -150,7 +150,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -178,7 +178,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ClassGetter.json b/test/schemas/reflect/metadata/ClassGetter.json
index 5c5d3ca893..97bee1ea74 100644
--- a/test/schemas/reflect/metadata/ClassGetter.json
+++ b/test/schemas/reflect/metadata/ClassGetter.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
diff --git a/test/schemas/reflect/metadata/ClassMethod.json b/test/schemas/reflect/metadata/ClassMethod.json
index fe880b4b39..7369df76d8 100644
--- a/test/schemas/reflect/metadata/ClassMethod.json
+++ b/test/schemas/reflect/metadata/ClassMethod.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -138,6 +138,86 @@
},
"description": null,
"jsDocTags": []
+ },
+ {
+ "key": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [
+ {
+ "type": "string",
+ "values": [
+ {
+ "value": "bark"
+ }
+ ]
+ }
+ ],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "value": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
}
],
"jsDocTags": [],
diff --git a/test/schemas/reflect/metadata/ClassNonPublic.json b/test/schemas/reflect/metadata/ClassNonPublic.json
index 110099a5d4..46b6aba58f 100644
--- a/test/schemas/reflect/metadata/ClassNonPublic.json
+++ b/test/schemas/reflect/metadata/ClassNonPublic.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -138,6 +138,86 @@
},
"description": null,
"jsDocTags": []
+ },
+ {
+ "key": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [
+ {
+ "type": "string",
+ "values": [
+ {
+ "value": "getHidden"
+ }
+ ]
+ }
+ ],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "value": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "boolean",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
}
],
"jsDocTags": [],
diff --git a/test/schemas/reflect/metadata/ClassPropertyAssignment.json b/test/schemas/reflect/metadata/ClassPropertyAssignment.json
index d34932bf9d..65af1c742c 100644
--- a/test/schemas/reflect/metadata/ClassPropertyAssignment.json
+++ b/test/schemas/reflect/metadata/ClassPropertyAssignment.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -206,7 +206,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -234,7 +234,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -267,7 +267,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -295,7 +295,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
diff --git a/test/schemas/reflect/metadata/CommentTagArray.json b/test/schemas/reflect/metadata/CommentTagArray.json
index 8f35cb1d95..e1e3ed99ba 100644
--- a/test/schemas/reflect/metadata/CommentTagArray.json
+++ b/test/schemas/reflect/metadata/CommentTagArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -191,7 +191,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -219,7 +219,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -271,7 +271,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -299,7 +299,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -371,7 +371,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -399,7 +399,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -471,7 +471,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -499,7 +499,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -557,7 +557,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -586,7 +586,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -618,7 +618,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/CommentTagArrayUnion.json b/test/schemas/reflect/metadata/CommentTagArrayUnion.json
index ef876100a7..9a8be95b38 100644
--- a/test/schemas/reflect/metadata/CommentTagArrayUnion.json
+++ b/test/schemas/reflect/metadata/CommentTagArrayUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -127,7 +127,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -155,7 +155,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -207,7 +207,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -235,7 +235,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -287,7 +287,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -315,7 +315,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -399,7 +399,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -428,7 +428,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -460,7 +460,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -492,7 +492,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/CommentTagAtomicUnion.json b/test/schemas/reflect/metadata/CommentTagAtomicUnion.json
index 370839975f..3985f992e0 100644
--- a/test/schemas/reflect/metadata/CommentTagAtomicUnion.json
+++ b/test/schemas/reflect/metadata/CommentTagAtomicUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -242,7 +242,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/CommentTagBigInt.json b/test/schemas/reflect/metadata/CommentTagBigInt.json
index 7101e3d3cc..3206a7c18e 100644
--- a/test/schemas/reflect/metadata/CommentTagBigInt.json
+++ b/test/schemas/reflect/metadata/CommentTagBigInt.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -223,7 +223,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -278,7 +278,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -306,7 +306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -361,7 +361,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -389,7 +389,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
diff --git a/test/schemas/reflect/metadata/CommentTagDefault.json b/test/schemas/reflect/metadata/CommentTagDefault.json
index 045af4d554..e72c243e46 100644
--- a/test/schemas/reflect/metadata/CommentTagDefault.json
+++ b/test/schemas/reflect/metadata/CommentTagDefault.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -99,7 +99,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -127,7 +127,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -165,7 +165,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -193,7 +193,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -231,7 +231,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -259,7 +259,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -297,7 +297,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -325,7 +325,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -389,7 +389,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -417,7 +417,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -463,7 +463,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -491,7 +491,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -537,7 +537,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -565,7 +565,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -611,7 +611,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -639,7 +639,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -726,7 +726,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -754,7 +754,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -774,7 +774,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -802,7 +802,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/CommentTagFormat.json b/test/schemas/reflect/metadata/CommentTagFormat.json
index e98f6a28ba..b24dbcc1b8 100644
--- a/test/schemas/reflect/metadata/CommentTagFormat.json
+++ b/test/schemas/reflect/metadata/CommentTagFormat.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -113,7 +113,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -141,7 +141,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -193,7 +193,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -221,7 +221,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -273,7 +273,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -301,7 +301,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -353,7 +353,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -381,7 +381,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -433,7 +433,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -461,7 +461,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -513,7 +513,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -541,7 +541,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -593,7 +593,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -621,7 +621,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -673,7 +673,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -701,7 +701,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -753,7 +753,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -781,7 +781,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -833,7 +833,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -861,7 +861,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -913,7 +913,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -941,7 +941,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -993,7 +993,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1021,7 +1021,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1073,7 +1073,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1101,7 +1101,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1153,7 +1153,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1181,7 +1181,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1233,7 +1233,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1261,7 +1261,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1313,7 +1313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1341,7 +1341,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1393,7 +1393,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1421,7 +1421,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1473,7 +1473,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1501,7 +1501,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1553,7 +1553,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1581,7 +1581,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1633,7 +1633,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1661,7 +1661,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1713,7 +1713,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1741,7 +1741,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/CommentTagInfinite.json b/test/schemas/reflect/metadata/CommentTagInfinite.json
index 47cd3e62f6..bb36394fc2 100644
--- a/test/schemas/reflect/metadata/CommentTagInfinite.json
+++ b/test/schemas/reflect/metadata/CommentTagInfinite.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -223,7 +223,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -278,7 +278,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -306,7 +306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -361,7 +361,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -389,7 +389,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -441,7 +441,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -469,7 +469,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/CommentTagLength.json b/test/schemas/reflect/metadata/CommentTagLength.json
index 6900cf792d..72d836d40a 100644
--- a/test/schemas/reflect/metadata/CommentTagLength.json
+++ b/test/schemas/reflect/metadata/CommentTagLength.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -191,7 +191,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -219,7 +219,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -271,7 +271,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -299,7 +299,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -351,7 +351,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -379,7 +379,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -451,7 +451,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -479,7 +479,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -563,7 +563,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/CommentTagNaN.json b/test/schemas/reflect/metadata/CommentTagNaN.json
index d8d1567538..760eabd78a 100644
--- a/test/schemas/reflect/metadata/CommentTagNaN.json
+++ b/test/schemas/reflect/metadata/CommentTagNaN.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -223,7 +223,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -278,7 +278,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -306,7 +306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -361,7 +361,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -389,7 +389,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -441,7 +441,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -469,7 +469,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/CommentTagObjectUnion.json b/test/schemas/reflect/metadata/CommentTagObjectUnion.json
index 112ac74f4e..6d5bc13595 100644
--- a/test/schemas/reflect/metadata/CommentTagObjectUnion.json
+++ b/test/schemas/reflect/metadata/CommentTagObjectUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -158,7 +158,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -242,7 +242,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/CommentTagPattern.json b/test/schemas/reflect/metadata/CommentTagPattern.json
index f09d6ae83f..c7f407d2c0 100644
--- a/test/schemas/reflect/metadata/CommentTagPattern.json
+++ b/test/schemas/reflect/metadata/CommentTagPattern.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -115,7 +115,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -143,7 +143,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -197,7 +197,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -225,7 +225,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -279,7 +279,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -307,7 +307,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/CommentTagRange.json b/test/schemas/reflect/metadata/CommentTagRange.json
index 3e7c8bf182..f2092f7ffd 100644
--- a/test/schemas/reflect/metadata/CommentTagRange.json
+++ b/test/schemas/reflect/metadata/CommentTagRange.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -232,7 +232,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -307,7 +307,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -335,7 +335,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -411,7 +411,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -439,7 +439,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -514,7 +514,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -542,7 +542,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -642,7 +642,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -670,7 +670,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -769,7 +769,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -797,7 +797,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -896,7 +896,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -924,7 +924,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1022,7 +1022,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1050,7 +1050,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1160,7 +1160,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/CommentTagRangeBigInt.json b/test/schemas/reflect/metadata/CommentTagRangeBigInt.json
index a3171f3645..86b077a969 100644
--- a/test/schemas/reflect/metadata/CommentTagRangeBigInt.json
+++ b/test/schemas/reflect/metadata/CommentTagRangeBigInt.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -183,7 +183,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -211,7 +211,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -266,7 +266,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -294,7 +294,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -349,7 +349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -377,7 +377,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -432,7 +432,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -460,7 +460,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -538,7 +538,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -566,7 +566,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -644,7 +644,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -672,7 +672,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -750,7 +750,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -778,7 +778,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -856,7 +856,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -884,7 +884,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -974,7 +974,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/CommentTagType.json b/test/schemas/reflect/metadata/CommentTagType.json
index 20d2e008e6..0f070c06b2 100644
--- a/test/schemas/reflect/metadata/CommentTagType.json
+++ b/test/schemas/reflect/metadata/CommentTagType.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -180,7 +180,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -208,7 +208,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -260,7 +260,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -288,7 +288,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -340,7 +340,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -368,7 +368,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -420,7 +420,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -448,7 +448,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -500,7 +500,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -528,7 +528,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -580,7 +580,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -608,7 +608,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -669,7 +669,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/CommentTagTypeBigInt.json b/test/schemas/reflect/metadata/CommentTagTypeBigInt.json
index 4f43809f21..e099263ef9 100644
--- a/test/schemas/reflect/metadata/CommentTagTypeBigInt.json
+++ b/test/schemas/reflect/metadata/CommentTagTypeBigInt.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
diff --git a/test/schemas/reflect/metadata/ConstantAtomicAbsorbed.json b/test/schemas/reflect/metadata/ConstantAtomicAbsorbed.json
index 9113f4b444..10409a578c 100644
--- a/test/schemas/reflect/metadata/ConstantAtomicAbsorbed.json
+++ b/test/schemas/reflect/metadata/ConstantAtomicAbsorbed.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -102,7 +102,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ConstantAtomicSimple.json b/test/schemas/reflect/metadata/ConstantAtomicSimple.json
index c3688c7a5d..b79adc13b0 100644
--- a/test/schemas/reflect/metadata/ConstantAtomicSimple.json
+++ b/test/schemas/reflect/metadata/ConstantAtomicSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -39,7 +39,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -68,7 +68,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -126,7 +126,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
diff --git a/test/schemas/reflect/metadata/ConstantAtomicTagged.json b/test/schemas/reflect/metadata/ConstantAtomicTagged.json
index f1242bd220..d253ebe313 100644
--- a/test/schemas/reflect/metadata/ConstantAtomicTagged.json
+++ b/test/schemas/reflect/metadata/ConstantAtomicTagged.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -116,7 +116,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -144,7 +144,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ConstantAtomicUnion.json b/test/schemas/reflect/metadata/ConstantAtomicUnion.json
index 7dca206b3c..badfa3e3b6 100644
--- a/test/schemas/reflect/metadata/ConstantAtomicUnion.json
+++ b/test/schemas/reflect/metadata/ConstantAtomicUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -109,7 +109,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
diff --git a/test/schemas/reflect/metadata/ConstantAtomicWrapper.json b/test/schemas/reflect/metadata/ConstantAtomicWrapper.json
index f9786ac0bb..8cb5316078 100644
--- a/test/schemas/reflect/metadata/ConstantAtomicWrapper.json
+++ b/test/schemas/reflect/metadata/ConstantAtomicWrapper.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -103,7 +103,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -131,7 +131,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -170,7 +170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -198,7 +198,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -241,7 +241,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -262,7 +262,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -283,7 +283,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ConstantConstEnumeration.json b/test/schemas/reflect/metadata/ConstantConstEnumeration.json
index 97fd5b2fe5..f56036bdd4 100644
--- a/test/schemas/reflect/metadata/ConstantConstEnumeration.json
+++ b/test/schemas/reflect/metadata/ConstantConstEnumeration.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
diff --git a/test/schemas/reflect/metadata/ConstantEnumeration.json b/test/schemas/reflect/metadata/ConstantEnumeration.json
index 30c8dda15e..6f5f669270 100644
--- a/test/schemas/reflect/metadata/ConstantEnumeration.json
+++ b/test/schemas/reflect/metadata/ConstantEnumeration.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
diff --git a/test/schemas/reflect/metadata/ConstantIntersection.json b/test/schemas/reflect/metadata/ConstantIntersection.json
index 037a0b7ec6..fd8339a6b0 100644
--- a/test/schemas/reflect/metadata/ConstantIntersection.json
+++ b/test/schemas/reflect/metadata/ConstantIntersection.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -39,7 +39,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -68,7 +68,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
diff --git a/test/schemas/reflect/metadata/DynamicArray.json b/test/schemas/reflect/metadata/DynamicArray.json
index 40c83f9681..a5aee9ff25 100644
--- a/test/schemas/reflect/metadata/DynamicArray.json
+++ b/test/schemas/reflect/metadata/DynamicArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -121,7 +121,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -161,7 +161,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/DynamicComposite.json b/test/schemas/reflect/metadata/DynamicComposite.json
index 4537a100c0..b91f774204 100644
--- a/test/schemas/reflect/metadata/DynamicComposite.json
+++ b/test/schemas/reflect/metadata/DynamicComposite.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -169,7 +169,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -197,7 +197,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -208,7 +208,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -236,7 +236,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -273,7 +273,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -301,7 +301,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -312,7 +312,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -336,7 +336,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -377,7 +377,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -405,7 +405,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -481,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -517,7 +517,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -528,7 +528,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -556,7 +556,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -580,7 +580,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -608,7 +608,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -645,7 +645,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
diff --git a/test/schemas/reflect/metadata/DynamicConstant.json b/test/schemas/reflect/metadata/DynamicConstant.json
index 8516a5bf9b..7a7a250139 100644
--- a/test/schemas/reflect/metadata/DynamicConstant.json
+++ b/test/schemas/reflect/metadata/DynamicConstant.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -125,7 +125,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -153,7 +153,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -181,7 +181,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -209,7 +209,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -237,7 +237,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -265,7 +265,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -293,7 +293,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/DynamicEnumeration.json b/test/schemas/reflect/metadata/DynamicEnumeration.json
index 9664515193..eff38ca823 100644
--- a/test/schemas/reflect/metadata/DynamicEnumeration.json
+++ b/test/schemas/reflect/metadata/DynamicEnumeration.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -125,7 +125,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -153,7 +153,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -181,7 +181,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -209,7 +209,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -237,7 +237,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -265,7 +265,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -293,7 +293,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -321,7 +321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -349,7 +349,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -377,7 +377,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -405,7 +405,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -433,7 +433,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -461,7 +461,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -489,7 +489,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -517,7 +517,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -545,7 +545,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -573,7 +573,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -601,7 +601,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -629,7 +629,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/DynamicJsonValue.json b/test/schemas/reflect/metadata/DynamicJsonValue.json
index c6644a6d9a..258e660cec 100644
--- a/test/schemas/reflect/metadata/DynamicJsonValue.json
+++ b/test/schemas/reflect/metadata/DynamicJsonValue.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -51,7 +51,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -75,7 +75,7 @@
"required": false,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/DynamicNever.json b/test/schemas/reflect/metadata/DynamicNever.json
index 75da381616..45551c10fb 100644
--- a/test/schemas/reflect/metadata/DynamicNever.json
+++ b/test/schemas/reflect/metadata/DynamicNever.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -57,7 +57,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/DynamicSimple.json b/test/schemas/reflect/metadata/DynamicSimple.json
index 3b86fbdea7..56f71da9b3 100644
--- a/test/schemas/reflect/metadata/DynamicSimple.json
+++ b/test/schemas/reflect/metadata/DynamicSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -121,7 +121,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/DynamicTag.json b/test/schemas/reflect/metadata/DynamicTag.json
index aa6e8fbd39..8b61ed80a0 100644
--- a/test/schemas/reflect/metadata/DynamicTag.json
+++ b/test/schemas/reflect/metadata/DynamicTag.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -131,7 +131,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -172,7 +172,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/DynamicTemplate.json b/test/schemas/reflect/metadata/DynamicTemplate.json
index 4c27f615e6..6995cec4eb 100644
--- a/test/schemas/reflect/metadata/DynamicTemplate.json
+++ b/test/schemas/reflect/metadata/DynamicTemplate.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -44,7 +44,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -72,7 +72,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -109,7 +109,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -137,7 +137,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -172,7 +172,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -213,7 +213,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -241,7 +241,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -252,7 +252,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -280,7 +280,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -317,7 +317,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -345,7 +345,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -356,7 +356,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -384,7 +384,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -408,7 +408,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -436,7 +436,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -473,7 +473,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
diff --git a/test/schemas/reflect/metadata/DynamicTree.json b/test/schemas/reflect/metadata/DynamicTree.json
index 2e9f1d337d..38fbb94253 100644
--- a/test/schemas/reflect/metadata/DynamicTree.json
+++ b/test/schemas/reflect/metadata/DynamicTree.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -209,7 +209,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -233,7 +233,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/DynamicUndefined.json b/test/schemas/reflect/metadata/DynamicUndefined.json
index 126cfb5c7a..f5da489a0e 100644
--- a/test/schemas/reflect/metadata/DynamicUndefined.json
+++ b/test/schemas/reflect/metadata/DynamicUndefined.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -57,7 +57,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/DynamicUnion.json b/test/schemas/reflect/metadata/DynamicUnion.json
index 025be69ef8..97dac6748a 100644
--- a/test/schemas/reflect/metadata/DynamicUnion.json
+++ b/test/schemas/reflect/metadata/DynamicUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -57,7 +57,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -85,7 +85,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -96,7 +96,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -124,7 +124,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -161,7 +161,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -189,7 +189,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -200,7 +200,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -224,7 +224,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -265,7 +265,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -293,7 +293,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -304,7 +304,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -332,7 +332,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -356,7 +356,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -384,7 +384,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -421,7 +421,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/FunctionalArray.json b/test/schemas/reflect/metadata/FunctionalArray.json
index 0bc34c776d..919f4b9f17 100644
--- a/test/schemas/reflect/metadata/FunctionalArray.json
+++ b/test/schemas/reflect/metadata/FunctionalArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,88 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "nullables": [
+ false
+ ],
+ "recursive": false,
+ "index": null
+ },
+ {
+ "name": "Array",
+ "value": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/FunctionalArrayUnion.json b/test/schemas/reflect/metadata/FunctionalArrayUnion.json
index fa4e1b47a4..9a7ccddcd3 100644
--- a/test/schemas/reflect/metadata/FunctionalArrayUnion.json
+++ b/test/schemas/reflect/metadata/FunctionalArrayUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -80,7 +80,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -112,7 +112,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -144,7 +144,31 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -171,7 +195,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/FunctionalObjectUnion.json b/test/schemas/reflect/metadata/FunctionalObjectUnion.json
index 565e665c6d..c86e87dfc7 100644
--- a/test/schemas/reflect/metadata/FunctionalObjectUnion.json
+++ b/test/schemas/reflect/metadata/FunctionalObjectUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,63 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "p",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [
+ "FunctionalObjectUnion.IPoint"
+ ],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -210,7 +266,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -238,7 +294,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -263,7 +319,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -291,7 +347,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -316,7 +372,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -344,7 +400,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -378,7 +463,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -406,7 +491,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -434,7 +519,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -462,7 +547,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -496,7 +610,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -524,7 +638,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -552,7 +666,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -580,7 +694,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -603,7 +746,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -631,7 +774,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -666,7 +838,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -698,7 +870,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/FunctionalProperty.json b/test/schemas/reflect/metadata/FunctionalProperty.json
index 91da795222..5ad41b898c 100644
--- a/test/schemas/reflect/metadata/FunctionalProperty.json
+++ b/test/schemas/reflect/metadata/FunctionalProperty.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,66 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "value",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "boolean",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/FunctionalPropertyUnion.json b/test/schemas/reflect/metadata/FunctionalPropertyUnion.json
index 36216dc782..7f8af4ca0d 100644
--- a/test/schemas/reflect/metadata/FunctionalPropertyUnion.json
+++ b/test/schemas/reflect/metadata/FunctionalPropertyUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,61 @@
"required": false,
"optional": false,
"nullable": true,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [
{
"type": "string",
@@ -164,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -185,6 +239,33 @@
],
"recursive": false,
"index": null
+ },
+ {
+ "name": "Array",
+ "value": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "nullables": [
+ false
+ ],
+ "recursive": false,
+ "index": null
}
],
"tuples": []
diff --git a/test/schemas/reflect/metadata/FunctionalTuple.json b/test/schemas/reflect/metadata/FunctionalTuple.json
index ea4bf2df1d..01d955320e 100644
--- a/test/schemas/reflect/metadata/FunctionalTuple.json
+++ b/test/schemas/reflect/metadata/FunctionalTuple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -28,7 +28,35 @@
"components": {
"objects": [],
"aliases": [],
- "arrays": [],
+ "arrays": [
+ {
+ "name": "Array",
+ "value": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "nullables": [
+ false
+ ],
+ "recursive": false,
+ "index": null
+ }
+ ],
"tuples": [
{
"name": "FunctionalTuple",
@@ -39,7 +67,61 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -58,7 +140,61 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -77,7 +213,61 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/FunctionalTupleUnion.json b/test/schemas/reflect/metadata/FunctionalTupleUnion.json
index 50497d69cf..2caca2404d 100644
--- a/test/schemas/reflect/metadata/FunctionalTupleUnion.json
+++ b/test/schemas/reflect/metadata/FunctionalTupleUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -28,7 +28,35 @@
"components": {
"objects": [],
"aliases": [],
- "arrays": [],
+ "arrays": [
+ {
+ "name": "Array",
+ "value": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "nullables": [
+ false
+ ],
+ "recursive": false,
+ "index": null
+ }
+ ],
"tuples": [
{
"name": "FunctionalTupleUnion",
@@ -39,7 +67,61 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [
{
"type": "string",
@@ -67,7 +149,61 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [
{
"type": "string",
@@ -95,7 +231,61 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [
{
"type": "string",
@@ -123,7 +313,61 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/FunctionalValue.json b/test/schemas/reflect/metadata/FunctionalValue.json
index a7e205909a..e8e45c20c0 100644
--- a/test/schemas/reflect/metadata/FunctionalValue.json
+++ b/test/schemas/reflect/metadata/FunctionalValue.json
@@ -5,7 +5,61 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [
+ {
+ "name": "args",
+ "type": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -23,7 +77,35 @@
"components": {
"objects": [],
"aliases": [],
- "arrays": [],
+ "arrays": [
+ {
+ "name": "Array",
+ "value": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "nullables": [
+ false
+ ],
+ "recursive": false,
+ "index": null
+ }
+ ],
"tuples": []
}
}
\ No newline at end of file
diff --git a/test/schemas/reflect/metadata/FunctionalValueUnion.json b/test/schemas/reflect/metadata/FunctionalValueUnion.json
index 96845f1331..99881fffee 100644
--- a/test/schemas/reflect/metadata/FunctionalValueUnion.json
+++ b/test/schemas/reflect/metadata/FunctionalValueUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,31 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": true,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/InstanceUnion.json b/test/schemas/reflect/metadata/InstanceUnion.json
index 72ddf90446..6482a54783 100644
--- a/test/schemas/reflect/metadata/InstanceUnion.json
+++ b/test/schemas/reflect/metadata/InstanceUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -142,7 +142,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -170,7 +170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -223,7 +223,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -259,7 +259,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -287,7 +287,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -315,7 +315,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -343,7 +343,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -371,7 +371,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -399,7 +399,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -438,7 +438,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -466,7 +466,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -494,7 +494,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -522,7 +522,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -550,7 +550,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -578,7 +578,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -622,7 +622,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -650,7 +650,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -675,7 +675,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -703,7 +703,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -728,7 +728,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -756,7 +756,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -800,7 +800,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -828,7 +828,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -856,7 +856,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -884,7 +884,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -923,7 +923,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -951,7 +951,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -976,7 +976,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1004,7 +1004,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1029,7 +1029,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1057,7 +1057,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1082,7 +1082,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1110,7 +1110,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1154,7 +1154,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1182,7 +1182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1207,7 +1207,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1235,7 +1235,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1260,7 +1260,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1288,7 +1288,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1313,7 +1313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1341,7 +1341,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1366,7 +1366,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1394,7 +1394,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1438,7 +1438,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1466,7 +1466,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1494,7 +1494,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1522,7 +1522,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1566,7 +1566,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1594,7 +1594,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1619,7 +1619,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1647,7 +1647,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1675,7 +1675,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1703,7 +1703,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1747,7 +1747,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1775,7 +1775,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1814,7 +1814,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1842,7 +1842,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1867,7 +1867,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1895,7 +1895,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1923,7 +1923,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1951,7 +1951,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1996,7 +1996,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -2048,7 +2048,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -2075,7 +2075,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2094,7 +2094,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2124,7 +2124,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -2156,7 +2156,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -2188,7 +2188,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2223,7 +2223,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2252,7 +2252,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2294,7 +2294,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2318,7 +2318,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2352,7 +2352,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -2376,7 +2376,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -2400,7 +2400,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/MapAlias.json b/test/schemas/reflect/metadata/MapAlias.json
index 1ca5ebe5bb..6f5fb59324 100644
--- a/test/schemas/reflect/metadata/MapAlias.json
+++ b/test/schemas/reflect/metadata/MapAlias.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -80,7 +80,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -104,7 +104,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -135,7 +135,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -163,7 +163,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -206,7 +206,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -237,7 +237,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -265,7 +265,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -284,7 +284,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -308,7 +308,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -339,7 +339,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -367,7 +367,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -386,7 +386,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -410,7 +410,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -441,7 +441,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -469,7 +469,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -488,7 +488,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -509,7 +509,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -551,7 +551,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -579,7 +579,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -607,7 +607,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -635,7 +635,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -663,7 +663,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -691,7 +691,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -731,7 +731,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/MapSimple.json b/test/schemas/reflect/metadata/MapSimple.json
index e17eac0cdb..376abf0397 100644
--- a/test/schemas/reflect/metadata/MapSimple.json
+++ b/test/schemas/reflect/metadata/MapSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -80,7 +80,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -104,7 +104,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -135,7 +135,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -163,7 +163,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -206,7 +206,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -237,7 +237,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -265,7 +265,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -284,7 +284,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -308,7 +308,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -339,7 +339,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -367,7 +367,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -386,7 +386,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -410,7 +410,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -441,7 +441,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -469,7 +469,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -488,7 +488,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -509,7 +509,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -551,7 +551,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -579,7 +579,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -607,7 +607,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -635,7 +635,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -663,7 +663,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -691,7 +691,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -731,7 +731,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/MapSimpleProtobuf.json b/test/schemas/reflect/metadata/MapSimpleProtobuf.json
index c64d45e9de..59b5a971d1 100644
--- a/test/schemas/reflect/metadata/MapSimpleProtobuf.json
+++ b/test/schemas/reflect/metadata/MapSimpleProtobuf.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -80,7 +80,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -104,7 +104,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -135,7 +135,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -163,7 +163,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -206,7 +206,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -251,7 +251,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -279,7 +279,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -298,7 +298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -353,7 +353,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -381,7 +381,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -400,7 +400,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -424,7 +424,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -455,7 +455,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -483,7 +483,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -502,7 +502,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -526,7 +526,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -571,7 +571,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -599,7 +599,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -618,7 +618,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -642,7 +642,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -670,7 +670,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -698,7 +698,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -717,7 +717,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -741,7 +741,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/MapSimpleProtobufNullable.json b/test/schemas/reflect/metadata/MapSimpleProtobufNullable.json
index cb1f8e7b90..25bd186d8e 100644
--- a/test/schemas/reflect/metadata/MapSimpleProtobufNullable.json
+++ b/test/schemas/reflect/metadata/MapSimpleProtobufNullable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -80,7 +80,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -104,7 +104,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -135,7 +135,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -163,7 +163,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -206,7 +206,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -251,7 +251,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -279,7 +279,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -298,7 +298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -353,7 +353,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -381,7 +381,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -400,7 +400,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -424,7 +424,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -455,7 +455,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -483,7 +483,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -502,7 +502,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -526,7 +526,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -571,7 +571,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -599,7 +599,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -618,7 +618,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -642,7 +642,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -670,7 +670,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -698,7 +698,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -717,7 +717,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -741,7 +741,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/MapSimpleProtobufOptional.json b/test/schemas/reflect/metadata/MapSimpleProtobufOptional.json
index 16c23b2d20..75ea5d4e02 100644
--- a/test/schemas/reflect/metadata/MapSimpleProtobufOptional.json
+++ b/test/schemas/reflect/metadata/MapSimpleProtobufOptional.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -80,7 +80,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -104,7 +104,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -135,7 +135,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -163,7 +163,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -206,7 +206,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -251,7 +251,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -279,7 +279,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -298,7 +298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -353,7 +353,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -381,7 +381,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -400,7 +400,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -424,7 +424,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -455,7 +455,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -483,7 +483,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -502,7 +502,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -526,7 +526,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -571,7 +571,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -599,7 +599,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -618,7 +618,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -642,7 +642,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -670,7 +670,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -698,7 +698,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -717,7 +717,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -741,7 +741,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/MapUnion.json b/test/schemas/reflect/metadata/MapUnion.json
index aa75833c33..69207e868b 100644
--- a/test/schemas/reflect/metadata/MapUnion.json
+++ b/test/schemas/reflect/metadata/MapUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -216,7 +216,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -235,7 +235,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -259,7 +259,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -309,7 +309,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -335,7 +335,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -359,7 +359,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -385,7 +385,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -409,7 +409,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -435,7 +435,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -456,7 +456,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -491,7 +491,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/NativeAlias.json b/test/schemas/reflect/metadata/NativeAlias.json
index 13c8cb6654..9a87f89897 100644
--- a/test/schemas/reflect/metadata/NativeAlias.json
+++ b/test/schemas/reflect/metadata/NativeAlias.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -71,7 +71,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -158,7 +158,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -183,7 +183,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -211,7 +211,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -236,7 +236,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -264,7 +264,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -289,7 +289,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -317,7 +317,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -342,7 +342,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -370,7 +370,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -395,7 +395,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -423,7 +423,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -448,7 +448,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -476,7 +476,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -501,7 +501,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -529,7 +529,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -554,7 +554,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -582,7 +582,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -607,7 +607,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -635,7 +635,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -660,7 +660,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -688,7 +688,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -713,7 +713,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -741,7 +741,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -766,7 +766,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -794,7 +794,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -819,7 +819,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -847,7 +847,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/NativeSimple.json b/test/schemas/reflect/metadata/NativeSimple.json
index 72ac2f2e19..dbf33f71c5 100644
--- a/test/schemas/reflect/metadata/NativeSimple.json
+++ b/test/schemas/reflect/metadata/NativeSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -71,7 +71,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -158,7 +158,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -183,7 +183,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -211,7 +211,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -236,7 +236,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -264,7 +264,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -289,7 +289,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -317,7 +317,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -342,7 +342,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -370,7 +370,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -395,7 +395,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -423,7 +423,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -448,7 +448,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -476,7 +476,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -501,7 +501,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -529,7 +529,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -554,7 +554,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -582,7 +582,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -607,7 +607,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -635,7 +635,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -660,7 +660,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -688,7 +688,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -713,7 +713,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -741,7 +741,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -766,7 +766,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -794,7 +794,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -819,7 +819,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -847,7 +847,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/NativeUnion.json b/test/schemas/reflect/metadata/NativeUnion.json
index 7f7dab9c9b..9e823ff2d9 100644
--- a/test/schemas/reflect/metadata/NativeUnion.json
+++ b/test/schemas/reflect/metadata/NativeUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -74,7 +74,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -95,7 +95,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -133,7 +133,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -161,7 +161,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -190,7 +190,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -218,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -246,7 +246,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -274,7 +274,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -300,7 +300,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -328,7 +328,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -366,7 +366,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectAlias.json b/test/schemas/reflect/metadata/ObjectAlias.json
index ec8b76ab77..b1558ba147 100644
--- a/test/schemas/reflect/metadata/ObjectAlias.json
+++ b/test/schemas/reflect/metadata/ObjectAlias.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -232,7 +232,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -282,7 +282,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -310,7 +310,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -338,7 +338,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -366,7 +366,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -406,7 +406,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectClosure.json b/test/schemas/reflect/metadata/ObjectClosure.json
index 895c6b1441..62f2fe30ce 100644
--- a/test/schemas/reflect/metadata/ObjectClosure.json
+++ b/test/schemas/reflect/metadata/ObjectClosure.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectDate.json b/test/schemas/reflect/metadata/ObjectDate.json
index b79f231f19..3a2506515c 100644
--- a/test/schemas/reflect/metadata/ObjectDate.json
+++ b/test/schemas/reflect/metadata/ObjectDate.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -71,7 +71,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -158,7 +158,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -203,7 +203,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -231,7 +231,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -276,7 +276,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -304,7 +304,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -349,7 +349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -377,7 +377,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectDescription.json b/test/schemas/reflect/metadata/ObjectDescription.json
index 5aa8009364..9158e2f143 100644
--- a/test/schemas/reflect/metadata/ObjectDescription.json
+++ b/test/schemas/reflect/metadata/ObjectDescription.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -116,7 +116,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -144,7 +144,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -242,7 +242,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -270,7 +270,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -298,7 +298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -326,7 +326,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -386,7 +386,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectDynamic.json b/test/schemas/reflect/metadata/ObjectDynamic.json
index 29b545b3eb..94bcb1b2c5 100644
--- a/test/schemas/reflect/metadata/ObjectDynamic.json
+++ b/test/schemas/reflect/metadata/ObjectDynamic.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -57,7 +57,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectGeneric.json b/test/schemas/reflect/metadata/ObjectGeneric.json
index 678f928e41..a591eeaad8 100644
--- a/test/schemas/reflect/metadata/ObjectGeneric.json
+++ b/test/schemas/reflect/metadata/ObjectGeneric.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -212,7 +212,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -240,7 +240,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -268,7 +268,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -296,7 +296,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -335,7 +335,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -363,7 +363,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -391,7 +391,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -419,7 +419,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -472,7 +472,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -511,7 +511,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -539,7 +539,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -567,7 +567,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -595,7 +595,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -634,7 +634,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -662,7 +662,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -690,7 +690,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -718,7 +718,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -743,7 +743,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -771,7 +771,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -810,7 +810,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -838,7 +838,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -866,7 +866,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -894,7 +894,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -934,7 +934,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -963,7 +963,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -992,7 +992,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1025,7 +1025,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1046,7 +1046,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1067,7 +1067,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectGenericAlias.json b/test/schemas/reflect/metadata/ObjectGenericAlias.json
index 174738b2b6..4010167a98 100644
--- a/test/schemas/reflect/metadata/ObjectGenericAlias.json
+++ b/test/schemas/reflect/metadata/ObjectGenericAlias.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectGenericArray.json b/test/schemas/reflect/metadata/ObjectGenericArray.json
index 51cbc627c1..b91fd5b959 100644
--- a/test/schemas/reflect/metadata/ObjectGenericArray.json
+++ b/test/schemas/reflect/metadata/ObjectGenericArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -86,7 +86,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -114,7 +114,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -153,7 +153,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -181,7 +181,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -209,7 +209,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -237,7 +237,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -265,7 +265,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -293,7 +293,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -321,7 +321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -349,7 +349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -388,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -472,7 +472,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -512,7 +512,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectGenericUnion.json b/test/schemas/reflect/metadata/ObjectGenericUnion.json
index bd5ed35164..bc411d1a97 100644
--- a/test/schemas/reflect/metadata/ObjectGenericUnion.json
+++ b/test/schemas/reflect/metadata/ObjectGenericUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -98,7 +98,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -126,7 +126,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -154,7 +154,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -207,7 +207,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -235,7 +235,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -263,7 +263,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -291,7 +291,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -319,7 +319,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -347,7 +347,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -375,7 +375,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -403,7 +403,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -442,7 +442,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -470,7 +470,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -498,7 +498,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -526,7 +526,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -554,7 +554,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -582,7 +582,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -610,7 +610,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -638,7 +638,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -677,7 +677,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -705,7 +705,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -733,7 +733,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -761,7 +761,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -789,7 +789,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -817,7 +817,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -845,7 +845,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -873,7 +873,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -901,7 +901,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -929,7 +929,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -968,7 +968,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -996,7 +996,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1024,7 +1024,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1052,7 +1052,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1080,7 +1080,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1108,7 +1108,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1147,7 +1147,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1175,7 +1175,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1203,7 +1203,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1231,7 +1231,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1256,7 +1256,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1284,7 +1284,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1312,7 +1312,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1340,7 +1340,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1368,7 +1368,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1396,7 +1396,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1424,7 +1424,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1452,7 +1452,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1491,7 +1491,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1519,7 +1519,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1547,7 +1547,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1575,7 +1575,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1603,7 +1603,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1631,7 +1631,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1659,7 +1659,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1687,7 +1687,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1715,7 +1715,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1743,7 +1743,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1771,7 +1771,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1799,7 +1799,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1839,7 +1839,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1868,7 +1868,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1897,7 +1897,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectHierarchical.json b/test/schemas/reflect/metadata/ObjectHierarchical.json
index ea37cab1be..df57d01d57 100644
--- a/test/schemas/reflect/metadata/ObjectHierarchical.json
+++ b/test/schemas/reflect/metadata/ObjectHierarchical.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -142,7 +142,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -170,7 +170,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -223,7 +223,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -248,7 +248,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -276,7 +276,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -304,7 +304,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -332,7 +332,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -360,7 +360,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -388,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -480,7 +480,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -508,7 +508,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -536,7 +536,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -564,7 +564,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -592,7 +592,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -620,7 +620,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -648,7 +648,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -676,7 +676,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -704,7 +704,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -732,7 +732,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -760,7 +760,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -788,7 +788,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -816,7 +816,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -844,7 +844,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -880,7 +880,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -908,7 +908,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -936,7 +936,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -964,7 +964,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1003,7 +1003,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1031,7 +1031,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1059,7 +1059,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1087,7 +1087,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1112,7 +1112,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1140,7 +1140,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1165,7 +1165,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1193,7 +1193,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1221,7 +1221,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1249,7 +1249,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1274,7 +1274,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1302,7 +1302,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -1341,7 +1341,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1369,7 +1369,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1397,7 +1397,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1425,7 +1425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1453,7 +1453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1481,7 +1481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1518,7 +1518,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1546,7 +1546,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1574,7 +1574,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1602,7 +1602,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1627,7 +1627,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1655,7 +1655,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1683,7 +1683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1711,7 +1711,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1739,7 +1739,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1767,7 +1767,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1804,7 +1804,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1840,7 +1840,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1864,7 +1864,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1888,7 +1888,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1912,7 +1912,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectHttpArray.json b/test/schemas/reflect/metadata/ObjectHttpArray.json
index d248838437..35a0a60043 100644
--- a/test/schemas/reflect/metadata/ObjectHttpArray.json
+++ b/test/schemas/reflect/metadata/ObjectHttpArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -325,7 +325,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -357,7 +357,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -389,7 +389,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -421,7 +421,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -453,7 +453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -464,7 +464,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -492,7 +492,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectHttpAtomic.json b/test/schemas/reflect/metadata/ObjectHttpAtomic.json
index 0b785ef3ec..e0b9c5d35c 100644
--- a/test/schemas/reflect/metadata/ObjectHttpAtomic.json
+++ b/test/schemas/reflect/metadata/ObjectHttpAtomic.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectHttpCommentTag.json b/test/schemas/reflect/metadata/ObjectHttpCommentTag.json
index 7a126ae1ae..1b9f46aacf 100644
--- a/test/schemas/reflect/metadata/ObjectHttpCommentTag.json
+++ b/test/schemas/reflect/metadata/ObjectHttpCommentTag.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -113,7 +113,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -141,7 +141,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -190,7 +190,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -218,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -270,7 +270,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -298,7 +298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -382,7 +382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectHttpConstant.json b/test/schemas/reflect/metadata/ObjectHttpConstant.json
index fdf367c701..724f63aafd 100644
--- a/test/schemas/reflect/metadata/ObjectHttpConstant.json
+++ b/test/schemas/reflect/metadata/ObjectHttpConstant.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -94,7 +94,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -122,7 +122,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -159,7 +159,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -187,7 +187,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -224,7 +224,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -252,7 +252,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -293,7 +293,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -321,7 +321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -332,7 +332,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -360,7 +360,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectHttpFormData.json b/test/schemas/reflect/metadata/ObjectHttpFormData.json
index 586d83dfce..80717c9e00 100644
--- a/test/schemas/reflect/metadata/ObjectHttpFormData.json
+++ b/test/schemas/reflect/metadata/ObjectHttpFormData.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -106,7 +106,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -134,7 +134,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -162,7 +162,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -190,7 +190,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -218,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -246,7 +246,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -271,7 +271,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -299,7 +299,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -327,7 +327,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -380,7 +380,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -408,7 +408,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -448,7 +448,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -494,7 +494,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -523,7 +523,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectHttpNullable.json b/test/schemas/reflect/metadata/ObjectHttpNullable.json
index c8c68e6087..a745a2b5f5 100644
--- a/test/schemas/reflect/metadata/ObjectHttpNullable.json
+++ b/test/schemas/reflect/metadata/ObjectHttpNullable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -218,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -246,7 +246,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -274,7 +274,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -302,7 +302,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -335,7 +335,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -363,7 +363,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -404,7 +404,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -432,7 +432,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -473,7 +473,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -501,7 +501,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -542,7 +542,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -570,7 +570,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -610,7 +610,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectHttpTypeTag.json b/test/schemas/reflect/metadata/ObjectHttpTypeTag.json
index 887aa00e23..b410b65f4d 100644
--- a/test/schemas/reflect/metadata/ObjectHttpTypeTag.json
+++ b/test/schemas/reflect/metadata/ObjectHttpTypeTag.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -103,7 +103,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -131,7 +131,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -246,7 +246,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -274,7 +274,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -327,7 +327,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -420,7 +420,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -483,7 +483,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectHttpUndefindable.json b/test/schemas/reflect/metadata/ObjectHttpUndefindable.json
index ea112f4869..7403257b0b 100644
--- a/test/schemas/reflect/metadata/ObjectHttpUndefindable.json
+++ b/test/schemas/reflect/metadata/ObjectHttpUndefindable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -318,7 +318,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -346,7 +346,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -387,7 +387,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -415,7 +415,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -456,7 +456,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -484,7 +484,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
diff --git a/test/schemas/reflect/metadata/ObjectInternal.json b/test/schemas/reflect/metadata/ObjectInternal.json
index 03e1f09281..e61fc83240 100644
--- a/test/schemas/reflect/metadata/ObjectInternal.json
+++ b/test/schemas/reflect/metadata/ObjectInternal.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectIntersection.json b/test/schemas/reflect/metadata/ObjectIntersection.json
index d88d5e8f67..89a8234f94 100644
--- a/test/schemas/reflect/metadata/ObjectIntersection.json
+++ b/test/schemas/reflect/metadata/ObjectIntersection.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
diff --git a/test/schemas/reflect/metadata/ObjectJsonTag.json b/test/schemas/reflect/metadata/ObjectJsonTag.json
index 0d2691eb00..316c0f1398 100644
--- a/test/schemas/reflect/metadata/ObjectJsonTag.json
+++ b/test/schemas/reflect/metadata/ObjectJsonTag.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -93,7 +93,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -121,7 +121,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -149,7 +149,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -177,7 +177,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -215,7 +215,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -243,7 +243,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectLiteralProperty.json b/test/schemas/reflect/metadata/ObjectLiteralProperty.json
index 94d1a6c37e..5faf4af5b1 100644
--- a/test/schemas/reflect/metadata/ObjectLiteralProperty.json
+++ b/test/schemas/reflect/metadata/ObjectLiteralProperty.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ObjectLiteralType.json b/test/schemas/reflect/metadata/ObjectLiteralType.json
index 6b8b41480d..06308b5d5a 100644
--- a/test/schemas/reflect/metadata/ObjectLiteralType.json
+++ b/test/schemas/reflect/metadata/ObjectLiteralType.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectNullable.json b/test/schemas/reflect/metadata/ObjectNullable.json
index 50c4cd440d..830673aa04 100644
--- a/test/schemas/reflect/metadata/ObjectNullable.json
+++ b/test/schemas/reflect/metadata/ObjectNullable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -156,7 +156,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -184,7 +184,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -209,7 +209,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -237,7 +237,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -262,7 +262,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -290,7 +290,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -327,7 +327,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -388,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -456,7 +456,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -484,7 +484,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -517,7 +517,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -545,7 +545,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -585,7 +585,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectOptional.json b/test/schemas/reflect/metadata/ObjectOptional.json
index b62dce7c81..78e038fc58 100644
--- a/test/schemas/reflect/metadata/ObjectOptional.json
+++ b/test/schemas/reflect/metadata/ObjectOptional.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectPartial.json b/test/schemas/reflect/metadata/ObjectPartial.json
index 64e622bda1..f911d9ee5a 100644
--- a/test/schemas/reflect/metadata/ObjectPartial.json
+++ b/test/schemas/reflect/metadata/ObjectPartial.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -350,7 +350,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -378,7 +378,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -406,7 +406,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -434,7 +434,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -462,7 +462,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -490,7 +490,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -518,7 +518,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -546,7 +546,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -574,7 +574,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -611,7 +611,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectPartialAndRequired.json b/test/schemas/reflect/metadata/ObjectPartialAndRequired.json
index 8589a5f45f..cdeeec6928 100644
--- a/test/schemas/reflect/metadata/ObjectPartialAndRequired.json
+++ b/test/schemas/reflect/metadata/ObjectPartialAndRequired.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -254,7 +254,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -282,7 +282,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -323,7 +323,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectPrimitive.json b/test/schemas/reflect/metadata/ObjectPrimitive.json
index 7c681974a1..03dd06b516 100644
--- a/test/schemas/reflect/metadata/ObjectPrimitive.json
+++ b/test/schemas/reflect/metadata/ObjectPrimitive.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -158,7 +158,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -186,7 +186,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -214,7 +214,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -242,7 +242,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -270,7 +270,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -298,7 +298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -326,7 +326,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -354,7 +354,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -382,7 +382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -410,7 +410,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -449,7 +449,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -477,7 +477,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -505,7 +505,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -533,7 +533,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -561,7 +561,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -589,7 +589,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -617,7 +617,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -645,7 +645,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -673,7 +673,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -701,7 +701,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -741,7 +741,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectPropertyNullable.json b/test/schemas/reflect/metadata/ObjectPropertyNullable.json
index 475e1433f3..a030f57567 100644
--- a/test/schemas/reflect/metadata/ObjectPropertyNullable.json
+++ b/test/schemas/reflect/metadata/ObjectPropertyNullable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -103,7 +103,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -131,7 +131,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -170,7 +170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -198,7 +198,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -237,7 +237,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -265,7 +265,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -301,7 +301,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -329,7 +329,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -357,7 +357,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -385,7 +385,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -413,7 +413,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -441,7 +441,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -469,7 +469,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -497,7 +497,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -525,7 +525,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -553,7 +553,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -593,7 +593,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -622,7 +622,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -651,7 +651,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -680,7 +680,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -713,7 +713,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -737,7 +737,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -761,7 +761,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -785,7 +785,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectRecursive.json b/test/schemas/reflect/metadata/ObjectRecursive.json
index ae3c25616b..ce42cf0ea7 100644
--- a/test/schemas/reflect/metadata/ObjectRecursive.json
+++ b/test/schemas/reflect/metadata/ObjectRecursive.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -86,7 +86,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -114,7 +114,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -142,7 +142,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -170,7 +170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -198,7 +198,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -226,7 +226,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -254,7 +254,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -282,7 +282,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -310,7 +310,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -338,7 +338,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -375,7 +375,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -403,7 +403,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -431,7 +431,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -459,7 +459,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectRequired.json b/test/schemas/reflect/metadata/ObjectRequired.json
index c386fa94f0..e8d2714f33 100644
--- a/test/schemas/reflect/metadata/ObjectRequired.json
+++ b/test/schemas/reflect/metadata/ObjectRequired.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -173,7 +173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -201,7 +201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -350,7 +350,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -378,7 +378,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -406,7 +406,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -434,7 +434,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -462,7 +462,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -490,7 +490,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -518,7 +518,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -546,7 +546,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -574,7 +574,7 @@
"required": true,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -611,7 +611,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectSimple.json b/test/schemas/reflect/metadata/ObjectSimple.json
index f229c0cf89..c86cd3d5d3 100644
--- a/test/schemas/reflect/metadata/ObjectSimple.json
+++ b/test/schemas/reflect/metadata/ObjectSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -86,7 +86,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -114,7 +114,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -139,7 +139,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -167,7 +167,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -192,7 +192,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -220,7 +220,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -256,7 +256,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -284,7 +284,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -312,7 +312,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -340,7 +340,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -368,7 +368,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -396,7 +396,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectSimpleProtobuf.json b/test/schemas/reflect/metadata/ObjectSimpleProtobuf.json
index 8eda20bac3..1fa54c94d7 100644
--- a/test/schemas/reflect/metadata/ObjectSimpleProtobuf.json
+++ b/test/schemas/reflect/metadata/ObjectSimpleProtobuf.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -159,7 +159,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -187,7 +187,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -383,7 +383,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -495,7 +495,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -523,7 +523,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -551,7 +551,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -579,7 +579,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectSimpleProtobufNullable.json b/test/schemas/reflect/metadata/ObjectSimpleProtobufNullable.json
index 7fe0724d1b..3499c9baf8 100644
--- a/test/schemas/reflect/metadata/ObjectSimpleProtobufNullable.json
+++ b/test/schemas/reflect/metadata/ObjectSimpleProtobufNullable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -159,7 +159,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -187,7 +187,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -383,7 +383,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -495,7 +495,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -523,7 +523,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -551,7 +551,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -579,7 +579,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectSimpleProtobufOptional.json b/test/schemas/reflect/metadata/ObjectSimpleProtobufOptional.json
index 994fb0f302..89a38dca02 100644
--- a/test/schemas/reflect/metadata/ObjectSimpleProtobufOptional.json
+++ b/test/schemas/reflect/metadata/ObjectSimpleProtobufOptional.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -159,7 +159,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -187,7 +187,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -257,7 +257,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -313,7 +313,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -383,7 +383,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -495,7 +495,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -523,7 +523,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -551,7 +551,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -579,7 +579,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectTuple.json b/test/schemas/reflect/metadata/ObjectTuple.json
index 4c516b8cf8..a5ced872e9 100644
--- a/test/schemas/reflect/metadata/ObjectTuple.json
+++ b/test/schemas/reflect/metadata/ObjectTuple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -215,7 +215,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -243,7 +243,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -271,7 +271,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -299,7 +299,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -327,7 +327,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -355,7 +355,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -398,7 +398,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -419,7 +419,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectUndefined.json b/test/schemas/reflect/metadata/ObjectUndefined.json
index bab1485bda..daf37219a7 100644
--- a/test/schemas/reflect/metadata/ObjectUndefined.json
+++ b/test/schemas/reflect/metadata/ObjectUndefined.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -152,7 +152,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -180,7 +180,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -205,7 +205,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -233,7 +233,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -261,7 +261,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -289,7 +289,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -312,7 +312,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -340,7 +340,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -363,7 +363,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -391,7 +391,7 @@
"required": false,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -481,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -509,7 +509,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -549,7 +549,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectUnionComposite.json b/test/schemas/reflect/metadata/ObjectUnionComposite.json
index faa81a588d..e6af2a3412 100644
--- a/test/schemas/reflect/metadata/ObjectUnionComposite.json
+++ b/test/schemas/reflect/metadata/ObjectUnionComposite.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -159,7 +159,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -187,7 +187,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -212,7 +212,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -240,7 +240,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -276,7 +276,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -304,7 +304,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -329,7 +329,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -357,7 +357,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -382,7 +382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -410,7 +410,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -446,7 +446,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -474,7 +474,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -499,7 +499,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -527,7 +527,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -552,7 +552,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -580,7 +580,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -605,7 +605,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -633,7 +633,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -669,7 +669,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -697,7 +697,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -736,7 +736,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -764,7 +764,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -789,7 +789,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -817,7 +817,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -856,7 +856,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -884,7 +884,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -912,7 +912,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -940,7 +940,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -976,7 +976,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1004,7 +1004,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1029,7 +1029,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1057,7 +1057,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1097,7 +1097,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1133,7 +1133,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1162,7 +1162,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectUnionCompositePointer.json b/test/schemas/reflect/metadata/ObjectUnionCompositePointer.json
index a4557fff78..7861d89a4d 100644
--- a/test/schemas/reflect/metadata/ObjectUnionCompositePointer.json
+++ b/test/schemas/reflect/metadata/ObjectUnionCompositePointer.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -171,7 +171,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -199,7 +199,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -227,7 +227,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -255,7 +255,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -294,7 +294,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -347,7 +347,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -375,7 +375,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -411,7 +411,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -439,7 +439,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -464,7 +464,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -492,7 +492,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -517,7 +517,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -545,7 +545,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -581,7 +581,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -609,7 +609,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -634,7 +634,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -662,7 +662,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -687,7 +687,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -715,7 +715,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -740,7 +740,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -768,7 +768,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -804,7 +804,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -832,7 +832,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -871,7 +871,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -899,7 +899,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -924,7 +924,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -952,7 +952,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -991,7 +991,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1019,7 +1019,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1047,7 +1047,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1075,7 +1075,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1111,7 +1111,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1139,7 +1139,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1164,7 +1164,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1192,7 +1192,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1232,7 +1232,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1261,7 +1261,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1290,7 +1290,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectUnionDouble.json b/test/schemas/reflect/metadata/ObjectUnionDouble.json
index 0a69c2ba52..d958597d3c 100644
--- a/test/schemas/reflect/metadata/ObjectUnionDouble.json
+++ b/test/schemas/reflect/metadata/ObjectUnionDouble.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -154,7 +154,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -221,7 +221,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -249,7 +249,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -313,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -352,7 +352,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -380,7 +380,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -416,7 +416,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -483,7 +483,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -511,7 +511,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -536,7 +536,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -564,7 +564,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -601,7 +601,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -629,7 +629,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -668,7 +668,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -696,7 +696,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -732,7 +732,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -760,7 +760,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -799,7 +799,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -827,7 +827,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -863,7 +863,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -891,7 +891,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -931,7 +931,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -961,7 +961,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/ObjectUnionExplicit.json b/test/schemas/reflect/metadata/ObjectUnionExplicit.json
index 293439e9b6..d99aec5dd3 100644
--- a/test/schemas/reflect/metadata/ObjectUnionExplicit.json
+++ b/test/schemas/reflect/metadata/ObjectUnionExplicit.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -220,7 +220,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -248,7 +248,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -273,7 +273,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -301,7 +301,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -326,7 +326,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -354,7 +354,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -398,7 +398,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -426,7 +426,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -454,7 +454,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -482,7 +482,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -521,7 +521,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -549,7 +549,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -574,7 +574,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -602,7 +602,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -627,7 +627,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -655,7 +655,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -680,7 +680,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -708,7 +708,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -752,7 +752,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -780,7 +780,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -805,7 +805,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -833,7 +833,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -858,7 +858,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -886,7 +886,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -911,7 +911,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -939,7 +939,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -964,7 +964,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -992,7 +992,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1036,7 +1036,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1064,7 +1064,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1092,7 +1092,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1120,7 +1120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1164,7 +1164,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1192,7 +1192,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1217,7 +1217,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1245,7 +1245,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1273,7 +1273,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1301,7 +1301,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1345,7 +1345,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1373,7 +1373,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1412,7 +1412,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1440,7 +1440,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1465,7 +1465,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1493,7 +1493,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1521,7 +1521,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1549,7 +1549,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1594,7 +1594,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1629,7 +1629,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1658,7 +1658,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectUnionExplicitPointer.json b/test/schemas/reflect/metadata/ObjectUnionExplicitPointer.json
index ee2194d215..53d4e3ec09 100644
--- a/test/schemas/reflect/metadata/ObjectUnionExplicitPointer.json
+++ b/test/schemas/reflect/metadata/ObjectUnionExplicitPointer.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -170,7 +170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -198,7 +198,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -226,7 +226,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -254,7 +254,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -282,7 +282,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -310,7 +310,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -354,7 +354,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -382,7 +382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -407,7 +407,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -435,7 +435,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -460,7 +460,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -488,7 +488,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -532,7 +532,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -560,7 +560,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -588,7 +588,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -616,7 +616,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -655,7 +655,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -683,7 +683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -708,7 +708,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -736,7 +736,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -761,7 +761,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -789,7 +789,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -814,7 +814,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -842,7 +842,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -886,7 +886,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -914,7 +914,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -939,7 +939,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -967,7 +967,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -992,7 +992,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1020,7 +1020,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1045,7 +1045,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1073,7 +1073,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1098,7 +1098,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1126,7 +1126,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1170,7 +1170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1198,7 +1198,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1226,7 +1226,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1254,7 +1254,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1298,7 +1298,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1326,7 +1326,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1351,7 +1351,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1379,7 +1379,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1407,7 +1407,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1435,7 +1435,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1479,7 +1479,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1507,7 +1507,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1546,7 +1546,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1574,7 +1574,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1599,7 +1599,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1627,7 +1627,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1655,7 +1655,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1683,7 +1683,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1728,7 +1728,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1757,7 +1757,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1786,7 +1786,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectUnionImplicit.json b/test/schemas/reflect/metadata/ObjectUnionImplicit.json
index b3dab326fc..867dc22f7c 100644
--- a/test/schemas/reflect/metadata/ObjectUnionImplicit.json
+++ b/test/schemas/reflect/metadata/ObjectUnionImplicit.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -215,7 +215,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -243,7 +243,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -268,7 +268,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -296,7 +296,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -321,7 +321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -349,7 +349,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -377,7 +377,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -405,7 +405,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -444,7 +444,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -472,7 +472,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -497,7 +497,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -525,7 +525,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -550,7 +550,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -578,7 +578,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -603,7 +603,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -631,7 +631,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -659,7 +659,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -687,7 +687,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -715,7 +715,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -743,7 +743,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -782,7 +782,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -810,7 +810,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -835,7 +835,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -863,7 +863,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -888,7 +888,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -916,7 +916,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -941,7 +941,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -969,7 +969,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -994,7 +994,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1022,7 +1022,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1050,7 +1050,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1078,7 +1078,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1106,7 +1106,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1134,7 +1134,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1173,7 +1173,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1201,7 +1201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1229,7 +1229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1257,7 +1257,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1296,7 +1296,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1324,7 +1324,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1349,7 +1349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1377,7 +1377,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1405,7 +1405,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1433,7 +1433,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1472,7 +1472,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1500,7 +1500,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1528,7 +1528,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1556,7 +1556,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1581,7 +1581,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1609,7 +1609,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1649,7 +1649,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1684,7 +1684,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -1713,7 +1713,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ObjectUnionNonPredictable.json b/test/schemas/reflect/metadata/ObjectUnionNonPredictable.json
index 9cdc4c161e..a6684bf877 100644
--- a/test/schemas/reflect/metadata/ObjectUnionNonPredictable.json
+++ b/test/schemas/reflect/metadata/ObjectUnionNonPredictable.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -164,7 +164,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -192,7 +192,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -230,7 +230,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -258,7 +258,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -294,7 +294,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -361,7 +361,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -389,7 +389,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -425,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -453,7 +453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -492,7 +492,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -520,7 +520,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -556,7 +556,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -584,7 +584,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -624,7 +624,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/SetAlias.json b/test/schemas/reflect/metadata/SetAlias.json
index 600d28b0ba..ac1630e02b 100644
--- a/test/schemas/reflect/metadata/SetAlias.json
+++ b/test/schemas/reflect/metadata/SetAlias.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -78,7 +78,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -109,7 +109,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -137,7 +137,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -154,7 +154,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -185,7 +185,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -213,7 +213,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -230,7 +230,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -261,7 +261,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -289,7 +289,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -306,7 +306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -337,7 +337,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -365,7 +365,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -382,7 +382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -421,7 +421,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -449,7 +449,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -477,7 +477,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -505,7 +505,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -533,7 +533,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -561,7 +561,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -601,7 +601,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/SetSimple.json b/test/schemas/reflect/metadata/SetSimple.json
index 42b47c9e82..f1ebaf18df 100644
--- a/test/schemas/reflect/metadata/SetSimple.json
+++ b/test/schemas/reflect/metadata/SetSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -78,7 +78,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -109,7 +109,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -137,7 +137,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -154,7 +154,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -185,7 +185,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -213,7 +213,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -230,7 +230,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -261,7 +261,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -289,7 +289,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -306,7 +306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -337,7 +337,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -365,7 +365,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -382,7 +382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -421,7 +421,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -449,7 +449,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -477,7 +477,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -505,7 +505,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -533,7 +533,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -561,7 +561,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -601,7 +601,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/SetUnion.json b/test/schemas/reflect/metadata/SetUnion.json
index f62b5fbe9f..625cb347db 100644
--- a/test/schemas/reflect/metadata/SetUnion.json
+++ b/test/schemas/reflect/metadata/SetUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -216,7 +216,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -233,7 +233,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -281,7 +281,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -305,7 +305,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -329,7 +329,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -361,7 +361,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/TemplateAtomic.json b/test/schemas/reflect/metadata/TemplateAtomic.json
index cce6246176..41489d7d50 100644
--- a/test/schemas/reflect/metadata/TemplateAtomic.json
+++ b/test/schemas/reflect/metadata/TemplateAtomic.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -72,7 +72,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -141,7 +141,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -169,7 +169,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -180,7 +180,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -249,7 +249,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -277,7 +277,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -288,7 +288,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -316,7 +316,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -340,7 +340,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -385,7 +385,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -413,7 +413,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -424,7 +424,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -452,7 +452,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -476,7 +476,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -521,7 +521,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -549,7 +549,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -560,7 +560,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -588,7 +588,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -612,7 +612,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -657,7 +657,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -685,7 +685,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -722,7 +722,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -750,7 +750,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -761,7 +761,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -785,7 +785,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -813,7 +813,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -837,7 +837,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -865,7 +865,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -889,7 +889,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -917,7 +917,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -958,7 +958,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -986,7 +986,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -997,7 +997,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1021,7 +1021,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1049,7 +1049,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1073,7 +1073,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1101,7 +1101,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TemplateConstant.json b/test/schemas/reflect/metadata/TemplateConstant.json
index 6814a77b86..cbce748ff5 100644
--- a/test/schemas/reflect/metadata/TemplateConstant.json
+++ b/test/schemas/reflect/metadata/TemplateConstant.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -169,7 +169,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -197,7 +197,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -238,7 +238,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -266,7 +266,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -343,7 +343,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TemplateUnion.json b/test/schemas/reflect/metadata/TemplateUnion.json
index 8b2a560691..fae32ed3d7 100644
--- a/test/schemas/reflect/metadata/TemplateUnion.json
+++ b/test/schemas/reflect/metadata/TemplateUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -139,7 +139,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -167,7 +167,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -223,7 +223,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -264,7 +264,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -292,7 +292,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [
@@ -303,7 +303,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -327,7 +327,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -359,7 +359,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -383,7 +383,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -428,7 +428,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -456,7 +456,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -481,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -509,7 +509,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -533,7 +533,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -578,7 +578,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -606,7 +606,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -640,7 +640,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -668,7 +668,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -692,7 +692,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -750,7 +750,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -778,7 +778,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -818,7 +818,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ToJsonArray.json b/test/schemas/reflect/metadata/ToJsonArray.json
index 85035451e0..99d4e76248 100644
--- a/test/schemas/reflect/metadata/ToJsonArray.json
+++ b/test/schemas/reflect/metadata/ToJsonArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -98,7 +127,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -126,7 +155,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -160,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -188,7 +246,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -222,7 +309,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -250,7 +337,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [
+ {
+ "name": "Array",
+ "tags": []
+ }
+ ],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -284,7 +400,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -312,7 +428,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -352,7 +468,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -384,7 +500,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -416,7 +532,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -448,7 +564,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -481,7 +597,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -491,7 +607,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -512,7 +628,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -546,7 +662,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -556,7 +672,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -577,7 +693,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -611,7 +727,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -621,7 +737,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -642,7 +758,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -676,7 +792,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -686,7 +802,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -707,7 +823,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ToJsonAtomicSimple.json b/test/schemas/reflect/metadata/ToJsonAtomicSimple.json
index 115c8b55f6..10857437a7 100644
--- a/test/schemas/reflect/metadata/ToJsonAtomicSimple.json
+++ b/test/schemas/reflect/metadata/ToJsonAtomicSimple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "boolean",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -98,7 +127,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -126,7 +155,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -160,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -188,7 +246,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -226,7 +313,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -236,7 +323,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +344,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -291,7 +378,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -301,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -322,7 +409,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -356,7 +443,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -366,7 +453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -387,7 +474,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ToJsonAtomicUnion.json b/test/schemas/reflect/metadata/ToJsonAtomicUnion.json
index 31276edecf..c8222e56ea 100644
--- a/test/schemas/reflect/metadata/ToJsonAtomicUnion.json
+++ b/test/schemas/reflect/metadata/ToJsonAtomicUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,44 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": true,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ },
+ {
+ "type": "number",
+ "tags": []
+ },
+ {
+ "type": "boolean",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -99,7 +136,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -109,7 +146,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -130,7 +167,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/ToJsonDouble.json b/test/schemas/reflect/metadata/ToJsonDouble.json
index 1ad800675b..4d60dce5eb 100644
--- a/test/schemas/reflect/metadata/ToJsonDouble.json
+++ b/test/schemas/reflect/metadata/ToJsonDouble.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -15,7 +15,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -67,7 +67,126 @@
"objects": [
{
"name": "ToJsonDouble.Parent",
- "properties": [],
+ "properties": [
+ {
+ "key": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [
+ {
+ "type": "string",
+ "values": [
+ {
+ "value": "toJSON"
+ }
+ ]
+ }
+ ],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "value": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": {
+ "original": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [
+ "ToJsonDouble.Child"
+ ],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "returns": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [
+ "ToJsonDouble.IBrand"
+ ],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ }
+ },
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
"jsDocTags": [],
"index": 0,
"recursive": false,
@@ -84,7 +203,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -112,7 +231,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -140,7 +259,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -168,7 +287,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -197,6 +316,129 @@
"nullables": [
false
]
+ },
+ {
+ "name": "ToJsonDouble.IBrand",
+ "properties": [
+ {
+ "key": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [
+ {
+ "type": "string",
+ "values": [
+ {
+ "value": "code"
+ }
+ ]
+ }
+ ],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "value": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ }
+ ],
+ "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,
+ "functions": [],
+ "atomics": [],
+ "constants": [
+ {
+ "type": "string",
+ "values": [
+ {
+ "value": "name"
+ }
+ ]
+ }
+ ],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "value": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "description": null,
+ "jsDocTags": []
+ }
+ ],
+ "jsDocTags": [],
+ "index": 2,
+ "recursive": false,
+ "nullables": [
+ false
+ ]
}
],
"aliases": [],
diff --git a/test/schemas/reflect/metadata/ToJsonNull.json b/test/schemas/reflect/metadata/ToJsonNull.json
index e19dcf4432..1e6cbfed70 100644
--- a/test/schemas/reflect/metadata/ToJsonNull.json
+++ b/test/schemas/reflect/metadata/ToJsonNull.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -15,7 +15,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -72,7 +72,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -100,7 +100,31 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": true,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ToJsonTuple.json b/test/schemas/reflect/metadata/ToJsonTuple.json
index c623f1a95f..979d736592 100644
--- a/test/schemas/reflect/metadata/ToJsonTuple.json
+++ b/test/schemas/reflect/metadata/ToJsonTuple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "string",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -98,7 +127,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -126,7 +155,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "number",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -160,7 +218,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -188,7 +246,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "boolean",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -222,7 +309,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -250,7 +337,33 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [
+ "ToJsonTuple.IHobby"
+ ],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -284,7 +397,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -312,7 +425,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -340,7 +453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -368,7 +481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -411,7 +524,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -421,7 +534,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -442,7 +555,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -476,7 +589,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -486,7 +599,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -507,7 +620,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -541,7 +654,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -551,7 +664,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -572,7 +685,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -606,7 +719,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -616,7 +729,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -637,7 +750,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/ToJsonUnion.json b/test/schemas/reflect/metadata/ToJsonUnion.json
index 4c9dc65f2a..27373c392a 100644
--- a/test/schemas/reflect/metadata/ToJsonUnion.json
+++ b/test/schemas/reflect/metadata/ToJsonUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -92,7 +92,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -215,7 +215,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -243,7 +243,36 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [
+ {
+ "type": "boolean",
+ "tags": []
+ }
+ ],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -277,7 +306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -305,7 +334,33 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [
+ "ToJsonUnion.ICitizen"
+ ],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -339,7 +394,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -367,7 +422,33 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": true,
+ "functions": [
+ {
+ "parameters": [],
+ "output": {
+ "any": false,
+ "required": true,
+ "optional": false,
+ "nullable": false,
+ "functions": [],
+ "atomics": [],
+ "constants": [],
+ "templates": [],
+ "escaped": null,
+ "rest": null,
+ "arrays": [],
+ "tuples": [],
+ "objects": [
+ "ToJsonUnion.IProduct"
+ ],
+ "aliases": [],
+ "natives": [],
+ "sets": [],
+ "maps": []
+ },
+ "async": false
+ }
+ ],
"atomics": [],
"constants": [],
"templates": [],
@@ -401,7 +482,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -429,7 +510,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -457,7 +538,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -485,7 +566,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -513,7 +594,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -541,7 +622,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -581,7 +662,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -600,7 +681,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -623,7 +704,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
diff --git a/test/schemas/reflect/metadata/TupleHierarchical.json b/test/schemas/reflect/metadata/TupleHierarchical.json
index 7a573fec0b..c2a1d99f3b 100644
--- a/test/schemas/reflect/metadata/TupleHierarchical.json
+++ b/test/schemas/reflect/metadata/TupleHierarchical.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -68,7 +68,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -104,7 +104,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -147,7 +147,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -171,7 +171,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -229,7 +229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -253,7 +253,7 @@
"required": true,
"optional": false,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -272,7 +272,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -306,7 +306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -330,7 +330,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -364,7 +364,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -388,7 +388,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -422,7 +422,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -446,7 +446,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -480,7 +480,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -504,7 +504,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -528,7 +528,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -562,7 +562,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -586,7 +586,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -610,7 +610,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TupleOptional.json b/test/schemas/reflect/metadata/TupleOptional.json
index e3b285a72c..493f8a60da 100644
--- a/test/schemas/reflect/metadata/TupleOptional.json
+++ b/test/schemas/reflect/metadata/TupleOptional.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -72,7 +72,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -96,7 +96,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -144,7 +144,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -168,7 +168,7 @@
"required": false,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TupleRestArray.json b/test/schemas/reflect/metadata/TupleRestArray.json
index 19a5b45b66..de7eb30985 100644
--- a/test/schemas/reflect/metadata/TupleRestArray.json
+++ b/test/schemas/reflect/metadata/TupleRestArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -72,7 +72,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -96,7 +96,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TupleRestAtomic.json b/test/schemas/reflect/metadata/TupleRestAtomic.json
index 9b9f73df46..1fd30b14d9 100644
--- a/test/schemas/reflect/metadata/TupleRestAtomic.json
+++ b/test/schemas/reflect/metadata/TupleRestAtomic.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -39,7 +39,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -63,7 +63,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -87,7 +87,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TupleRestObject.json b/test/schemas/reflect/metadata/TupleRestObject.json
index 588ce5fd7d..a9bc560974 100644
--- a/test/schemas/reflect/metadata/TupleRestObject.json
+++ b/test/schemas/reflect/metadata/TupleRestObject.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -107,7 +107,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -131,7 +131,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -155,7 +155,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -165,7 +165,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TupleUnion.json b/test/schemas/reflect/metadata/TupleUnion.json
index 1549600133..1238620958 100644
--- a/test/schemas/reflect/metadata/TupleUnion.json
+++ b/test/schemas/reflect/metadata/TupleUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -113,7 +113,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -147,7 +147,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -171,7 +171,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -195,7 +195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
diff --git a/test/schemas/reflect/metadata/TypeTagArray.json b/test/schemas/reflect/metadata/TypeTagArray.json
index ca1936319e..16013566c3 100644
--- a/test/schemas/reflect/metadata/TypeTagArray.json
+++ b/test/schemas/reflect/metadata/TypeTagArray.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -181,7 +181,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -209,7 +209,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -251,7 +251,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -279,7 +279,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -332,7 +332,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -360,7 +360,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -413,7 +413,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -441,7 +441,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -495,7 +495,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -524,7 +524,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -573,7 +573,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -622,7 +622,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -685,7 +685,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TypeTagArrayUnion.json b/test/schemas/reflect/metadata/TypeTagArrayUnion.json
index b5b49b44de..3f9cd59a94 100644
--- a/test/schemas/reflect/metadata/TypeTagArrayUnion.json
+++ b/test/schemas/reflect/metadata/TypeTagArrayUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -145,7 +145,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -187,7 +187,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -215,7 +215,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -257,7 +257,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -285,7 +285,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -350,7 +350,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -379,7 +379,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -428,7 +428,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -477,7 +477,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TypeTagAtomicUnion.json b/test/schemas/reflect/metadata/TypeTagAtomicUnion.json
index bce074655d..7444fcfb66 100644
--- a/test/schemas/reflect/metadata/TypeTagAtomicUnion.json
+++ b/test/schemas/reflect/metadata/TypeTagAtomicUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -214,7 +214,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TypeTagBigInt.json b/test/schemas/reflect/metadata/TypeTagBigInt.json
index 2478f6d907..5e401212ea 100644
--- a/test/schemas/reflect/metadata/TypeTagBigInt.json
+++ b/test/schemas/reflect/metadata/TypeTagBigInt.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -182,7 +182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -210,7 +210,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -258,7 +258,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -286,7 +286,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -334,7 +334,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -362,7 +362,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
diff --git a/test/schemas/reflect/metadata/TypeTagCustom.json b/test/schemas/reflect/metadata/TypeTagCustom.json
index 25fdb4ef8c..168098762c 100644
--- a/test/schemas/reflect/metadata/TypeTagCustom.json
+++ b/test/schemas/reflect/metadata/TypeTagCustom.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -106,7 +106,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -134,7 +134,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -246,7 +246,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -274,7 +274,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/TypeTagDefault.json b/test/schemas/reflect/metadata/TypeTagDefault.json
index ec12e3a8ab..b71eef203a 100644
--- a/test/schemas/reflect/metadata/TypeTagDefault.json
+++ b/test/schemas/reflect/metadata/TypeTagDefault.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -102,7 +102,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -130,7 +130,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -171,7 +171,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -199,7 +199,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -240,7 +240,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -268,7 +268,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -309,7 +309,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -337,7 +337,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -412,7 +412,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -440,7 +440,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -489,7 +489,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -517,7 +517,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -566,7 +566,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -594,7 +594,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -643,7 +643,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -671,7 +671,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -717,7 +717,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -745,7 +745,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TypeTagFormat.json b/test/schemas/reflect/metadata/TypeTagFormat.json
index 886a9cb31b..9558488f8f 100644
--- a/test/schemas/reflect/metadata/TypeTagFormat.json
+++ b/test/schemas/reflect/metadata/TypeTagFormat.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -106,7 +106,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -134,7 +134,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -179,7 +179,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -207,7 +207,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -252,7 +252,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -280,7 +280,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -325,7 +325,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -353,7 +353,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -398,7 +398,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -426,7 +426,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -471,7 +471,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -499,7 +499,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -544,7 +544,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -572,7 +572,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -617,7 +617,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -645,7 +645,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -690,7 +690,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -718,7 +718,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -763,7 +763,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -791,7 +791,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -836,7 +836,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -864,7 +864,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -909,7 +909,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -937,7 +937,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -982,7 +982,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1010,7 +1010,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1055,7 +1055,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1083,7 +1083,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1128,7 +1128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1156,7 +1156,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1201,7 +1201,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1229,7 +1229,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1274,7 +1274,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1302,7 +1302,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1347,7 +1347,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1375,7 +1375,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1420,7 +1420,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1448,7 +1448,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1493,7 +1493,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1521,7 +1521,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1566,7 +1566,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1594,7 +1594,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TypeTagInfinite.json b/test/schemas/reflect/metadata/TypeTagInfinite.json
index 6a95902080..a8d4a7101b 100644
--- a/test/schemas/reflect/metadata/TypeTagInfinite.json
+++ b/test/schemas/reflect/metadata/TypeTagInfinite.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -249,7 +249,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -277,7 +277,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -350,7 +350,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -392,7 +392,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -420,7 +420,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/TypeTagLength.json b/test/schemas/reflect/metadata/TypeTagLength.json
index 0468d8f248..ae26b904ff 100644
--- a/test/schemas/reflect/metadata/TypeTagLength.json
+++ b/test/schemas/reflect/metadata/TypeTagLength.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -181,7 +181,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -209,7 +209,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -251,7 +251,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -279,7 +279,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -321,7 +321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -349,7 +349,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -402,7 +402,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -430,7 +430,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -495,7 +495,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TypeTagMatrix.json b/test/schemas/reflect/metadata/TypeTagMatrix.json
index 207c823c70..857301a068 100644
--- a/test/schemas/reflect/metadata/TypeTagMatrix.json
+++ b/test/schemas/reflect/metadata/TypeTagMatrix.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -126,7 +126,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -183,7 +183,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TypeTagNaN.json b/test/schemas/reflect/metadata/TypeTagNaN.json
index 91beba39d4..117a1485cf 100644
--- a/test/schemas/reflect/metadata/TypeTagNaN.json
+++ b/test/schemas/reflect/metadata/TypeTagNaN.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -176,7 +176,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -204,7 +204,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -249,7 +249,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -277,7 +277,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -322,7 +322,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -350,7 +350,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -392,7 +392,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -420,7 +420,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/TypeTagObjectUnion.json b/test/schemas/reflect/metadata/TypeTagObjectUnion.json
index 97335a98be..bb5f8421ee 100644
--- a/test/schemas/reflect/metadata/TypeTagObjectUnion.json
+++ b/test/schemas/reflect/metadata/TypeTagObjectUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -120,7 +120,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -148,7 +148,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -213,7 +213,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TypeTagPattern.json b/test/schemas/reflect/metadata/TypeTagPattern.json
index 66fa53ccca..eaee501c49 100644
--- a/test/schemas/reflect/metadata/TypeTagPattern.json
+++ b/test/schemas/reflect/metadata/TypeTagPattern.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -106,7 +106,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -134,7 +134,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -179,7 +179,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -207,7 +207,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -252,7 +252,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -280,7 +280,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
diff --git a/test/schemas/reflect/metadata/TypeTagRange.json b/test/schemas/reflect/metadata/TypeTagRange.json
index 37f8dc609c..d5bbfce865 100644
--- a/test/schemas/reflect/metadata/TypeTagRange.json
+++ b/test/schemas/reflect/metadata/TypeTagRange.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -185,7 +185,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -213,7 +213,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -269,7 +269,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -297,7 +297,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -354,7 +354,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -382,7 +382,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -438,7 +438,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -466,7 +466,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -538,7 +538,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -566,7 +566,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -637,7 +637,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -665,7 +665,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -736,7 +736,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -764,7 +764,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -834,7 +834,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -862,7 +862,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -944,7 +944,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TypeTagRangeBigInt.json b/test/schemas/reflect/metadata/TypeTagRangeBigInt.json
index 500eaeef38..2bb5b87005 100644
--- a/test/schemas/reflect/metadata/TypeTagRangeBigInt.json
+++ b/test/schemas/reflect/metadata/TypeTagRangeBigInt.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -177,7 +177,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -205,7 +205,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -253,7 +253,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -281,7 +281,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -330,7 +330,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -358,7 +358,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -406,7 +406,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -434,7 +434,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -501,7 +501,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -529,7 +529,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -595,7 +595,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -623,7 +623,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -689,7 +689,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -717,7 +717,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -782,7 +782,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -810,7 +810,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -887,7 +887,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TypeTagTuple.json b/test/schemas/reflect/metadata/TypeTagTuple.json
index e251c4aa3b..f7db75f347 100644
--- a/test/schemas/reflect/metadata/TypeTagTuple.json
+++ b/test/schemas/reflect/metadata/TypeTagTuple.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -101,7 +101,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -158,7 +158,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -225,7 +225,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -274,7 +274,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -329,7 +329,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -378,7 +378,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TypeTagType.json b/test/schemas/reflect/metadata/TypeTagType.json
index 806dbe2335..cb3929508f 100644
--- a/test/schemas/reflect/metadata/TypeTagType.json
+++ b/test/schemas/reflect/metadata/TypeTagType.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -100,7 +100,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -128,7 +128,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -170,7 +170,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -198,7 +198,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -240,7 +240,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -268,7 +268,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -310,7 +310,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -338,7 +338,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -380,7 +380,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -408,7 +408,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -450,7 +450,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -478,7 +478,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -520,7 +520,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -548,7 +548,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -602,7 +602,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/schemas/reflect/metadata/TypeTagTypeBigInt.json b/test/schemas/reflect/metadata/TypeTagTypeBigInt.json
index 85527c6e50..5ad71b1446 100644
--- a/test/schemas/reflect/metadata/TypeTagTypeBigInt.json
+++ b/test/schemas/reflect/metadata/TypeTagTypeBigInt.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
@@ -89,7 +89,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -117,7 +117,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "bigint",
diff --git a/test/schemas/reflect/metadata/TypeTagTypeUnion.json b/test/schemas/reflect/metadata/TypeTagTypeUnion.json
index dd9fd379e9..50a6a62b2b 100644
--- a/test/schemas/reflect/metadata/TypeTagTypeUnion.json
+++ b/test/schemas/reflect/metadata/TypeTagTypeUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -33,7 +33,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -61,7 +61,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -116,7 +116,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -144,7 +144,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -199,7 +199,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -227,7 +227,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -282,7 +282,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -310,7 +310,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -365,7 +365,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -393,7 +393,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -448,7 +448,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -476,7 +476,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -531,7 +531,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -559,7 +559,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -614,7 +614,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -642,7 +642,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -697,7 +697,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -725,7 +725,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -780,7 +780,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -808,7 +808,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
diff --git a/test/schemas/reflect/metadata/UltimateUnion.json b/test/schemas/reflect/metadata/UltimateUnion.json
index fe307cbfe5..b54fb20ade 100644
--- a/test/schemas/reflect/metadata/UltimateUnion.json
+++ b/test/schemas/reflect/metadata/UltimateUnion.json
@@ -5,7 +5,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -36,7 +36,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -64,7 +64,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -97,7 +97,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -125,7 +125,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -150,7 +150,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -178,7 +178,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -206,7 +206,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -234,7 +234,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -273,7 +273,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -301,7 +301,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -326,7 +326,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -354,7 +354,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -391,7 +391,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -415,7 +415,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -463,7 +463,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -491,7 +491,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -527,7 +527,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -555,7 +555,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -583,7 +583,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -611,7 +611,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -639,7 +639,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -667,7 +667,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -707,7 +707,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -735,7 +735,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -763,7 +763,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -791,7 +791,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -824,7 +824,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -852,7 +852,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -880,7 +880,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -908,7 +908,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -936,7 +936,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -964,7 +964,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -1004,7 +1004,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1032,7 +1032,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1084,7 +1084,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1112,7 +1112,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1164,7 +1164,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1192,7 +1192,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1244,7 +1244,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1272,7 +1272,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -1300,7 +1300,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1328,7 +1328,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -1356,7 +1356,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1384,7 +1384,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1460,7 +1460,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1488,7 +1488,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1521,7 +1521,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1549,7 +1549,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1577,7 +1577,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1605,7 +1605,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -1633,7 +1633,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1661,7 +1661,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -1701,7 +1701,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1729,7 +1729,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1757,7 +1757,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1785,7 +1785,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1813,7 +1813,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1841,7 +1841,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -1869,7 +1869,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1897,7 +1897,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -1925,7 +1925,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -1953,7 +1953,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -1981,7 +1981,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2009,7 +2009,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -2065,7 +2065,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2093,7 +2093,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2126,7 +2126,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2154,7 +2154,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2182,7 +2182,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2210,7 +2210,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2238,7 +2238,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2266,7 +2266,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -2306,7 +2306,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2334,7 +2334,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2362,7 +2362,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2390,7 +2390,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2418,7 +2418,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2446,7 +2446,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2474,7 +2474,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2502,7 +2502,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2530,7 +2530,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2558,7 +2558,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -2610,7 +2610,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2638,7 +2638,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -2690,7 +2690,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2718,7 +2718,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2751,7 +2751,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2779,7 +2779,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2807,7 +2807,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2835,7 +2835,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -2863,7 +2863,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2891,7 +2891,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -2931,7 +2931,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -2959,7 +2959,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -2995,7 +2995,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3023,7 +3023,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -3051,7 +3051,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3079,7 +3079,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -3131,7 +3131,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3159,7 +3159,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -3211,7 +3211,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3239,7 +3239,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3272,7 +3272,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3300,7 +3300,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -3328,7 +3328,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3356,7 +3356,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -3384,7 +3384,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3412,7 +3412,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -3452,7 +3452,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3480,7 +3480,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -3508,7 +3508,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3536,7 +3536,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -3577,7 +3577,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3605,7 +3605,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -3633,7 +3633,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3661,7 +3661,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -3713,7 +3713,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3741,7 +3741,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "number",
@@ -3793,7 +3793,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3821,7 +3821,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3854,7 +3854,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3882,7 +3882,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -3910,7 +3910,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3938,7 +3938,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -3966,7 +3966,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -3994,7 +3994,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -4034,7 +4034,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4062,7 +4062,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -4087,7 +4087,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4115,7 +4115,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -4156,7 +4156,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4184,7 +4184,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -4212,7 +4212,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4240,7 +4240,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4273,7 +4273,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4301,7 +4301,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -4329,7 +4329,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4357,7 +4357,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -4385,7 +4385,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4413,7 +4413,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -4453,7 +4453,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4481,7 +4481,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -4509,7 +4509,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4537,7 +4537,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -4565,7 +4565,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4593,7 +4593,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -4621,7 +4621,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4649,7 +4649,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -4689,7 +4689,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4717,7 +4717,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -4745,7 +4745,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4773,7 +4773,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -4798,7 +4798,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4826,7 +4826,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -4854,7 +4854,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4882,7 +4882,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -4910,7 +4910,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -4938,7 +4938,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -4978,7 +4978,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5006,7 +5006,7 @@
"required": true,
"optional": true,
"nullable": true,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -5029,7 +5029,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5057,7 +5057,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5090,7 +5090,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5118,7 +5118,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5146,7 +5146,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5174,7 +5174,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5202,7 +5202,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5230,7 +5230,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -5270,7 +5270,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5298,7 +5298,7 @@
"required": false,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -5321,7 +5321,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5349,7 +5349,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5377,7 +5377,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5405,7 +5405,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5433,7 +5433,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5461,7 +5461,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "boolean",
@@ -5501,7 +5501,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5529,7 +5529,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5557,7 +5557,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5585,7 +5585,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -5622,7 +5622,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5646,7 +5646,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5686,7 +5686,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5710,7 +5710,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -5751,7 +5751,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5779,7 +5779,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5812,7 +5812,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5840,7 +5840,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5881,7 +5881,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5909,7 +5909,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -5937,7 +5937,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -5965,7 +5965,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -6005,7 +6005,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6033,7 +6033,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6066,7 +6066,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6094,7 +6094,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6127,7 +6127,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6155,7 +6155,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -6195,7 +6195,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6223,7 +6223,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6256,7 +6256,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6284,7 +6284,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6317,7 +6317,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6345,7 +6345,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -6373,7 +6373,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6401,7 +6401,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -6441,7 +6441,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6469,7 +6469,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6502,7 +6502,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6530,7 +6530,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -6555,7 +6555,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6583,7 +6583,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -6623,7 +6623,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6651,7 +6651,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -6676,7 +6676,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6704,7 +6704,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -6729,7 +6729,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6757,7 +6757,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -6782,7 +6782,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6810,7 +6810,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -6846,7 +6846,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6874,7 +6874,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -6902,7 +6902,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6930,7 +6930,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -6958,7 +6958,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -6986,7 +6986,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7014,7 +7014,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7042,7 +7042,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -7078,7 +7078,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7106,7 +7106,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7134,7 +7134,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7162,7 +7162,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7190,7 +7190,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7218,7 +7218,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -7255,7 +7255,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7283,7 +7283,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7311,7 +7311,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7339,7 +7339,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7367,7 +7367,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7395,7 +7395,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -7432,7 +7432,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7460,7 +7460,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7493,7 +7493,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7521,7 +7521,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7549,7 +7549,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [
{
@@ -7577,7 +7577,7 @@
"required": true,
"optional": true,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7617,7 +7617,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -7646,7 +7646,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -7686,7 +7686,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
@@ -7725,7 +7725,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [
{
"type": "string",
@@ -7757,7 +7757,7 @@
"required": true,
"optional": false,
"nullable": false,
- "functional": false,
+ "functions": [],
"atomics": [],
"constants": [],
"templates": [],
diff --git a/test/src/features/llm.application/test_llm_application.ts b/test/src/features/llm.application/test_llm_application.ts
index ba1e89b65c..76673f2dc7 100644
--- a/test/src/features/llm.application/test_llm_application.ts
+++ b/test/src/features/llm.application/test_llm_application.ts
@@ -50,7 +50,7 @@ export const test_llm_application = (): void => {
},
nullable: false,
required: ["level"],
- description: "Performance interface.",
+ description: "The performance interface.",
},
description: "Get performance.",
},
From a98fe94cf974becd43c8b9a069abf6f23e38bad0 Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Sat, 7 Sep 2024 17:09:34 +0900
Subject: [PATCH 4/8] Fix test problem bug
---
test/src/features/llm.application/test_llm_application.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/src/features/llm.application/test_llm_application.ts b/test/src/features/llm.application/test_llm_application.ts
index 76673f2dc7..78aee7a40d 100644
--- a/test/src/features/llm.application/test_llm_application.ts
+++ b/test/src/features/llm.application/test_llm_application.ts
@@ -25,13 +25,13 @@ export const test_llm_application = (): void => {
{
type: "number",
title: "The value y",
- description: "The value y.\r\n\r\nThe value to be added.",
+ description: "The value y.\n\nThe value to be added.",
},
],
output: {
type: "number",
title: "Sum of them",
- description: "Sum of them.\r\n\r\n`this.value + x + y`",
+ description: "Sum of them.\n\n`this.value + x + y`",
},
description:
"Get value.\n\nGet value with plus operation of member value, x and y.",
From e296152247003d00bb38dcc45165c872c1787586 Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Sat, 7 Sep 2024 22:26:51 +0900
Subject: [PATCH 5/8] Description comments on LLM module.
---
benchmark/package.json | 2 +-
errors/package.json | 2 +-
src/llm.ts | 140 ++++++++++++++++++++++++++++++++++++++++-
test-esm/package.json | 2 +-
4 files changed, 141 insertions(+), 5 deletions(-)
diff --git a/benchmark/package.json b/benchmark/package.json
index 7b9a3235f7..311214e499 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -72,6 +72,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240906.tgz"
+ "typia": "../typia-6.10.0-dev.20240907.tgz"
}
}
\ No newline at end of file
diff --git a/errors/package.json b/errors/package.json
index 264bf2948d..bee4c116a2 100644
--- a/errors/package.json
+++ b/errors/package.json
@@ -32,6 +32,6 @@
"typescript": "^5.3.2"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240906.tgz"
+ "typia": "../typia-6.10.0-dev.20240907.tgz"
}
}
\ No newline at end of file
diff --git a/src/llm.ts b/src/llm.ts
index e7a41aa9ac..a42347fb67 100644
--- a/src/llm.ts
+++ b/src/llm.ts
@@ -1,7 +1,72 @@
import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
-export function application(): never;
-export function application(): ILlmApplication;
+/**
+ * > You must configure the generic argument `App`.
+ *
+ * TypeScript functions to LLM function schemas.
+ *
+ * Creates an application of LLM (Large Language Model) function calling schemas from
+ * a TypeScript class or interface type containig the target functions to be called by
+ * the LLM function calling feature.
+ *
+ * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
+ * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
+ * proper function and fill its arguments from the conversation (maybe chatting text)
+ * with user (human). This is the concept of the LLM function calling.
+ *
+ * By the way, there can be some parameters (or their nested properties) that must be
+ * composed by human, not by LLM. File uploading feature or some sensitive information
+ * like secrety key (password) are the examples. In that case, you can separate the
+ * function parameters to both LLM and human sides by configuring the
+ * {@link ILlmApplication.IOptions.separate} property.
+ *
+ * Additionally, the actual function call execution is not by LLM, but by you.
+ * When the LLM selects the proper function and fills the arguments, you just call
+ * the function with the LLM prepared arguments. And then informs the return value to
+ * the LLM by system prompt. The LLM will continue the next conversation based on
+ * the return value.
+ *
+ * @template App Target class or interface type collecting the functions to call
+ * @param options Options for the LLM application construction
+ * @returns Application of LLM function calling schemas
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
+export function application(options?: ILlmApplication.IOptions): never;
+
+/**
+ * TypeScript functions to LLM function schemas.
+ *
+ * Creates an application of LLM (Large Language Model) function calling schemas from
+ * a TypeScript class or interface type containig the target functions to be called by
+ * the LLM function calling feature.
+ *
+ * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
+ * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
+ * proper function and fill its arguments from the conversation (maybe chatting text)
+ * with user (human). This is the concept of the LLM function calling.
+ *
+ * By the way, there can be some parameters (or their nested properties) that must be
+ * composed by human, not by LLM. File uploading feature or some sensitive information
+ * like secrety key (password) are the examples. In that case, you can separate the
+ * function parameters to both LLM and human sides by configuring the
+ * {@link ILlmApplication.IOptions.separate} property.
+ *
+ * Additionally, the actual function call execution is not by LLM, but by you.
+ * When the LLM selects the proper function and fills the arguments, you just call
+ * the function with the LLM prepared arguments. And then informs the return value to
+ * the LLM by system prompt. The LLM will continue the next conversation based on
+ * the return value.
+ *
+ * @template App Target class or interface type collecting the functions to call
+ * @param options Options for the LLM application construction
+ * @returns Application of LLM function calling schemas
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
+export function application(
+ options?: ILlmApplication.IOptions,
+): ILlmApplication;
/**
* @internal
@@ -10,7 +75,78 @@ export function application(): never {
halt("application");
}
+/**
+ * > You must configure the generic argument `T`.
+ *
+ * TypeScript type to LLM type schema.
+ *
+ * Creates an LLM (Large Language Model) type schema, a type metadata that is used in the
+ * [LLM function calling](@reference https://platform.openai.com/docs/guides/function-calling),
+ * from a TypeScript type.
+ *
+ * The returned {@link ILlmSchema} type is similar to the OpenAPI v3.0 based JSON schema
+ * definition, but it is more simplified for the LLM function calling by remmoving the
+ * {@link OpenApiV3.IJson.IReference reference} type embodied by the
+ * {@link OpenApiV3.IJson.IReference.$ref `$ref`} proeprty.
+ *
+ * If you actually want to perform the LLM function calling with TypeScript functions,
+ * you can do it with the {@link application} function. Let's enjoy the
+ * LLM function calling with native TypeScript functions and types.
+ *
+ * > **What LLM function calling is?
+ * >
+ * > LLM (Large Language Model) selects propert function and fill the arguments,
+ * > but actuall function call execution is not by LLM, but by you.
+ * >
+ * > In nowadays, most LLM (Large Language Model) like OpenAI are supporting
+ * > "function calling" feature. The "function calling" means that LLM automatically selects
+ * > a proper function and compose parameter values from the user's chatting text.
+ * >
+ * > When LLM selects the proper function and its arguments, you just call the function
+ * > with the arguments. And then informs the return value to the LLM by system prompt,
+ * > LLM will continue the next conversation based on the return value.
+ *
+ * @template T Target type
+ * @returns LLM schema
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
export function schema(): never;
+
+/**
+ * TypeScript type to LLM type schema.
+ *
+ * Creates an LLM (Large Language Model) type schema, a type metadata that is used in the
+ * [LLM function calling](@reference https://platform.openai.com/docs/guides/function-calling),
+ * from a TypeScript type.
+ *
+ * The returned {@link ILlmSchema} type is similar to the OpenAPI v3.0 based JSON schema
+ * definition, but it is more simplified for the LLM function calling by remmoving the
+ * {@link OpenApiV3.IJson.IReference reference} type embodied by the
+ * {@link OpenApiV3.IJson.IReference.$ref `$ref`} proeprty.
+ *
+ * If you actually want to perform the LLM function calling with TypeScript functions,
+ * you can do it with the {@link application} function. Let's enjoy the
+ * LLM function calling with native TypeScript functions and types.
+ *
+ * > **What LLM function calling is?
+ * >
+ * > LLM (Large Language Model) selects propert function and fill the arguments,
+ * > but actuall function call execution is not by LLM, but by you.
+ * >
+ * > In nowadays, most LLM (Large Language Model) like OpenAI are supporting
+ * > "function calling" feature. The "function calling" means that LLM automatically selects
+ * > a proper function and compose parameter values from the user's chatting text.
+ * >
+ * > When LLM selects the proper function and its arguments, you just call the function
+ * > with the arguments. And then informs the return value to the LLM by system prompt,
+ * > LLM will continue the next conversation based on the return value.
+ *
+ * @template T Target type
+ * @returns LLM schema
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
export function schema(): ILlmSchema;
/**
diff --git a/test-esm/package.json b/test-esm/package.json
index f7d1ac4840..cdddeddff6 100644
--- a/test-esm/package.json
+++ b/test-esm/package.json
@@ -36,6 +36,6 @@
"typescript": "^5.4.5"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240906.tgz"
+ "typia": "../typia-6.10.0-dev.20240907.tgz"
}
}
\ No newline at end of file
From 72fe1ffbabaad9f65e98741b060f954a0f7ad868 Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Sat, 7 Sep 2024 23:37:51 +0900
Subject: [PATCH 6/8] LLM function calling parameter separation.
---
benchmark/package.json | 2 +-
debug/src/llm.ts | 24 +++++++
debug/src/metadata.ts | 7 --
errors/package.json | 2 +-
package.json | 2 +-
packages/typescript-json/package.json | 4 +-
src/functional/Namespace/index.ts | 1 +
src/functional/Namespace/llm.ts | 20 ++++++
src/llm.ts | 38 ++++++++---
src/transformers/CallExpressionTransformer.ts | 2 +-
.../features/llm/LlmApplicationTransformer.ts | 33 +++++++++-
test-esm/package.json | 2 +-
test/package.json | 2 +-
.../test_llm_application_separate.ts | 64 +++++++++++++++++++
14 files changed, 178 insertions(+), 25 deletions(-)
create mode 100644 debug/src/llm.ts
delete mode 100644 debug/src/metadata.ts
create mode 100644 src/functional/Namespace/llm.ts
create mode 100644 test/src/features/llm.application/test_llm_application_separate.ts
diff --git a/benchmark/package.json b/benchmark/package.json
index 311214e499..22de4d3af3 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -72,6 +72,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240907.tgz"
+ "typia": "../typia-6.10.0-dev.20240908.tgz"
}
}
\ No newline at end of file
diff --git a/debug/src/llm.ts b/debug/src/llm.ts
new file mode 100644
index 0000000000..cfb5b14499
--- /dev/null
+++ b/debug/src/llm.ts
@@ -0,0 +1,24 @@
+import { ILlmApplication, LlmTypeChecker } from "@samchon/openapi";
+import typia, { tags } from "typia";
+
+interface IBbsArticle extends IBbsArticle.ICreate {
+ id: string & tags.Format<"uuid">;
+ created_at: string & tags.Format<"date-time">;
+}
+namespace IBbsArticle {
+ export interface ICreate {
+ title: string;
+ body: string;
+ file: string & tags.Format<"uri"> & tags.ContentMediaType<"*/*">;
+ }
+}
+
+interface BbsArticleApplication {
+ create(input: IBbsArticle.ICreate): Promise;
+}
+
+const app: ILlmApplication = typia.llm.application({
+ separate: (schema) =>
+ LlmTypeChecker.isString(schema) && schema.contentMediaType !== undefined,
+});
+console.log(app);
diff --git a/debug/src/metadata.ts b/debug/src/metadata.ts
deleted file mode 100644
index df048015c0..0000000000
--- a/debug/src/metadata.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import typia from "typia";
-
-interface Something {
- setValue: (x: T) => T;
-}
-
-typia.llm.application>();
diff --git a/errors/package.json b/errors/package.json
index bee4c116a2..6ba5f3da20 100644
--- a/errors/package.json
+++ b/errors/package.json
@@ -32,6 +32,6 @@
"typescript": "^5.3.2"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240907.tgz"
+ "typia": "../typia-6.10.0-dev.20240908.tgz"
}
}
\ No newline at end of file
diff --git a/package.json b/package.json
index cd15e2896b..1ebfb35897 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "typia",
- "version": "6.10.0-dev.20240907",
+ "version": "6.10.0-dev.20240908",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
diff --git a/packages/typescript-json/package.json b/packages/typescript-json/package.json
index ec296c5ed3..313880d95e 100644
--- a/packages/typescript-json/package.json
+++ b/packages/typescript-json/package.json
@@ -1,6 +1,6 @@
{
"name": "typescript-json",
- "version": "6.10.0-dev.20240906",
+ "version": "6.10.0-dev.20240908",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
@@ -63,7 +63,7 @@
},
"homepage": "https://typia.io",
"dependencies": {
- "typia": "6.10.0-dev.20240906"
+ "typia": "6.10.0-dev.20240908"
},
"peerDependencies": {
"typescript": ">=4.8.0 <5.6.0"
diff --git a/src/functional/Namespace/index.ts b/src/functional/Namespace/index.ts
index 8beb039768..11553f4888 100644
--- a/src/functional/Namespace/index.ts
+++ b/src/functional/Namespace/index.ts
@@ -14,6 +14,7 @@ export * as http from "./http";
export * as notations from "./notations";
export * as misc from "./misc";
export * as protobuf from "./protobuf";
+export * as llm from "./llm";
export { is };
diff --git a/src/functional/Namespace/llm.ts b/src/functional/Namespace/llm.ts
new file mode 100644
index 0000000000..f13dab39fd
--- /dev/null
+++ b/src/functional/Namespace/llm.ts
@@ -0,0 +1,20 @@
+import { ILlmApplication } from "@samchon/openapi";
+
+import { LlmSchemaSeparator } from "@samchon/openapi/lib/utils/LlmSchemaSeparator";
+
+export const application = () => ({
+ finalize: (
+ app: ILlmApplication,
+ options?: ILlmApplication.IOptions,
+ ): void => {
+ app.options = {
+ separate: options?.separate ?? null,
+ };
+ if (app.options.separate === null) return;
+ for (const func of app.functions)
+ func.separated = LlmSchemaSeparator.parameters({
+ parameters: func.parameters,
+ predicator: app.options.separate,
+ });
+ },
+});
diff --git a/src/llm.ts b/src/llm.ts
index a42347fb67..891c8ae96a 100644
--- a/src/llm.ts
+++ b/src/llm.ts
@@ -1,5 +1,7 @@
import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
+import * as Namespace from "./functional/Namespace";
+
/**
* > You must configure the generic argument `App`.
*
@@ -14,25 +16,31 @@ import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
* proper function and fill its arguments from the conversation (maybe chatting text)
* with user (human). This is the concept of the LLM function calling.
*
- * By the way, there can be some parameters (or their nested properties) that must be
+ * By the way, there can be some parameters (or their nested properties) which must be
* composed by human, not by LLM. File uploading feature or some sensitive information
* like secrety key (password) are the examples. In that case, you can separate the
* function parameters to both LLM and human sides by configuring the
- * {@link ILlmApplication.IOptions.separate} property.
+ * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
+ * assigned to the {@link ILlmFunction.separated} property.
*
- * Additionally, the actual function call execution is not by LLM, but by you.
+ * For reference, the actual function call execution is not by LLM, but by you.
* When the LLM selects the proper function and fills the arguments, you just call
* the function with the LLM prepared arguments. And then informs the return value to
* the LLM by system prompt. The LLM will continue the next conversation based on
* the return value.
*
+ * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
+ * so that the parameters are separated to human and LLM sides, you can merge these
+ * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
+ * before the actual LLM function call execution.
+ *
* @template App Target class or interface type collecting the functions to call
* @param options Options for the LLM application construction
* @returns Application of LLM function calling schemas
* @reference https://platform.openai.com/docs/guides/function-calling
* @author Jeongho Nam - https://github.com/samchon
*/
-export function application(options?: ILlmApplication.IOptions): never;
+function application(options?: ILlmApplication.IOptions): never;
/**
* TypeScript functions to LLM function schemas.
@@ -46,35 +54,47 @@ export function application(options?: ILlmApplication.IOptions): never;
* proper function and fill its arguments from the conversation (maybe chatting text)
* with user (human). This is the concept of the LLM function calling.
*
- * By the way, there can be some parameters (or their nested properties) that must be
+ * By the way, there can be some parameters (or their nested properties) which must be
* composed by human, not by LLM. File uploading feature or some sensitive information
* like secrety key (password) are the examples. In that case, you can separate the
* function parameters to both LLM and human sides by configuring the
- * {@link ILlmApplication.IOptions.separate} property.
+ * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
+ * assigned to the {@link ILlmFunction.separated} property.
*
- * Additionally, the actual function call execution is not by LLM, but by you.
+ * For reference, the actual function call execution is not by LLM, but by you.
* When the LLM selects the proper function and fills the arguments, you just call
* the function with the LLM prepared arguments. And then informs the return value to
* the LLM by system prompt. The LLM will continue the next conversation based on
* the return value.
*
+ * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
+ * so that the parameters are separated to human and LLM sides, you can merge these
+ * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
+ * before the actual LLM function call execution.
+ *
* @template App Target class or interface type collecting the functions to call
* @param options Options for the LLM application construction
* @returns Application of LLM function calling schemas
* @reference https://platform.openai.com/docs/guides/function-calling
* @author Jeongho Nam - https://github.com/samchon
*/
-export function application(
+function application(
options?: ILlmApplication.IOptions,
): ILlmApplication;
/**
* @internal
*/
-export function application(): never {
+function application(): never {
halt("application");
}
+const applicationPure = /** @__PURE__ */ Object.assign(
+ application,
+ /** @__PURE__ */ Namespace.llm.application(),
+);
+export { applicationPure as application };
+
/**
* > You must configure the generic argument `T`.
*
diff --git a/src/transformers/CallExpressionTransformer.ts b/src/transformers/CallExpressionTransformer.ts
index 839205b92c..cbd8f3d98f 100644
--- a/src/transformers/CallExpressionTransformer.ts
+++ b/src/transformers/CallExpressionTransformer.ts
@@ -356,7 +356,7 @@ const FUNCTORS: Record Task>> = {
createValidateQuery: () => CreateHttpValidateQueryTransformer.transform,
},
llm: {
- application: () => (project) => () =>
+ application: () => (project) =>
LlmApplicationTransformer.transform(project),
schema: () => (project) => () => LlmSchemaTransformer.transform(project),
},
diff --git a/src/transformers/features/llm/LlmApplicationTransformer.ts b/src/transformers/features/llm/LlmApplicationTransformer.ts
index a2fdf73b17..f39324c9c3 100644
--- a/src/transformers/features/llm/LlmApplicationTransformer.ts
+++ b/src/transformers/features/llm/LlmApplicationTransformer.ts
@@ -1,9 +1,13 @@
import { ILlmApplication } from "@samchon/openapi";
import ts from "typescript";
+import { ExpressionFactory } from "../../../factories/ExpressionFactory";
+import { IdentifierFactory } from "../../../factories/IdentifierFactory";
import { LiteralFactory } from "../../../factories/LiteralFactory";
import { MetadataCollection } from "../../../factories/MetadataCollection";
import { MetadataFactory } from "../../../factories/MetadataFactory";
+import { StatementFactory } from "../../../factories/StatementFactory";
+import { TypeFactory } from "../../../factories/TypeFactory";
import { Metadata } from "../../../schemas/metadata/Metadata";
@@ -17,6 +21,7 @@ import { TransformerError } from "../../TransformerError";
export namespace LlmApplicationTransformer {
export const transform =
(project: IProject) =>
+ (modulo: ts.LeftHandSideExpression) =>
(expression: ts.CallExpression): ts.Expression => {
// GET GENERIC ARGUMENT
if (!expression.typeArguments?.length)
@@ -51,6 +56,32 @@ export namespace LlmApplicationTransformer {
const schema: ILlmApplication = LlmApplicationProgrammer.write(
result.data,
);
- return LiteralFactory.generate(schema);
+
+ return ExpressionFactory.selfCall(
+ ts.factory.createBlock(
+ [
+ StatementFactory.constant("app", LiteralFactory.generate(schema)),
+ ts.factory.createExpressionStatement(
+ ts.factory.createCallExpression(
+ ts.factory.createAsExpression(
+ IdentifierFactory.access(modulo)("finalize"),
+ TypeFactory.keyword("any"),
+ ),
+ undefined,
+ [
+ ts.factory.createIdentifier("app"),
+ ...(expression.arguments?.[0]
+ ? [expression.arguments[0]]
+ : []),
+ ],
+ ),
+ ),
+ ts.factory.createReturnStatement(
+ ts.factory.createIdentifier("app"),
+ ),
+ ],
+ true,
+ ),
+ );
};
}
diff --git a/test-esm/package.json b/test-esm/package.json
index cdddeddff6..69f9f8280a 100644
--- a/test-esm/package.json
+++ b/test-esm/package.json
@@ -36,6 +36,6 @@
"typescript": "^5.4.5"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240907.tgz"
+ "typia": "../typia-6.10.0-dev.20240908.tgz"
}
}
\ No newline at end of file
diff --git a/test/package.json b/test/package.json
index e43185ee71..2c68d76e9a 100644
--- a/test/package.json
+++ b/test/package.json
@@ -52,6 +52,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240907.tgz"
+ "typia": "../typia-6.10.0-dev.20240908.tgz"
}
}
\ No newline at end of file
diff --git a/test/src/features/llm.application/test_llm_application_separate.ts b/test/src/features/llm.application/test_llm_application_separate.ts
new file mode 100644
index 0000000000..f92effe79c
--- /dev/null
+++ b/test/src/features/llm.application/test_llm_application_separate.ts
@@ -0,0 +1,64 @@
+import { ILlmApplication, LlmTypeChecker } from "@samchon/openapi";
+import { ILlmFunction } from "@samchon/openapi/lib/structures/ILlmFunction";
+import typia, { tags } from "typia";
+
+import { TestValidator } from "../../helpers/TestValidator";
+
+export const test_llm_application_separate = (): void => {
+ const app: ILlmApplication = typia.llm.application({
+ separate: (schema) =>
+ LlmTypeChecker.isString(schema) && schema.contentMediaType !== undefined,
+ });
+ const func: ILlmFunction = app.functions[0]!;
+ TestValidator.equals("separated.human")(func.separated?.human)([
+ {
+ index: 0,
+ schema: {
+ type: "object",
+ properties: {
+ file: {
+ type: "string",
+ format: "uri",
+ contentMediaType: "*/*",
+ },
+ },
+ nullable: false,
+ required: ["file"],
+ },
+ },
+ ]);
+ TestValidator.equals("separated.llm")(func.separated?.llm)([
+ {
+ index: 0,
+ schema: {
+ type: "object",
+ properties: {
+ title: {
+ type: "string",
+ },
+ body: {
+ type: "string",
+ },
+ },
+ nullable: false,
+ required: ["title", "body"],
+ },
+ },
+ ]);
+};
+
+interface IBbsArticle extends IBbsArticle.ICreate {
+ id: string & tags.Format<"uuid">;
+ created_at: string & tags.Format<"date-time">;
+}
+namespace IBbsArticle {
+ export interface ICreate {
+ title: string;
+ body: string;
+ file: string & tags.Format<"uri"> & tags.ContentMediaType<"*/*">;
+ }
+}
+
+interface BbsArticleApplication {
+ create(input: IBbsArticle.ICreate): Promise;
+}
From 166874d734d7d740b7d8c4300702b8e6b472f641 Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Mon, 9 Sep 2024 23:18:17 +0900
Subject: [PATCH 7/8] Documentation of LLM function callling appllication
---
README.md | 26 +-
benchmark/package.json | 2 +-
debug/package.json | 2 +-
debug/src/llm.schema.recursive.ts | 5 +
debug/src/llm.ts | 24 -
errors/package.json | 2 +-
errors/src/llm/llm.application.bigint.ts | 7 +
package.json | 4 +-
packages/typescript-json/README.md | 26 +-
packages/typescript-json/package.json | 4 +-
src/factories/MetadataFactory.ts | 45 +-
.../metadata/emplace_metadata_object.ts | 12 +-
.../metadata/iterate_metadata_comment_tags.ts | 4 +-
.../metadata/iterate_metadata_function.ts | 2 +
src/llm.ts | 16 +-
.../llm/LlmApplicationProgrammer.ts | 7 +-
src/transformers/TransformerError.ts | 7 +-
test-esm/package.json | 2 +-
test/package.json | 2 +-
website/package-lock.json | 18 +-
website/package.json | 4 +-
website/pages/docs/_meta.json | 1 +
website/pages/docs/json/schema.mdx | 2 +-
website/pages/docs/llm/_meta.json | 4 +
website/pages/docs/llm/application.mdx | 1359 +++++++++++++++++
website/pages/docs/llm/schema.mdx | 760 +++++++++
website/public/images/home/openai.svg | 1 +
website/src/components/home/HomeCodeBlock.tsx | 3 +-
website/src/movies/home/HomeStrengthMovie.tsx | 32 +-
.../movies/home/HomeStrengthSectionMovie.tsx | 2 +-
30 files changed, 2306 insertions(+), 79 deletions(-)
create mode 100644 debug/src/llm.schema.recursive.ts
delete mode 100644 debug/src/llm.ts
create mode 100644 errors/src/llm/llm.application.bigint.ts
create mode 100644 website/pages/docs/llm/_meta.json
create mode 100644 website/pages/docs/llm/application.mdx
create mode 100644 website/pages/docs/llm/schema.mdx
create mode 100644 website/public/images/home/openai.svg
diff --git a/README.md b/README.md
index cf56483a3d..f58439bb86 100644
--- a/README.md
+++ b/README.md
@@ -16,16 +16,23 @@ export function validate(input: unknown): IValidation; // detailed
// JSON FUNCTIONS
export namespace json {
- export function application(): IJsonApplication; // JSON schema
- export function assertParse(input: string): T; // type safe parser
- export function assertStringify(input: T): string; // safe and faster
+ export function application(): IJsonApplication; // JSON schema
+ export function assertParse(input: string): T; // type safe parser
+ export function assertStringify(input: T): string; // safe and faster
+}
+
+// LLM FUNCTION CALLING APPLICATION
+export namespace llm {
+ // LLM function calling application from a class or interface type
+ export function application(): ILlmApplication;
+ export function schema(): ILlmSchema; // LLM type schema
}
// PROTOCOL BUFFER
export namespace protobuf {
- export function message(): string; // Protocol Buffer message
- export function assertDecode(buffer: Uint8Array): T; // safe decoder
- export function assertEncode(input: T): Uint8Array; // safe encoder
+ export function message(): string; // Protocol Buffer message
+ export function assertDecode(buffer: Uint8Array): T; // safe decoder
+ export function assertEncode(input: T): Uint8Array; // safe encoder
}
// RANDOM GENERATOR
@@ -36,6 +43,7 @@ Typia is a transformer library supporting below features:
- Super-fast Runtime Validators
- Enhanced JSON functions
+ - LLM function calling application composer
- Protocol Buffer encoder and decoder
- Random data generator
@@ -62,6 +70,7 @@ Also, `typia` is re-distributing half of donations to core contributors of `typi
+
## Playground
You can experience how typia works by [playground website](https://typia.io/playground):
@@ -86,9 +95,12 @@ Check out the document in the [website](https://typia.io/docs/):
- [Functional Module](https://typia.io/docs/validators/functional)
- [Special Tags](https://typia.io/docs/validators/tags/)
- Enhanced JSON
- - [JSON Schema](https://typia.io/docs/json/schema)
+ - [JSON Schema](https://typia.io/docs/json/schema/)
- [`stringify()` functions](https://typia.io/docs/json/stringify/)
- [`parse()` functions](https://typia.io/docs/json/parse/)
+ - LLM Function Calling
+ - [`application()` function](https://typia.io/docs/llm/application/)
+ - [`schema()` function](https://typia.io/docs/llm/schema/)
- Protocol Buffer
- [Message Schema](https://typia.io/docs/protobuf/message)
- [`decode()` functions](https://typia.io/docs/protobuf/decode/)
diff --git a/benchmark/package.json b/benchmark/package.json
index 22de4d3af3..5c707397e4 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -72,6 +72,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240908.tgz"
+ "typia": "../typia-6.10.0.tgz"
}
}
\ No newline at end of file
diff --git a/debug/package.json b/debug/package.json
index 496fc3fce3..7ab576643a 100644
--- a/debug/package.json
+++ b/debug/package.json
@@ -17,7 +17,7 @@
},
"dependencies": {
"tstl": "^3.0.0",
- "typia": "../typia-6.10.0-dev.20240907.tgz",
+ "typia": "../typia-6.10.0.tgz",
"uuid": "^10.0.0"
}
}
\ No newline at end of file
diff --git a/debug/src/llm.schema.recursive.ts b/debug/src/llm.schema.recursive.ts
new file mode 100644
index 0000000000..9a59fba685
--- /dev/null
+++ b/debug/src/llm.schema.recursive.ts
@@ -0,0 +1,5 @@
+import { ILlmSchema } from "@samchon/openapi";
+import typia from "typia";
+
+const schema: ILlmSchema = typia.llm.schema();
+console.log(schema);
diff --git a/debug/src/llm.ts b/debug/src/llm.ts
deleted file mode 100644
index cfb5b14499..0000000000
--- a/debug/src/llm.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { ILlmApplication, LlmTypeChecker } from "@samchon/openapi";
-import typia, { tags } from "typia";
-
-interface IBbsArticle extends IBbsArticle.ICreate {
- id: string & tags.Format<"uuid">;
- created_at: string & tags.Format<"date-time">;
-}
-namespace IBbsArticle {
- export interface ICreate {
- title: string;
- body: string;
- file: string & tags.Format<"uri"> & tags.ContentMediaType<"*/*">;
- }
-}
-
-interface BbsArticleApplication {
- create(input: IBbsArticle.ICreate): Promise;
-}
-
-const app: ILlmApplication = typia.llm.application({
- separate: (schema) =>
- LlmTypeChecker.isString(schema) && schema.contentMediaType !== undefined,
-});
-console.log(app);
diff --git a/errors/package.json b/errors/package.json
index 6ba5f3da20..8178eef9ad 100644
--- a/errors/package.json
+++ b/errors/package.json
@@ -32,6 +32,6 @@
"typescript": "^5.3.2"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240908.tgz"
+ "typia": "../typia-6.10.0.tgz"
}
}
\ No newline at end of file
diff --git a/errors/src/llm/llm.application.bigint.ts b/errors/src/llm/llm.application.bigint.ts
new file mode 100644
index 0000000000..71f92f50ba
--- /dev/null
+++ b/errors/src/llm/llm.application.bigint.ts
@@ -0,0 +1,7 @@
+import typia from "typia";
+
+typia.llm.application();
+
+interface Controller {
+ plus(X: bigint, y: bigint): bigint;
+}
diff --git a/package.json b/package.json
index 1ebfb35897..4af099a4e4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "typia",
- "version": "6.10.0-dev.20240908",
+ "version": "6.10.0-dev.20240910",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
@@ -67,7 +67,7 @@
},
"homepage": "https://typia.io",
"dependencies": {
- "@samchon/openapi": "^0.5.0-dev.20240906-2",
+ "@samchon/openapi": "^1.0.0",
"commander": "^10.0.0",
"comment-json": "^4.2.3",
"inquirer": "^8.2.5",
diff --git a/packages/typescript-json/README.md b/packages/typescript-json/README.md
index cbcec3658d..af5e12a836 100644
--- a/packages/typescript-json/README.md
+++ b/packages/typescript-json/README.md
@@ -19,16 +19,23 @@ export function validate(input: unknown): IValidation; // detailed
// JSON FUNCTIONS
export namespace json {
- export function application(): IJsonApplication; // JSON schema
- export function assertParse(input: string): T; // type safe parser
- export function assertStringify(input: T): string; // safe and faster
+ export function application(): IJsonApplication; // JSON schema
+ export function assertParse(input: string): T; // type safe parser
+ export function assertStringify(input: T): string; // safe and faster
+}
+
+// LLM FUNCTION CALLING APPLICATION
+export namespace llm {
+ // LLM function calling application from a class or interface type
+ export function application(): ILlmApplication;
+ export function schema(): ILlmSchema; // LLM type schema
}
// PROTOCOL BUFFER
export namespace protobuf {
- export function message(): string; // Protocol Buffer message
- export function assertDecode(buffer: Uint8Array): T; // safe decoder
- export function assertEncode(input: T): Uint8Array; // safe encoder
+ export function message(): string; // Protocol Buffer message
+ export function assertDecode(buffer: Uint8Array): T; // safe decoder
+ export function assertEncode(input: T): Uint8Array; // safe encoder
}
// RANDOM GENERATOR
@@ -39,6 +46,7 @@ Typia is a transformer library supporting below features:
- Super-fast Runtime Validators
- Enhanced JSON functions
+ - LLM function calling application composer
- Protocol Buffer encoder and decoder
- Random data generator
@@ -65,6 +73,7 @@ Also, `typia` is re-distributing half of donations to core contributors of `typi
+
## Playground
You can experience how typia works by [playground website](https://typia.io/playground):
@@ -89,9 +98,12 @@ Check out the document in the [website](https://typia.io/docs/):
- [Functional Module](https://typia.io/docs/validators/functional)
- [Special Tags](https://typia.io/docs/validators/tags/)
- Enhanced JSON
- - [JSON Schema](https://typia.io/docs/json/schema)
+ - [JSON Schema](https://typia.io/docs/json/schema/)
- [`stringify()` functions](https://typia.io/docs/json/stringify/)
- [`parse()` functions](https://typia.io/docs/json/parse/)
+ - LLM Function Calling
+ - [`application()` function](https://typia.io/docs/llm/application/)
+ - [`schema()` function](https://typia.io/docs/llm/schema/)
- Protocol Buffer
- [Message Schema](https://typia.io/docs/protobuf/message)
- [`decode()` functions](https://typia.io/docs/protobuf/decode/)
diff --git a/packages/typescript-json/package.json b/packages/typescript-json/package.json
index 313880d95e..028799c1ac 100644
--- a/packages/typescript-json/package.json
+++ b/packages/typescript-json/package.json
@@ -1,6 +1,6 @@
{
"name": "typescript-json",
- "version": "6.10.0-dev.20240908",
+ "version": "6.10.0-dev.20240909",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
@@ -63,7 +63,7 @@
},
"homepage": "https://typia.io",
"dependencies": {
- "typia": "6.10.0-dev.20240908"
+ "typia": "6.10.0-dev.20240909"
},
"peerDependencies": {
"typescript": ">=4.8.0 <5.6.0"
diff --git a/src/factories/MetadataFactory.ts b/src/factories/MetadataFactory.ts
index b61d621b24..266bebd147 100644
--- a/src/factories/MetadataFactory.ts
+++ b/src/factories/MetadataFactory.ts
@@ -4,6 +4,7 @@ import { Metadata } from "../schemas/metadata/Metadata";
import { MetadataAlias } from "../schemas/metadata/MetadataAlias";
import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
import { MetadataConstant } from "../schemas/metadata/MetadataConstant";
+import { MetadataFunction } from "../schemas/metadata/MetadataFunction";
import { MetadataObject } from "../schemas/metadata/MetadataObject";
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
import { explore_metadata } from "./internal/metadata/explore_metadata";
@@ -32,6 +33,8 @@ export namespace MetadataFactory {
object: MetadataObject | null;
property: string | object | null;
nested: null | MetadataAlias | MetadataArrayType | MetadataTupleType;
+ parameter: string | null;
+ output: boolean;
escaped: boolean;
aliased: boolean;
}
@@ -54,9 +57,11 @@ export namespace MetadataFactory {
top: true,
object: null,
property: null,
+ parameter: null,
nested: null,
- escaped: false,
aliased: false,
+ escaped: false,
+ output: false,
});
iterate_metadata_collection(errors)(collection);
iterate_metadata_sort(collection)(meta);
@@ -105,14 +110,17 @@ export namespace MetadataFactory {
arrays: new Set(),
tuples: new Set(),
aliases: new Set(),
+ functions: new Set(),
};
validateMeta(context)(options)(visitor)(meta, {
object: null,
property: null,
+ parameter: null,
nested: null,
top: true,
aliased: false,
escaped: false,
+ output: false,
});
return visitor.errors;
};
@@ -157,6 +165,8 @@ export namespace MetadataFactory {
validateTuple(context)(options)(visitor)(tuple.type, explore);
for (const obj of meta.objects)
validateObject(context)(options)(visitor)(obj);
+ for (const func of meta.functions)
+ validateFunction(context)(options)(visitor)(func, explore);
for (const set of meta.sets)
validateMeta(context)(options)(visitor)(set, explore);
for (const map of meta.maps) {
@@ -230,9 +240,11 @@ export namespace MetadataFactory {
object,
top: false,
property: null,
+ parameter: null,
nested: null,
- escaped: false,
aliased: false,
+ escaped: false,
+ output: false,
};
const errors: string[] = options.validate(
Metadata.create({
@@ -255,10 +267,38 @@ export namespace MetadataFactory {
property: property.key.isSoleLiteral()
? property.key.getSoleLiteral()!
: {},
+ parameter: null,
nested: null,
top: false,
aliased: false,
escaped: false,
+ output: false,
+ });
+ };
+
+ const validateFunction =
+ (context?: ts.TransformationContext) =>
+ (options: IOptions) =>
+ (visitor: IValidationVisitor) =>
+ (func: MetadataFunction, explore: IExplore) => {
+ if (visitor.functions.has(func)) return;
+ visitor.functions.add(func);
+
+ for (const param of func.parameters)
+ validateMeta(context)(options)(visitor)(param.type, {
+ ...explore,
+ parameter: param.name,
+ nested: null,
+ top: false,
+ output: false,
+ });
+ if (func.output)
+ validateMeta(context)(options)(visitor)(func.output, {
+ ...explore,
+ parameter: null,
+ nested: null,
+ top: false,
+ output: true,
});
};
@@ -269,5 +309,6 @@ export namespace MetadataFactory {
arrays: Set;
tuples: Set;
aliases: Set;
+ functions: Set;
}
}
diff --git a/src/factories/internal/metadata/emplace_metadata_object.ts b/src/factories/internal/metadata/emplace_metadata_object.ts
index 07855afc8f..6050499246 100644
--- a/src/factories/internal/metadata/emplace_metadata_object.ts
+++ b/src/factories/internal/metadata/emplace_metadata_object.ts
@@ -101,9 +101,11 @@ export const emplace_metadata_object =
top: false,
object: obj,
property: prop.name,
+ parameter: null,
nested: null,
- escaped: false,
aliased: false,
+ escaped: false,
+ output: false,
});
Writable(value).optional = (prop.flags & ts.SymbolFlags.Optional) !== 0;
insert(key)(value)(prop);
@@ -119,9 +121,11 @@ export const emplace_metadata_object =
top: false,
object: obj,
property,
+ parameter: null,
nested: null,
- escaped: false,
aliased: false,
+ escaped: false,
+ output: false,
});
const key: Metadata = analyzer(index.keyType)(null);
const value: Metadata = analyzer(index.type)({});
@@ -145,9 +149,11 @@ export const emplace_metadata_object =
top: false,
object: obj,
property: "[key]",
+ parameter: null,
nested: null,
- escaped: false,
aliased: false,
+ escaped: false,
+ output: false,
},
messages: [],
});
diff --git a/src/factories/internal/metadata/iterate_metadata_comment_tags.ts b/src/factories/internal/metadata/iterate_metadata_comment_tags.ts
index f6d52d8d62..55410857fc 100644
--- a/src/factories/internal/metadata/iterate_metadata_comment_tags.ts
+++ b/src/factories/internal/metadata/iterate_metadata_comment_tags.ts
@@ -17,9 +17,11 @@ export const iterate_metadata_comment_tags =
property: property.key.isSoleLiteral()
? property.key.getSoleLiteral()!
: {},
+ parameter: null,
nested: null,
- escaped: false,
aliased: false,
+ escaped: false,
+ output: false,
},
);
}
diff --git a/src/factories/internal/metadata/iterate_metadata_function.ts b/src/factories/internal/metadata/iterate_metadata_function.ts
index cfa1b99d22..c5db3acd59 100644
--- a/src/factories/internal/metadata/iterate_metadata_function.ts
+++ b/src/factories/internal/metadata/iterate_metadata_function.ts
@@ -57,6 +57,7 @@ export const iterate_metadata_function =
{
...explore,
top: false,
+ parameter: p.name,
},
),
description: CommentFactory.description(p) ?? null,
@@ -75,6 +76,7 @@ export const iterate_metadata_function =
{
...explore,
top: false,
+ output: true,
},
),
}),
diff --git a/src/llm.ts b/src/llm.ts
index 891c8ae96a..29092b7703 100644
--- a/src/llm.ts
+++ b/src/llm.ts
@@ -5,11 +5,11 @@ import * as Namespace from "./functional/Namespace";
/**
* > You must configure the generic argument `App`.
*
- * TypeScript functions to LLM function schemas.
+ * TypeScript functions to LLM function calling application.
*
- * Creates an application of LLM (Large Language Model) function calling schemas from
- * a TypeScript class or interface type containig the target functions to be called by
- * the LLM function calling feature.
+ * Creates an application of LLM (Large Language Model) function calling application
+ * from a TypeScript class or interface type containig the target functions to be
+ * called by the LLM function calling feature.
*
* If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
* like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
@@ -43,11 +43,11 @@ import * as Namespace from "./functional/Namespace";
function application(options?: ILlmApplication.IOptions): never;
/**
- * TypeScript functions to LLM function schemas.
+ * TypeScript functions to LLM function calling application.
*
- * Creates an application of LLM (Large Language Model) function calling schemas from
- * a TypeScript class or interface type containig the target functions to be called by
- * the LLM function calling feature.
+ * Creates an application of LLM (Large Language Model) function calling application
+ * from a TypeScript class or interface type containig the target functions to be
+ * called by the LLM function calling feature.
*
* If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
* like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
diff --git a/src/programmers/llm/LlmApplicationProgrammer.ts b/src/programmers/llm/LlmApplicationProgrammer.ts
index deec81ea2b..908df475f3 100644
--- a/src/programmers/llm/LlmApplicationProgrammer.ts
+++ b/src/programmers/llm/LlmApplicationProgrammer.ts
@@ -64,9 +64,11 @@ export namespace LlmApplicationProgrammer {
top: true,
object: null,
property: null,
+ parameter: null,
nested: null,
- escaped: false,
aliased: false,
+ escaped: false,
+ output: false,
});
if (errors.length)
throw new Error("Failed to write LLM application: " + errors.join("\n"));
@@ -80,6 +82,9 @@ export namespace LlmApplicationProgrammer {
p.value.size() === 1 &&
p.key.isSoleLiteral(),
)
+ .filter(
+ (p) => p.jsDocTags.find((tag) => tag.name === "hidden") === undefined,
+ )
.map((p) =>
writeFunction({
name: p.key.getSoleLiteral()!,
diff --git a/src/transformers/TransformerError.ts b/src/transformers/TransformerError.ts
index ce18c382bd..fcecfdc6da 100644
--- a/src/transformers/TransformerError.ts
+++ b/src/transformers/TransformerError.ts
@@ -32,10 +32,15 @@ export namespace TransformerError {
e.explore.object === null
? ""
: join(e.explore.object)(e.explore.property);
+ const middle: string = e.explore.parameter
+ ? `(parameter: ${JSON.stringify(e.explore.parameter)})`
+ : e.explore.output
+ ? "(return type)"
+ : "";
const type: string = `${subject.length ? `${subject}: ` : ""}${
e.name
}`;
- return `- ${type}\n${e.messages
+ return `- ${type}${middle}\n${e.messages
.map((msg) => ` - ${msg}`)
.join("\n")}`;
})
diff --git a/test-esm/package.json b/test-esm/package.json
index 69f9f8280a..e836d8530f 100644
--- a/test-esm/package.json
+++ b/test-esm/package.json
@@ -36,6 +36,6 @@
"typescript": "^5.4.5"
},
"dependencies": {
- "typia": "../typia-6.10.0-dev.20240908.tgz"
+ "typia": "../typia-6.10.0.tgz"
}
}
\ No newline at end of file
diff --git a/test/package.json b/test/package.json
index 2c68d76e9a..6626099abe 100644
--- a/test/package.json
+++ b/test/package.json
@@ -52,6 +52,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0-dev.20240908.tgz"
+ "typia": "../typia-6.10.0.tgz"
}
}
\ No newline at end of file
diff --git a/website/package-lock.json b/website/package-lock.json
index c7ff89f7de..45f919aaad 100644
--- a/website/package-lock.json
+++ b/website/package-lock.json
@@ -15,7 +15,7 @@
"@mui/icons-material": "^5.15.4",
"@mui/material": "^5.12.0",
"@rollup/browser": "^4.13.0",
- "@samchon/openapi": "^0.4.6",
+ "@samchon/openapi": "^1.0.0",
"lz-string": "^1.5.0",
"monaco-editor": "^0.50.0",
"next": "^14.2.3",
@@ -28,7 +28,7 @@
"tgrid": "^1.0.3",
"tstl": "^3.0.0",
"typescript": "^5.5.4",
- "typia": "^6.9.0"
+ "typia": "^6.10.0-dev.20240909"
},
"devDependencies": {
"@rspack/cli": "^1.0.0",
@@ -1670,9 +1670,9 @@
}
},
"node_modules/@samchon/openapi": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/@samchon/openapi/-/openapi-0.4.6.tgz",
- "integrity": "sha512-dfeE8Zdpv+FG+znq1883m1wtN2A6Cughjzm+QYZXJSw+g3ddEhkbCwgkH29o5M6jOGunKaN1R15PZjfrSdP5zw=="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@samchon/openapi/-/openapi-1.0.0.tgz",
+ "integrity": "sha512-m+7990LTzPmhkFSqo+Y0V+y1ETqvymWf+AJJy8/t5CM2/nQ6M/BYNhUMp99dgPw6DuH/Nlwx6aBlOu3u2b5f9A=="
},
"node_modules/@shikijs/core": {
"version": "1.14.1",
@@ -11134,11 +11134,11 @@
}
},
"node_modules/typia": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/typia/-/typia-6.9.0.tgz",
- "integrity": "sha512-Vgo3CmE9XZhb/zsrW6Q4IQk7JeJk+ZVGxu/T4QZdI/PEokOpn00mGFMk9hhXNA27jrYC0NCgalO+YcZYsR5nGw==",
+ "version": "6.10.0-dev.20240909",
+ "resolved": "https://registry.npmjs.org/typia/-/typia-6.10.0-dev.20240909.tgz",
+ "integrity": "sha512-4CIZvCiHIKYszKL7MfKN/85hs3HQ3uf/0/HQwtpbjU1r7fiUYKPzWFs7iaKMv3U4JzyB38Hpe1xmzxcamDqe4w==",
"dependencies": {
- "@samchon/openapi": "^0.4.6",
+ "@samchon/openapi": "^1.0.0",
"commander": "^10.0.0",
"comment-json": "^4.2.3",
"inquirer": "^8.2.5",
diff --git a/website/package.json b/website/package.json
index 14c55e0345..696217bfb0 100644
--- a/website/package.json
+++ b/website/package.json
@@ -26,7 +26,7 @@
"@mui/icons-material": "^5.15.4",
"@mui/material": "^5.12.0",
"@rollup/browser": "^4.13.0",
- "@samchon/openapi": "^0.4.6",
+ "@samchon/openapi": "^1.0.0",
"lz-string": "^1.5.0",
"monaco-editor": "^0.50.0",
"next": "^14.2.3",
@@ -39,7 +39,7 @@
"tgrid": "^1.0.3",
"tstl": "^3.0.0",
"typescript": "^5.5.4",
- "typia": "^6.9.0"
+ "typia": "^6.10.0-dev.20240910"
},
"devDependencies": {
"@rspack/cli": "^1.0.0",
diff --git a/website/pages/docs/_meta.json b/website/pages/docs/_meta.json
index de1d7564db..ab6f4bb912 100644
--- a/website/pages/docs/_meta.json
+++ b/website/pages/docs/_meta.json
@@ -9,6 +9,7 @@
},
"validators": "Runtime Validators",
"json": "Enhanced JSON",
+ "llm": "LLM Function Calling",
"protobuf": "Protocol Buffer",
"random": "Random Generator",
"misc": "Miscellaneous",
diff --git a/website/pages/docs/json/schema.mdx b/website/pages/docs/json/schema.mdx
index b19ed2a8a0..eb51719840 100644
--- a/website/pages/docs/json/schema.mdx
+++ b/website/pages/docs/json/schema.mdx
@@ -309,7 +309,7 @@ export const SpecialTagSchema = {
## Customization
-If what you want is not just filling special properties of JSON schema spec, but to adding custom properties into the JSON schema definition, you can do it through the `tags.TagBase.schema` property type or `tags.JsonSchemaPlugin` type.
+If what you want is not just filling regular properties of JSON schema specification, but to adding custom properties into the JSON schema definition, you can do it through the `tags.TagBase.schema` property type or `tags.JsonSchemaPlugin` type.
For reference, the custom property must be started with `x-` prefix. It's a rule of JSON schema.
diff --git a/website/pages/docs/llm/_meta.json b/website/pages/docs/llm/_meta.json
new file mode 100644
index 0000000000..dce6675ccf
--- /dev/null
+++ b/website/pages/docs/llm/_meta.json
@@ -0,0 +1,4 @@
+{
+ "application": "application() function",
+ "schema": "schema() function"
+}
diff --git a/website/pages/docs/llm/application.mdx b/website/pages/docs/llm/application.mdx
new file mode 100644
index 0000000000..85bacbcf2e
--- /dev/null
+++ b/website/pages/docs/llm/application.mdx
@@ -0,0 +1,1359 @@
+import { Callout, Tabs, Tab } from 'nextra-theme-docs'
+
+## `application()` function
+typia,
+ ILlmApplication
,
+ ILlmFunction
,
+ ILlmSchema
,
+ ]}>
+
+```typescript filename="typia"
+export namespace llm {
+ export function application(
+ options?: ILlmApplication.IOptions
+ ): ILlmApplication;
+}
+```
+
+
+```typescript filename="@samchon/openapi" showLineNumbers
+/**
+ * Application of LLM function calling.
+ *
+ * `ILlmApplication` is a data structure representing a collection of
+ * {@link ILlmFunction LLM function calling schemas}, composed from a native
+ * TypeScript class (or interface) type by the `typia.llm.application()`
+ * function.
+ *
+ * By the way, the LLM function calling application composition, converting
+ * `ILlmApplication` instance from TypeScript interface (or class) type is not always
+ * successful. As LLM provider like OpenAI cannot understand the recursive reference
+ * type that is embodied by {@link OpenApi.IJsonSchema.IReference}, if there're some
+ * recursive types in the TypeScript interface (or class) type, the conversion would
+ * be failed.
+ *
+ * Also, there can be some parameters (or their nested properties) which must be
+ * composed by Human, not by LLM. File uploading feature or some sensitive information
+ * like secrety key (password) are the examples. In that case, you can separate the
+ * function parameters to both LLM and human sides by configuring the
+ * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
+ * assigned to the {@link ILlmFunction.separated} property.
+ *
+ * For reference, when both LLM and Human filled parameter values to call, you can
+ * merge them by calling the {@link HttpLlm.mergeParameters} function. In other words,
+ * if you've configured the {@link ILlmApplication.IOptions.separate} property, you
+ * have to merge the separated parameters before the funtion call execution.
+ *
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
+export interface ILlmApplication {
+ /**
+ * List of function metadata.
+ *
+ * List of function metadata that can be used for the LLM function call.
+ */
+ functions: ILlmFunction[];
+
+ /**
+ * Options for the document.
+ */
+ options: ILlmApplication.IOptions;
+}
+export namespace ILlmApplication {
+ export interface IOptions {
+ /**
+ * Separator function for the parameters.
+ *
+ * When composing parameter arguments through LLM function call,
+ * there can be a case that some parameters must be composed by human,
+ * or LLM cannot understand the parameter. For example, if the
+ * parameter type has configured
+ * {@link ILlmSchema.IString.contentMediaType} which indicates file
+ * uploading, it must be composed by human, not by LLM
+ * (Large Language Model).
+ *
+ * In that case, if you configure this property with a function that
+ * predicating whether the schema value must be composed by human or
+ * not, the parameters would be separated into two parts.
+ *
+ * - {@link ILlmFunction.separated.llm}
+ * - {@link ILlmFunction.separated.human}
+ *
+ * When writing the function, note that returning value `true` means
+ * to be a human composing the value, and `false` means to LLM
+ * composing the value. Also, when predicating the schema, it would
+ * better to utilize the {@link LlmTypeChecker} features.
+ *
+ * @param schema Schema to be separated.
+ * @returns Whether the schema value must be composed by human or not.
+ * @default null
+ */
+ separate: null | ((schema: Schema) => boolean);
+ }
+}
+```
+
+
+```typescript filename="@samchon/openapi" showLineNumbers
+/**
+ * LLM function metadata.
+ *
+ * `ILlmFunction` is an interface representing a function metadata,
+ * which has been used for the LLM (Language Large Model) function
+ * calling. Also, it's a function structure containing the function
+ * {@link name}, {@link parameters} and {@link output return type}.
+ *
+ * If you provide this `ILlmFunction` data to the LLM provider like "OpenAI",
+ * the "OpenAI" will compose a function arguments by analyzing conversations
+ * with the user. With the LLM composed arguments, you can execute the function
+ * and get the result.
+ *
+ * By the way, do not ensure that LLM will always provide the correct
+ * arguments. The LLM of present age is not perfect, so that you would
+ * better to validate the arguments before executing the function.
+ * I recommend you to validate the arguments before execution by using
+ * [`typia`](https://github.com/samchon/typia) library.
+ *
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
+export interface ILlmFunction {
+ /**
+ * Representative name of the function.
+ */
+ name: string;
+
+ /**
+ * List of parameter types.
+ */
+ parameters: Schema[];
+
+ /**
+ * Collection of separated parameters.
+ */
+ separated?: ILlmFunction.ISeparated;
+
+ /**
+ * Expected return type.
+ *
+ * If the function returns nothing (`void`), the `output` value would
+ * be `undefined`.
+ */
+ output?: Schema | undefined;
+
+ /**
+ * Description of the function.
+ *
+ * For reference, the `description` is very important property to teach
+ * the purpose of the function to the LLM (Language Large Model), and
+ * LLM actually determines which function to call by the description.
+ *
+ * Also, when the LLM conversates with the user, the `description` is
+ * used to explain the function to the user. Therefore, the `description`
+ * property has the highest priroity, and you have to consider it.
+ */
+ description?: string | undefined;
+}
+export namespace ILlmFunction {
+ /**
+ * Collection of separated parameters.
+ */
+ export interface ISeparated {
+ /**
+ * Parameters that would be composed by the LLM.
+ */
+ llm: ISeparatedParameter[];
+
+ /**
+ * Parameters that would be composed by the human.
+ */
+ human: ISeparatedParameter[];
+ }
+
+ /**
+ * Separated parameter.
+ */
+ export interface ISeparatedParameter {
+ /**
+ * Index of the parameter.
+ *
+ * @type uint
+ */
+ index: number;
+
+ /**
+ * Type schema info of the parameter.
+ */
+ schema: Schema;
+ }
+}
+```
+
+
+```typescript filename="@samchon/openapi" showLineNumbers
+/**
+ * Type schema info of LLM function call.
+ *
+ * `ILlmSchema` is a type metadata of LLM (Large Language Model)
+ * function calling.
+ *
+ * `ILlmSchema` basically follows the JSON schema definition of OpenAPI
+ * v3.0 specification; {@link OpenApiV3.IJsonSchema}. However, `ILlmSchema`
+ * does not have the reference type; {@link OpenApiV3.IJsonSchema.IReference}.
+ * It's because the LLM cannot compose the reference typed arguments.
+ *
+ * For reference, the OpenAPI v3.0 based JSON schema definition can't
+ * express the tuple array type. It has been supported since OpenAPI v3.1;
+ * {@link OpenApi.IJsonSchema.ITuple}. Therefore, it would better to avoid
+ * using the tuple array type in the LLM function calling.
+ *
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
+export type ILlmSchema =
+ | ILlmSchema.IBoolean
+ | ILlmSchema.IInteger
+ | ILlmSchema.INumber
+ | ILlmSchema.IString
+ | ILlmSchema.IArray
+ | ILlmSchema.IObject
+ | ILlmSchema.IUnknown
+ | ILlmSchema.INullOnly
+ | ILlmSchema.IOneOf;
+export namespace ILlmSchema {
+ /**
+ * Boolean type schema info.
+ */
+ export interface IBoolean extends __ISignificant<"boolean"> {
+ /**
+ * Default value.
+ */
+ default?: boolean | null;
+
+ /**
+ * Enumeration values.
+ */
+ enum?: Array;
+ }
+
+ /**
+ * Integer type schema info.
+ */
+ export interface IInteger extends __ISignificant<"integer"> {
+ /**
+ * Default value.
+ *
+ * @type int64
+ */
+ default?: number | null;
+
+ /**
+ * Enumeration values.
+ *
+ * @type int64
+ */
+ enum?: Array;
+
+ /**
+ * Minimum value restriction.
+ *
+ * @type int64
+ */
+ minimum?: number;
+
+ /**
+ * Maximum value restriction.
+ *
+ * @type int64
+ */
+ maximum?: number;
+
+ /**
+ * Exclusive minimum value restriction.
+ *
+ * For reference, even though your Swagger document has defined the
+ * `exclusiveMinimum` value as `number`, it has been forcibly converted
+ * to `boolean` type, and assigns the numeric value to the
+ * {@link minimum} property in the {@link OpenApi} conversion.
+ */
+ exclusiveMinimum?: boolean;
+
+ /**
+ * Exclusive maximum value restriction.
+ *
+ * For reference, even though your Swagger document has defined the
+ * `exclusiveMaximum` value as `number`, it has been forcibly converted
+ * to `boolean` type, and assigns the numeric value to the
+ * {@link maximum} property in the {@link OpenApi} conversion.
+ */
+ exclusiveMaximum?: boolean;
+
+ /**
+ * Multiple of value restriction.
+ *
+ * @type uint64
+ * @exclusiveMinimum 0
+ */
+ multipleOf?: number;
+ }
+
+ /**
+ * Number type schema info.
+ */
+ export interface INumber extends __ISignificant<"number"> {
+ /**
+ * Default value.
+ */
+ default?: number | null;
+
+ /**
+ * Enumeration values.
+ */
+ enum?: Array;
+
+ /**
+ * Minimum value restriction.
+ */
+ minimum?: number;
+
+ /**
+ * Maximum value restriction.
+ */
+ maximum?: number;
+
+ /**
+ * Exclusive minimum value restriction.
+ *
+ * For reference, even though your Swagger (or OpenAPI) document has
+ * defined the `exclusiveMinimum` value as `number`, {@link OpenAiComposer}
+ * forcibly converts it to `boolean` type, and assign the numeric value to
+ * the {@link minimum} property.
+ */
+ exclusiveMinimum?: boolean;
+
+ /**
+ * Exclusive maximum value restriction.
+ *
+ * For reference, even though your Swagger (or OpenAPI) document has
+ * defined the `exclusiveMaximum` value as `number`, {@link OpenAiComposer}
+ * forcibly converts it to `boolean` type, and assign the numeric value to
+ * the {@link maximum} property.
+ */
+ exclusiveMaximum?: boolean;
+
+ /**
+ * Multiple of value restriction.
+ *
+ * @exclusiveMinimum 0
+ */
+ multipleOf?: number;
+ }
+
+ /**
+ * String type schema info.
+ */
+ export interface IString extends __ISignificant<"string"> {
+ /**
+ * Default value.
+ */
+ default?: string | null;
+
+ /**
+ * Enumeration values.
+ */
+ enum?: Array;
+
+ /**
+ * Format restriction.
+ */
+ format?:
+ | "binary"
+ | "byte"
+ | "password"
+ | "regex"
+ | "uuid"
+ | "email"
+ | "hostname"
+ | "idn-email"
+ | "idn-hostname"
+ | "iri"
+ | "iri-reference"
+ | "ipv4"
+ | "ipv6"
+ | "uri"
+ | "uri-reference"
+ | "uri-template"
+ | "url"
+ | "date-time"
+ | "date"
+ | "time"
+ | "duration"
+ | "json-pointer"
+ | "relative-json-pointer"
+ | (string & {});
+
+ /**
+ * Pattern restriction.
+ */
+ pattern?: string;
+
+ /**
+ * Minimum length restriction.
+ *
+ * @type uint64
+ */
+ minLength?: number;
+
+ /**
+ * Maximum length restriction.
+ *
+ * @type uint64
+ */
+ maxLength?: number;
+
+ /**
+ * Content media type restriction.
+ */
+ contentMediaType?: string;
+ }
+
+ /**
+ * Array type schema info.
+ */
+ export interface IArray
+ extends __ISignificant<"array"> {
+ /**
+ * Items type schema info.
+ *
+ * The `items` means the type of the array elements. In other words, it is
+ * the type schema info of the `T` in the TypeScript array type `Array`.
+ */
+ items: Schema;
+
+ /**
+ * Unique items restriction.
+ *
+ * If this property value is `true`, target array must have unique items.
+ */
+ uniqueItems?: boolean;
+
+ /**
+ * Minimum items restriction.
+ *
+ * Restriction of minumum number of items in the array.
+ *
+ * @type uint64
+ */
+ minItems?: number;
+
+ /**
+ * Maximum items restriction.
+ *
+ * Restriction of maximum number of items in the array.
+ *
+ * @type uint64
+ */
+ maxItems?: number;
+ }
+
+ /**
+ * Object type schema info.
+ */
+ export interface IObject
+ extends __ISignificant<"object"> {
+ /**
+ * Properties of the object.
+ *
+ * The `properties` means a list of key-value pairs of the object's
+ * regular properties. The key is the name of the regular property,
+ * and the value is the type schema info.
+ *
+ * If you need additional properties that is represented by dynamic key,
+ * you can use the {@link additionalProperties} instead.
+ */
+ properties?: Record;
+
+ /**
+ * List of key values of the required properties.
+ *
+ * The `required` means a list of the key values of the required
+ * {@link properties}. If some property key is not listed in the `required`
+ * list, it means that property is optional. Otherwise some property key
+ * exists in the `required` list, it means that the property must be filled.
+ *
+ * Below is an example of the {@link properties} and `required`.
+ *
+ * ```typescript
+ * interface SomeObject {
+ * id: string;
+ * email: string;
+ * name?: string;
+ * }
+ * ```
+ *
+ * As you can see, `id` and `email` {@link properties} are {@link required},
+ * so that they are listed in the `required` list.
+ *
+ * ```json
+ * {
+ * "type": "object",
+ * "properties": {
+ * "id": { "type": "string" },
+ * "email": { "type": "string" },
+ * "name": { "type": "string" }
+ * },
+ * "required": ["id", "email"]
+ * }
+ * ```
+ */
+ required?: string[];
+
+ /**
+ * Additional properties' info.
+ *
+ * The `additionalProperties` means the type schema info of the additional
+ * properties that are not listed in the {@link properties}.
+ *
+ * If the value is `true`, it means that the additional properties are not
+ * restricted. They can be any type. Otherwise, if the value is
+ * {@link ILlmSchema} type, it means that the additional properties must
+ * follow the type schema info.
+ *
+ * - `true`: `Record`
+ * - `ILlmSchema`: `Record`
+ */
+ additionalProperties?: boolean | Schema;
+ }
+
+ /**
+ * Unknown type schema info.
+ *
+ * It means the type of the value is `any`.
+ */
+ export interface IUnknown extends __IAttribute {
+ /**
+ * Type is never be defined.
+ */
+ type?: undefined;
+ }
+
+ /**
+ * Null only type schema info.
+ */
+ export interface INullOnly extends __IAttribute {
+ /**
+ * Type is always `null`.
+ */
+ type: "null";
+
+ /**
+ * Default value.
+ */
+ default?: null;
+ }
+
+ /**
+ * One of type schema info.
+ *
+ * `IOneOf` represents an union type of the TypeScript (`A | B | C`).
+ *
+ * For reference, even though your Swagger (or OpenAPI) document has
+ * defined `anyOf` instead of the `oneOf`, it has been forcibly converted
+ * to `oneOf` type by {@link OpenApi.convert OpenAPI conversion}.
+ */
+ export interface IOneOf
+ extends __IAttribute {
+ /**
+ * List of the union types.
+ */
+ oneOf: Exclude>[];
+ }
+
+ /**
+ * Significant attributes that can be applied to the most types.
+ */
+ export interface __ISignificant extends __IAttribute {
+ /**
+ * Discriminator value of the type.
+ */
+ type: Type;
+
+ /**
+ * Whether to allow `null` value or not.
+ */
+ nullable?: boolean;
+ }
+
+ /**
+ * Common attributes that can be applied to all types.
+ */
+ export interface __IAttribute {
+ /**
+ * Title of the schema.
+ */
+ title?: string;
+
+ /**
+ * Detailed description of the schema.
+ */
+ description?: string;
+
+ /**
+ * Whether the type is deprecated or not.
+ */
+ deprecated?: boolean;
+ }
+}
+```
+
+
+
+LLM function calling application from a native TypeScript class or interface type.
+
+`typia.llm.application()` is a function composing LLM (Large Language Model) calling application from a native TypeScript class or interface type. The function returns an `ILlmApplication` instance, which is a data structure representing a collection of LLM function calling schemas.
+
+If you put LLM function schema instances registered in the `ILlmApplication.functions` to the LLM provider like `OpenAI`, the LLM will select a proper function to call with parameter values of the target function in the conversations with the user. This is the "LLM Function Calling".
+
+Let's make A.I. Chatbot super-easily with `typia.llm.application()` function.
+
+
+**LLM Function Calling**
+
+LLM selects proper function and fill arguments.
+
+In nowadays, most LLM (Large Language Model) like OpenAI are supporting "function calling" feature. The "LLM function calling" means that LLM automatically selects a proper function and fills parameter values from conversation with the user (may by chatting text).
+
+https://platform.openai.com/docs/guides/function-calling
+
+
+
+
+## Description Comment
+
+
+```typescript filename="example/src/llm.application.simple.ts" showLineNumbers {4}
+import { ILlmApplication } from "@samchon/openapi";
+import typia, { tags } from "typia";
+
+const app: ILlmApplication = typia.llm.application();
+
+console.log(JSON.stringify(app, null, 2));
+
+interface BbsArticleController {
+ /**
+ * Create a new article.
+ *
+ * Writes a new article and archives it into the DB.
+ *
+ * @param input Information of the article to create
+ * @returns Newly created article
+ */
+ create(input: IBbsArticle.ICreate): Promise;
+
+ /**
+ * Update an article.
+ *
+ * Updates an article with new content.
+ *
+ * @param id Target article's {@link IBbsArticle.id}
+ * @param input New content to update
+ */
+ update(
+ id: string & tags.Format<"uuid">,
+ input: IBbsArticle.IUpdate,
+ ): Promise;
+
+ /**
+ * Erase an article.
+ *
+ * Erases an article from the DB.
+ *
+ * @param id Target article's {@link IBbsArticle.id}
+ */
+ erase(id: string & tags.Format<"uuid">): Promise;
+}
+
+/**
+ * Article entity.
+ *
+ * `IBbsArticle` is an entity representing an article in the BBS (Bulletin Board System).
+ */
+interface IBbsArticle extends IBbsArticle.ICreate {
+ /**
+ * Primary Key.
+ */
+ id: string & tags.Format<"uuid">;
+
+ /**
+ * Creation time of the article.
+ */
+ created_at: string & tags.Format<"date-time">;
+
+ /**
+ * Last updated time of the article.
+ */
+ updated_at: string & tags.Format<"date-time">;
+}
+namespace IBbsArticle {
+ /**
+ * Information of the article to create.
+ */
+ export interface ICreate {
+ /**
+ * Title of the article.
+ *
+ * Representative title of the article.
+ */
+ title: string;
+
+ /**
+ * Content body.
+ *
+ * Content body of the article writtn in the markdown format.
+ */
+ body: string;
+
+ /**
+ * Thumbnail image URI.
+ *
+ * Thumbnail image URI which can represent the article.
+ *
+ * If configured as `null`, it means that no thumbnail image in the article.
+ */
+ thumbnail:
+ | null
+ | (string & tags.Format<"uri"> & tags.ContentMediaType<"image/*">);
+ }
+
+ /**
+ * Information of the article to update.
+ *
+ * Only the filled properties will be updated.
+ */
+ export type IUpdate = Partial;
+}
+```
+
+
+```json filename="example/schemas/llm.application.simple.json" showLineNumbers
+{
+ "functions": [
+ {
+ "name": "create",
+ "parameters": [
+ {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "title": "Title of the article",
+ "description": "Title of the article.\n\nRepresentative title of the article."
+ },
+ "body": {
+ "type": "string",
+ "title": "Content body",
+ "description": "Content body.\n\nContent body of the article writtn in the markdown format."
+ },
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "contentMediaType": "image/*",
+ "nullable": true,
+ "title": "Thumbnail image URI",
+ "description": "Thumbnail image URI.\n\nThumbnail image URI which can represent the article.\n\nIf configured as `null`, it means that no thumbnail image in the article."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "title",
+ "body",
+ "thumbnail"
+ ],
+ "description": "Information of the article to create"
+ }
+ ],
+ "output": {
+ "description": "Newly created article"
+ },
+ "description": "Create a new article.\n\nWrites a new article and archives it into the DB."
+ },
+ {
+ "name": "update",
+ "parameters": [
+ {
+ "type": "string",
+ "format": "uuid",
+ "description": "Target article's "
+ },
+ {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "title": "Title of the article",
+ "description": "Title of the article.\n\nRepresentative title of the article."
+ },
+ "body": {
+ "type": "string",
+ "title": "Content body",
+ "description": "Content body.\n\nContent body of the article writtn in the markdown format."
+ },
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "contentMediaType": "image/*",
+ "nullable": true,
+ "title": "Thumbnail image URI",
+ "description": "Thumbnail image URI.\n\nThumbnail image URI which can represent the article.\n\nIf configured as `null`, it means that no thumbnail image in the article."
+ }
+ },
+ "nullable": false,
+ "description": "New content to update"
+ }
+ ],
+ "output": {},
+ "description": "Update an article.\n\nUpdates an article with new content."
+ },
+ {
+ "name": "erase",
+ "parameters": [
+ {
+ "type": "string",
+ "format": "uuid",
+ "description": "Target article's "
+ }
+ ],
+ "output": {},
+ "description": "Erase an article.\n\nErases an article from the DB."
+ }
+ ],
+ "options": {
+ "separate": null
+ }
+}
+```
+
+
+
+Here is the example code utilizing the `typia.llm.application()` function.
+
+As you can see, above example code is writing detailed descriptions for every functions and their parameter/return types. Such detailed descriptions are very important to teach the purpose of the function to the LLM (Language Large Model), and LLM actually determines which function to call by the description.
+
+Therefore, don't forget to writing detailed descriptions. It's very import feature for the LLM function calling.
+
+
+
+
+## Parameters' Separation
+Parameter values from both LLM and Human sides.
+
+When composing parameter arguments through the LLM (Large Language Model) function calling, there can be a case that some parameters (or nested properties) must be composed not by LLM, but by Human. File uploading feature, or sensitive information like secret key (password) cases are the representative examples.
+
+In that case, you can configure the LLM function calling schemas to exclude such Human side parameters (or nested properties) by `ILlmApplication.options.separate` property. Instead, you have to merge both Human and LLM composed parameters into one by calling the `HttpLlm.mergeParameters()` before the LLM function call execution.
+
+Here is the example separating the parameter schemas.
+
+
+
+```typescript filename="example/src/llm.application.separate.ts" showLineNumbers {4-7}
+import { ILlmApplication, ILlmSchema, LlmTypeChecker } from "@samchon/openapi";
+import typia, { tags } from "typia";
+
+const app: ILlmApplication = typia.llm.application({
+ separate: (schema: ILlmSchema) =>
+ LlmTypeChecker.isString(schema) && schema.contentMediaType !== undefined,
+});
+
+console.log(JSON.stringify(app, null, 2));
+
+interface BbsArticleController {
+ /**
+ * Create a new article.
+ *
+ * Writes a new article and archives it into the DB.
+ *
+ * @param input Information of the article to create
+ * @returns Newly created article
+ */
+ create(input: IBbsArticle.ICreate): Promise;
+
+ /**
+ * Update an article.
+ *
+ * Updates an article with new content.
+ *
+ * @param id Target article's {@link IBbsArticle.id}
+ * @param input New content to update
+ */
+ update(
+ id: string & tags.Format<"uuid">,
+ input: IBbsArticle.IUpdate,
+ ): Promise;
+
+ /**
+ * Erase an article.
+ *
+ * Erases an article from the DB.
+ *
+ * @param id Target article's {@link IBbsArticle.id}
+ */
+ erase(id: string & tags.Format<"uuid">): Promise;
+}
+```
+
+
+```json filename="example/schemas/llm.application.separate.json" showLineNumbers {41-91}
+{
+ "functions": [
+ {
+ "name": "create",
+ "parameters": [
+ {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "title": "Title of the article",
+ "description": "Title of the article.\n\nRepresentative title of the article."
+ },
+ "body": {
+ "type": "string",
+ "title": "Content body",
+ "description": "Content body.\n\nContent body of the article writtn in the markdown format."
+ },
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "contentMediaType": "image/*",
+ "nullable": true,
+ "title": "Thumbnail image URI",
+ "description": "Thumbnail image URI.\n\nThumbnail image URI which can represent the article.\n\nIf configured as `null`, it means that no thumbnail image in the article."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "title",
+ "body",
+ "thumbnail"
+ ],
+ "description": "Information of the article to create"
+ }
+ ],
+ "output": {
+ "description": "Newly created article"
+ },
+ "description": "Create a new article.\n\nWrites a new article and archives it into the DB.",
+ "separated": {
+ "llm": [
+ {
+ "index": 0,
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "title": "Title of the article",
+ "description": "Title of the article.\n\nRepresentative title of the article."
+ },
+ "body": {
+ "type": "string",
+ "title": "Content body",
+ "description": "Content body.\n\nContent body of the article writtn in the markdown format."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "title",
+ "body"
+ ],
+ "description": "Information of the article to create"
+ }
+ }
+ ],
+ "human": [
+ {
+ "index": 0,
+ "schema": {
+ "type": "object",
+ "properties": {
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "contentMediaType": "image/*",
+ "nullable": true,
+ "title": "Thumbnail image URI",
+ "description": "Thumbnail image URI.\n\nThumbnail image URI which can represent the article.\n\nIf configured as `null`, it means that no thumbnail image in the article."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "thumbnail"
+ ],
+ "description": "Information of the article to create"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "name": "update",
+ "parameters": [
+ {
+ "type": "string",
+ "format": "uuid",
+ "description": "Target article's "
+ },
+ {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "title": "Title of the article",
+ "description": "Title of the article.\n\nRepresentative title of the article."
+ },
+ "body": {
+ "type": "string",
+ "title": "Content body",
+ "description": "Content body.\n\nContent body of the article writtn in the markdown format."
+ },
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "contentMediaType": "image/*",
+ "nullable": true,
+ "title": "Thumbnail image URI",
+ "description": "Thumbnail image URI.\n\nThumbnail image URI which can represent the article.\n\nIf configured as `null`, it means that no thumbnail image in the article."
+ }
+ },
+ "nullable": false,
+ "description": "New content to update"
+ }
+ ],
+ "output": {},
+ "description": "Update an article.\n\nUpdates an article with new content.",
+ "separated": {
+ "llm": [
+ {
+ "index": 0,
+ "schema": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Target article's "
+ }
+ },
+ {
+ "index": 1,
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "title": "Title of the article",
+ "description": "Title of the article.\n\nRepresentative title of the article."
+ },
+ "body": {
+ "type": "string",
+ "title": "Content body",
+ "description": "Content body.\n\nContent body of the article writtn in the markdown format."
+ }
+ },
+ "nullable": false,
+ "description": "New content to update"
+ }
+ }
+ ],
+ "human": [
+ {
+ "index": 1,
+ "schema": {
+ "type": "object",
+ "properties": {
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "contentMediaType": "image/*",
+ "nullable": true,
+ "title": "Thumbnail image URI",
+ "description": "Thumbnail image URI.\n\nThumbnail image URI which can represent the article.\n\nIf configured as `null`, it means that no thumbnail image in the article."
+ }
+ },
+ "nullable": false,
+ "description": "New content to update"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "name": "erase",
+ "parameters": [
+ {
+ "type": "string",
+ "format": "uuid",
+ "description": "Target article's "
+ }
+ ],
+ "output": {},
+ "description": "Erase an article.\n\nErases an article from the DB.",
+ "separated": {
+ "llm": [
+ {
+ "index": 0,
+ "schema": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Target article's "
+ }
+ }
+ ],
+ "human": []
+ }
+ }
+ ],
+ "options": {}
+}
+```
+
+
+
+
+
+
+## Function Hiding
+Hiding some functions by comment tag.
+
+If you write `@hidden` or `@internal` tag onto a function description comment, the function would not participate in the LLM (Large Language Model) function calling application composition. `ILlmFunction` schema does not be genrated in the `ILlmApplication.functions` collection.
+
+It's a good feature to hide some internal functions, so that avoiding the LLM function calling.
+
+
+
+```typescript filename="example/src/llm.application.hideden.ts" showLineNumbers {25, 38}
+import { ILlmApplication } from "@samchon/openapi";
+import typia, { tags } from "typia";
+
+const app: ILlmApplication = typia.llm.application();
+
+console.log(JSON.stringify(app, null, 2));
+
+interface BbsArticleController {
+ /**
+ * Create a new article.
+ *
+ * Writes a new article and archives it into the DB.
+ *
+ * @param input Information of the article to create
+ * @returns Newly created article
+ */
+ create(input: IBbsArticle.ICreate): Promise;
+
+ /**
+ * Update an article.
+ *
+ * Updates an article with new content.
+ *
+ * @param id Target article's {@link IBbsArticle.id}
+ * @param input New content to update
+ * @hidden
+ */
+ update(
+ id: string & tags.Format<"uuid">,
+ input: IBbsArticle.IUpdate,
+ ): Promise;
+
+ /**
+ * Erase an article.
+ *
+ * Erases an article from the DB.
+ *
+ * @param id Target article's {@link IBbsArticle.id}
+ * @internal
+ */
+ erase(id: string & tags.Format<"uuid">): Promise;
+}
+```
+
+
+```json filename="example/schemas/llm.application.hideden.json" showLineNumbers
+{
+ "functions": [
+ {
+ "name": "create",
+ "parameters": [
+ {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "title": "Title of the article",
+ "description": "Title of the article.\n\nRepresentative title of the article."
+ },
+ "body": {
+ "type": "string",
+ "title": "Content body",
+ "description": "Content body.\n\nContent body of the article writtn in the markdown format."
+ },
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "contentMediaType": "image/*",
+ "nullable": true,
+ "title": "Thumbnail image URI",
+ "description": "Thumbnail image URI.\n\nThumbnail image URI which can represent the article.\n\nIf configured as `null`, it means that no thumbnail image in the article."
+ }
+ },
+ "nullable": false,
+ "required": [
+ "title",
+ "body",
+ "thumbnail"
+ ],
+ "description": "Information of the article to create"
+ }
+ ],
+ "output": {
+ "description": "Newly created article"
+ },
+ "description": "Create a new article.\n\nWrites a new article and archives it into the DB."
+ }
+ ],
+ "options": {
+ "separate": null
+ }
+}
+```
+
+
+
+
+
+
+## Restrictions
+LLM schema does not support `bigint` type, and recursive type either.
+
+LLM schema is based on the JSON schema definition of the OpenAPI v3.0 specification. Therefore, limitations of the JSON schema is also applied to the LLM schema, and the `bigint` type is not supported in the LLM function calling schema composition.
+
+
+
+```typescript filename="example/src/llm.application.bigint.ts" showLineNumbers
+import typia from "typia";
+
+typia.llm.application();
+
+interface Controller {
+ plus(X: bigint, y: bigint): bigint;
+}
+```
+
+
+```bash
+src/llm.application.error.ts:3:1 - error TS(typia.llm.application): unsupported type detected
+
+- Controller.plus: bigint(parameter: "X")
+ - LLM schema does not support bigint type.
+
+- Controller.plus: bigint(parameter: "y")
+ - LLM schema does not support bigint type.
+
+- Controller.plus: bigint(return type)
+ - LLM schema does not support bigint type.
+
+3 typia.llm.application()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Found 1 error in src/llm.application.error.ts:3
+```
+
+
+
+Also, LLM schema does not support reference type that is embodied by the `OpenApi.IJsonSchema.IReference` type with `$ref` property. Therefore, if recursive type comes, no way to express it in the LLM schema, and it would be compilation error in the `typia.llm.application()` function.
+
+
+
+```typescript filename="example/src/llm.application.bigint.ts" showLineNumbers
+import typia from "typia";
+
+typia.llm.application();
+
+interface Controller {
+ plus(item: Recursive): Recursive;
+}
+
+interface Recursive {
+ id: number;
+ children: Recursive[];
+}
+```
+
+
+```bash
+src/llm.application.recursive.ts:3:1 - error TS(typia.llm.application): unsupported type detected
+
+- Controller.plus: Recursive(parameter: "item")
+ - LLM schema does not support recursive type.
+
+- Recursive: Recursive
+ - LLM schema does not support recursive type.
+
+- Recursive.children: Recursive
+ - LLM schema does not support recursive type.
+
+- Controller.plus: Recursive(return type)
+ - LLM schema does not support recursive type.
+
+3 typia.llm.application();
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Found 1 error in src/llm.application.recursive.ts:3
+```
+
+
+
+And if you put any type of native classes like `Map` or `Uint8Array`, it would also be error, either. By the way, only `Date` class type is exceptional, and it would be considered as `string & Format<"date-time">` type like below.
+
+
+
+```typescript filename="example/src/llm.application.bigint.ts" showLineNumbers
+import { ILlmApplication } from "@samchon/openapi";
+import typia from "typia";
+
+const app: ILlmApplication = typia.llm.application();
+
+console.log(JSON.stringify(app, null, 2));
+
+interface Controller {
+ now(): Date;
+}
+```
+
+
+```json filename="example/schemas/llm.application.bigint.json" showLineNumbers
+{
+ "functions": [
+ {
+ "name": "now",
+ "parameters": [],
+ "output": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ ],
+ "options": {
+ "separate": null
+ }
+}
+```
+
+
\ No newline at end of file
diff --git a/website/pages/docs/llm/schema.mdx b/website/pages/docs/llm/schema.mdx
new file mode 100644
index 0000000000..fdff63766e
--- /dev/null
+++ b/website/pages/docs/llm/schema.mdx
@@ -0,0 +1,760 @@
+import { Callout, Tabs, Tab } from 'nextra-theme-docs'
+
+## `schema()` function
+typia,
+ ILlmSchema
,
+ ]}>
+
+```typescript filename="typia" showLineNumbers {2}
+export namespace llm {
+ // Individual type schema
+ export function schema(): ILlmSchema;
+
+ // LLM function calling application schema
+ export function application(
+ options?: ILlmApplication.IOptions
+ ): ILlmApplication;
+}
+```
+
+
+```typescript filename="@samchon/openapi"
+/**
+ * Type schema info of LLM function call.
+ *
+ * `ILlmSchema` is a type metadata of LLM (Large Language Model)
+ * function calling.
+ *
+ * `ILlmSchema` basically follows the JSON schema definition of OpenAPI
+ * v3.0 specification; {@link OpenApiV3.IJsonSchema}. However, `ILlmSchema`
+ * does not have the reference type; {@link OpenApiV3.IJsonSchema.IReference}.
+ * It's because the LLM cannot compose the reference typed arguments.
+ *
+ * For reference, the OpenAPI v3.0 based JSON schema definition can't
+ * express the tuple array type. It has been supported since OpenAPI v3.1;
+ * {@link OpenApi.IJsonSchema.ITuple}. Therefore, it would better to avoid
+ * using the tuple array type in the LLM function calling.
+ *
+ * @reference https://platform.openai.com/docs/guides/function-calling
+ * @author Jeongho Nam - https://github.com/samchon
+ */
+export type ILlmSchema =
+ | ILlmSchema.IBoolean
+ | ILlmSchema.IInteger
+ | ILlmSchema.INumber
+ | ILlmSchema.IString
+ | ILlmSchema.IArray
+ | ILlmSchema.IObject
+ | ILlmSchema.IUnknown
+ | ILlmSchema.INullOnly
+ | ILlmSchema.IOneOf;
+export namespace ILlmSchema {
+ /**
+ * Boolean type schema info.
+ */
+ export interface IBoolean extends __ISignificant<"boolean"> {
+ /**
+ * Default value.
+ */
+ default?: boolean | null;
+
+ /**
+ * Enumeration values.
+ */
+ enum?: Array;
+ }
+
+ /**
+ * Integer type schema info.
+ */
+ export interface IInteger extends __ISignificant<"integer"> {
+ /**
+ * Default value.
+ *
+ * @type int64
+ */
+ default?: number | null;
+
+ /**
+ * Enumeration values.
+ *
+ * @type int64
+ */
+ enum?: Array;
+
+ /**
+ * Minimum value restriction.
+ *
+ * @type int64
+ */
+ minimum?: number;
+
+ /**
+ * Maximum value restriction.
+ *
+ * @type int64
+ */
+ maximum?: number;
+
+ /**
+ * Exclusive minimum value restriction.
+ *
+ * For reference, even though your Swagger document has defined the
+ * `exclusiveMinimum` value as `number`, it has been forcibly converted
+ * to `boolean` type, and assigns the numeric value to the
+ * {@link minimum} property in the {@link OpenApi} conversion.
+ */
+ exclusiveMinimum?: boolean;
+
+ /**
+ * Exclusive maximum value restriction.
+ *
+ * For reference, even though your Swagger document has defined the
+ * `exclusiveMaximum` value as `number`, it has been forcibly converted
+ * to `boolean` type, and assigns the numeric value to the
+ * {@link maximum} property in the {@link OpenApi} conversion.
+ */
+ exclusiveMaximum?: boolean;
+
+ /**
+ * Multiple of value restriction.
+ *
+ * @type uint64
+ * @exclusiveMinimum 0
+ */
+ multipleOf?: number;
+ }
+
+ /**
+ * Number type schema info.
+ */
+ export interface INumber extends __ISignificant<"number"> {
+ /**
+ * Default value.
+ */
+ default?: number | null;
+
+ /**
+ * Enumeration values.
+ */
+ enum?: Array;
+
+ /**
+ * Minimum value restriction.
+ */
+ minimum?: number;
+
+ /**
+ * Maximum value restriction.
+ */
+ maximum?: number;
+
+ /**
+ * Exclusive minimum value restriction.
+ *
+ * For reference, even though your Swagger (or OpenAPI) document has
+ * defined the `exclusiveMinimum` value as `number`, {@link OpenAiComposer}
+ * forcibly converts it to `boolean` type, and assign the numeric value to
+ * the {@link minimum} property.
+ */
+ exclusiveMinimum?: boolean;
+
+ /**
+ * Exclusive maximum value restriction.
+ *
+ * For reference, even though your Swagger (or OpenAPI) document has
+ * defined the `exclusiveMaximum` value as `number`, {@link OpenAiComposer}
+ * forcibly converts it to `boolean` type, and assign the numeric value to
+ * the {@link maximum} property.
+ */
+ exclusiveMaximum?: boolean;
+
+ /**
+ * Multiple of value restriction.
+ *
+ * @exclusiveMinimum 0
+ */
+ multipleOf?: number;
+ }
+
+ /**
+ * String type schema info.
+ */
+ export interface IString extends __ISignificant<"string"> {
+ /**
+ * Default value.
+ */
+ default?: string | null;
+
+ /**
+ * Enumeration values.
+ */
+ enum?: Array;
+
+ /**
+ * Format restriction.
+ */
+ format?:
+ | "binary"
+ | "byte"
+ | "password"
+ | "regex"
+ | "uuid"
+ | "email"
+ | "hostname"
+ | "idn-email"
+ | "idn-hostname"
+ | "iri"
+ | "iri-reference"
+ | "ipv4"
+ | "ipv6"
+ | "uri"
+ | "uri-reference"
+ | "uri-template"
+ | "url"
+ | "date-time"
+ | "date"
+ | "time"
+ | "duration"
+ | "json-pointer"
+ | "relative-json-pointer"
+ | (string & {});
+
+ /**
+ * Pattern restriction.
+ */
+ pattern?: string;
+
+ /**
+ * Minimum length restriction.
+ *
+ * @type uint64
+ */
+ minLength?: number;
+
+ /**
+ * Maximum length restriction.
+ *
+ * @type uint64
+ */
+ maxLength?: number;
+
+ /**
+ * Content media type restriction.
+ */
+ contentMediaType?: string;
+ }
+
+ /**
+ * Array type schema info.
+ */
+ export interface IArray
+ extends __ISignificant<"array"> {
+ /**
+ * Items type schema info.
+ *
+ * The `items` means the type of the array elements. In other words, it is
+ * the type schema info of the `T` in the TypeScript array type `Array`.
+ */
+ items: Schema;
+
+ /**
+ * Unique items restriction.
+ *
+ * If this property value is `true`, target array must have unique items.
+ */
+ uniqueItems?: boolean;
+
+ /**
+ * Minimum items restriction.
+ *
+ * Restriction of minumum number of items in the array.
+ *
+ * @type uint64
+ */
+ minItems?: number;
+
+ /**
+ * Maximum items restriction.
+ *
+ * Restriction of maximum number of items in the array.
+ *
+ * @type uint64
+ */
+ maxItems?: number;
+ }
+
+ /**
+ * Object type schema info.
+ */
+ export interface IObject
+ extends __ISignificant<"object"> {
+ /**
+ * Properties of the object.
+ *
+ * The `properties` means a list of key-value pairs of the object's
+ * regular properties. The key is the name of the regular property,
+ * and the value is the type schema info.
+ *
+ * If you need additional properties that is represented by dynamic key,
+ * you can use the {@link additionalProperties} instead.
+ */
+ properties?: Record;
+
+ /**
+ * List of key values of the required properties.
+ *
+ * The `required` means a list of the key values of the required
+ * {@link properties}. If some property key is not listed in the `required`
+ * list, it means that property is optional. Otherwise some property key
+ * exists in the `required` list, it means that the property must be filled.
+ *
+ * Below is an example of the {@link properties} and `required`.
+ *
+ * ```typescript
+ * interface SomeObject {
+ * id: string;
+ * email: string;
+ * name?: string;
+ * }
+ * ```
+ *
+ * As you can see, `id` and `email` {@link properties} are {@link required},
+ * so that they are listed in the `required` list.
+ *
+ * ```json
+ * {
+ * "type": "object",
+ * "properties": {
+ * "id": { "type": "string" },
+ * "email": { "type": "string" },
+ * "name": { "type": "string" }
+ * },
+ * "required": ["id", "email"]
+ * }
+ * ```
+ */
+ required?: string[];
+
+ /**
+ * Additional properties' info.
+ *
+ * The `additionalProperties` means the type schema info of the additional
+ * properties that are not listed in the {@link properties}.
+ *
+ * If the value is `true`, it means that the additional properties are not
+ * restricted. They can be any type. Otherwise, if the value is
+ * {@link ILlmSchema} type, it means that the additional properties must
+ * follow the type schema info.
+ *
+ * - `true`: `Record`
+ * - `ILlmSchema`: `Record`
+ */
+ additionalProperties?: boolean | Schema;
+ }
+
+ /**
+ * Unknown type schema info.
+ *
+ * It means the type of the value is `any`.
+ */
+ export interface IUnknown extends __IAttribute {
+ /**
+ * Type is never be defined.
+ */
+ type?: undefined;
+ }
+
+ /**
+ * Null only type schema info.
+ */
+ export interface INullOnly extends __IAttribute {
+ /**
+ * Type is always `null`.
+ */
+ type: "null";
+
+ /**
+ * Default value.
+ */
+ default?: null;
+ }
+
+ /**
+ * One of type schema info.
+ *
+ * `IOneOf` represents an union type of the TypeScript (`A | B | C`).
+ *
+ * For reference, even though your Swagger (or OpenAPI) document has
+ * defined `anyOf` instead of the `oneOf`, it has been forcibly converted
+ * to `oneOf` type by {@link OpenApi.convert OpenAPI conversion}.
+ */
+ export interface IOneOf
+ extends __IAttribute {
+ /**
+ * List of the union types.
+ */
+ oneOf: Exclude>[];
+ }
+
+ /**
+ * Significant attributes that can be applied to the most types.
+ */
+ export interface __ISignificant extends __IAttribute {
+ /**
+ * Discriminator value of the type.
+ */
+ type: Type;
+
+ /**
+ * Whether to allow `null` value or not.
+ */
+ nullable?: boolean;
+ }
+
+ /**
+ * Common attributes that can be applied to all types.
+ */
+ export interface __IAttribute {
+ /**
+ * Title of the schema.
+ */
+ title?: string;
+
+ /**
+ * Detailed description of the schema.
+ */
+ description?: string;
+
+ /**
+ * Whether the type is deprecated or not.
+ */
+ deprecated?: boolean;
+ }
+}
+```
+
+
+
+Type schema in the LLM function calling application.
+
+`typia.llm.schema()` is a function generating type schema which is used in the LLM (Large Language Model) function calling application schema, especially in the [`typia.llm.application()`](./application) function.
+
+Return value type `ILlmSchema` is similar with the JSON schema definition of OpenAPI v3.0 specification, but it does not have the reference type of `OpenApi.IJsonSchema.IReference` type which has the `$ref` property.
+
+
+**LLM Function Calling**
+
+LLM selects proper function and fill arguments.
+
+In nowadays, most LLM (Large Language Model) like OpenAI are supporting "function calling" feature. The "LLM function calling" means that LLM automatically selects a proper function and fills parameter values from conversation with the user (may by chatting text).
+
+https://platform.openai.com/docs/guides/function-calling
+
+
+
+
+
+## Specialization
+You can utilize [type tags](../validators/tags/#type-tags) (or [validator's comment tags](../validators/tags/#comment-tags)) to constructing special fields of JSON schema.
+
+If you write any comment on a property, it would fill the `IJsonSchema.description` value. Also, there're special comment tags only for JSON schema definition that are different with [validator's comment tags](../validators/tags/#comment-tags) like below.
+
+ - `@deprecated`
+ - `@hidden`
+ - `@internal`
+ - `@title {string}`
+ - `@default {value}`
+
+Let's see how those [type tags](../validators/tags/#type-tags), comment tags and description comments are working with example code.
+
+
+
+
+```typescript copy filename="examples/src/llm-schema.ts" showLineNumbers
+import { ILlmSchema } from "@samchon/openapi";
+import typia, { tags } from "typia";
+
+export const schema: ILlmSchema = typia.llm.schema();
+
+interface Special {
+ /**
+ * Deprecated tags are just used for marking.
+ *
+ * @title Unsigned integer
+ * @deprecated
+ */
+ type: number & tags.Type<"int32">;
+
+ /**
+ * Internal tagged property never be shown in JSON schema.
+ *
+ * It even doesn't be shown in other `typia` functions like `assert()`.
+ *
+ * @internal
+ */
+ internal: number[];
+
+ /**
+ * Hidden tagged property never be shown in JSON schema.
+ *
+ * However, it would be shown in other `typia` functions like `stringify()`.
+ *
+ * @hidden
+ */
+ hidden: boolean;
+
+ /**
+ * You can limit the range of number.
+ *
+ * @exclusiveMinimum 19
+ * @maximum 100
+ * @default 30
+ */
+ number?: number;
+
+ /**
+ * You can limit the length of string.
+ *
+ * Also, multiple range conditions are also possible.
+ */
+ string: string &
+ (
+ | (tags.MinLength<3> & tags.MaxLength<24>)
+ | (tags.MinLength<40> & tags.MaxLength<100>)
+ );
+
+ /**
+ * You can limit the pattern of string.
+ *
+ * @pattern ^[a-z]+$
+ */
+ pattern: string;
+
+ /**
+ * You can limit the format of string.
+ *
+ * @format date-time
+ */
+ format: string | null;
+
+ /**
+ * In the Array case, possible to restrict its elements.
+ */
+ array: Array> & tags.MinItems<3>;
+}
+```
+
+
+```javascript filename="examples/bin/llm-schema.js" showLineNumbers
+import typia from "typia";
+export const schema = {
+ type: "object",
+ properties: {
+ type: {
+ type: "integer",
+ deprecated: true,
+ title: "Unsigned integer",
+ description: "Deprecated tags are just used for marking.",
+ },
+ number: {
+ type: "number",
+ exclusiveMinimum: true,
+ minimum: 19,
+ maximum: 100,
+ title: "You can limit the range of number",
+ description: "You can limit the range of number.",
+ },
+ string: {
+ oneOf: [
+ {
+ type: "string",
+ minLength: 3,
+ maxLength: 24,
+ },
+ {
+ type: "string",
+ minLength: 40,
+ maxLength: 100,
+ },
+ ],
+ title: "You can limit the length of string",
+ description:
+ "You can limit the length of string.\n\nAlso, multiple range conditions are also possible.",
+ },
+ pattern: {
+ type: "string",
+ pattern: "^[a-z]+$",
+ title: "You can limit the pattern of string",
+ description: "You can limit the pattern of string.",
+ },
+ format: {
+ type: "string",
+ format: "date-time",
+ nullable: true,
+ title: "You can limit the format of string",
+ description: "You can limit the format of string.",
+ },
+ array: {
+ type: "array",
+ items: {
+ type: "string",
+ format: "uuid",
+ },
+ minItems: 3,
+ title: "In the Array case, possible to restrict its elements",
+ description: "In the Array case, possible to restrict its elements.",
+ },
+ },
+ nullable: false,
+ required: ["type", "string", "pattern", "format", "array"],
+};
+```
+
+
+
+
+
+
+## Customziation
+If what you want is not just filling regular properties of LLM schema specification, but to adding custom properties into the JSON schema definition, you can do it through the `tags.TagBase.schema` property type or `tags.JsonSchemaPlugin` type.
+
+For reference, the custom property must be started with `x-` prefix. It's a rule of LLM schema.
+
+
+
+```typescript copy filename="examples/src/llm-schema-custom.ts" copy showLineNumbers {7-9, 13, 17-18}
+import typia, { tags } from "typia";
+
+type Monetary = tags.TagBase<{
+ target: "number";
+ kind: "monetary";
+ value: Value;
+ schema: {
+ "x-monetary": Value;
+ };
+}>;
+
+type Placeholder = tags.JsonSchemaPlugin<{
+ "x-placeholder": Value;
+}>;
+
+interface IAccount {
+ code: string & Placeholder<"Write you account code please">;
+ balance: number & Monetary<"dollar">;
+};
+
+typia.llm.schema();
+```
+
+
+```javascript copy filename="examples/bin/llm-schema-custom.js" showLineNumbers {7, 11}
+import typia from "typia";
+({
+ type: "object",
+ properties: {
+ code: {
+ type: "string",
+ "x-placeholder": "Write you account code please",
+ },
+ balance: {
+ type: "number",
+ "x-monetary": "dollar",
+ },
+ },
+ nullable: false,
+ required: ["code", "balance"],
+});
+```
+
+
+
+
+
+
+## Restrictions
+LLM schema does not support `bigint` type, and recursive type either.
+
+LLM schema is based on the JSON schema definition of the OpenAPI v3.0 specification. Therefore, limitations of the JSON schema is also applied to the LLM schema, and the `bigint` type is not supported in the LLM function calling schema composition.
+
+
+
+```typescript filename="example/src/llm.schema.recursive.ts" showLineNumbers
+import typia from "typia";
+
+typia.llm.schema();
+```
+
+
+```bash
+src/llm.schema.bigint.ts:3:1 - error TS(typia.llm.schema): unsupported type detected
+
+- bigint
+ - LLM schema does not support bigint type.
+
+3 typia.llm.schema();
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Found 1 error in src/llm.schema.bigint.ts:3
+```
+
+
+
+Also, LLM schema does not support reference type that is embodied by the `OpenApi.IJsonSchema.IReference` type with `$ref` property. Therefore, if recursive type comes, no way to express it in the LLM schema, and it would be compilation error in the `typia.llm.application()` function.
+
+
+
+```typescript filename="example/src/llm.schema.recursive.ts" showLineNumbers
+import typia from "typia";
+
+typia.llm.schema();
+
+interface Recursive {
+ id: number;
+ children: Recursive[];
+}
+```
+
+
+```bash
+src/llm.schema.recursive.ts:3:1 - error TS(typia.llm.schema): unsupported type detected
+
+- Recursive
+ - LLM schema does not support recursive type.
+
+- Recursive: Recursive
+ - LLM schema does not support recursive type.
+
+- Recursive.children: Recursive
+ - LLM schema does not support recursive type.
+
+3 typia.llm.schema();
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Found 1 error in src/llm.schema.recursive.ts:3
+```
+
+
+
+And if you put any type of native classes like `Map` or `Uint8Array`, it would also be error, either. By the way, only `Date` class type is exceptional, and it would be considered as `string & Format<"date-time">` type like below.
+
+
+
+```typescript filename="example/src/llm.llm.date.ts" showLineNumbers
+import typia from "typia";
+
+typia.llm.schema();
+```
+
+
+```javascript filename="example/schemas/llm.date.js" showLineNumbers
+import typia from "typia";
+const schema = {
+ type: "string",
+ format: "date-time",
+};
+console.log(schema);
+```
+
+
\ No newline at end of file
diff --git a/website/public/images/home/openai.svg b/website/public/images/home/openai.svg
new file mode 100644
index 0000000000..aa95b6dc1f
--- /dev/null
+++ b/website/public/images/home/openai.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/website/src/components/home/HomeCodeBlock.tsx b/website/src/components/home/HomeCodeBlock.tsx
index 35b9d4fc6f..c28d53c621 100644
--- a/website/src/components/home/HomeCodeBlock.tsx
+++ b/website/src/components/home/HomeCodeBlock.tsx
@@ -8,6 +8,7 @@ const HomeCodeBlock = (props: {
method: string;
color?: string;
inputColor?: string;
+ template?: string;
}) => (
typia
@@ -20,7 +21,7 @@ const HomeCodeBlock = (props: {
) : null}
{props.method}
{"<"}
- T
+ {props.template ?? "T"}
{">("}
{"input"}
{")"}
diff --git a/website/src/movies/home/HomeStrengthMovie.tsx b/website/src/movies/home/HomeStrengthMovie.tsx
index d0e71c4128..f2faf4c9ba 100644
--- a/website/src/movies/home/HomeStrengthMovie.tsx
+++ b/website/src/movies/home/HomeStrengthMovie.tsx
@@ -54,6 +54,34 @@ const sections: HomeStrengthSectionMovie.Props[] = [
image: "/images/home/json.png",
href: "/docs/json/stringify",
},
+ {
+ title: "LLM Function Calling App",
+ subTitle: (
+
+ ),
+ description: (
+
+ LLM Function Calling Application Composer
+
+
+ Creates LLM function call schemas from a native TypeScript class or
+ interface type.
+
+
+
+ LLM will select proper function to call and fill arguments in the
+ conversations with human.
+
+
+ ),
+ image: "/images/home/openai.svg",
+ href: "/docs/llm/application",
+ },
{
title: "Easy Protocol Buffer",
subTitle: (
@@ -75,7 +103,7 @@ const sections: HomeStrengthSectionMovie.Props[] = [
- No need extra *.proto schema file. Just fine with pure
+ No need extra *.proto schema file. Just fine with native
TypeScript type.
@@ -90,7 +118,7 @@ const sections: HomeStrengthSectionMovie.Props[] = [
Universal random generator.
- The best mock-up data generator with pure TypeScript type.
+ The best mock-up data generator with native TypeScript type.
In the backend side, it boosts up productivity dramatically.
diff --git a/website/src/movies/home/HomeStrengthSectionMovie.tsx b/website/src/movies/home/HomeStrengthSectionMovie.tsx
index 5407a28e28..b221fc6180 100644
--- a/website/src/movies/home/HomeStrengthSectionMovie.tsx
+++ b/website/src/movies/home/HomeStrengthSectionMovie.tsx
@@ -9,7 +9,7 @@ import {
} from "@mui/material";
const HomeStrengthSectionMovie = (props: HomeStrengthSectionMovie.Props) => (
-
+
From ac3bf4480714c0917674466a2a895b50b1c3fe9b Mon Sep 17 00:00:00 2001
From: Jeongho Nam
Date: Mon, 9 Sep 2024 23:29:00 +0900
Subject: [PATCH 8/8] Publish next version
---
benchmark/package.json | 2 +-
errors/package.json | 2 +-
packages/typescript-json/package.json | 4 ++--
test-esm/package.json | 2 +-
test/package.json | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/benchmark/package.json b/benchmark/package.json
index 5c707397e4..c9e0d17720 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -72,6 +72,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0.tgz"
+ "typia": "../typia-6.10.0-dev.20240910.tgz"
}
}
\ No newline at end of file
diff --git a/errors/package.json b/errors/package.json
index 8178eef9ad..1483e12a6a 100644
--- a/errors/package.json
+++ b/errors/package.json
@@ -32,6 +32,6 @@
"typescript": "^5.3.2"
},
"dependencies": {
- "typia": "../typia-6.10.0.tgz"
+ "typia": "../typia-6.10.0-dev.20240910.tgz"
}
}
\ No newline at end of file
diff --git a/packages/typescript-json/package.json b/packages/typescript-json/package.json
index 028799c1ac..f45f8f73b5 100644
--- a/packages/typescript-json/package.json
+++ b/packages/typescript-json/package.json
@@ -1,6 +1,6 @@
{
"name": "typescript-json",
- "version": "6.10.0-dev.20240909",
+ "version": "6.10.0-dev.20240910",
"description": "Superfast runtime validators with only one line",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
@@ -63,7 +63,7 @@
},
"homepage": "https://typia.io",
"dependencies": {
- "typia": "6.10.0-dev.20240909"
+ "typia": "6.10.0-dev.20240910"
},
"peerDependencies": {
"typescript": ">=4.8.0 <5.6.0"
diff --git a/test-esm/package.json b/test-esm/package.json
index e836d8530f..418a3f92df 100644
--- a/test-esm/package.json
+++ b/test-esm/package.json
@@ -36,6 +36,6 @@
"typescript": "^5.4.5"
},
"dependencies": {
- "typia": "../typia-6.10.0.tgz"
+ "typia": "../typia-6.10.0-dev.20240910.tgz"
}
}
\ No newline at end of file
diff --git a/test/package.json b/test/package.json
index 6626099abe..6a16627ff0 100644
--- a/test/package.json
+++ b/test/package.json
@@ -52,6 +52,6 @@
"suppress-warnings": "^1.0.2",
"tstl": "^3.0.0",
"uuid": "^9.0.1",
- "typia": "../typia-6.10.0.tgz"
+ "typia": "../typia-6.10.0-dev.20240910.tgz"
}
}
\ No newline at end of file