@allgemein/schema-api 1.5.32 → 1.5.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/IBaseRef.js +0 -2
- package/api/IBuildOptions.js +0 -2
- package/api/IClassRef.js +1 -4
- package/api/IEntityRef.js +2 -6
- package/api/IJsonSchema.js +3 -6
- package/api/ILookupRegistry.js +1 -4
- package/api/IPropertyExtentions.js +0 -2
- package/api/IPropertyRef.js +1 -4
- package/api/ISchemaRef.js +0 -2
- package/api/ISerializeSupport.js +3 -6
- package/browser.js +5 -3
- package/decorators/Embeddable.js +1 -4
- package/decorators/Entity.js +1 -4
- package/decorators/Namespace.js +1 -4
- package/decorators/Property.js +1 -4
- package/decorators/PropertyOf.js +1 -4
- package/decorators/Schema.js +1 -4
- package/decorators/validate/Hostname.js +2 -4
- package/decorators/validate/Ip4.js +2 -4
- package/decorators/validate/Ip6.js +2 -4
- package/decorators/validate/IsEmail.js +2 -4
- package/decorators/validate/IsNotEmpty.js +1 -4
- package/decorators/validate/MaxLength.js +1 -4
- package/decorators/validate/MinLength.js +1 -4
- package/decorators/validate/Regex.js +1 -4
- package/decorators/validate/Required.js +1 -4
- package/decorators/validate/index.js +0 -2
- package/index.js +5 -3
- package/lib/AbstractRef.js +0 -2
- package/lib/AnnotationsHelper.js +0 -2
- package/lib/ClassRef.js +0 -2
- package/lib/Constants.d.ts +7 -7
- package/lib/Constants.js +0 -2
- package/lib/DataContainer.js +3 -2
- package/lib/LookupRegistry.js +0 -2
- package/lib/SchemaRef.js +0 -2
- package/lib/SchemaUtils.js +7 -3
- package/lib/functions.js +1 -4
- package/lib/json-schema/Constants.js +0 -2
- package/lib/json-schema/IJsonSchemaSerializeOptions.js +0 -2
- package/lib/json-schema/IJsonSchemaSerializer.js +0 -2
- package/lib/json-schema/IJsonSchemaUnserializeOptions.js +0 -2
- package/lib/json-schema/IJsonSchemaUnserializer.js +0 -2
- package/lib/json-schema/IParseOptions.js +0 -2
- package/lib/json-schema/JsonSchema.d.ts +1 -1
- package/lib/json-schema/JsonSchema.js +2 -4
- package/lib/json-schema/JsonSchema7.d.ts +2 -2
- package/lib/json-schema/JsonSchema7.js +3 -5
- package/lib/json-schema/JsonSchema7Serializer.js +1 -3
- package/lib/json-schema/JsonSchema7Unserializer.d.ts +2 -2
- package/lib/json-schema/JsonSchema7Unserializer.js +9 -10
- package/lib/json-schema/functions.js +2 -5
- package/lib/options/IAbstractOptions.js +0 -2
- package/lib/options/IAttributeOptions.js +0 -2
- package/lib/options/IEntityOptions.js +0 -2
- package/lib/options/INamedOptions.js +0 -2
- package/lib/options/IObjectOptions.js +0 -2
- package/lib/options/IPropertyOptions.js +0 -2
- package/lib/options/ISchemaOptions.js +0 -2
- package/lib/registry/AbstractRegistry.js +0 -2
- package/lib/registry/Binding.js +0 -2
- package/lib/registry/DefaultEntityRef.js +0 -2
- package/lib/registry/DefaultNamespacedRegistry.js +0 -2
- package/lib/registry/DefaultPropertyRef.js +0 -2
- package/lib/registry/IRegistryOptions.js +0 -2
- package/lib/registry/MetadataRegistry.d.ts +0 -1
- package/lib/registry/MetadataRegistry.js +0 -2
- package/lib/registry/RegistryFactory.js +0 -2
- package/lib/serializer/ISerializeOptions.js +0 -2
- package/lib/serializer/ISerializer.js +0 -2
- package/lib/serializer/ISerializerFactory.js +0 -2
- package/lib/serializer/IUnserializeOptions.js +0 -2
- package/lib/serializer/IUnserializer.js +0 -2
- package/lib/serializer/SerializerRegistry.js +0 -2
- package/lib/validation/DefaultValidator.js +1 -2
- package/lib/validation/IValidateOptions.js +0 -2
- package/lib/validation/IValidationError.js +0 -2
- package/lib/validation/IValidationMessage.js +0 -2
- package/lib/validation/IValidationOptions.d.ts +0 -1
- package/lib/validation/IValidationOptions.js +0 -2
- package/lib/validation/IValidationResult.js +0 -2
- package/lib/validation/IValidator.js +0 -2
- package/lib/validation/IValidatorEntry.js +0 -2
- package/lib/validation/IValidatorHandle.js +0 -2
- package/lib/validation/Validator.d.ts +2 -2
- package/lib/validation/Validator.js +0 -2
- package/package.json +7 -9
- package/api/IBaseRef.js.map +0 -1
- package/api/IBuildOptions.js.map +0 -1
- package/api/IClassRef.js.map +0 -1
- package/api/IEntityRef.js.map +0 -1
- package/api/IJsonSchema.js.map +0 -1
- package/api/ILookupRegistry.js.map +0 -1
- package/api/IPropertyExtentions.js.map +0 -1
- package/api/IPropertyRef.js.map +0 -1
- package/api/ISchemaRef.js.map +0 -1
- package/api/ISerializeSupport.js.map +0 -1
- package/browser.js.map +0 -1
- package/decorators/Embeddable.js.map +0 -1
- package/decorators/Entity.js.map +0 -1
- package/decorators/Namespace.js.map +0 -1
- package/decorators/Property.js.map +0 -1
- package/decorators/PropertyOf.js.map +0 -1
- package/decorators/Schema.js.map +0 -1
- package/decorators/validate/Hostname.js.map +0 -1
- package/decorators/validate/Ip4.js.map +0 -1
- package/decorators/validate/Ip6.js.map +0 -1
- package/decorators/validate/IsEmail.js.map +0 -1
- package/decorators/validate/IsNotEmpty.js.map +0 -1
- package/decorators/validate/MaxLength.js.map +0 -1
- package/decorators/validate/MinLength.js.map +0 -1
- package/decorators/validate/Regex.js.map +0 -1
- package/decorators/validate/Required.js.map +0 -1
- package/decorators/validate/index.js.map +0 -1
- package/index.js.map +0 -1
- package/lib/AbstractRef.js.map +0 -1
- package/lib/AnnotationsHelper.js.map +0 -1
- package/lib/ClassRef.js.map +0 -1
- package/lib/Constants.js.map +0 -1
- package/lib/DataContainer.js.map +0 -1
- package/lib/LookupRegistry.js.map +0 -1
- package/lib/SchemaRef.js.map +0 -1
- package/lib/SchemaUtils.js.map +0 -1
- package/lib/functions.js.map +0 -1
- package/lib/json-schema/Constants.js.map +0 -1
- package/lib/json-schema/IJsonSchemaSerializeOptions.js.map +0 -1
- package/lib/json-schema/IJsonSchemaSerializer.js.map +0 -1
- package/lib/json-schema/IJsonSchemaUnserializeOptions.js.map +0 -1
- package/lib/json-schema/IJsonSchemaUnserializer.js.map +0 -1
- package/lib/json-schema/IParseOptions.js.map +0 -1
- package/lib/json-schema/JsonSchema.js.map +0 -1
- package/lib/json-schema/JsonSchema7.js.map +0 -1
- package/lib/json-schema/JsonSchema7Serializer.js.map +0 -1
- package/lib/json-schema/JsonSchema7Unserializer.js.map +0 -1
- package/lib/json-schema/functions.js.map +0 -1
- package/lib/options/IAbstractOptions.js.map +0 -1
- package/lib/options/IAttributeOptions.js.map +0 -1
- package/lib/options/IEntityOptions.js.map +0 -1
- package/lib/options/INamedOptions.js.map +0 -1
- package/lib/options/IObjectOptions.js.map +0 -1
- package/lib/options/IPropertyOptions.js.map +0 -1
- package/lib/options/ISchemaOptions.js.map +0 -1
- package/lib/registry/AbstractRegistry.js.map +0 -1
- package/lib/registry/Binding.js.map +0 -1
- package/lib/registry/DefaultEntityRef.js.map +0 -1
- package/lib/registry/DefaultNamespacedRegistry.js.map +0 -1
- package/lib/registry/DefaultPropertyRef.js.map +0 -1
- package/lib/registry/IRegistryOptions.js.map +0 -1
- package/lib/registry/MetadataRegistry.js.map +0 -1
- package/lib/registry/RegistryFactory.js.map +0 -1
- package/lib/serializer/ISerializeOptions.js.map +0 -1
- package/lib/serializer/ISerializer.js.map +0 -1
- package/lib/serializer/ISerializerFactory.js.map +0 -1
- package/lib/serializer/IUnserializeOptions.js.map +0 -1
- package/lib/serializer/IUnserializer.js.map +0 -1
- package/lib/serializer/SerializerRegistry.js.map +0 -1
- package/lib/validation/DefaultValidator.js.map +0 -1
- package/lib/validation/IValidateOptions.js.map +0 -1
- package/lib/validation/IValidationError.js.map +0 -1
- package/lib/validation/IValidationMessage.js.map +0 -1
- package/lib/validation/IValidationOptions.js.map +0 -1
- package/lib/validation/IValidationResult.js.map +0 -1
- package/lib/validation/IValidator.js.map +0 -1
- package/lib/validation/IValidatorEntry.js.map +0 -1
- package/lib/validation/IValidatorHandle.js.map +0 -1
- package/lib/validation/Validator.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/Ip4.ts"],"names":[],"mappings":";;;AAAA,mEAA8D;AAC9D,4EAAuE;AAEvE,mCAA6D;AAO7D,SAAgB,GAAG,CAAC,OAAqB;IACvC,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,MAAM,EAAE,KAAK;SACd,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAA,eAAM,EAAC,IAAI,EAAE,EAAC,eAAe,EAAE,EAAC,GAAG,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;YAC3C,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC3C;QAED,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,kBAiBC;AAEY,QAAA,SAAS,GAAG,2GAA2G,CAAC;AAGrI,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,CAAC,KAAa,EAAE,OAAqB,EAAE,QAAc,EAAE,EAAE;QAC3D,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YAC3D,0CAA0C;YAC1C,iBAAiB;YACjB,IAAI;YACJ,OAAO,KAAK,CAAC;SACd;QACD,OAAO,iBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,gEAAgE;KAC1E;CACF,CACF,CAAC","file":"Ip4.js","sourcesContent":["import {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\nimport {assign, isNull, isString, isUndefined} from 'lodash';\n\n\nexport interface IIp4Options extends IValidateOptions {\n required?: boolean;\n}\n\nexport function Ip4(options?: IIp4Options) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n format: 'ip4'\n };\n if (options) {\n assign(opts, {validateOptions: {ip4: {}}});\n assign(opts.validateOptions.ip4, options);\n }\n\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nexport const IP4_REGEX = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;\n\n\nDefaultValidator.define({\n name: 'ip4',\n fn: (value: string, options?: IIp4Options, instance?: any) => {\n if (isUndefined(value) || isNull(value) || !isString(value)) {\n // if (!get(options, 'required', false)) {\n // return true;\n // }\n return false;\n }\n return IP4_REGEX.test(value);\n },\n defaultOptions: {\n message: 'Value of property \"%propertyName\" must be a valid ip4 address.'\n }\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/Ip6.ts"],"names":[],"mappings":";;;AAAA,mEAA8D;AAC9D,4EAAuE;AAEvE,mCAA6D;AAO7D,SAAgB,GAAG,CAAC,OAAqB;IACvC,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,MAAM,EAAE,KAAK;SACd,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAA,eAAM,EAAC,IAAI,EAAE,EAAC,eAAe,EAAE,EAAC,GAAG,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;YAC3C,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC3C;QAED,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,kBAiBC;AAEY,QAAA,SAAS,GAAG,upBAAupB,CAAC;AAGjrB,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,CAAC,KAAa,EAAE,OAAqB,EAAE,QAAc,EAAE,EAAE;QAC3D,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YAC3D,0CAA0C;YAC1C,iBAAiB;YACjB,IAAI;YACJ,OAAO,KAAK,CAAC;SACd;QACD,OAAO,iBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,gEAAgE;KAC1E;CACF,CACF,CAAC","file":"Ip6.js","sourcesContent":["import {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\nimport {assign, isNull, isString, isUndefined} from 'lodash';\n\n\nexport interface IIp6Options extends IValidateOptions {\n // required?: boolean;\n}\n\nexport function Ip6(options?: IIp6Options) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n format: 'ip6'\n };\n if (options) {\n assign(opts, {validateOptions: {ip4: {}}});\n assign(opts.validateOptions.ip4, options);\n }\n\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nexport const IP6_REGEX = /^(([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]))$/;\n\n\nDefaultValidator.define({\n name: 'ip6',\n fn: (value: string, options?: IIp6Options, instance?: any) => {\n if (isUndefined(value) || isNull(value) || !isString(value)) {\n // if (!get(options, 'required', false)) {\n // return true;\n // }\n return false;\n }\n return IP6_REGEX.test(value);\n },\n defaultOptions: {\n message: 'Value of property \"%propertyName\" must be a valid ip6 address.'\n }\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/IsEmail.ts"],"names":[],"mappings":";;;AAAA,mCAA6D;AAE7D,mEAA8D;AAC9D,4EAAuE;AAOvE,SAAgB,OAAO,CAAC,UAA2B,IAAI;IACrD,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,MAAM,EAAE,OAAO;SAChB,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAA,eAAM,EAAC,IAAI,EAAE,EAAC,eAAe,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,GAAG,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;SACzC;QACD,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAhBD,0BAgBC;AAEY,QAAA,UAAU,GAAG,4aAA4a,CAAC;AAGvc,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,CAAC,KAAa,EAAE,OAAwB,EAAE,QAAc,EAAE,EAAE;QAC9D,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YAC3D,0CAA0C;YAC1C,iBAAiB;YACjB,IAAI;YACJ,OAAO,KAAK,CAAC;SACd;QACD,OAAO,kBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,0DAA0D;KACpE;CACF,CACF,CAAC","file":"IsEmail.js","sourcesContent":["import {assign, isNull, isString, isUndefined} from 'lodash';\n\nimport {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\n\nexport interface IIsEmailOptions extends IValidateOptions {\n // required?: boolean;\n}\n\nexport function IsEmail(options: IIsEmailOptions = null) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n format: 'email'\n };\n if (options) {\n assign(opts, {validateOptions: {email: {}}});\n opts.validateOptions = {email: options};\n }\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nexport const MAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/;\n\n\nDefaultValidator.define({\n name: 'email',\n fn: (value: string, options: IIsEmailOptions, instance?: any) => {\n if (isUndefined(value) || isNull(value) || !isString(value)) {\n // if (!get(options, 'required', false)) {\n // return true;\n // }\n return false;\n }\n return MAIL_REGEX.test(value);\n },\n defaultOptions: {\n message: 'Value of property \"%propertyName\" must be a valid email.'\n }\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/IsNotEmpty.ts"],"names":[],"mappings":";;;AAAA,mCAA+E;AAC/E,mEAA8D;AAC9D,4EAAuE;AAOvE,SAAgB,UAAU,CAAC,OAA4B;IACrD,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,QAAQ,EAAE,YAAY;SACvB,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAA,eAAM,EAAC,IAAI,EAAE,EAAC,eAAe,EAAE,EAAC,UAAU,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;YAClD,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;SAClD;QAED,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,gCAiBC;AAED,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,CAAC,KAAU,EAAE,IAAyB,EAAE,QAAc,EAAE,EAAE;QAC5D,IAAI,GAAG,GAAG,CAAC,CAAC,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,GAAG,EAAE;YACP,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;gBACrC,OAAO,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC;aACxB;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,wDAAwD;KAClE;CACF,CACF,CAAC","file":"IsNotEmpty.js","sourcesContent":["import {assign, isArray, isEmpty, isNull, isString, isUndefined} from 'lodash';\nimport {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\n\nexport interface IIsNotEmptyOptions extends IValidateOptions {\n message?: string\n}\n\nexport function IsNotEmpty(options?: IIsNotEmptyOptions) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n validate: 'isNotEmpty'\n };\n if (options) {\n assign(opts, {validateOptions: {isNotEmpty: {}}});\n assign(opts.validateOptions.isNotEmpty, options);\n }\n\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nDefaultValidator.define({\n name: 'isNotEmpty',\n fn: (value: any, opts?: IIsNotEmptyOptions, instance?: any) => {\n let res = !(isUndefined(value) || isNull(value));\n if (res) {\n if (isString(value) || isArray(value)) {\n return !isEmpty(value);\n }\n }\n return res;\n },\n defaultOptions: {\n message: 'Property \"%propertyName\" must be set and be not empty.'\n }\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/MaxLength.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,mEAA8D;AAC9D,4EAAuE;AAQvE,SAAgB,SAAS,CAAC,KAAa,EAAE,OAA2B;IAClE,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAA,eAAM,EAAC,IAAI,EAAE,EAAC,eAAe,EAAE,EAAC,SAAS,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;YACjD,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;SACjD;QAED,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,8BAiBC;AAED,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW;IACjB,EAAE,EAAE,CAAC,KAAa,EAAE,IAAwB,EAAE,QAAc,EAAE,EAAE;QAC9D,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;SACvC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,6EAA6E;KACvF;IACD,kBAAkB,EAAE,WAAW;CAChC,CACF,CAAC","file":"MaxLength.js","sourcesContent":["import {assign, isString} from 'lodash';\n\nimport {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\n\nexport interface IMaxLengthOptions extends IValidateOptions {\n maxLength?: number,\n message?: string\n}\n\nexport function MaxLength(value: number, options?: IMaxLengthOptions) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n maxLength: value\n };\n if (options) {\n assign(opts, {validateOptions: {maxLength: {}}});\n assign(opts.validateOptions.maxLength, options);\n }\n\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nDefaultValidator.define({\n name: 'maxLength',\n fn: (value: string, opts?: IMaxLengthOptions, instance?: any) => {\n if (isString(value)) {\n return value.length <= opts.maxLength;\n }\n return false;\n },\n defaultOptions: {\n message: 'Length of property \"%propertyName\" must be greeter then %options.maxLength.'\n },\n involveOnOptionKey: 'maxLength'\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/MinLength.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,mEAA8D;AAC9D,4EAAuE;AAQvE,SAAgB,SAAS,CAAC,KAAa,EAAE,OAA2B;IAClE,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAA,eAAM,EAAC,IAAI,EAAE,EAAC,eAAe,EAAE,EAAC,SAAS,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;YACjD,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;SACjD;QAED,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,8BAiBC;AAED,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW;IACjB,EAAE,EAAE,CAAC,KAAa,EAAE,IAAwB,EAAE,QAAc,EAAE,EAAE;QAC9D,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;SACvC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,6EAA6E;KACvF;IACD,kBAAkB,EAAE,WAAW;CAChC,CACF,CAAC","file":"MinLength.js","sourcesContent":["import {assign, isString} from 'lodash';\n\nimport {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\n\nexport interface IMinLengthOptions extends IValidateOptions {\n minLength?: number,\n message?: string\n}\n\nexport function MinLength(value: number, options?: IMinLengthOptions) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n minLength: value\n };\n if (options) {\n assign(opts, {validateOptions: {minLength: {}}});\n assign(opts.validateOptions.minLength, options);\n }\n\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nDefaultValidator.define({\n name: 'minLength',\n fn: (value: string, opts?: IMinLengthOptions, instance?: any) => {\n if (isString(value)) {\n return value.length >= opts.minLength;\n }\n return false;\n },\n defaultOptions: {\n message: 'Length of property \"%propertyName\" must be greeter then %options.minLength.'\n },\n involveOnOptionKey: 'minLength'\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/Regex.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,mEAA8D;AAC9D,4EAAuE;AASvE,SAAgB,KAAK,CAAC,KAAsB,EAAE,OAAuB;IACnE,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,OAAO,EAAE,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;SAChD,CAAC;QACF,IAAI,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC7C,IAAI,CAAC,eAAe,GAAG;gBACrB,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC;SACH;QACD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,eAAe,GAAG,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC;aACpC;YACD,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC7C;QAED,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA1BD,sBA0BC;AAED,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,CAAC,KAAa,EAAE,OAAsB,EAAE,QAAc,EAAE,EAAE;QAC5D,6CAA6C;QAC7C,iBAAiB;QACjB,IAAI;QACJ,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,6FAA6F;KACvG;IACD,kBAAkB,EAAE,SAAS;CAC9B,CACF,CAAC","file":"Regex.js","sourcesContent":["import {assign, isEmpty, isString} from 'lodash';\n\nimport {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\n\nexport interface IRegexOptions extends IValidateOptions {\n pattern?: string;\n message?: string;\n flags?: string;\n}\n\nexport function Regex(regex: string | RegExp, options?: IRegexOptions) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n pattern: isString(regex) ? regex : regex.source,\n };\n if (!isString(regex) && !isEmpty(regex.flags)) {\n opts.validateOptions = {\n regex: {\n flags: regex.flags,\n }\n };\n }\n if (options) {\n if (!opts.validateOptions) {\n opts.validateOptions = {regex: {}};\n }\n assign(opts.validateOptions.regex, options);\n }\n\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nDefaultValidator.define({\n name: 'regex',\n fn: (value: string, options: IRegexOptions, instance?: any) => {\n // if (isUndefined(value) || isNull(value)) {\n // return true;\n // }\n if (isString(value)) {\n const r = new RegExp(options.pattern, options.flags);\n if (r.test(value)) {\n return true;\n }\n }\n return false;\n },\n defaultOptions: {\n message: 'Value of property \"%propertyName\" doesn\\'t match the regular expression \"%options.pattern\".'\n },\n involveOnOptionKey: 'pattern'\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/Required.ts"],"names":[],"mappings":";;;AAAA,mCAAmD;AAEnD,mEAA8D;AAC9D,4EAAuE;AAOvE,SAAgB,QAAQ,CAAC,OAA0B;IACjD,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAQ;YAChB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAA,eAAM,EAAC,IAAI,EAAE,EAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;YAChD,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAChD;QAED,qCAAiB,CAAC,aAAa,CAC7B,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,4BAiBC;AAED,mCAAgB,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU;IAChB,EAAE,EAAE,CAAC,KAAa,EAAE,IAAuB,EAAE,QAAc,EAAE,EAAE;QAC7D,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,uCAAuC;KACjD;IACD,kBAAkB,EAAE,UAAU;CAC/B,CACF,CAAC","file":"Required.js","sourcesContent":["import {assign, isNull, isUndefined} from 'lodash';\n\nimport {AnnotationsHelper} from '../../lib/AnnotationsHelper';\nimport {DefaultValidator} from '../../lib/validation/DefaultValidator';\nimport {IValidateOptions} from '../../lib/validation/IValidateOptions';\n\nexport interface IRequiredOptions extends IValidateOptions {\n message?: string\n}\n\nexport function Required(options?: IRequiredOptions) {\n return function (source: any, propertyName: string) {\n const opts: any = {\n required: true\n };\n if (options) {\n assign(opts, {validateOptions: {required: {}}});\n assign(opts.validateOptions.required, options);\n }\n\n AnnotationsHelper.forPropertyOn(\n source.constructor,\n propertyName,\n opts,\n 'merge'\n );\n };\n}\n\nDefaultValidator.define({\n name: 'required',\n fn: (value: string, opts?: IRequiredOptions, instance?: any) => {\n if (isUndefined(value) || isNull(value)) {\n return false;\n }\n return true;\n },\n defaultOptions: {\n message: 'Property \"%propertyName\" is required.'\n },\n involveOnOptionKey: 'required'\n }\n);\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/decorators/validate/index.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAU1B,wFAVA,iBAAO,OAUA;AATf,mCAA8B;AASb,sFATT,aAAK,OASS;AARtB,yCAAoC;AAQZ,yFARhB,mBAAQ,OAQgB;AAPhC,yCAAoC;AAOF,yFAP1B,mBAAQ,OAO0B;AAN1C,+BAA0B;AAMkB,oFANpC,SAAG,OAMoC;AAL/C,+BAA0B;AAKuB,oFALzC,SAAG,OAKyC;AAJpD,2CAAsC;AAIgB,0FAJ9C,qBAAS,OAI8C;AAH/D,2CAAsC;AAG2B,0FAHzD,qBAAS,OAGyD","file":"index.js","sourcesContent":["import {IsEmail} from './IsEmail';\nimport {Regex} from './Regex';\nimport {Required} from './Required';\nimport {Hostname} from './Hostname';\nimport {Ip4} from './Ip4';\nimport {Ip6} from './Ip6';\nimport {MinLength} from './MinLength';\nimport {MaxLength} from './MaxLength';\n\n\nexport {IsEmail, Regex, Required, Hostname, Ip4, Ip6, MinLength, MaxLength};\n"],"sourceRoot":"../.."}
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B","file":"index.js","sourcesContent":["export * from './browser';\n"],"sourceRoot":"."}
|
package/lib/AbstractRef.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/AbstractRef.ts"],"names":[],"mappings":"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","file":"AbstractRef.js","sourcesContent":["import {assign, get, has, isEmpty, keys, set, snakeCase} from 'lodash';\nimport {\n C_INTERNAL_NAME,\n C_NAME,\n DEFAULT_NAMESPACE,\n JS_DATA_TYPES,\n METADATA_TYPE,\n METATYPE_PROPERTY,\n METATYPE_SCHEMA,\n} from './Constants';\nimport {IBaseRef} from '../api/IBaseRef';\nimport {IClassRef, isClassRef} from '../api/IClassRef';\nimport {MetadataRegistry} from './registry/MetadataRegistry';\nimport {ILookupRegistry} from '../api/ILookupRegistry';\n\n\nexport abstract class AbstractRef implements IBaseRef {\n\n /**\n * Type of this entry\n */\n readonly metaType: METADATA_TYPE;\n\n /**\n * Namespace better registry of this entry\n */\n namespace: string = DEFAULT_NAMESPACE;\n\n private _cachedOptions: any;\n\n readonly name: string;\n\n readonly object: IClassRef;\n\n\n constructor(type: METADATA_TYPE,\n name: string,\n object: IClassRef | Function | string = null,\n namespace: string = DEFAULT_NAMESPACE) {\n this.namespace = namespace;\n this.metaType = type;\n this.name = name;\n if (isClassRef(object)) {\n this.object = object;\n } else {\n this.object = object ? this.getClassRefFor(object, type) : null;\n }\n }\n\n\n getNamespace() {\n return this.namespace;\n }\n\n\n getSourceRef() {\n return this.object;\n }\n\n abstract getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef;\n\n abstract getRegistry(): ILookupRegistry;\n\n protected getOptionsEntry() {\n if (!this._cachedOptions) {\n if (this.metaType === METATYPE_PROPERTY) {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.target === this.getClass(true) &&\n x.propertyName === this.name &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {target: this.getClass(true), propertyName: this.name, namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n } else if (this.metaType === METATYPE_SCHEMA) {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.name === this.name &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {name: this.name, namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n } else {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.target === this.getClass(true) &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {target: this.getClass(true), namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n }\n }\n return this._cachedOptions;\n }\n\n getOptions(key?: string, defaultValue: any = null): any {\n if (key) {\n return get(this.getOptionsEntry(), key, defaultValue);\n }\n return this.getOptionsEntry();\n }\n\n setOptions(options: any) {\n if (options && !isEmpty(keys(options))) {\n const opts = this.getOptionsEntry();\n // if same object cause taken from MetadataRegistry then ignore setting\n if (opts !== options) {\n for (const k of keys(opts)) {\n delete opts[k];\n }\n assign(opts, options);\n }\n }\n }\n\n setOption(key: string, value: any) {\n const opts = this.getOptionsEntry();\n set(opts, key, value);\n }\n\n hasOption(key: string) {\n const opts = this.getOptionsEntry();\n return has(opts, key);\n }\n\n /**\n * Return class ref\n */\n getClassRef(): IClassRef {\n return this.object;\n }\n\n\n /**\n * Get class for the entry\n *\n * @param create: create anonymous placeholder if no class exists\n */\n getClass(create: boolean = false): Function {\n return this.getClassRef().getClass(create);\n }\n\n\n /**\n * Return the name of the class ref, if not exits then return null\n */\n get originalName() {\n if (this.object) {\n return this.object.name;\n }\n return null;\n }\n\n\n /**\n * Return internal name (same as calling storingName)\n */\n get internalName(): string {\n return this.storingName;\n }\n\n /**\n * Return name in snake case notation\n */\n get machineName() {\n return snakeCase(this.name);\n }\n\n /**\n * Return internal name, check if internalName is set else check if name options is present\n *\n */\n get storingName() {\n let name = this.getOptions(C_INTERNAL_NAME, null);\n if (name) {\n return name;\n }\n if (this.metaType === METATYPE_PROPERTY) {\n name = this.getOptions(C_NAME, null);\n if (!name) {\n name = snakeCase(this.name);\n }\n } else {\n if (this.name !== this.originalName) {\n name = this.name;\n } else {\n name = snakeCase(this.name);\n }\n }\n return name;\n }\n\n\n abstract id(): string;\n\n\n /**\n * Return supported primitive data types\n */\n getSupportedDataTypes() {\n return JS_DATA_TYPES;\n }\n\n\n}\n\n\n\n"],"sourceRoot":".."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/AnnotationsHelper.ts"],"names":[],"mappings":"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","file":"AnnotationsHelper.js","sourcesContent":["import {assign, defaults, filter, get, isArray, isEmpty, isObjectLike, isUndefined, keys, merge} from 'lodash';\nimport {ClassRef} from './ClassRef';\nimport {MERGE_TYPE, METATYPE_ENTITY, METATYPE_PROPERTY, XS_ANNOTATION_OPTIONS_CACHE} from './Constants';\nimport {ClassUtils, MetadataStorage} from '@allgemein/base';\nimport {IPropertyExtentions} from '../api/IPropertyExtentions';\nimport {IClassRef} from '../api/IClassRef';\n\n\nexport class AnnotationsHelper {\n\n static forPropertyOn(object: Function, property: string, options: any, merge?: MERGE_TYPE) {\n const source = ClassUtils.getFunction(object);\n const classRefs: IClassRef[] = ClassRef.filter(c => c.getClass() === source);\n\n for (const ref of classRefs) {\n let prop = ref.getPropertyRef(property);\n if (prop) {\n const pOptions = prop.getOptions();\n defaults(pOptions, options);\n if (ref.hasEntityRef()) {\n const eOptions = ref.getEntityRef().getOptions();\n defaults(eOptions, options);\n }\n }\n }\n\n MetadataStorage.key(XS_ANNOTATION_OPTIONS_CACHE).push(<IPropertyExtentions>{\n type: METATYPE_PROPERTY,\n object: source,\n property: property,\n options: options,\n merge: merge ? merge : 'default'\n });\n }\n\n\n static forEntityOn(object: Function, options: any, merge?: MERGE_TYPE) {\n const source = ClassUtils.getFunction(object);\n const classRefs: IClassRef[] = ClassRef.filter(c => c.getClass() === source);\n\n for (const ref of classRefs) {\n if (ref) {\n let pOptions = ref.getOptions();\n defaults(pOptions, options);\n if (ref.hasEntityRef()) {\n const eOptions = ref.getEntityRef().getOptions();\n defaults(eOptions, options);\n }\n }\n }\n\n MetadataStorage.key(XS_ANNOTATION_OPTIONS_CACHE).push(<IPropertyExtentions>{\n type: METATYPE_ENTITY,\n object: source,\n options: options,\n merge: merge\n });\n }\n\n static merge(classRef: IClassRef, options: any, property: string = null) {\n if (!classRef) {\n return;\n }\n\n const object = classRef.getClass(true);\n const addOns: IPropertyExtentions[] = filter(MetadataStorage.key(XS_ANNOTATION_OPTIONS_CACHE), (x: IPropertyExtentions) =>\n property ?\n (classRef.isPlaceholder ? ClassUtils.getClassName(x.object) === classRef.name : x.object === object) &&\n x.property === property &&\n x.type == METATYPE_PROPERTY :\n (classRef.isPlaceholder ? ClassUtils.getClassName(x.object) === classRef.name : x.object === object) &&\n x.type == METATYPE_ENTITY\n );\n\n if (addOns) {\n addOns.forEach(addOn => {\n const mergeType: MERGE_TYPE = get(addOn, 'merge', 'default');\n switch (mergeType) {\n case 'merge':\n for (const k of keys(addOn.options)) {\n if (isUndefined(options[k]) || isEmpty(options[k])) {\n // create if not present\n options[k] = addOn.options[k];\n } else if (isArray(options[k])) {\n // add to array\n options[k].push(addOn.options[k]);\n } else if (isObjectLike(options[k]) && isObjectLike(addOn.options[k])) {\n merge(options[k], addOn.options[k]);\n } else {\n // create array\n options[k] = [options[k], addOn.options[k]];\n }\n }\n break;\n case 'assign':\n assign(options, addOn.options);\n break;\n default:\n defaults(options, addOn.options);\n }\n\n });\n }\n }\n}\n"],"sourceRoot":".."}
|
package/lib/ClassRef.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/ClassRef.ts"],"names":[],"mappings":"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","file":"ClassRef.js","sourcesContent":["import {\n first,\n has,\n isEmpty,\n isFunction,\n isString,\n isUndefined,\n kebabCase,\n snakeCase,\n get,\n isBoolean,\n isObjectLike\n} from 'lodash';\nimport {ClassUtils, NotYetImplementedError} from '@allgemein/base';\nimport {SchemaUtils} from './SchemaUtils';\nimport {\n __CLASS__,\n __NS__,\n C_PROP_NAME,\n DEFAULT_NAMESPACE,\n GLOBAL_NAMESPACE,\n METADATA_TYPE,\n METATYPE_CLASS_REF,\n METATYPE_ENTITY, METATYPE_NAMESPACE,\n METATYPE_PROPERTY,\n XS_ID_SEPARATOR\n} from './Constants';\nimport {LookupRegistry} from './LookupRegistry';\nimport {IClassRef} from '../api/IClassRef';\nimport {IEntityRef} from '../api/IEntityRef';\nimport {IPropertyRef} from '../api/IPropertyRef';\nimport {IBuildOptions} from '../api/IBuildOptions';\nimport {RegistryFactory} from './registry/RegistryFactory';\nimport {AbstractRef} from './AbstractRef';\nimport {MetadataRegistry} from \"./registry/MetadataRegistry\";\n\n/**\n * Reflective reference to a class function\n *\n * There can exist multiple ClassRef depending of context for a single class function.\n * The context is defined by the lookup registry.\n * It can be also a placeholder, for a dummy or later loaded class.\n *\n * This is a default implementation for IClassRef\n *\n\n class can be in different namespaces\n */\nexport class ClassRef extends AbstractRef implements IClassRef {\n\n static __inc: number = 0;\n\n private readonly idx: number;\n\n /**\n * Original reference to the class function or the given class name as string\n */\n originalValue: string | Function;\n\n private _cacheEntity: IEntityRef;\n\n private _isPlaceholder: boolean = false;\n\n private _isAnonymous: boolean = false;\n\n extends: IClassRef[] = [];\n\n constructor(klass: string | Function, namespace: string = DEFAULT_NAMESPACE) {\n super(METATYPE_CLASS_REF, ClassRef.getClassName(klass), null, namespace);\n this._isAnonymous = isFunction(klass) && klass.name === 'anonymous';\n\n this.idx = ClassRef.__inc++;\n if (isString(klass)) {\n this.originalValue = klass;\n this._isPlaceholder = true;\n } else {\n this.originalValue = ClassUtils.getFunction(klass);\n }\n }\n\n\n isPlaceholder() {\n return this._isPlaceholder;\n }\n\n\n isAnonymous() {\n return this._isAnonymous;\n }\n\n getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef {\n return ClassRef.get(<string | Function>object, this.namespace, type == METATYPE_PROPERTY);\n }\n\n static getClassName(k: any) {\n if (k[__CLASS__]) {\n return k[__CLASS__];\n }\n return ClassUtils.getClassName(k);\n }\n\n\n updateClass(cls: Function) {\n this.originalValue = ClassUtils.getFunction(cls);\n this._isPlaceholder = false;\n }\n\n\n get className() {\n return this.name;\n }\n\n get storingName() {\n let name = this.getOptions(C_PROP_NAME, this.className);\n return snakeCase(name);\n }\n\n set storingName(v: string) {\n this.setOption(C_PROP_NAME, v);\n }\n\n /**\n * Check if name is passed by options\n */\n hasName() {\n return this.hasOption(C_PROP_NAME);\n }\n\n /**\n * Return the namespace for/of this class\n */\n getNamespace() {\n return this.namespace;\n }\n\n /**\n * TODO implement\n *\n * @param namespace\n */\n switchNamespace(namespace: string) {\n // this.getRegistry().remove(METATYPE_CLASS_REF, (x: IClassRef) => x.getClass() === this.getClass());\n // this.namespace = namespace;\n // this.getRegistry().add(METATYPE_CLASS_REF, this);\n }\n\n isOf(instance: any): boolean {\n const name = ClassRef.getClassName(instance);\n // if(name)\n if (name && name === this.name) {\n return true;\n } else if (has(instance, __CLASS__) && instance[__CLASS__] === this.name) {\n return true;\n } else {\n return this.getPropertyRefs()\n .map(x => has(instance, x.name))\n .reduce((previousValue, currentValue) => previousValue && currentValue, true);\n }\n return false;\n }\n\n\n get machineName() {\n return snakeCase(this.className);\n }\n\n\n getClass(create: boolean = false): Function {\n if (isFunction(this.originalValue)) {\n return this.originalValue;\n } else if (isString(this.originalValue) && this.isPlaceholder) {\n if (create) {\n this.originalValue = SchemaUtils.clazz(this.originalValue);\n return this.originalValue;\n }\n }\n throw new NotYetImplementedError('getClass for ' + this.originalValue);\n }\n\n\n static find(klass: string | Function, namespace: string = DEFAULT_NAMESPACE): ClassRef {\n const registry = namespace === GLOBAL_NAMESPACE ? LookupRegistry : LookupRegistry.$(namespace);\n let className = ClassRef.getClassName(klass);\n let classRef = null;\n if (isString(klass)) {\n classRef = registry.find<ClassRef>(METATYPE_CLASS_REF,\n (c: ClassRef) => c.className === className\n );\n } else {\n classRef = registry.find<ClassRef>(METATYPE_CLASS_REF,\n (c: ClassRef) =>\n c.getClass(true) === klass ||\n (c.isPlaceholder() && c.className === className)\n );\n }\n return classRef;\n }\n\n\n /**\n * get all class refs for some class name\n *\n * @param klass\n */\n static getAllByClassName(klass: any): IClassRef[] {\n let name = ClassRef.getClassName(klass);\n return LookupRegistry.filter<ClassRef>(METATYPE_CLASS_REF, (c: IClassRef) => c.name == name);\n }\n\n\n /**\n * filter function for classrefs\n *\n * @param klass\n */\n static filter(fn: (c: IClassRef) => boolean): IClassRef[] {\n return LookupRegistry.filter<IClassRef>(METATYPE_CLASS_REF, fn);\n }\n\n\n static checkIfFunctionCallback(klass: string | Function) {\n if (isFunction(klass)) {\n // maybe function which return type like () => type\n let name = ClassRef.getClassName(klass);\n\n if (isEmpty(name)) {\n let fn = null;\n try {\n fn = klass();\n } catch (e) {\n }\n if (fn) {\n let name = ClassRef.getClassName(fn);\n if (!isEmpty(name)) {\n klass = fn;\n }\n }\n }\n }\n return klass;\n }\n\n\n /**\n * check if class reference already exists for given string or Function, if not create a new one\n *\n * @param klass\n * @param namespace\n * @param resolve\n */\n static get(klass: string | Function,\n namespace: string = GLOBAL_NAMESPACE,\n options?: boolean | { resolve?: boolean, checkNamespace?: boolean }): ClassRef {\n const resolve = isBoolean(options) ? options : get(options || {}, 'resolve', false);\n if (resolve) {\n klass = this.checkIfFunctionCallback(klass);\n }\n\n const checkNs = isObjectLike(options) ? get(options || {}, 'checkNamespace', false) : false;\n const isAnonymous = isFunction(klass) && klass.name === 'anonymous';\n\n if (checkNs) {\n const ns = MetadataRegistry.$().getByContextAndTarget(METATYPE_NAMESPACE, isFunction(klass) ? klass.name : klass);\n if (ns.length > 0) {\n namespace = get(first(ns), 'attributes.' + METATYPE_NAMESPACE, namespace);\n }\n }\n\n let classRef = this.find(klass, namespace);\n if (classRef) {\n if (classRef.isPlaceholder && isFunction(klass) && !isAnonymous) {\n classRef.updateClass(klass);\n }\n return classRef;\n }\n\n if (namespace === GLOBAL_NAMESPACE) {\n namespace = DEFAULT_NAMESPACE;\n }\n return this.createRef(klass, namespace);\n }\n\n /**\n * Create a class ref.\n *\n * @param klass\n * @param namespace\n */\n static createRef(klass: Function | string, namespace: string = GLOBAL_NAMESPACE) {\n const classRef = new ClassRef(klass, namespace);\n if (isFunction(klass)) {\n const proto = SchemaUtils.getInherited(klass);\n if (proto) {\n // is extends\n // TODO how to handle cirlces\n const extendRef = ClassRef.get(proto, namespace);\n classRef.addExtend(extendRef);\n }\n }\n return classRef.getRegistry().add(METATYPE_CLASS_REF, classRef);\n }\n\n\n /**\n * return global class reference\n *\n * @param klass\n * @param resolve\n */\n static getGlobal(klass: string | Function, resolve: boolean = false): ClassRef {\n return this.get(klass, GLOBAL_NAMESPACE, resolve);\n }\n\n\n getRegistry() {\n return RegistryFactory.get(this.namespace);\n }\n\n\n getEntityRef(): IEntityRef {\n if (isUndefined(this._cacheEntity)) {\n this._cacheEntity = this.getRegistry().find(METATYPE_ENTITY, (x: IEntityRef) => x.getClassRef() === this);\n }\n return this._cacheEntity;\n }\n\n hasEntityRef() {\n return !!this.getEntityRef();\n }\n\n\n create<T>(addinfo: boolean = true): T {\n return this.new(addinfo);\n }\n\n\n new<T>(addinfo: boolean = true): T {\n let klass = this.getClass();\n let instance = Reflect.construct(klass, []);\n if (addinfo) {\n Reflect.defineProperty(instance, __NS__, {value: this.namespace, enumerable: true});\n Reflect.defineProperty(instance, __CLASS__, {value: this.className, enumerable: true});\n }\n return instance;\n }\n\n\n getPropertyRefs(): IPropertyRef[] {\n const inheritedProps = [].concat(...this.getExtends().map(x => x.getPropertyRefs()));\n const registeredProps = this.getRegistry().getPropertyRefs(this);\n inheritedProps.forEach((x: IPropertyRef) => {\n if (!registeredProps.find(z => x.name === z.name)) {\n registeredProps.push(x);\n }\n });\n return registeredProps;\n }\n\n\n getPropertyRef(name: string): IPropertyRef {\n let registeredProp = this.getRegistry().getPropertyRef(this, name);\n if (registeredProp) {\n return registeredProp;\n } else {\n for (const clsRef of this.getExtends()) {\n registeredProp = clsRef.getPropertyRef(name);\n if (registeredProp) {\n return registeredProp;\n }\n }\n }\n return null;\n }\n\n\n id() {\n return [this.namespace, this.className].map(x => kebabCase(x)).join(XS_ID_SEPARATOR);\n }\n\n\n build<T>(data: any, options: IBuildOptions = {}): T {\n return <T>SchemaUtils.transform(this, data, options);\n }\n\n /**\n * Return base inherited class for the underlying class\n * ```\n * class X exnteds Y { }\n * ```\n * Y would be returned.\n *\n */\n getExtend(): IClassRef {\n return !isEmpty(this.extends) ? first(this.extends) : null;\n }\n\n /**\n * Return all inherited classes for underlying class. Mostly added manually.\n *\n */\n getExtends(): IClassRef[] {\n return this.extends;\n }\n\n /**\n * Append extend class ref.\n * @param ref\n */\n addExtend(ref: IClassRef) {\n this.extends.push(ref);\n return ref;\n }\n\n\n}\n"],"sourceRoot":".."}
|
package/lib/Constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";;;AAGa,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAGhC,QAAA,YAAY,GAAG,YAAY,CAAC;AAC5B,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,eAAe,GAAG,cAAc,CAAC;AACjC,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,aAAa,GAAG,aAAa,CAAC;AAG9B,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AAEzC,QAAA,mBAAmB,GAAG,aAAa,CAAC;AACpC,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAC/B,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAW/B,QAAA,qBAAqB,GAAG,eAAe,CAAC;AACxC,QAAA,wBAAwB,GAAG,kBAAkB,CAAC;AAS9C,QAAA,eAAe,GAAG,IAAI,CAAC;AAEvB,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAG9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAyBxC,QAAA,2BAA2B,GAAG,oBAAoB,CAAC;AAChE,mEAAmE;AAEtD,QAAA,aAAa,GAAoB;IAC5C,QAAQ;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,WAAW;IACX,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAoB;IACjD,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,QAAQ;CACT,CAAC;AAGW,QAAA,WAAW,GAAG,KAAK,CAAC;AACpB,QAAA,cAAc,GAAG,QAAQ,CAAC;AAC1B,QAAA,cAAc,GAAG,QAAQ,CAAC;AAC1B,QAAA,sBAAsB,GAAG,gBAAgB,CAAC;AAE1C,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACpB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACpB,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,WAAW,GAAG,MAAM,CAAC;AACrB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAErC,QAAA,SAAS,GAAG,QAAQ,CAAC;AAErB,QAAA,kBAAkB,GAAG,iBAAiB,CAAC;AACvC,QAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAWpC,QAAA,mBAAmB,GAAG,CAAC,cAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,cAAM,CAAC,CAAC;AAE/G;;GAEG;AACU,QAAA,cAAc,GAAG,SAAS,CAAC;AAE3B,QAAA,qBAAqB,GAAG,CAAC,sBAAc,CAAC,CAAC","file":"Constants.js","sourcesContent":["import exp = require('constants');\nimport {INamedOptions} from \"./options/INamedOptions\";\n\nexport const DEFAULT_NAMESPACE = 'default';\nexport const GLOBAL_NAMESPACE = '__global__';\n\n\nexport const C_IDENTIFIER = 'identifier';\nexport const C_TYPE = 'type';\nexport const C_NAME = 'name';\nexport const C_INTERNAL_NAME = 'internalName';\nexport const C_APPENDED = 'appended';\nexport const C_CARDINALITY = 'cardinality';\n\n\nexport const XS_DEFAULT_CLASSES = 'default_class_ref';\n\nexport const REFLECT_DESIGN_TYPE = 'design:type';\nexport const METATYPE_SCHEMA = 'schema';\nexport const METATYPE_ENTITY = 'entity';\nexport const METATYPE_NAMESPACE = 'namespace';\nexport const METATYPE_CLASS_REF = 'class_ref';\nexport const METATYPE_PROPERTY = 'property';\nexport const METATYPE_EMBEDDABLE = 'object';\n\nexport type METADATA_TYPE =\n 'schema'\n | 'object'\n | 'entity'\n | 'property'\n | 'class_ref'\n | 'namespace';\n\n\nexport const BINDING_SCHEMA_ENTITY = 'schema_entity';\nexport const BINDING_SCHEMA_CLASS_REF = 'schema_class_ref';\n\nexport type METADATA_AND_BIND_TYPE = METADATA_TYPE\n | 'schema_entity'\n | 'entity_property'\n | 'property_entity'\n | 'schema_class_ref';\n\nexport type XS_DATA_TYPES = 'string' | 'number' | 'boolean' | 'entity' | 'array' | 'any';\nexport const XS_ID_SEPARATOR = '--';\n\nexport const XS_DEFAULT_SCHEMA = 'default';\n\n\nexport const METADATA_REGISTRY = 'metadata/registry';\n\n\nexport type ClassType<T> = { new(...args: any[]): T; };\n\nexport type JS_DATA_TYPES =\n 'string'\n | 'text'\n | 'number'\n | 'boolean'\n | 'double'\n | 'json'\n | 'date'\n | 'time'\n | 'datetime'\n | 'timestamp'\n | 'byte'\n | 'object'\n | 'array'\n | 'symbol'\n | 'null'\n | 'undefined'\n | 'bigint'\n ;\n\nexport const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';\n// export const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';\n\nexport const JS_DATA_TYPES: JS_DATA_TYPES[] = [\n 'string'\n , 'text'\n , 'number'\n , 'boolean'\n , 'double'\n , 'json'\n , 'date'\n , 'time'\n , 'datetime'\n , 'timestamp'\n , 'byte'\n , 'object'\n , 'symbol'\n , 'null'\n , 'undefined'\n , 'bigint'\n];\n\nexport const JS_PRIMATIVE_TYPES: JS_DATA_TYPES[] = [\n 'string',\n 'number',\n 'boolean',\n 'object',\n 'symbol',\n 'date',\n 'null',\n 'undefined',\n 'bigint'\n];\n\n\nexport const C_EVENT_ADD = 'add';\nexport const C_EVENT_REMOVE = 'remove';\nexport const C_EVENT_UPDATE = 'update';\nexport const C_EVENT_DRAIN_FINISHED = 'drain_finished';\n\nexport const T_STRING = 'string';\nexport const T_ARRAY = 'array';\nexport const T_OBJECT = 'object';\nexport const T_BOOLEAN = 'boolean';\n\nexport const C_PROP_NAME = 'name';\nexport const __CLASS__ = '__CLASS__';\nexport const __NS__ = '__NS__';\nexport const OPT_CREAT_AND_COPY = 'createAndCopy';\n\nexport const STATE_KEY = '$state';\n\nexport const K_PATTERN_PROPERTY = 'patternProperty';\nexport const K_TRIGGERED = Symbol('_triggered_');\n\nexport type CLASS_TYPE = Function | ClassType<any>;\nexport type MERGE_TYPE = 'default' | 'assign' | 'merge';\n\nexport interface IMinMax {\n min: number;\n max: number;\n}\n\n\nexport const DEFAULT_KEY_TO_SKIP = [C_TYPE, '$ref', 'target', 'propertyName', 'metaType', 'namespace', C_NAME];\n\n/**\n * Entity option signals that entity is generate by an other\n */\nexport const K_ENTITY_BUILT = '_built_';\n\nexport const DEFINED_PROPS_TO_OPTS = [K_ENTITY_BUILT];\n"],"sourceRoot":".."}
|
package/lib/DataContainer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/DataContainer.ts"],"names":[],"mappings":"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","file":"DataContainer.js","sourcesContent":["import {get, has, isBoolean, isEmpty, isFunction, keys, remove, set} from 'lodash';\n\n\nimport {STATE_KEY} from './Constants';\nimport {IValidationError} from './validation/IValidationError';\nimport {IValidationResult} from './validation/IValidationResult';\nimport {ILookupRegistry} from '../api/ILookupRegistry';\nimport {IEntityRef} from '../api/IEntityRef';\nimport {IClassRef} from '../api/IClassRef';\nimport {IValidationMessage} from './validation/IValidationMessage';\nimport {Validator} from './validation/Validator';\nimport {ClassRef} from './ClassRef';\nimport {ClassUtils} from '@allgemein/base';\n\n/**\n * Container for validation of object\n */\nexport class DataContainer<T> {\n\n static keys: string[] = [\n 'isValidated',\n 'isSuccess',\n 'isSuccessValidated',\n 'errors'\n ];\n\n isValidated: boolean;\n\n isSuccess: boolean;\n\n isSuccessValidated: boolean;\n\n errors: IValidationError[] = [];\n\n validation: { [k: string]: IValidationResult } = {};\n\n instance: T;\n\n ref: IEntityRef | IClassRef;\n\n\n constructor(instance: T, registry?: ILookupRegistry | IEntityRef | IClassRef) {\n this.instance = instance;\n if (registry) {\n this.ref = isFunction((<ILookupRegistry>registry).getEntityRefFor) ?\n (<ILookupRegistry>registry).getEntityRefFor(instance as any) : registry as IEntityRef;\n } else {\n const clazz = ClassUtils.getFunction(instance as any);\n this.ref = ClassRef.get(clazz) as IClassRef;\n }\n if (!this.ref) {\n throw new Error('none definition found for instance ' + JSON.stringify(instance));\n }\n\n const properties = this.ref.getPropertyRefs();\n for (const property of properties) {\n this.validation[property.name] = {\n key: property.name,\n valid: false,\n checked: false,\n messages: []\n };\n }\n ;\n }\n\n\n addError(e: IValidationError) {\n if (!has(e, 'type')) {\n e.type = 'error';\n }\n this.errors.push(e);\n }\n\n\n hasErrors() {\n return this.errors.length > 0;\n }\n\n\n checked(str: string) {\n if (this.validation[str]) {\n return this.validation[str].checked;\n }\n return false;\n }\n\n\n value(str: string) {\n const wrap = {};\n Object.defineProperty(wrap, str, {\n get: () => {\n return this.instance[str];\n },\n set: (y: any) => {\n this.instance[str] = y;\n }\n });\n return wrap[str];\n }\n\n\n valid(str: string) {\n if (this.validation[str]) {\n return this.validation[str].valid;\n }\n return false;\n }\n\n\n messages(str: string): IValidationMessage[] {\n if (this.validation[str] && this.validation[str].messages) {\n return this.validation[str].messages;\n }\n return [];\n\n }\n\n\n async validate(): Promise<boolean> {\n this.isValidated = true;\n remove(this.errors, error => error.type === 'validate');\n let results: IValidationError[] = [];\n try {\n results = <IValidationError[]>await Validator.validate(this.instance as any, this.ref);\n } catch (e) {\n console.error(e);\n }\n\n results.map(r => this.errors.push({\n property: r.property,\n value: r.value,\n constraints: r.constraints,\n type: 'validate'\n }));\n this.isSuccessValidated = true;\n keys(this.validation).forEach(key => {\n if (this.validation[key]) {\n const valid = this.validation[key];\n const found = this.errors.find(x => x.property === key);\n valid.messages = [];\n if (found) {\n valid.valid = false;\n Object.keys(found.constraints).forEach(c => {\n valid.messages.push({type: c, content: found.constraints[c]});\n });\n } else {\n valid.valid = true;\n }\n this.isSuccessValidated = this.isSuccessValidated && valid.valid;\n valid.checked = true;\n }\n });\n\n return this.isSuccessValidated;\n }\n\n\n applyState() {\n const $state: any = {};\n DataContainer.keys.forEach(k => {\n const value = get(this, k, null);\n\n if (isBoolean(value) || !isEmpty(value)) {\n set($state, k, value);\n }\n });\n\n set(<any>this.instance, STATE_KEY, $state);\n }\n\n\n resetErrors() {\n this.errors = [];\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/LookupRegistry.ts"],"names":[],"mappings":"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","file":"LookupRegistry.js","sourcesContent":["import {has, isEmpty, remove} from 'lodash';\n\nimport {DEFAULT_NAMESPACE} from './Constants';\n\nexport class LookupRegistry {\n\n private static $self: { [namespace: string]: LookupRegistry } = {};\n\n private namespace: string = DEFAULT_NAMESPACE;\n\n private _entries: { [context: string]: any[] } = {};\n\n constructor(namespace: string) {\n this.namespace = namespace;\n }\n\n getNamespace(): string {\n return this.namespace;\n }\n\n static reset(namespace: string = DEFAULT_NAMESPACE): void {\n if (this.$self[namespace]) {\n delete this.$self[namespace];\n }\n }\n\n static $(namespace: string = DEFAULT_NAMESPACE): LookupRegistry {\n if (!this.$self[namespace]) {\n this.$self[namespace] = new LookupRegistry(namespace);\n }\n return this.$self[namespace];\n }\n\n list(context: string) {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n return this._entries[context];\n }\n\n add<T>(context: string, entry: T): T {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n this._entries[context].push(entry);\n return entry;\n }\n\n remove<T>(context: string, search: any): T[] {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n return remove<T>(this._entries[context], search);\n }\n\n filter<T>(context: string, search: (x: any) => boolean): T[] {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n if(search){\n return this._entries[context].filter(search);\n }\n return this._entries[context];\n\n }\n\n find<T>(context: string, search: (x: any) => boolean): T {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n return this._entries[context].find(search);\n }\n\n\n /**\n * return lookup registry namespaces\n */\n static getRegistryNamespaces() {\n return Object.keys(this.$self);\n }\n\n /**\n * return lookup registries\n */\n static getLookupRegistries() {\n return Object.keys(this.$self).map(x => this.$self[x]);\n }\n\n /**\n * search in all registries\n *\n * @param context\n * @param search\n */\n static find<T>(context: string, search: any): T {\n const registryNames = this.getRegistryNamespaces();\n for (const registryName of registryNames) {\n const found = <T>this.$self[registryName].find(context, search);\n if (found) {\n return found;\n }\n }\n return null;\n }\n\n /**\n * filter over all registries\n *\n * @param context\n * @param search\n */\n static filter<T>(context: string, search: any): T[] {\n const results: T[] = [];\n const namespaces = Object.keys(this.$self);\n for (const namespace of namespaces) {\n const found = <T[]>this.$self[namespace].filter(context, search);\n if (!isEmpty(found)) {\n results.push(...found);\n }\n }\n return results;\n }\n\n\n}\n\n\n"],"sourceRoot":".."}
|
package/lib/SchemaRef.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/SchemaRef.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAC5C,+CAA0C;AAE1C,2CAA4E;AAC5E,gEAA2D;AAM3D,MAAa,SAAU,SAAQ,yBAAW;IAGxC,YAAY,UAA0B,EAAC,IAAI,EAAE,SAAS,EAAC;QACrD,KAAK,CAAC,2BAAe,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAGD,EAAE;QACA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAGD,WAAW;QACT,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAGD,cAAc,CAAC,MAAqC,EACrC,IAAmB;QAChC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAGD,eAAe,CAAC,KAAwB;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE;aACtB,IAAI,CAAC,2BAAe,EACnB,CAAC,CAAa,EAAE,EAAE;YAChB,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;gBACnB,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;aAClE;iBAAM,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,EAAE;gBAC5B,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC;aACtC;YACD,IAAI,WAAW,EAAE;gBACf,IAAI,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CACF,CAAC;IACN,CAAC;IAGD,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,EAAE;aACtB,MAAM,CAAC,2BAAe,EACrB,CAAC,CAAa,EAAE,EAAE;YAChB,IAAI,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CACF,CAAC;IACN,CAAC;CASF;AAhED,8BAgEC","file":"SchemaRef.js","sourcesContent":["import {isFunction, isString} from 'lodash';\nimport {AbstractRef} from './AbstractRef';\nimport {ISchemaOptions} from './options/ISchemaOptions';\nimport {METADATA_TYPE, METATYPE_ENTITY, METATYPE_SCHEMA} from './Constants';\nimport {RegistryFactory} from './registry/RegistryFactory';\nimport {IClassRef} from '../api/IClassRef';\nimport {ISchemaRef} from '../api/ISchemaRef';\nimport {IEntityRef} from '../api/IEntityRef';\n\n\nexport class SchemaRef extends AbstractRef implements ISchemaRef {\n\n\n constructor(options: ISchemaOptions = {name: 'default'}) {\n super(METATYPE_SCHEMA, options.name, null, options.namespace);\n this.setOptions(options);\n }\n\n\n id() {\n return this.name.toLowerCase();\n }\n\n\n getRegistry() {\n return RegistryFactory.get(this.namespace);\n }\n\n\n getClassRefFor(object: string | Function | IClassRef,\n type: METADATA_TYPE): IClassRef {\n return this.getRegistry().getClassRefFor(object, type);\n }\n\n\n getEntityRefFor(value: string | Function): IEntityRef {\n return this.getRegistry()\n .find(METATYPE_ENTITY,\n (b: IEntityRef) => {\n let schemaCheck = false;\n if (isString(value)) {\n schemaCheck = b.name === value || b.getClassRef().name === value;\n } else if (isFunction(value)) {\n schemaCheck = b.getClass() === value;\n }\n if (schemaCheck) {\n let schemas = b.getOptions('schema');\n schemas = schemas ? schemas : [];\n return schemas.includes(this.name);\n }\n return false;\n }\n );\n }\n\n\n getEntityRefs(): IEntityRef[] {\n return this.getRegistry()\n .filter(METATYPE_ENTITY,\n (b: IEntityRef) => {\n let schemas = b.getOptions('schema');\n schemas = schemas ? schemas : [];\n return schemas.includes(this.name);\n }\n );\n }\n\n\n // getPropertiesFor(fn: Function): IPropertyRef[] {\n // return this.getLookupRegistry()\n // .filter(METATYPE_PROPERTY, (p: IPropertyRef) => p.getSourceRef().getClass() === fn);\n // }\n\n\n}\n\n"],"sourceRoot":".."}
|
package/lib/SchemaUtils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/SchemaUtils.ts"],"names":[],"mappings":"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","file":"SchemaUtils.js","sourcesContent":["//\nimport {assign, get, isArray, isEmpty, isFunction, isNull, isSet, isUndefined} from 'lodash';\nimport {CryptUtils, NotYetImplementedError} from '@allgemein/base';\nimport {C_PROP_NAME, OPT_CREAT_AND_COPY} from './Constants';\nimport {IClassRef, isClassRef} from '../api/IClassRef';\nimport {IEntityRef, isEntityRef} from '../api/IEntityRef';\nimport {IBuildOptions} from '../api/IBuildOptions';\n\nlet anonId = 0;\n\nexport class SchemaUtils {\n\n /**\n * convert an json entry to an instance of given entityRef type\n *\n * - with options can be set pre/post processing for build\n * - beforeBuild - preprocess of an object\n * - afterBuild - postprocess of an object\n * - createAndCopy - if true the only the instance is created, all properties are passed by assign\n *\n * @param entityRef\n * @param data\n * @param options: IBuildOptions\n *\n */\n static transform<T>(entityRef: IEntityRef | IClassRef, data: any, options: IBuildOptions = {}): T {\n let object: T = entityRef.create(!isUndefined(options.skipClassNamespaceInfo) ? !options.skipClassNamespaceInfo : true);\n if (options.beforeBuild) {\n options.beforeBuild(entityRef, data, object, options);\n }\n\n if (!get(options, OPT_CREAT_AND_COPY, false)) {\n\n for (let p of entityRef.getPropertyRefs()) {\n if ((isNull(data[p.name]) || isUndefined(data[p.name]))) {\n //object[p.name] = null;\n continue;\n }\n if (p.isReference()) {\n let ref = p.getTargetRef();\n if (p.isCollection() || isArray(data[p.name])) {\n object[p.name] = [];\n for (let i = 0; i < data[p.name].length; i++) {\n object[p.name][i] = ref.build(data[p.name][i], options);\n }\n } else {\n object[p.name] = ref.build(data[p.name], options);\n }\n } else {\n if (p.isCollection() && (isArray(data[p.name]) || isSet(data[p.name]))) {\n object[p.name] = [];\n for (let i = 0; i < data[p.name].length; i++) {\n let v = data[p.name][i];\n if (v) {\n object[p.name][i] = p.convert(v, options);\n } else {\n object[p.name][i] = null;\n }\n }\n } else if (p.isCollection() && !(isArray(data[p.name]) || isSet(data[p.name]))) {\n throw new NotYetImplementedError();\n } else {\n object[p.name] = p.convert(data[p.name], options);\n }\n }\n }\n } else {\n assign(object, data);\n }\n\n if (options.afterBuild) {\n options.afterBuild(entityRef, data, object, options);\n }\n return object;\n\n }\n\n /**\n * Create a class of given name\n *\n * @param str\n */\n static clazz(str: string): Function {\n const X = this.clazzAnonymous();\n Object.defineProperty(X, C_PROP_NAME, {value: str});\n return X;\n }\n\n /**\n * Create a class of given name\n *\n * @param str\n */\n static clazzAnonymous(): Function {\n const X = new Function();\n const id = anonId++;\n Object.defineProperty(X, 'anonId', {value: id});\n return X;\n }\n\n /**\n * Return inherited class if present else null will be delivered\n *\n * @param klass\n */\n static getInherited(klass: Function) {\n const proto = Reflect.getPrototypeOf(klass) as any;\n if (proto.name && !isEmpty(proto.name) && proto.name !== Object.name && proto.name !== klass.name) {\n return proto;\n }\n return null;\n }\n\n\n static getFunction(klass: any) {\n if (isEntityRef(klass)) {\n return klass.getClassRef().getClass(true);\n } else if (isClassRef(klass)) {\n return klass.getClass(true);\n } else if (isFunction(klass)) {\n return klass;\n }\n throw new Error('no class found in ' + klass);\n }\n\n\n static normValue(value: any) {\n return JSON.parse(JSON.stringify(value));\n }\n\n //\n //\n // static interprete(value: string) {\n // // json\n // // date\n // // number\n // //\n // }\n //\n\n}\n"],"sourceRoot":".."}
|
package/lib/functions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/functions.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;AACvD,kDAA0D;AAC1D,0CAA2C;AAE3C,SAAgB,YAAY,CAAC,KAAwC;IACnE,IAAI,IAAA,wBAAW,EAAC,KAAK,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC;KACjC;SAAM,IAAI,IAAA,sBAAU,EAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC;KACnB;SAAM;QACL,OAAO,iBAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACvC;AACH,CAAC;AARD,oCAQC","file":"functions.js","sourcesContent":["import {IClassRef, isClassRef} from \"../api/IClassRef\";\nimport {IEntityRef, isEntityRef} from \"../api/IEntityRef\";\nimport {ClassUtils} from \"@allgemein/base\";\n\nexport function getClassName(klass: Function | IClassRef | IEntityRef) {\n if (isEntityRef(klass)) {\n return klass.getClassRef().name;\n } else if (isClassRef(klass)) {\n return klass.name;\n } else {\n return ClassUtils.getClassName(klass);\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/Constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,aAAa,CAAC;AACvC,QAAA,QAAQ,GAAG,UAAU,CAAC;AAEtB,QAAA,gBAAgB,GAAG,eAAe,CAAC","file":"Constants.js","sourcesContent":["export const JSON_SCHEMA_SERIALIZER = 'json-schema';\nexport const DRAFT_07 = 'draft-07';\n\nexport const C_ONLY_DECORATED = 'onlyDecorated';\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/IJsonSchemaSerializeOptions.ts"],"names":[],"mappings":"","file":"IJsonSchemaSerializeOptions.js","sourcesContent":["import {IJsonSchemaSerializer} from './IJsonSchemaSerializer';\nimport {ISerializeOptions} from '../serializer/ISerializeOptions';\nimport {IPropertyRef} from '../../api/IPropertyRef';\nimport {IClassRef} from \"../../api/IClassRef\";\nimport {IEntityRef} from \"../../api/IEntityRef\";\n\nexport interface IJsonSchemaSerializeOptions extends ISerializeOptions {\n\n /**\n * Version of json schema\n */\n version?: 'draft-07' | string;\n\n /**\n * If multiple schemas\n */\n handleMultipleSchemas?: 'reference' | 'clone';\n\n\n /**\n * If set then on entries with type object the class function will be passed under key $target\n *\n * {\n * title: 'TestClass',\n * type: 'object',\n * $target: ClassType<TestClass>\n * }\n */\n appendTarget?: boolean;\n\n\n /**\n * Callback for postprocess\n */\n postProcess?: (src: any, dst: any, serializer?: IJsonSchemaSerializer) => void;\n\n\n /**\n * Allow override of existing standard properties\n */\n allowKeyOverride?: boolean;\n\n /**\n * Property keys where information can be skipped\n * Default if not set: ['type', '$ref', 'target', '$target','propertyName', 'metaType', 'namespace', 'name']\n * See constant DEFAULT_KEY_TO_SKIP\n */\n keysToSkip?: string[];\n\n /**\n * By default options of reference properties are removed, to pass them set this to 'false'.\n */\n deleteReferenceKeys?: boolean;\n\n\n /**\n * Passed method for type correction if necessary, else\n */\n typeConversion?: (type: any, property: IPropertyRef) => string | null;\n\n /**\n * Passed method for type hint if necessary, else\n */\n typeHint?: (klass: Function | IClassRef, propertyName: string, instance: any, value: any) => string;\n\n /**\n * Default type hint on null or undefined\n */\n defaultTypeHint?: string;\n\n /**\n * Ignore unknown type\n */\n ignoreUnknownType?: boolean;\n\n /**\n * Serialize only decorated properties (default is true)\n */\n onlyDecorated?: boolean;\n\n /**\n * Add $namespace to schema\n */\n appendNamespace?: boolean;\n\n /**\n * Check if kind of property should be serialized\n *\n * - check for property ref\n * - or klass + property name\n *\n */\n allowedProperty?: (entry: IPropertyRef | string, klass?: Function) => boolean;\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/IJsonSchemaSerializer.ts"],"names":[],"mappings":"","file":"IJsonSchemaSerializer.js","sourcesContent":["import {IClassRef} from '../../api/IClassRef';\nimport {IEntityRef} from '../../api/IEntityRef';\nimport {ISerializer} from '../serializer/ISerializer';\n\nexport interface IJsonSchemaSerializer extends ISerializer {\n\n uri(): string;\n\n serialize(klass: IClassRef | IEntityRef | Function | object): any;\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/IJsonSchemaUnserializeOptions.ts"],"names":[],"mappings":"","file":"IJsonSchemaUnserializeOptions.js","sourcesContent":["import {METADATA_TYPE} from '../Constants';\nimport {IParseOptions} from './IParseOptions';\nimport {IUnserializeOptions} from '../serializer/IUnserializeOptions';\n\nexport interface IJsonSchemaUnserializeOptions extends IParseOptions, IUnserializeOptions {\n\n /**\n * Version of json schema\n */\n version?: 'draft-7' | string;\n\n /**\n * Key specific method for options extraction from json schema to entity or property options\n */\n collector?: { type: METADATA_TYPE, key?: string, fn: (key: string, data: any, options: IParseOptions) => any }[];\n\n /**\n * If set then a new class ref will be created even if an with same name already exists.\n */\n forceClassRefCreation?: boolean;\n\n /**\n * If set then a new entity ref will be created even if an with same name already exists.\n */\n forceEntityRefCreation?: boolean;\n\n /**\n * If set then a new property ref for class ref will be created even if an with same name already exists.\n */\n forcePropertyRefCreation?: boolean;\n\n\n /**\n * Is root object an entity.\n */\n rootAsEntity?: boolean;\n\n /**\n * Prepend class name on object which is a property.\n */\n prependClass?: boolean;\n\n /**\n * Current working directory\n */\n cwd?: string;\n\n /**\n * Ignore namespaces marked by $namespace in json schema data\n */\n skipNamespace?: boolean;\n}\n\n\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/IJsonSchemaUnserializer.ts"],"names":[],"mappings":"","file":"IJsonSchemaUnserializer.js","sourcesContent":["import {IUnserializer} from '../serializer/IUnserializer';\n\nexport interface IJsonSchemaUnserializer extends IUnserializer{\n\n uri(): string;\n\n unserialize(data: string): any;\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/IParseOptions.ts"],"names":[],"mappings":";;;AAmBa,QAAA,kBAAkB,GAA4B,CAAC,QAAQ,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC","file":"IParseOptions.js","sourcesContent":["import {IClassRef} from '../../api/IClassRef';\nimport {METADATA_TYPE} from '../Constants';\n\n\nexport interface IParseOptions {\n isRoot?: boolean;\n ref?: IClassRef;\n className?: string;\n isProperty?: boolean;\n propertyName?: string;\n metaType?: METADATA_TYPE;\n sourceRef?: IClassRef;\n ignoreDeclared?: boolean;\n asArray?: boolean;\n $ref?: string;\n isPattern?: boolean;\n\n}\n\nexport const PARSE_OPTIONS_KEYS: (keyof IParseOptions)[] = ['isRoot', 'className', 'ignoreDeclared'];\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/JsonSchema.ts"],"names":[],"mappings":"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","file":"JsonSchema.js","sourcesContent":["import {defaults, get, isString} from 'lodash';\n\nimport {IClassRef} from '../../api/IClassRef';\nimport {IEntityRef} from '../../api/IEntityRef';\nimport {JsonSchema7Serializer} from './JsonSchema7Serializer';\nimport {IJsonSchemaSerializeOptions} from './IJsonSchemaSerializeOptions';\nimport {IJsonSchemaUnserializeOptions} from './IJsonSchemaUnserializeOptions';\nimport {DRAFT_07, JSON_SCHEMA_SERIALIZER} from './Constants';\nimport {PlatformUtils} from '@allgemein/base';\nimport {JsonSchema7Unserializer} from './JsonSchema7Unserializer';\nimport {ISerializerFactory} from '../serializer/ISerializerFactory';\nimport {ISerializer} from '../serializer/ISerializer';\nimport {IUnserializer} from '../serializer/IUnserializer';\n\n\nexport class JsonSchema implements ISerializerFactory {\n\n\n static async request(addr: string, opts: any = {}) {\n try {\n if (addr.startsWith('file:///')) {\n const buffer = await PlatformUtils.readFile(addr.replace('file://', ''));\n const strValue = buffer.toString(get(opts, 'encoding', 'utf8'));\n return JSON.parse(strValue);\n } else if (addr.startsWith('.')) {\n const cwd = opts.cwd ? opts.cwd : process.cwd();\n const path = PlatformUtils.join(cwd, addr);\n const buffer = await PlatformUtils.readFile(path);\n const strValue = buffer.toString(get(opts, 'encoding', 'utf8'));\n return JSON.parse(strValue);\n } else if (PlatformUtils.isAbsolute(addr)) {\n const buffer = await PlatformUtils.readFile(addr);\n const strValue = buffer.toString(get(opts, 'encoding', 'utf8'));\n return JSON.parse(strValue);\n } else {\n const got = PlatformUtils.load('got');\n const response = await got(addr, opts);\n return JSON.parse(response.body);\n }\n } catch (e) {\n console.error(e);\n return {};\n }\n\n }\n\n\n static getSerializer(options: IJsonSchemaSerializeOptions = {version: DRAFT_07}) {\n options = options || {};\n defaults(options, {version: DRAFT_07});\n switch (options.version) {\n case DRAFT_07:\n return new JsonSchema7Serializer(options);\n }\n return null;\n }\n\n static getUnserializer(options: IJsonSchemaUnserializeOptions = {version: DRAFT_07}) {\n options = options || {};\n defaults(options, {version: DRAFT_07});\n switch (options.version) {\n case DRAFT_07:\n return new JsonSchema7Unserializer(options);\n }\n return null;\n }\n\n\n static serialize(klass: IClassRef | IEntityRef | Function | object, options?: IJsonSchemaSerializeOptions) {\n const serializer = JsonSchema.getSerializer(options);\n return serializer.serialize(klass);\n }\n\n\n static unserialize(data: any, options?: IJsonSchemaUnserializeOptions): Promise<IClassRef | IEntityRef | (IClassRef | IEntityRef)[]> {\n options = options ? options : {};\n const schema = this.detectSchemaVersion(data);\n options.version = schema;\n const serializer = this.getUnserializer(options);\n return serializer.unserialize(data);\n }\n\n\n static detectSchemaVersion(schema: object, fallback: string = DRAFT_07) {\n if (schema['$schema']) {\n if (isString(schema['$schema'])) {\n const match = schema['$schema'].match(/json-schema.org\\/(.*)\\/schema/);\n if (match && match[1]) {\n return match[1];\n }\n }\n }\n return fallback;\n }\n\n getName(): string {\n return JSON_SCHEMA_SERIALIZER;\n }\n\n getSerializer(options?: IJsonSchemaSerializeOptions): ISerializer {\n return JsonSchema.getSerializer(options);\n }\n\n getUnserializer(options?: IJsonSchemaUnserializeOptions): IUnserializer {\n return JsonSchema.getUnserializer(options);\n }\n\n serialize(klass: IClassRef | IEntityRef | Function | object, options?: IJsonSchemaSerializeOptions): any {\n return JsonSchema.serialize(klass, options);\n }\n\n unserialize(data: string, options?: IJsonSchemaUnserializeOptions): Promise<IClassRef | IEntityRef | (IClassRef | IEntityRef)[]> {\n return JsonSchema.unserialize(data, options);\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/JsonSchema7.ts"],"names":[],"mappings":";;;AAwBa,QAAA,mBAAmB,GAA2B;IACzD,QAAQ;IACN,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,MAAM;CACT,CAAC;AAGF,SAAgB,oBAAoB,CAAC,IAAY,EAAE,GAAiB;IAClE,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAFD,oDAEC;AAED,SAAgB,8BAA8B,CAAC,IAAY,EAAE,GAAiB;IAC5E,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,IAAK,GAAG,CAAC,WAAW,CAAC,IAAI,CAAkB,CAAC,UAAU,CAAC;AAC/F,CAAC;AAFD,wEAEC","file":"JsonSchema7.js","sourcesContent":["import {JSONSchema7} from 'json-schema';\nimport {IClassRef} from '../../api/IClassRef';\nimport {IEntityRef} from '../../api/IEntityRef';\n\nexport interface IJsonSchema7 extends JSONSchema7 {\n $target?: Function | IClassRef | IEntityRef;\n definitions?: {\n [key: string]: IJsonSchema7Definition;\n };\n}\n\n\nexport type IJsonSchema7Definition = IJsonSchema7 | boolean;\n\n\nexport type IJsonSchema7TypeName =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'object'\n | 'array'\n | 'null';\n\nexport const JSON_SCHEMA_7_TYPES: IJsonSchema7TypeName[] = [\n 'string'\n , 'number'\n , 'integer'\n , 'boolean'\n , 'object'\n , 'array'\n , 'null'\n];\n\n\nexport function hasClassInDefinition(name: string, def: IJsonSchema7) {\n return def && def.definitions && def.definitions[name];\n}\n\nexport function hasClassPropertiesInDefinition(name: string, def: IJsonSchema7) {\n return hasClassInDefinition(name, def) && (def.definitions[name] as IJsonSchema7).properties;\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/JsonSchema7Serializer.ts"],"names":[],"mappings":"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","file":"JsonSchema7Serializer.js","sourcesContent":["import {\n defaults,\n get,\n has,\n isEmpty,\n isFunction,\n isNull,\n isString,\n isUndefined,\n keys,\n set,\n snakeCase,\n uniqBy\n} from 'lodash';\nimport {ClassUtils, NotSupportedError} from '@allgemein/base';\nimport {IJsonSchema7, IJsonSchema7Definition, IJsonSchema7TypeName, JSON_SCHEMA_7_TYPES} from './JsonSchema7';\nimport {\n DEFAULT_KEY_TO_SKIP,\n K_PATTERN_PROPERTY, METATYPE_NAMESPACE,\n METATYPE_PROPERTY,\n T_ARRAY,\n T_BOOLEAN,\n T_OBJECT,\n T_STRING\n} from '../Constants';\nimport {IClassRef, isClassRef} from '../../api/IClassRef';\nimport {SchemaUtils} from '../SchemaUtils';\nimport {IPropertyRef} from '../../api/IPropertyRef';\nimport {IJsonSchemaSerializer} from './IJsonSchemaSerializer';\nimport {IEntityRef, isEntityRef} from '../../api/IEntityRef';\nimport {IJsonSchemaSerializeOptions} from './IJsonSchemaSerializeOptions';\nimport {C_ONLY_DECORATED, DRAFT_07} from './Constants';\nimport {MetadataRegistry} from '../registry/MetadataRegistry';\nimport {IEntityOptions} from '../options/IEntityOptions';\nimport {IPropertyOptions} from '../options/IPropertyOptions';\nimport {getReflectedType, setDefaultArray} from \"./functions\";\nimport {getClassName} from \"../functions\";\n\n\nexport class JsonSchema7Serializer implements IJsonSchemaSerializer {\n\n options: IJsonSchemaSerializeOptions;\n\n data: IJsonSchema7;\n\n current: string;\n\n constructor(opts: IJsonSchemaSerializeOptions) {\n this.options = opts || {};\n defaults(this.options, <IJsonSchemaSerializeOptions>{\n keysToSkip: DEFAULT_KEY_TO_SKIP,\n ignoreUnknownType: false,\n defaultTypeHint: T_STRING,\n [C_ONLY_DECORATED]: false,\n postProcess: (src, dst, serializer) => {\n if (src && src.metaType === METATYPE_PROPERTY && has(dst, 'cardinality')) {\n const cardinality = dst['cardinality'];\n delete dst['cardinality'];\n // TODO handle value corretly minItem/maxItem when item!\n if (cardinality === 0) {\n\n } else {\n //delete dst['cardinality'];\n }\n }\n }\n });\n this.data = this.getOrCreateSchemaDefinitions();\n }\n\n\n uri(): string {\n return `http://json-schema.org/${DRAFT_07}/schema`;\n }\n\n\n private isCurrentClass(x: string) {\n return snakeCase(this.current) === snakeCase(x);\n }\n\n\n serialize(klass: IClassRef | IEntityRef | Function | object): IJsonSchema7 {\n if (isFunction(klass)) {\n this.current = ClassUtils.getClassName(klass);\n this.describeClass(klass);\n } else if (isClassRef(klass)) {\n this.current = klass.name;\n this.describeClassRef(klass);\n } else if (isEntityRef(klass)) {\n this.current = klass.name;\n this.describeEntityRef(klass);\n } else {\n throw new NotSupportedError('class or function can\\'t be used');\n }\n return this.getJsonSchema();\n }\n\n\n getJsonSchema() {\n return this.data;\n }\n\n\n private getOrCreateSchemaDefinitions(schema?: IJsonSchema7) {\n if (!schema) {\n schema = {\n $schema: this.uri() + '#',\n definitions: {}\n };\n } else if (schema && !schema.definitions) {\n schema.definitions = {};\n }\n return schema;\n }\n\n\n private getOrCreateRoot(entityName: string, klass: Function | IClassRef | IEntityRef) {\n if (this.data.definitions[entityName]) {\n // definition is present and\n this.applyRef(entityName);\n return null;\n }\n\n const className = getClassName(klass);\n const appendTarget = this.isAppendTargetSet();\n const root: IJsonSchema7Definition = this.data.definitions[entityName] = {\n title: className ? className : entityName,\n type: T_OBJECT,\n };\n if (isEntityRef(klass)) {\n // when an entity mark with $id!\n root.$id = '#' + klass.name;\n } else if (isClassRef(klass) && klass.hasEntityRef()) {\n root.$id = '#' + klass.getEntityRef().name;\n }\n\n if ((isEntityRef(klass) || isClassRef(klass))) {\n if (get(this.options, 'appendNamespace', false)) {\n set(root, '$' + METATYPE_NAMESPACE, klass.getRegistry().getLookupRegistry().getNamespace());\n }\n const data = klass.getOptions();\n this.appendAdditionalOptions(root, data);\n }\n\n if (appendTarget) {\n root.$target = SchemaUtils.getFunction(klass);\n }\n\n this.applyRef(entityName);\n if (this.options.postProcess) {\n this.options.postProcess(klass, root, this);\n }\n return root;\n }\n\n\n applyRef(className: string) {\n if (!this.data.$ref && !this.data.anyOf) {\n this.data.$ref = '#/definitions/' + className;\n } else if (this.data.$ref && !this.data.anyOf) {\n if (this.isCurrentClass(className)) {\n this.data.anyOf = [\n {$ref: this.data.$ref},\n {$ref: '#/definitions/' + className}\n ];\n delete this.data['$ref'];\n }\n } else if (!this.data.$ref && this.data.anyOf) {\n if (this.isCurrentClass(className)) {\n this.data.anyOf.push({$ref: '#/definitions/' + className});\n }\n }\n\n if (this.data.anyOf) {\n this.data.anyOf = uniqBy(this.data.anyOf, x => JSON.stringify(x));\n }\n }\n\n\n describeEntityRef(klass: IEntityRef): IJsonSchema7 {\n return this.describeRef(klass);\n }\n\n\n describeClassRef(klass: IClassRef): IJsonSchema7 {\n return this.describeRef(klass);\n }\n\n\n private describeRef(klass: IEntityRef | IClassRef): IJsonSchema7 {\n const clsRef = isEntityRef(klass) ? klass.getClassRef() : klass;\n const className = isEntityRef(klass) ? klass.name : clsRef.name;\n\n const root = this.getOrCreateRoot(className, klass);\n if (!root) {\n return null;\n }\n\n const rootProps = this.describePropertiesForRef(clsRef);\n this.appendProperties(root, rootProps);\n\n const proto = clsRef.getExtend();\n if (proto) {\n this.describeInheritedClass(root, proto);\n }\n return root;\n }\n\n\n describeInheritedClass(root: IJsonSchema7, proto: IClassRef) {\n const inheritedClassName = proto.name;\n root.allOf = [{$ref: '#/definitions/' + inheritedClassName}];\n if (!this.data.definitions[inheritedClassName]) {\n const inheritedClass = this.getOrCreateRoot(inheritedClassName, proto);\n const props = this.describePropertiesForRef(proto);\n this.appendProperties(inheritedClass, props);\n }\n }\n\n\n describeClass(klass: Function): IJsonSchema7 {\n const className = ClassUtils.getClassName(klass);\n\n const root = this.getOrCreateRoot(className, klass);\n if (!root) {\n return null;\n }\n\n const rootProps = this.describePropertiesForFunction(klass);\n this.appendProperties(root, rootProps);\n const proto = SchemaUtils.getInherited(klass);\n if (proto) {\n const inheritedClassName = ClassUtils.getClassName(proto);\n root.allOf = [{$ref: '#/definitions/' + inheritedClassName}];\n if (this.data && !this.data.definitions[inheritedClassName]) {\n const inheritedClass = this.getOrCreateRoot(inheritedClassName, proto);\n const props = this.describePropertiesForFunction(proto);\n this.appendProperties(inheritedClass, props);\n }\n }\n return root;\n }\n\n appendProperties(data: any, properties: { [k: string]: IJsonSchema7Definition }) {\n data.properties = {};\n for (const k of keys(properties)) {\n const p = properties[k];\n if (p[K_PATTERN_PROPERTY]) {\n if (!data.patternProperties) {\n data.patternProperties = {};\n }\n data.patternProperties[k] = p;\n } else {\n data.properties[k] = p;\n }\n delete p[K_PATTERN_PROPERTY];\n }\n }\n\n\n describePropertiesForFunction(klass: Function) {\n const properties: { [k: string]: IJsonSchema7Definition } = {};\n let _properties: (string | symbol)[] = [];\n let instance = null;\n try {\n instance = Reflect.construct(klass, []);\n _properties = Reflect.ownKeys(instance);\n } catch (e) {\n }\n\n for (const p of _properties) {\n if (isString(p)) {\n if (!get(this.options, C_ONLY_DECORATED, false) && this.allowed(p, klass)) {\n const result = this.describePropertyForFunction(klass, p, instance);\n properties[p] = result;\n }\n }\n }\n return properties;\n }\n\n\n describePropertiesForRef(klass: IClassRef) {\n const properties: { [k: string]: IJsonSchema7Definition } = {};\n for (const prop of klass.getPropertyRefs()) {\n if (this.allowed(prop)) {\n const result = this.describePropertyForRef(klass, prop);\n if (result) {\n properties[prop.name] = result;\n }\n }\n }\n\n const instance = klass.create<object>(false);\n // TODO own key\n const _properties = Reflect.ownKeys(instance);\n for (const p of _properties) {\n if (isString(p) && !has(properties, p)) {\n if (!get(this.options, C_ONLY_DECORATED, false)) {\n const result = this.describePropertyForFunction(klass, p, instance);\n if (result) {\n properties[p] = result;\n }\n }\n } else if (isString(p) && has(properties, p)) {\n const value = instance[p];\n if (!isNull(value) || !isUndefined(value)) {\n // add default value if exists\n (properties[p] as any).default = SchemaUtils.normValue(value);\n }\n }\n }\n return properties;\n }\n\n\n isAppendTargetSet() {\n return get(this.options, 'appendTarget', false);\n }\n\n\n describePropertyForFunction(klass: Function | IClassRef, propertyName: string, instance?: any): IJsonSchema7Definition {\n const clazz = isClassRef(klass) ? klass.getClass() : klass;\n const propMeta: IJsonSchema7Definition = {};\n\n // check if property is object\n let value = instance ? instance[propertyName] : undefined;\n let typeHint: any = typeof value;\n const reflectMetadataType = getReflectedType(clazz, propertyName);\n if (this.options.typeHint && isFunction(this.options.typeHint)) {\n typeHint = this.options.typeHint(klass, propertyName, instance, value);\n } else {\n if (typeHint === T_OBJECT) {\n if (reflectMetadataType && reflectMetadataType !== T_OBJECT) {\n typeHint = reflectMetadataType;\n } else {\n if (value === null || value === undefined) {\n typeHint = this.getDefaultTypeHint();\n } else if (value === false || value === true) {\n typeHint = T_BOOLEAN;\n } else {\n typeHint = Reflect.getPrototypeOf(value)?.constructor;\n if (typeHint && typeHint.name) {\n if (typeHint.name === Object.name) {\n typeHint = T_OBJECT;\n } else if (typeHint.name === Array.name) {\n typeHint = T_ARRAY;\n }\n } else {\n typeHint = this.getDefaultTypeHint();\n }\n }\n }\n }\n }\n\n let target = null;\n if (typeHint) {\n if (isString(typeHint)) {\n propMeta.type = typeHint as IJsonSchema7TypeName;\n if (propMeta.type === T_ARRAY) {\n setDefaultArray(propMeta);\n }\n } else if (isFunction(typeHint)) {\n if (typeHint === Date) {\n // propMeta.type = 'date' as any;\n propMeta.type = T_STRING;\n propMeta.format = 'date-time';\n } else {\n const name = ClassUtils.getClassName(typeHint);\n if (name === '' || name === Function.name) {\n // Function passing the parameter type\n // propMeta.$target = typeHint();\n target = typeHint();\n } else {\n // propMeta.$target = typeHint as Function;\n target = typeHint as Function;\n }\n\n // maybe follow the object here\n if (target.name === Array.name) {\n setDefaultArray(propMeta);\n } else {\n propMeta.type = T_OBJECT;\n }\n }\n }\n }\n\n\n if (!propMeta.type || (isString(propMeta.type) && isEmpty(propMeta.type))) {\n if (reflectMetadataType) {\n const className = ClassUtils.getClassName(reflectMetadataType);\n if (JSON_SCHEMA_7_TYPES.includes(className.toLowerCase() as any)) {\n propMeta.type = className.toLowerCase() as IJsonSchema7TypeName;\n } else if (className === Array.name) {\n setDefaultArray(propMeta);\n } else {\n propMeta.type = T_OBJECT;\n target = reflectMetadataType;\n }\n } else {\n // not reflection data\n propMeta.type = this.getDefaultTypeHint();\n }\n }\n\n if (target) {\n if (this.isAppendTargetSet()) {\n propMeta.$target = target;\n }\n\n const className = ClassUtils.getClassName(target);\n let ref = '#/definitions/' + className;\n if (propMeta.type === T_ARRAY) {\n propMeta.items = {\n $ref: ref\n };\n } else {\n propMeta['$ref'] = ref;\n delete propMeta['type'];\n }\n if (this.data && !this.data.definitions[className]) {\n this.describeClass(target);\n }\n }\n\n if (!(isUndefined(value) || isNull(value))) {\n propMeta.default = SchemaUtils.normValue(value);\n }\n\n this.propertyPostproces(propMeta);\n const data = MetadataRegistry.$().find(METATYPE_PROPERTY, (x: any) => x.target === clazz && x.propertyName === propertyName);\n this.appendAdditionalOptions(propMeta, data);\n return propMeta;\n }\n\n\n appendAdditionalOptions(propMeta: any, data: IEntityOptions | IPropertyOptions) {\n if (data && keys(data).length > 0) {\n const metaType = data.metaType;\n if (metaType === METATYPE_PROPERTY) {\n if (isClassRef(data.type) || isEntityRef(data.type)) {\n // if reference ignore adding\n if (get(this.options, 'deleteReferenceKeys', true)) {\n return;\n }\n }\n }\n\n const _keys = keys(data);\n for (const k of _keys) {\n if (this.options.keysToSkip.includes(k)) {\n continue;\n }\n if (!propMeta[k] || get(this.options, 'allowKeyOverride', false)) {\n propMeta[k] = data[k];\n }\n }\n }\n }\n\n\n /**\n * General handle to check allow options method\n *\n * @param entry\n */\n allowed(entry: IPropertyRef | string, klass?: any) {\n if (this.options && this.options.allowedProperty && isFunction(this.options.allowedProperty)) {\n return this.options.allowedProperty(entry, klass);\n }\n return true;\n }\n\n\n describePropertyForRef(klass: IClassRef, property: IPropertyRef): IJsonSchema7Definition {\n const propMeta: IJsonSchema7Definition = {};\n if (property.isCollection()) {\n setDefaultArray(propMeta);\n if (property.isReference()) {\n this.describeTargetRef(property, propMeta, 'collection');\n } else {\n const normedType = this.getNormedType(property);\n propMeta.items = {\n type: normedType as any\n };\n this.propertyPostproces(propMeta.items);\n }\n } else {\n propMeta.type = T_OBJECT;\n if (property.isReference()) {\n this.describeTargetRef(property, propMeta, 'single');\n } else {\n const normedType = this.getNormedType(property);\n propMeta.type = normedType as any;\n this.propertyPostproces(propMeta);\n }\n }\n\n const data = property.getOptions();\n this.appendAdditionalOptions(propMeta, data);\n // pass data pattern property for later correct selection\n if (data[K_PATTERN_PROPERTY]) {\n (propMeta as any)[K_PATTERN_PROPERTY] = true;\n }\n if (this.options.postProcess) {\n this.options.postProcess(property, propMeta, this);\n }\n return propMeta;\n }\n\n\n describeTargetRef(property: IPropertyRef, propMeta: any, mode: 'collection' | 'single') {\n let targetRef: any = property.getTargetRef();\n if (get(this.options, 'deleteReferenceKeys', true)) {\n keys(propMeta).map(k => delete propMeta[k]);\n } else {\n this.options.keysToSkip.map(x => delete propMeta[x]);\n }\n\n if (targetRef.hasEntityRef()) {\n targetRef = targetRef.getEntityRef();\n if (mode === 'collection') {\n propMeta.type = T_ARRAY;\n propMeta.items = {$ref: '#/definitions/' + targetRef.name};\n } else {\n propMeta.$ref = '#/definitions/' + targetRef.name;\n }\n if (this.data && !this.data.definitions[targetRef.name]) {\n this.describeEntityRef(targetRef);\n }\n } else {\n if (mode === 'collection') {\n propMeta.type = T_ARRAY;\n propMeta.items = {$ref: '#/definitions/' + targetRef.name};\n } else {\n propMeta.$ref = '#/definitions/' + targetRef.name;\n }\n if (this.data && !this.data.definitions[targetRef.name]) {\n this.describeClassRef(targetRef);\n }\n }\n }\n\n propertyPostproces(opt: IJsonSchema7) {\n if ((opt.type as any) === 'date') {\n opt.type = T_STRING;\n opt.format = 'date-time';\n }\n }\n\n\n getNormedType(property: IPropertyRef) {\n let retType = null;\n const type = property.getType();\n if (this.options.typeConversion) {\n retType = this.options.typeConversion(type, property);\n }\n\n if (!retType) {\n retType = isFunction(type) ? type.name.toLowerCase() : type;\n }\n\n return retType;\n }\n\n\n getDefaultTypeHint() {\n return this.options && this.options.defaultTypeHint ? this.options.defaultTypeHint as any : T_STRING;\n }\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/JsonSchema7Unserializer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAegB;AAIhB,2CAAqC;AAErC,6CAAwC;AACxC,iEAA4D;AAC5D,4CAUsB;AACtB,qDAA6D;AAE7D,0CAAqC;AACrC,0CAA0E;AAC1E,mEAA8D;AAC9D,mDAAkE;AAGlE,gDAA2C;AAG3C,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAEhH,MAAa,uBAAuB;IAgBlC,YAAY,IAAmC;QAd/C,YAAO,GAAW,oBAAQ,CAAC;QAM3B,cAAS,GAAgB,EAAE,CAAC;QAE5B,YAAO,GAAkC,EAAE,CAAC;QAE5C,cAAS,GAAyB,EAAE,CAAC;QAErC,WAAM,GAA2D,EAAE,CAAC;QAGlE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,GAAG;QACD,OAAO,0BAA0B,oBAAQ,SAAS,CAAC;IACrD,CAAC;IAGK,WAAW,CAAC,IAAS;;YACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,MAAM,MAAM,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,GAAQ,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC;YACnC,kCAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC7B,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;oBACxB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxC,QAAQ,GAAG,EAAE;oBACX,KAAK,YAAY;wBACf,OAAO,IAAI,CAAC,SAAS,CAAC;oBACxB,KAAK,aAAa;wBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;oBACjF;wBACE,OAAO,IAAI,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;OAGG;IACH,YAAY;QACV,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAA,YAAG,EAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,6BAAiB,CAAC,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa,IAAI;QAC3B,OAAO,iCAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;OASG;IACK,cAAc,CAAC,GAAW,EAAE,IAAkB,EAAE,UAAyB,EAAE;QACjF,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,OAAO,EAAE,UAAU,EAAE,2BAAe,CAAC,CAAC;QACvD,IAAI,GAAG,GAAQ,IAAI,CAAC;QACpB,IAAI,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACjD,GAAG,GAAG,EAAE,CAAC;YACT,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;SACtB;QAED,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACvE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACrF,IAAI,OAAO,EAAE;gBACX,GAAG,GAAG,IAAA,eAAM,EAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAGD,WAAW,CAAC,SAA4B,EAAE,SAAkB;QAC1D,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACjC;QACD,OAAO,mBAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAGK,KAAK,CAAC,IAAkB,EAAE,UAAyB,IAAI;;YAC3D,IAAI,GAAG,GAAwD,IAAI,CAAC;YACpE,IAAI,IAAI,CAAC,IAAI,EAAE;gBAEb,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAQ,EAAE;oBAC1B,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAChD,IAAI,GAAG,EAAE;wBACP,IAAI,OAAO,CAAC,IAAI,EAAE;4BAChB,8BAA8B;4BAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;4BACnC,OAAO,OAAO,CAAC,IAAI,CAAC;yBACrB;wBAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;4BAC5B,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;yBAC3D;wBACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;4BACnC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;4BACzB,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;yBAClE;qBACF;iBACF;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;iBACxD;aAEF;iBAAM,IAAI,IAAI,CAAC,IAAI,EAAE;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aACrC;iBAAM,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBACvC,uBAAuB;gBACvB,GAAG,GAAG,EAAE,CAAC;gBACT,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;oBACjC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAe,EAAE,OAAO,CAA6B,CAAC,CAAC;iBAClF;aACF;iBAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAA,aAAI,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClE,iCAAiC;aAClC;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;aAC3G;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAEK,QAAQ,CAAC,IAAS,EAAE,OAAsB;;YAC9C,SAAS;YACT,IAAI,GAAG,GAAG,IAAI,CAAC;YACf,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC;iBAAM;gBACL,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtD;gBACD,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACnC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAGD,iBAAiB,CAAC,IAAY;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAA,aAAI,EAAC,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,KAAK,YAAY,IAAI,IAAA,qBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/C,MAAM,MAAM,GAAG,IAAA,aAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,YAAG,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChE,IAAI,MAAM,EAAE;oBACV,OAAO,CAAC,CAAC;iBACV;aACF;SACF;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAGK,SAAS,CAAC,IAAY,EAAE,IAAkB;;YAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAErC,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,GAAG,EAAE,CAAC;aACb;YAED,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;gBACjB,SAAS;gBACT,IAAI,IAAA,gBAAO,EAAC,MAAM,CAAC,EAAE;oBACnB,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACxC;yBAAM;wBACL,OAAO,IAAI,CAAC;qBACb;iBACF;qBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC7B,mBAAmB;oBACnB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBACvD,MAAM,KAAK,GAAG,IAAA,YAAG,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;oBAC1C,IAAI,KAAK,EAAE;wBACT,OAAO,KAAK,CAAC;qBACd;iBACF;qBAAM;oBACL,mBAAmB;oBACnB,MAAM,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC;oBAC/B,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;wBAC1B,OAAO,IAAI,CAAC;qBACb;yBAAM;wBACL,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;wBAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;4BAChB,KAAK,MAAM,CAAC,IAAI,IAAA,aAAI,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;gCAClC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAiB,CAAC;gCAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE;oCACrC,OAAO,CAAC,CAAC;iCACV;6BACF;yBACF;qBACF;iBACF;aACF;iBAAM;gBACL,mBAAmB;gBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAC,CAAC,CAAC;iBAC9E;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aACzD;YACD,wBAAwB;YACxB,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;QACvC,CAAC;KAAA;IAGK,eAAe,CAAC,QAAgC,EAAE,UAA8D,EAAE,UAAyB,IAAI;;YACnJ,MAAM,SAAS,GAAG,IAAA,wBAAW,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5E,MAAM,aAAa,GAAG,IAAA,aAAI,EAAC,UAAU,CAAC,CAAC;YACvC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;gBACxC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;aACtF;QACH,CAAC;KAAA;IAGK,aAAa,CAAC,QAAgC,EAAE,YAAoB,EAAE,IAA4B,EAAE,UAAyB,IAAI;;YACrI,MAAM,SAAS,GAAG,IAAA,wBAAW,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAE5E,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,EAAE;iBACzC,IAAI,CAAC,6BAAiB,EACrB,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAiB,CAAC;YAEnG,MAAM,WAAW,GAAqB;gBACpC,QAAQ,EAAE,6BAAiB;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,yBAAyB;gBACzB,IAAI,EAAE,oBAAQ;aACf,CAAC;YACF,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,WAAW,CAAC,8BAAkB,CAAC,GAAG,IAAI,CAAC;aACxC;YAED,IAAI,IAAA,qBAAY,EAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,YAAY,GAAkB;oBAClC,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,SAAS;oBACpB,YAAY,EAAE,YAAY;oBAC1B,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,UAAU;oBACpB,8CAA8C;iBAC/C,CAAC;gBACF,MAAM,WAAW,GAAG,IAAoB,CAAC;gBACzC,IAAI,cAAc,GAAG,EAAE,CAAC;gBACxB,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;gBACvH,IAAA,eAAM,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBACpC,IAAI,WAAW,CAAC,IAAI,EAAE;oBACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBACxD,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC;oBACvB,IAAI,OAAO,CAAC,SAAS,EAAE;wBACrB,WAAW,CAAC,8BAAkB,CAAC,GAAG,IAAI,CAAC;qBACxC;iBACF;qBAAM,IAAI,WAAW,CAAC,IAAI,EAAE;oBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;iBAC5D;aACF;iBAAM;gBACL,UAAU;gBACV,MAAM,IAAI,wBAAiB,CAAC,kDAAkD,CAAC,CAAC;aACjF;YAED,IAAI,CAAC,YAAY,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,0BAA0B,EAAE,KAAK,CAAC,EAAE;gBACzE,kCAAkC;gBAClC,OAAO,WAAW,CAAC,UAAU,CAAC;gBAC9B,IAAI;oBACF,SAAS,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,6BAAiB,EAAE,WAAW,CAAC,CAAC;iBAChE;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC,CAAA;iBACnD;aACF;iBAAM,IAAI,YAAY,EAAE;gBACvB,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;aACtC;QAEH,CAAC;KAAA;IAGD,aAAa,CAAC,WAAgB;QAC5B,OAAO,IAAA,YAAG,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,oBAAoB,CAAC,WAAgB;QACnC,OAAO,IAAA,YAAG,EAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC/C,CAAC;IAEK,OAAO,CAAC,WAAyB,EAAE,WAA6B,EAAE,OAAsB;;YAC5F,IAAI,IAAI,GAAG,WAAW,CAAC,IAAc,CAAC;YACtC,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,EAAE;gBAClB,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;aAC3B;YACD,QAAQ,IAAI,EAAE;gBACZ,KAAK,oBAAQ;oBACX,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBAC3C,IAAA,eAAM,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC;oBACzB,MAAM;gBACR,KAAK,SAAS;oBACZ,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC;oBAC7B,MAAM;gBACR,KAAK,SAAS;oBACZ,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;oBAC5B,MAAM;gBACR,KAAK,QAAQ;oBACX,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;oBAC5B,MAAM;gBACR,KAAK,oBAAQ;oBACX,WAAW,CAAC,IAAI,GAAG,oBAAQ,CAAC;oBAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE;wBAC7E,WAAW,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACR,KAAK,mBAAO;oBACV,cAAc;oBACd,IAAI,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAAE;wBAChD,WAAW,CAAC,WAAW,GAAG;4BACxB,GAAG,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;4BACpC,GAAG,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;yBACrC,CAAC;qBACH;yBAAM;wBACL,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;qBAC7B;oBAED,IAAI,WAAW,CAAC,KAAK,EAAE;wBAErB,IAAI,IAAA,gBAAO,EAAC,WAAW,CAAC,KAAK,CAAC,EAAE;4BAC9B,MAAM,IAAI,wBAAiB,CAAC,yCAAyC,CAAC,CAAC;yBACxE;6BAAM,IAAI,IAAA,qBAAY,EAAC,WAAW,CAAC,KAAK,CAAC,EAAE;4BAC1C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;4BACvB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAqB,CAAC;4BAChD,IAAI,KAAK,CAAC,IAAI,EAAE;gCACd,WAAW,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAqB,EAAE,OAAO,CAAC,CAAC;6BACrE;iCAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAQ,EAAE;gCAClC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gCAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;oCACjE,WAAW,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAqB,EAAE,OAAO,CAAC,CAAC;iCACrE;6BACF;iCAAM;gCACL,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;6BAC/B;4BACD,IAAI,OAAO,CAAC,SAAS,EAAE;gCACrB,WAAW,CAAC,8BAAkB,CAAC,GAAG,IAAI,CAAC;6BACxC;yBACF;qBACF;oBACD,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,IAAI,wBAAiB,CAAC,0CAA0C,CAAC,CAAC;aAC3E;QACH,CAAC;KAAA;IAGD,YAAY,CAAC,WAAgB;QAC3B,MAAM,WAAW,GAAQ,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,GAAG,oBAAQ,CAAC;QAC5B,uBAAuB;QACvB,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YACxC,QAAQ,WAAW,CAAC,MAAM,EAAE;gBAC1B,KAAK,WAAW;oBACd,gBAAgB;oBAChB,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC1B,MAAM;gBACR,KAAK,MAAM;oBACT,gBAAgB;oBAChB,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC1B,MAAM;aACT;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAGK,aAAa,CAAC,QAAmB,EAAE,IAAkB,EAAE,GAAsB;;YACjF,IAAI,IAAA,YAAG,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,IAAA,gBAAO,EAAC,MAAM,CAAC,EAAE;oBACnB,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE;wBACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAA4B,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAc,CAAC;wBAC5F,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;qBAC5B;iBACF;qBAAM;oBACL,MAAM,IAAI,wBAAiB,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAC;iBACjE;aACF;QACH,CAAC;KAAA;IAGK,eAAe,CAAC,IAAkB,EAAE,UAAyB,IAAI;;YACrE,IAAI,GAAG,GAA2B,IAAI,CAAC;YAEvC,MAAM,EAAE,GAAG,IAAA,YAAG,EAAC,IAAI,EAAE,KAAK,EAAE,IAAA,YAAG,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,QAAQ,GAAkB,OAAO,CAAC,MAAM,IAAI,CAAC,IAAA,gBAAO,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,2BAAe,CAAC,CAAC,CAAC,8BAAkB,CAAC;YAEpG,MAAM,KAAK,GAAG,IAAA,YAAG,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAEvC,4BAA4B;YAC5B,MAAM,SAAS,GAAG,CAAC,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC5D,IAAA,YAAG,EAAC,IAAI,EAAE,GAAG,GAAG,8BAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAEjF,iFAAiF;YACjF,IAAI,QAAQ,GAAc,IAAI,CAAC;YAC/B,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,EAAE;gBACX,IAAI,OAAO,CAAC,SAAS,EAAE;oBACrB,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;iBAC/B;gBACD,IAAI,OAAO,CAAC,GAAG,EAAE;oBACf,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;oBACvB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;iBAC9B;aACF;YAED,uCAAuC;YACvC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE;oBAC7D,SAAS,GAAG,IAAA,mBAAU,EAAC,IAAA,kBAAS,EAAC,KAAK,CAAC,CAAC,CAAC;iBAC1C;aACF;YAED,IAAI,UAAU,GAAG,QAAQ,KAAK,2BAAe,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,IAAI,CAAC,SAAS,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAA,IAAI,OAAO,CAAC,YAAY,EAAE;gBAC7D,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;oBAC5C,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,mBAAU,EAAC,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACxG;qBAAM;oBACL,SAAS,GAAG,IAAA,mBAAU,EAAC,IAAA,kBAAS,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;iBACzD;gBACD,4EAA4E;gBAC5E,UAAU,GAAG,SAAS,CAAC;aACxB;YAED,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE;gBAC1B,MAAM,EAAE,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxG,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aAC5C;YAED,IAAI,CAAC,QAAQ,EAAE;gBACb,QAAQ,GAAG,8BAAkB,CAAC;gBAC9B,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAW,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,CAAC;aACtE;YAED,yBAAyB;YACzB,KAAK,MAAM,WAAW,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;gBAC5C,IAAI,IAAA,YAAG,EAAC,IAAI,EAAE,WAAW,CAAC,EAAE;oBAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAkB,CAAC,CAAC;iBAC9D;aACF;YAED,IAAI,QAAQ,EAAE;gBACZ,2BAA2B;gBAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE;oBAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/B;gBAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,UAAU,GAAmB;oBACjC,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;oBAC9B,MAAM,EAAE,KAAK;iBACd,CAAC;gBAEF,MAAM,gBAAgB,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC;gBACxC,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACrC,gBAAgB,CAAC,GAAG,GAAG,QAAQ,CAAC;gBAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;gBAErE,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;gBAErC,IAAI,aAAa,GAAG,mCAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;gBACrG,IAAI,aAAa,EAAE;oBACjB,iBAAiB;oBACjB,IAAA,eAAM,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;iBACnC;qBAAM;oBACL,aAAa,GAAG,UAAU,CAAC;oBAC3B,UAAU,CAAC,QAAQ,GAAG,8BAAkB,CAAC;oBACzC,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;oBAC9C,QAAQ,CAAC,UAAU,CAAC,IAAA,iBAAQ,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;iBAC5D;gBAED,IAAI,QAAQ,KAAK,2BAAe,EAAE;oBAChC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;oBAClG,IAAI,CAAC,GAAG,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,CAAC,EAAE;wBAC9D,IAAI;4BACF,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;yBACnE;wBAAC,OAAO,CAAC,EAAE;4BACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC,CAAA;yBACnD;qBACF;iBACF;qBAAM;oBACL,GAAG,GAAG,QAAQ,CAAC;iBAChB;aAEF;iBAAM;gBACL,MAAM,IAAI,6BAAsB,EAAE,CAAC;aACpC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAGD,iBAAiB,CAAC,IAAkB,EAClB,gBAAqB,EACrB,QAAkB,EAClB,gBAA+B;QAC/C,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,gBAAgB,EAAE,UAAU,EAAE,2BAAe,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAA,aAAI,EAAC,IAAI,CAAC,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1B,SAAS;aACV;YACD,IAAI,KAAK,IAAI,IAAA,qBAAY,EAAC,KAAK,CAAC,EAAE;gBAChC,gBAAgB,GAAG,IAAA,eAAM,EAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;aACpD;SACF;QACD,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACvE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAA,oBAAW,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,gBAAgB,GAAG,IAAA,eAAM,EAAC,gBAAgB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;aACpH;SACF;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,mBAAmB,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC;CAEF;AAhiBD,0DAgiBC","file":"JsonSchema7Unserializer.js","sourcesContent":["import {\n assign,\n camelCase,\n clone,\n defaults,\n get,\n has,\n isArray,\n isEmpty,\n isNull,\n isObjectLike,\n isString,\n isUndefined,\n keys,\n upperFirst\n} from 'lodash';\nimport {IJsonSchema7, IJsonSchema7Definition} from './JsonSchema7';\nimport {IClassRef} from '../../api/IClassRef';\nimport {IJsonSchemaUnserializeOptions} from './IJsonSchemaUnserializeOptions';\nimport {DRAFT_07} from './Constants';\nimport {IJsonSchemaUnserializer} from './IJsonSchemaUnserializer';\nimport {JsonSchema} from './JsonSchema';\nimport {RegistryFactory} from '../registry/RegistryFactory';\nimport {\n DEFAULT_NAMESPACE,\n K_PATTERN_PROPERTY,\n METADATA_TYPE,\n METATYPE_CLASS_REF,\n METATYPE_ENTITY, METATYPE_NAMESPACE,\n METATYPE_PROPERTY,\n T_ARRAY,\n T_OBJECT,\n T_STRING\n} from '../Constants';\nimport {IEntityRef, isEntityRef} from '../../api/IEntityRef';\nimport {IEntityOptions} from '../options/IEntityOptions';\nimport {ClassRef} from '../ClassRef';\nimport {NotSupportedError, NotYetImplementedError} from '@allgemein/base';\nimport {MetadataRegistry} from '../registry/MetadataRegistry';\nimport {IParseOptions, PARSE_OPTIONS_KEYS} from './IParseOptions';\nimport {IPropertyOptions} from '../options/IPropertyOptions';\nimport {IAbstractOptions} from '../options/IAbstractOptions';\nimport {SchemaUtils} from '../SchemaUtils';\nimport {IPropertyRef} from '../../api/IPropertyRef';\n\nconst skipKeys = ['$id', 'id', 'title', 'type', 'properties', 'allOf', 'anyOf', '$schema', 'patternProperties'];\n\nexport class JsonSchema7Unserializer implements IJsonSchemaUnserializer {\n\n version: string = DRAFT_07;\n\n options: IJsonSchemaUnserializeOptions;\n\n data: IJsonSchema7;\n\n classRefs: IClassRef[] = [];\n\n fetched: { [k: string]: IJsonSchema7 } = {};\n\n reference: { [k: string]: any } = {};\n\n issues: { msg: string, level: 'error' | 'warning' | 'info' }[] = [];\n\n constructor(opts: IJsonSchemaUnserializeOptions) {\n this.options = opts;\n }\n\n uri(): string {\n return `http://json-schema.org/${DRAFT_07}/schema`;\n }\n\n\n async unserialize(data: any): Promise<IClassRef | IEntityRef | (IClassRef | IEntityRef)[]> {\n this.data = data;\n const isRoot = get(this.options, 'rootAsEntity', true);\n const opts: any = {isRoot: isRoot};\n PARSE_OPTIONS_KEYS.forEach(x => {\n if (has(this.options, x)) {\n opts[x] = this.options[x];\n }\n });\n\n const ret = this.options.return ? this.options.return : 'default';\n return this.parse(data, opts).then(refs => {\n switch (ret) {\n case 'class-refs':\n return this.classRefs;\n case 'entity-refs':\n return this.classRefs.filter(x => x.hasEntityRef()).map(x => x.getEntityRef());\n default:\n return refs;\n }\n });\n }\n\n /**\n * Return namespace if set in passed options or if used in json-schema object.\n * If no match return default namespace\n */\n getNamespace() {\n return get(this.options, 'namespace', get(this.data, 'namespace', DEFAULT_NAMESPACE));\n }\n\n /**\n * Get registry containing elements\n */\n getRegistry(ns: string = null) {\n return RegistryFactory.get(ns ? ns : this.getNamespace());\n }\n\n\n getIssues() {\n return this.issues;\n }\n\n /**\n * If collectors are defined use them before default\n *\n *\n * @param type\n * @param key\n * @param data\n * @param options\n * @private\n */\n private collectOptions(key: string, data: IJsonSchema7, options: IParseOptions = {}) {\n const type = get(options, 'metaType', METATYPE_ENTITY);\n let ret: any = null;\n if (!isUndefined(data[key]) || !isNull(data[key])) {\n ret = {};\n ret[key] = data[key];\n }\n\n if (has(this.options, 'collector') && this.options.collector.length > 0) {\n const methods = this.options.collector.filter(x => x.type === type && x.key === key);\n if (methods) {\n ret = assign(ret, ...methods.map(e => e.fn.apply(null, [key, data, options])));\n }\n }\n return ret;\n }\n\n\n getClassRef(className: string | Function, namespace?: string) {\n if (!namespace) {\n namespace = this.getNamespace();\n }\n return ClassRef.get(className, namespace);\n }\n\n\n async parse(data: IJsonSchema7, options: IParseOptions = null): Promise<IClassRef | IEntityRef | (IClassRef | IEntityRef)[]> {\n let ret: IClassRef | IEntityRef | (IClassRef | IEntityRef)[] = null;\n if (data.type) {\n\n if (data.type === T_OBJECT) {\n ret = await this.parseTypeObject(data, options);\n if (ret) {\n if (options.$ref) {\n // finish reference if waiting\n this.reference[options.$ref] = ret;\n delete options.$ref;\n }\n\n if (this.hasProperties(data)) {\n await this.parseProperties(ret, data.properties, options);\n }\n if (this.hasPatternProperties(data)) {\n options.isPattern = true;\n await this.parseProperties(ret, data.patternProperties, options);\n }\n }\n } else {\n throw new Error('type is not supported at this place');\n }\n\n } else if (data.$ref) {\n return this.parseRef(data, options);\n } else if (data.anyOf && options.isRoot) {\n // loading multi schema\n ret = [];\n for (const anyEntry of data.anyOf) {\n ret.push(await this.parse(anyEntry as any, options) as (IClassRef | IEntityRef));\n }\n } else if (data.definitions && keys(data.definitions).length === 0) {\n // doing nothing no entries found\n } else {\n throw new Error('no valid schema element for further parse, key with name type or $ref must be present.');\n }\n return ret;\n }\n\n async parseRef(data: any, options: IParseOptions) {\n // refers\n let ret = null;\n if (has(this.reference, data.$ref)) {\n ret = this.reference[data.$ref];\n } else {\n const res = await this.followRef(data.$ref, this.data);\n const opts = clone(options);\n opts.$ref = data.$ref;\n if (!opts.className) {\n opts.className = this.getClassNameFromRef(data.$ref);\n }\n ret = await this.parse(res, opts);\n }\n return ret;\n }\n\n\n getDefinitionsKey(data: object) {\n for (const k of keys(data)) {\n if (k !== 'properties' && isObjectLike(data[k])) {\n const exists = keys(data[k]).find(x => has(data[k][x], 'type'));\n if (exists) {\n return k;\n }\n }\n }\n return 'definition';\n }\n\n\n async followRef($ref: string, data: IJsonSchema7): Promise<any> {\n let [addr, anchor] = $ref.split('#');\n\n if (!anchor) {\n anchor = '';\n }\n\n if (isEmpty(addr)) {\n // local\n if (isEmpty(anchor)) {\n if (data.$ref) {\n return this.followRef(data.$ref, data);\n } else {\n return data;\n }\n } else if (/^\\//.test(anchor)) {\n // starts with path\n const dottedPath = anchor.substr(1).replace(/\\//, '.');\n const entry = get(data, dottedPath, null);\n if (entry) {\n return entry;\n }\n } else {\n // refs to local id\n const refHashed = '#' + anchor;\n if (data.$id === refHashed) {\n return data;\n } else {\n const defKey = this.getDefinitionsKey(data);\n if (data[defKey]) {\n for (const k of keys(data[defKey])) {\n const x = data[defKey][k] as IJsonSchema7;\n if (x && x.$id && x.$id === refHashed) {\n return x;\n }\n }\n }\n }\n }\n } else {\n // remote fetch url\n if (!this.fetched[addr]) {\n this.fetched[addr] = await JsonSchema.request(addr, {cwd: this.options.cwd});\n }\n return this.followRef('#' + anchor, this.fetched[addr]);\n }\n // TODO create exception\n throw new Error($ref + ' not found');\n }\n\n\n async parseProperties(classRef: IClassRef | IEntityRef, properties: { [propertyName: string]: IJsonSchema7Definition }, options: IParseOptions = null) {\n const _classRef = isEntityRef(classRef) ? classRef.getClassRef() : classRef;\n const propertyNames = keys(properties);\n for (const propertyName of propertyNames) {\n await this.parseProperty(_classRef, propertyName, properties[propertyName], options);\n }\n }\n\n\n async parseProperty(classRef: IClassRef | IEntityRef, propertyName: string, data: IJsonSchema7Definition, options: IParseOptions = null) {\n const _classRef = isEntityRef(classRef) ? classRef.getClassRef() : classRef;\n\n const propRefExits = _classRef.getRegistry()\n .find(METATYPE_PROPERTY,\n (x: IPropertyRef) => x.getClassRef() === _classRef && x.name === propertyName) as IPropertyRef;\n\n const propOptions: IPropertyOptions = {\n metaType: METATYPE_PROPERTY,\n propertyName: propertyName,\n target: _classRef.getClass(true),\n // default type is object\n type: T_OBJECT,\n };\n if (options.isPattern) {\n propOptions[K_PATTERN_PROPERTY] = true;\n }\n\n if (isObjectLike(data)) {\n const parseOptions: IParseOptions = {\n isProperty: true,\n sourceRef: _classRef,\n propertyName: propertyName,\n isRoot: false,\n metaType: 'property',\n // isPattern: options.isPattern ? true : false\n };\n const dataPointer = data as IJsonSchema7;\n let collectOptions = {};\n collectOptions = this.collectAndProcess(dataPointer, collectOptions, ['type', '$ref', '$schema', '$id'], parseOptions);\n assign(propOptions, collectOptions);\n if (dataPointer.$ref) {\n const ref = await this.parse(dataPointer, parseOptions);\n propOptions.type = ref;\n if (options.isPattern) {\n propOptions[K_PATTERN_PROPERTY] = true;\n }\n } else if (dataPointer.type) {\n await this.onTypes(dataPointer, propOptions, parseOptions);\n }\n } else {\n // boolean\n throw new NotSupportedError('passed boolean value as definition not supported');\n }\n\n if (!propRefExits || get(this.options, 'forcePropertyRefCreation', false)) {\n // remove properties key if exists\n delete propOptions.properties;\n try {\n _classRef.getRegistry().create(METATYPE_PROPERTY, propOptions);\n } catch (e) {\n this.issues.push({msg: e.message, level: 'error'})\n }\n } else if (propRefExits) {\n propRefExits.setOptions(propOptions);\n }\n\n }\n\n\n hasProperties(datapointer: any) {\n return has(datapointer, 'properties');\n }\n\n hasPatternProperties(datapointer: any) {\n return has(datapointer, 'patternProperties');\n }\n\n async onTypes(dataPointer: IJsonSchema7, propOptions: IPropertyOptions, options: IParseOptions) {\n let type = dataPointer.type as string;\n if (isString(type)) {\n type = type.toLowerCase();\n }\n switch (type) {\n case T_STRING:\n const res = this.onTypeString(dataPointer);\n assign(propOptions, res);\n break;\n case 'boolean':\n propOptions.type = 'boolean';\n break;\n case 'integer':\n propOptions.type = 'number';\n break;\n case 'number':\n propOptions.type = 'number';\n break;\n case T_OBJECT:\n propOptions.type = T_OBJECT;\n if (this.hasProperties(dataPointer) || this.hasPatternProperties(dataPointer)) {\n propOptions.type = await this.parse(dataPointer, options);\n }\n break;\n case T_ARRAY:\n // check items\n if (dataPointer.minItems || dataPointer.maxItems) {\n propOptions.cardinality = {\n min: get(dataPointer, 'minItems', 0),\n max: get(dataPointer, 'maxItems', 0),\n };\n } else {\n propOptions.cardinality = 0;\n }\n\n if (dataPointer.items) {\n\n if (isArray(dataPointer.items)) {\n throw new NotSupportedError('tuple values for array is not supported');\n } else if (isObjectLike(dataPointer.items)) {\n options.asArray = true;\n const items = dataPointer.items as IJsonSchema7;\n if (items.$ref) {\n propOptions.type = await this.parse(items as IJsonSchema7, options);\n } else if (items.type === T_OBJECT) {\n propOptions.type = items.type;\n if (this.hasProperties(items) || this.hasPatternProperties(items)) {\n propOptions.type = await this.parse(items as IJsonSchema7, options);\n }\n } else {\n propOptions.type = items.type;\n }\n if (options.isPattern) {\n propOptions[K_PATTERN_PROPERTY] = true;\n }\n }\n }\n break;\n case 'null':\n throw new NotSupportedError('null value is not supported for property');\n }\n }\n\n\n onTypeString(dataPointer: any) {\n const propOptions: any = {};\n propOptions.type = T_STRING;\n // or date check format\n if (dataPointer.format) {\n propOptions.format = dataPointer.format;\n switch (dataPointer.format) {\n case 'date-time':\n // set date type\n propOptions.type = 'date';\n break;\n case 'date':\n // set date type\n propOptions.type = 'date';\n break;\n }\n }\n return propOptions;\n }\n\n\n async parseInherits(classRef: IClassRef, data: IJsonSchema7, key: 'allOf' | 'anyOf') {\n if (has(data, key)) {\n const values = data[key];\n if (isArray(values)) {\n for (const inheritEntry of values) {\n const extend = await this.parse(inheritEntry as IJsonSchema7, {isRoot: false}) as IClassRef;\n classRef.addExtend(extend);\n }\n } else {\n throw new NotSupportedError('only array is allowed for ' + key);\n }\n }\n }\n\n\n async parseTypeObject(data: IJsonSchema7, options: IParseOptions = null) {\n let ret: IClassRef | IEntityRef = null;\n\n const id = get(data, '$id', get(data, 'id', null));\n let metaType: METADATA_TYPE = options.isRoot || !isEmpty(id) ? METATYPE_ENTITY : METATYPE_CLASS_REF;\n\n const title = get(data, 'title', null);\n\n // get namespace or override\n const namespace = !get(this.options, 'skipNamespace', false) ?\n get(data, '$' + METATYPE_NAMESPACE, this.getNamespace()) : this.getNamespace();\n\n // check if class ref exists else create one or recreate if parse options are set\n let classRef: IClassRef = null;\n let className = null;\n if (options) {\n if (options.className) {\n className = options.className;\n }\n if (options.ref) {\n classRef = options.ref;\n className = options.ref.name;\n }\n }\n\n // title data override passed className\n if (title) {\n if (!className || !get(this.options, 'ignoreDeclared', false)) {\n className = upperFirst(camelCase(title));\n }\n }\n\n let entityName = metaType === METATYPE_ENTITY && id ? id.replace(/^#/, '') : className;\n if (!className && options?.isProperty && options.propertyName) {\n if (get(this.options, 'prependClass', false)) {\n className = [options.sourceRef.name, options.propertyName].map(x => upperFirst(camelCase(x))).join('');\n } else {\n className = upperFirst(camelCase(options.propertyName));\n }\n // pass property name as entity name if the object is declared as a property\n entityName = className;\n }\n\n if (className && !classRef) {\n const fn = get(this.options, 'forceClassRefCreation', false) ? SchemaUtils.clazz(className) : className;\n classRef = this.getClassRef(fn, namespace);\n }\n\n if (!classRef) {\n metaType = METATYPE_CLASS_REF;\n classRef = this.getClassRef(SchemaUtils.clazzAnonymous(), namespace);\n }\n\n // TODO check extentions!\n for (const inheritsKey of ['allOf', 'anyOf']) {\n if (has(data, inheritsKey)) {\n await this.parseInherits(classRef, data, inheritsKey as any);\n }\n }\n\n if (classRef) {\n // a named class ref exists\n if (!this.classRefs.find(x => x === classRef)) {\n this.classRefs.push(classRef);\n }\n\n const clazz = classRef.getClass(true);\n const refOptions: IEntityOptions = {\n name: entityName,\n namespace: this.getNamespace(),\n target: clazz\n };\n\n const collectorOptions = clone(options);\n collectorOptions.metaType = metaType;\n collectorOptions.ref = classRef;\n this.collectAndProcess(data, refOptions, skipKeys, collectorOptions);\n\n metaType = collectorOptions.metaType;\n\n let entityOptions = MetadataRegistry.$().find(metaType, (x: IAbstractOptions) => x.target === clazz);\n if (entityOptions) {\n // merge existing\n assign(entityOptions, refOptions);\n } else {\n entityOptions = refOptions;\n refOptions.metaType = METATYPE_CLASS_REF;\n const existingOptions = classRef.getOptions();\n classRef.setOptions(defaults(refOptions, existingOptions));\n }\n\n if (metaType === METATYPE_ENTITY) {\n ret = this.getRegistry(namespace).find(metaType, (x: IEntityRef) => x.getClassRef() === classRef);\n if (!ret || get(this.options, 'forceEntityRefCreation', false)) {\n try {\n ret = this.getRegistry(namespace).create(metaType, entityOptions);\n } catch (e) {\n this.issues.push({msg: e.message, level: 'error'})\n }\n }\n } else {\n ret = classRef;\n }\n\n } else {\n throw new NotYetImplementedError();\n }\n return ret;\n }\n\n\n collectAndProcess(data: IJsonSchema7,\n collectingObject: any,\n skipKeys: string[],\n collectorOptions: IParseOptions) {\n const type = get(collectorOptions, 'metaType', METATYPE_ENTITY);\n const _keys = keys(data);\n for (const key of _keys) {\n const entry = this.collectOptions(key, data, collectorOptions);\n if (skipKeys.includes(key)) {\n continue;\n }\n if (entry && isObjectLike(entry)) {\n collectingObject = assign(collectingObject, entry);\n }\n }\n if (has(this.options, 'collector') && this.options.collector.length > 0) {\n const methods = this.options.collector.filter(x => x.type === type && isUndefined(x.key));\n if (methods.length > 0) {\n collectingObject = assign(collectingObject, ...methods.map(e => e.fn.apply(null, [null, data, collectorOptions])));\n }\n }\n return collectingObject;\n }\n\n getClassNameFromRef(data: string) {\n return data.split(/#|\\//).pop();\n }\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/json-schema/functions.ts"],"names":[],"mappings":";;;AACA,mCAA8B;AAC9B,4CAAoE;AAGpE,SAAgB,eAAe,CAAC,MAAoB;IAClD,IAAA,eAAM,EAAC,MAAM,EAAE;QACb,IAAI,EAAE,mBAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,oBAAQ;SACf;KACF,CAAC,CAAC;AACL,CAAC;AAPD,0CAOC;AAED,SAAgB,gBAAgB,CAAC,KAAe,EAAE,YAAoB;IACpE,OAAO,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QACrC,OAAO,CAAC,WAAW,CAAC,+BAAmB,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAE9E,CAAC;AAJD,4CAIC","file":"functions.js","sourcesContent":["import {IJsonSchema7} from \"./JsonSchema7\";\nimport {assign} from \"lodash\";\nimport {REFLECT_DESIGN_TYPE, T_ARRAY, T_OBJECT} from \"../Constants\";\n\n\nexport function setDefaultArray(schema: IJsonSchema7) {\n assign(schema, {\n type: T_ARRAY,\n items: {\n type: T_OBJECT\n }\n });\n}\n\nexport function getReflectedType(clazz: Function, propertyName: string) {\n return Reflect && Reflect.getMetadata ?\n Reflect.getMetadata(REFLECT_DESIGN_TYPE, clazz, propertyName) : undefined;\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/options/IAbstractOptions.ts"],"names":[],"mappings":"","file":"IAbstractOptions.js","sourcesContent":["import {ClassType} from '../Constants';\nimport {IClassRef} from '../../api/IClassRef';\n\nexport interface IAbstractOptions {\n\n /**\n * target option\n */\n target?: Function | ClassType<any> | string;\n\n /**\n * metadata type of this options\n */\n metaType?: string;\n\n\n /**\n * namespace for this object\n */\n namespace?: string;\n\n\n /**\n * skip namespace check and pass value\n */\n skipNsCheck?: boolean;\n\n /**\n * if namespace is wrong then either throw error or ignore wrong entry\n */\n failedNsCheckMode?: 'throw' | 'ignore';\n\n /**\n * default key definitions\n */\n [k: string]: any;\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/options/IAttributeOptions.ts"],"names":[],"mappings":"","file":"IAttributeOptions.js","sourcesContent":["import {METADATA_TYPE} from '../Constants';\nimport {IAbstractOptions} from './IAbstractOptions';\n\nexport interface IAttributeOptions extends IAbstractOptions {\n targetTypes: (METADATA_TYPE | string)[];\n propertyName?: string;\n attributes: any;\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/options/IEntityOptions.ts"],"names":[],"mappings":"","file":"IEntityOptions.js","sourcesContent":["import {IAbstractOptions} from './IAbstractOptions';\nimport {INamedOptions} from \"./INamedOptions\";\n\nexport interface IEntityOptions extends IAbstractOptions, INamedOptions {\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/options/INamedOptions.ts"],"names":[],"mappings":"","file":"INamedOptions.js","sourcesContent":["/**\n * Interface for naming\n */\nexport interface INamedOptions {\n\n /**\n * Defined name for this entry\n */\n name?: string;\n\n /**\n * Set internal name for this entry for external source\n */\n internalName?: string;\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/options/IObjectOptions.ts"],"names":[],"mappings":"","file":"IObjectOptions.js","sourcesContent":["import {IAbstractOptions} from './IAbstractOptions';\nimport {INamedOptions} from \"./INamedOptions\";\n\nexport interface IObjectOptions extends IAbstractOptions, INamedOptions {\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/options/IPropertyOptions.ts"],"names":[],"mappings":"","file":"IPropertyOptions.js","sourcesContent":["import {JS_DATA_TYPES} from '../../lib/Constants';\nimport {IAbstractOptions} from './IAbstractOptions';\n\nexport interface IPropertyOptions extends IAbstractOptions {\n\n propertyName?: string;\n\n internalName?: string;\n\n appended?: boolean;\n\n cardinality?: number | { min: number, max: number };\n\n format?: string;\n\n type?: JS_DATA_TYPES | any;\n\n /**\n * Mark if value is representation of unique identifier\n */\n identifier?: boolean;\n\n /**\n * Generate automatically values for identifier\n */\n generated?: boolean;\n\n /**\n * Mark if property is a pattern property\n */\n pattern?: boolean;\n\n\n /**\n * Mark if property is an array\n */\n array?: boolean;\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/options/ISchemaOptions.ts"],"names":[],"mappings":"","file":"ISchemaOptions.js","sourcesContent":["import {IAbstractOptions} from './IAbstractOptions';\nimport {INamedOptions} from \"./INamedOptions\";\n\nexport interface ISchemaOptions extends IAbstractOptions, INamedOptions {\n\n /**\n * Inherited fromAn name of the schema must exists\n */\n name: string;\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/registry/AbstractRegistry.ts"],"names":[],"mappings":"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","file":"AbstractRegistry.js","sourcesContent":["import {snakeCase} from 'lodash';\nimport {METADATA_TYPE, METATYPE_ENTITY, METATYPE_PROPERTY} from './../Constants';\nimport {ILookupRegistry} from '../../api/ILookupRegistry';\nimport {IEntityRef} from '../../api/IEntityRef';\nimport {IClassRef} from '../../api/IClassRef';\nimport {IPropertyRef} from '../../api/IPropertyRef';\nimport {LookupRegistry} from '../LookupRegistry';\nimport {LockFactory, NotSupportedError, Semaphore} from '@allgemein/base';\nimport {ISchemaRef} from '../../api/ISchemaRef';\nimport {IRegistryOptions} from './IRegistryOptions';\n\n\n/**\n * Registry for metadata of classes and there properties\n */\nexport abstract class AbstractRegistry implements ILookupRegistry {\n\n protected readonly namespace: string;\n\n private _lock: Semaphore;\n\n readonly options: IRegistryOptions;\n\n\n constructor(namespace: string, options?: IRegistryOptions) {\n this.namespace = namespace;\n this.options = options || {};\n }\n\n\n get lock() {\n if (!this._lock) {\n this._lock = LockFactory.$().semaphore(1);\n }\n return this._lock;\n }\n\n\n ready(timeout?: number): Promise<boolean> {\n return this.lock.await(timeout).then(x => true).catch(x => false);\n }\n\n\n getOptions(): IRegistryOptions {\n return this.options;\n }\n\n\n /**\n * Return all registered schema references\n *\n * @param ref\n * @return ISchemaRef[]\n */\n getSchemaRefs<T extends ISchemaRef>(filter?: (x: ISchemaRef) => boolean): (T | ISchemaRef)[] {\n throw new NotSupportedError('');\n }\n\n /**\n * Return schema references for an given entity or class reference\n *\n * @param ref\n * @return ISchemaRef[]\n */\n getSchemaRefsFor<T extends ISchemaRef>(ref: string): T | ISchemaRef;\n getSchemaRefsFor<T extends ISchemaRef>(ref: string | IEntityRef | IClassRef): T | ISchemaRef | (T | ISchemaRef)[] {\n throw new NotSupportedError('');\n }\n\n /**\n * TODO\n *\n * @param filter\n */\n getEntityRefs<T extends IEntityRef>(filter?: (x: IEntityRef) => boolean): (T | IEntityRef)[] {\n return this.filter(METATYPE_ENTITY, filter);\n }\n\n /**\n * Can get get entity ref for function.\n *\n * @param fn\n */\n getEntityRefFor<T extends IEntityRef>(fn: string | object | Function, skipNsCheck: boolean = true): (T | IEntityRef) {\n throw new NotSupportedError('');\n }\n\n\n /**\n * Returns the used instance of lookup registry handler\n */\n getLookupRegistry(namespace: string = null): LookupRegistry {\n return LookupRegistry.$(namespace ? namespace : this.namespace);\n }\n\n /**\n * Method for returning class ref\n *\n * @param object\n * @param type\n */\n getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef {\n throw new NotSupportedError('');\n }\n\n /**\n * Returns property by name for a given class or entity ref\n *\n * @param filter\n */\n getPropertyRef<T extends IPropertyRef>(ref: IClassRef | IEntityRef, name: string): (T | IPropertyRef) {\n return this.getPropertyRefs<T>(ref).find(x => snakeCase(x.name) === snakeCase(name));\n }\n\n\n /**\n * Returns all properties for given class or entity ref\n *\n * @param ref\n */\n getPropertyRefs<T extends IPropertyRef>(ref: IClassRef | IEntityRef): (T | IPropertyRef)[] {\n throw new NotSupportedError('');\n }\n\n\n getPropertyRefsFor<T extends IPropertyRef>(fn: string | object | Function): (T | IPropertyRef)[] {\n throw new NotSupportedError('');\n }\n\n\n list<X>(type: METADATA_TYPE, filter?: (x: any) => boolean): X[] {\n return this.filter(type, filter);\n }\n\n\n listEntities(filter?: (x: IEntityRef) => boolean): IEntityRef[] {\n return this.getEntityRefs(filter);\n }\n\n\n listProperties(filter?: (x: IPropertyRef) => boolean): IPropertyRef[] {\n return this.filter(METATYPE_PROPERTY, filter);\n }\n\n\n create<T>(context: string, options: any): T {\n throw new NotSupportedError('');\n }\n\n /**\n * TODO\n */\n add<T>(context: string, entry: T, ns?: string): T {\n return this.getLookupRegistry(ns).add(context, entry);\n }\n\n\n /**\n * TODO\n */\n filter<T>(context: string, search: (x: any) => boolean, ns?: string): T[] {\n return this.getLookupRegistry(ns).filter(context, search);\n }\n\n /**\n * TODO\n */\n find<T>(context: string, search: any, ns?: string): T {\n return this.getLookupRegistry(ns).find(context, search);\n }\n\n /**\n * TODO\n */\n remove<T>(context: string, search: any, ns?: string): T[] {\n return this.getLookupRegistry(ns).remove(context, search);\n }\n\n /**\n * reset current registry\n */\n reset() {\n this.clear();\n }\n\n /**\n * Remove namespace from LookupRegistry and also remove semaphore lock if exists\n */\n clear() {\n if (this._lock) {\n LockFactory.$().remove(this._lock);\n }\n LookupRegistry.reset(this.namespace);\n }\n\n}\n"],"sourceRoot":"../.."}
|