@allgemein/schema-api 1.4.5 → 1.5.3

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.
Files changed (77) hide show
  1. package/api/ILookupRegistry.d.ts +1 -0
  2. package/api/ILookupRegistry.js +4 -4
  3. package/api/ILookupRegistry.js.map +1 -1
  4. package/decorators/Property.js +6 -6
  5. package/decorators/Property.js.map +1 -1
  6. package/decorators/PropertyOf.js +1 -1
  7. package/decorators/PropertyOf.js.map +1 -1
  8. package/decorators/validate/Hostname.js +3 -3
  9. package/decorators/validate/Hostname.js.map +1 -1
  10. package/decorators/validate/Ip4.js +3 -3
  11. package/decorators/validate/Ip4.js.map +1 -1
  12. package/decorators/validate/Ip6.js +3 -3
  13. package/decorators/validate/Ip6.js.map +1 -1
  14. package/decorators/validate/IsEmail.js +2 -2
  15. package/decorators/validate/IsEmail.js.map +1 -1
  16. package/decorators/validate/IsNotEmpty.js +5 -5
  17. package/decorators/validate/IsNotEmpty.js.map +1 -1
  18. package/decorators/validate/MaxLength.js +3 -3
  19. package/decorators/validate/MaxLength.js.map +1 -1
  20. package/decorators/validate/MinLength.js +3 -3
  21. package/decorators/validate/MinLength.js.map +1 -1
  22. package/decorators/validate/Regex.js +4 -4
  23. package/decorators/validate/Regex.js.map +1 -1
  24. package/decorators/validate/Required.js +3 -3
  25. package/decorators/validate/Required.js.map +1 -1
  26. package/lib/AbstractRef.js +9 -9
  27. package/lib/AbstractRef.js.map +1 -1
  28. package/lib/AnnotationsHelper.js +13 -13
  29. package/lib/AnnotationsHelper.js.map +1 -1
  30. package/lib/ClassRef.js +18 -18
  31. package/lib/ClassRef.js.map +1 -1
  32. package/lib/Constants.d.ts +5 -1
  33. package/lib/Constants.js +14 -2
  34. package/lib/Constants.js.map +1 -1
  35. package/lib/DataContainer.js +9 -9
  36. package/lib/DataContainer.js.map +1 -1
  37. package/lib/LookupRegistry.js +13 -13
  38. package/lib/LookupRegistry.js.map +1 -1
  39. package/lib/SchemaRef.js +2 -2
  40. package/lib/SchemaRef.js.map +1 -1
  41. package/lib/SchemaUtils.js +11 -11
  42. package/lib/SchemaUtils.js.map +1 -1
  43. package/lib/json-schema/IJsonSchemaSerializeOptions.d.ts +5 -0
  44. package/lib/json-schema/IJsonSchemaSerializeOptions.js.map +1 -1
  45. package/lib/json-schema/JsonSchema.js +6 -6
  46. package/lib/json-schema/JsonSchema.js.map +1 -1
  47. package/lib/json-schema/JsonSchema7Serializer.d.ts +1 -0
  48. package/lib/json-schema/JsonSchema7Serializer.js +46 -33
  49. package/lib/json-schema/JsonSchema7Serializer.js.map +1 -1
  50. package/lib/json-schema/JsonSchema7Unserializer.js +50 -50
  51. package/lib/json-schema/JsonSchema7Unserializer.js.map +1 -1
  52. package/lib/options/IPropertyOptions.d.ts +4 -0
  53. package/lib/options/IPropertyOptions.js.map +1 -1
  54. package/lib/registry/AbstractRegistry.d.ts +7 -1
  55. package/lib/registry/AbstractRegistry.js +10 -2
  56. package/lib/registry/AbstractRegistry.js.map +1 -1
  57. package/lib/registry/DefaultEntityRef.js +1 -1
  58. package/lib/registry/DefaultEntityRef.js.map +1 -1
  59. package/lib/registry/DefaultNamespacedRegistry.d.ts +16 -1
  60. package/lib/registry/DefaultNamespacedRegistry.js +165 -91
  61. package/lib/registry/DefaultNamespacedRegistry.js.map +1 -1
  62. package/lib/registry/DefaultPropertyRef.js +26 -20
  63. package/lib/registry/DefaultPropertyRef.js.map +1 -1
  64. package/lib/registry/IRegistryOptions.d.ts +8 -0
  65. package/lib/registry/IRegistryOptions.js +4 -0
  66. package/lib/registry/IRegistryOptions.js.map +1 -0
  67. package/lib/registry/MetadataRegistry.d.ts +14 -0
  68. package/lib/registry/MetadataRegistry.js +32 -18
  69. package/lib/registry/MetadataRegistry.js.map +1 -1
  70. package/lib/registry/RegistryFactory.d.ts +2 -1
  71. package/lib/registry/RegistryFactory.js +10 -10
  72. package/lib/registry/RegistryFactory.js.map +1 -1
  73. package/lib/validation/DefaultValidator.js +19 -19
  74. package/lib/validation/DefaultValidator.js.map +1 -1
  75. package/lib/validation/Validator.js +2 -2
  76. package/lib/validation/Validator.js.map +1 -1
  77. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/LookupRegistry.ts"],"names":[],"mappings":"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","file":"LookupRegistry.js","sourcesContent":["import {filter, find, has, isEmpty, keys, 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: any): T[] {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n return filter(this._entries[context], search);\n }\n\n find<T>(context: string, search: any): T {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n return find(this._entries[context], search);\n }\n\n\n /**\n * return lookup registry namespaces\n */\n static getRegistryNamespaces() {\n return keys(this.$self);\n }\n\n /**\n * return lookup registries\n */\n static getLookupRegistries() {\n return 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 = keys(this.$self);\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 = 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":".."}
1
+ {"version":3,"sources":["../../../src/lib/LookupRegistry.ts"],"names":[],"mappings":"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","file":"LookupRegistry.js","sourcesContent":["import {filter, find, has, isEmpty, keys, 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: any): T[] {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n return filter(this._entries[context], search);\n }\n\n find<T>(context: string, search: any): T {\n if (!has(this._entries, context)) {\n this._entries[context] = [];\n }\n return find(this._entries[context], search);\n }\n\n\n /**\n * return lookup registry namespaces\n */\n static getRegistryNamespaces() {\n return keys(this.$self);\n }\n\n /**\n * return lookup registries\n */\n static getLookupRegistries() {\n return 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 = keys(this.$self);\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 = 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 CHANGED
@@ -23,10 +23,10 @@ class SchemaRef extends AbstractRef_1.AbstractRef {
23
23
  return this.getRegistry()
24
24
  .find(Constants_1.METATYPE_ENTITY, (b) => {
25
25
  let schemaCheck = false;
26
- if (lodash_1.isString(value)) {
26
+ if ((0, lodash_1.isString)(value)) {
27
27
  schemaCheck = b.name === value || b.getClassRef().name === value;
28
28
  }
29
- else if (lodash_1.isFunction(value)) {
29
+ else if ((0, lodash_1.isFunction)(value)) {
30
30
  schemaCheck = b.getClass() === value;
31
31
  }
32
32
  if (schemaCheck) {
@@ -1 +1 @@
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,iBAAQ,CAAC,KAAK,CAAC,EAAE;gBACnB,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;aAClE;iBAAM,IAAI,mBAAU,CAAC,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":".."}
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":".."}
@@ -23,19 +23,19 @@ class SchemaUtils {
23
23
  *
24
24
  */
25
25
  static transform(entityRef, data, options = {}) {
26
- let object = entityRef.create(!lodash_1.isUndefined(options.skipClassNamespaceInfo) ? !options.skipClassNamespaceInfo : true);
26
+ let object = entityRef.create(!(0, lodash_1.isUndefined)(options.skipClassNamespaceInfo) ? !options.skipClassNamespaceInfo : true);
27
27
  if (options.beforeBuild) {
28
28
  options.beforeBuild(entityRef, data, object, options);
29
29
  }
30
- if (!lodash_1.get(options, Constants_1.OPT_CREAT_AND_COPY, false)) {
30
+ if (!(0, lodash_1.get)(options, Constants_1.OPT_CREAT_AND_COPY, false)) {
31
31
  for (let p of entityRef.getPropertyRefs()) {
32
- if ((lodash_1.isNull(data[p.name]) || lodash_1.isUndefined(data[p.name]))) {
32
+ if (((0, lodash_1.isNull)(data[p.name]) || (0, lodash_1.isUndefined)(data[p.name]))) {
33
33
  //object[p.name] = null;
34
34
  continue;
35
35
  }
36
36
  if (p.isReference()) {
37
37
  let ref = p.getTargetRef();
38
- if (p.isCollection() || lodash_1.isArray(data[p.name])) {
38
+ if (p.isCollection() || (0, lodash_1.isArray)(data[p.name])) {
39
39
  object[p.name] = [];
40
40
  for (let i = 0; i < data[p.name].length; i++) {
41
41
  object[p.name][i] = ref.build(data[p.name][i], options);
@@ -46,7 +46,7 @@ class SchemaUtils {
46
46
  }
47
47
  }
48
48
  else {
49
- if (p.isCollection() && (lodash_1.isArray(data[p.name]) || lodash_1.isSet(data[p.name]))) {
49
+ if (p.isCollection() && ((0, lodash_1.isArray)(data[p.name]) || (0, lodash_1.isSet)(data[p.name]))) {
50
50
  object[p.name] = [];
51
51
  for (let i = 0; i < data[p.name].length; i++) {
52
52
  let v = data[p.name][i];
@@ -58,7 +58,7 @@ class SchemaUtils {
58
58
  }
59
59
  }
60
60
  }
61
- else if (p.isCollection() && !(lodash_1.isArray(data[p.name]) || lodash_1.isSet(data[p.name]))) {
61
+ else if (p.isCollection() && !((0, lodash_1.isArray)(data[p.name]) || (0, lodash_1.isSet)(data[p.name]))) {
62
62
  throw new base_1.NotYetImplementedError();
63
63
  }
64
64
  else {
@@ -68,7 +68,7 @@ class SchemaUtils {
68
68
  }
69
69
  }
70
70
  else {
71
- lodash_1.assign(object, data);
71
+ (0, lodash_1.assign)(object, data);
72
72
  }
73
73
  if (options.afterBuild) {
74
74
  options.afterBuild(entityRef, data, object, options);
@@ -103,19 +103,19 @@ class SchemaUtils {
103
103
  */
104
104
  static getInherited(klass) {
105
105
  const proto = Reflect.getPrototypeOf(klass);
106
- if (proto.name && !lodash_1.isEmpty(proto.name) && proto.name !== Object.name && proto.name !== klass.name) {
106
+ if (proto.name && !(0, lodash_1.isEmpty)(proto.name) && proto.name !== Object.name && proto.name !== klass.name) {
107
107
  return proto;
108
108
  }
109
109
  return null;
110
110
  }
111
111
  static getFunction(klass) {
112
- if (IEntityRef_1.isEntityRef(klass)) {
112
+ if ((0, IEntityRef_1.isEntityRef)(klass)) {
113
113
  return klass.getClassRef().getClass(true);
114
114
  }
115
- else if (IClassRef_1.isClassRef(klass)) {
115
+ else if ((0, IClassRef_1.isClassRef)(klass)) {
116
116
  return klass.getClass(true);
117
117
  }
118
- else if (lodash_1.isFunction(klass)) {
118
+ else if ((0, lodash_1.isFunction)(klass)) {
119
119
  return klass;
120
120
  }
121
121
  throw new Error('no class found in ' + klass);
@@ -1 +1 @@
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":".."}
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":".."}
@@ -1,5 +1,6 @@
1
1
  import { IJsonSchemaSerializer } from './IJsonSchemaSerializer';
2
2
  import { ISerializeOptions } from '../serializer/ISerializeOptions';
3
+ import { IPropertyRef } from '../../api/IPropertyRef';
3
4
  export interface IJsonSchemaSerializeOptions extends ISerializeOptions {
4
5
  /**
5
6
  * Version of json schema
@@ -37,4 +38,8 @@ export interface IJsonSchemaSerializeOptions extends ISerializeOptions {
37
38
  * By default options of reference properties are removed, to pass them set this to 'false'.
38
39
  */
39
40
  deleteReferenceKeys?: boolean;
41
+ /**
42
+ * Passed method for type correction if necessary, else
43
+ */
44
+ typeConversion?: (type: any, property: IPropertyRef) => string | null;
40
45
  }
@@ -1 +1 @@
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';\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"],"sourceRoot":"../.."}
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';\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"],"sourceRoot":"../.."}
@@ -21,19 +21,19 @@ class JsonSchema {
21
21
  try {
22
22
  if (addr.startsWith('file:///')) {
23
23
  const buffer = yield base_1.PlatformUtils.readFile(addr.replace('file://', ''));
24
- const strValue = buffer.toString(lodash_1.get(opts, 'encoding', 'utf8'));
24
+ const strValue = buffer.toString((0, lodash_1.get)(opts, 'encoding', 'utf8'));
25
25
  return JSON.parse(strValue);
26
26
  }
27
27
  else if (addr.startsWith('.')) {
28
28
  const cwd = opts.cwd ? opts.cwd : process.cwd();
29
29
  const path = base_1.PlatformUtils.join(cwd, addr);
30
30
  const buffer = yield base_1.PlatformUtils.readFile(path);
31
- const strValue = buffer.toString(lodash_1.get(opts, 'encoding', 'utf8'));
31
+ const strValue = buffer.toString((0, lodash_1.get)(opts, 'encoding', 'utf8'));
32
32
  return JSON.parse(strValue);
33
33
  }
34
34
  else if (base_1.PlatformUtils.isAbsolute(addr)) {
35
35
  const buffer = yield base_1.PlatformUtils.readFile(addr);
36
- const strValue = buffer.toString(lodash_1.get(opts, 'encoding', 'utf8'));
36
+ const strValue = buffer.toString((0, lodash_1.get)(opts, 'encoding', 'utf8'));
37
37
  return JSON.parse(strValue);
38
38
  }
39
39
  else {
@@ -50,7 +50,7 @@ class JsonSchema {
50
50
  }
51
51
  static getSerializer(options = { version: Constants_1.DRAFT_07 }) {
52
52
  options = options || {};
53
- lodash_1.defaults(options, { version: Constants_1.DRAFT_07 });
53
+ (0, lodash_1.defaults)(options, { version: Constants_1.DRAFT_07 });
54
54
  switch (options.version) {
55
55
  case Constants_1.DRAFT_07:
56
56
  return new JsonSchema7Serializer_1.JsonSchema7Serializer(options);
@@ -59,7 +59,7 @@ class JsonSchema {
59
59
  }
60
60
  static getUnserializer(options = { version: Constants_1.DRAFT_07 }) {
61
61
  options = options || {};
62
- lodash_1.defaults(options, { version: Constants_1.DRAFT_07 });
62
+ (0, lodash_1.defaults)(options, { version: Constants_1.DRAFT_07 });
63
63
  switch (options.version) {
64
64
  case Constants_1.DRAFT_07:
65
65
  return new JsonSchema7Unserializer_1.JsonSchema7Unserializer(options);
@@ -79,7 +79,7 @@ class JsonSchema {
79
79
  }
80
80
  static detectSchemaVersion(schema, fallback = Constants_1.DRAFT_07) {
81
81
  if (schema['$schema']) {
82
- if (lodash_1.isString(schema['$schema'])) {
82
+ if ((0, lodash_1.isString)(schema['$schema'])) {
83
83
  const match = schema['$schema'].match(/json-schema.org\/(.*)\/schema/);
84
84
  if (match && match[1]) {
85
85
  return match[1];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/json-schema/JsonSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA+C;AAI/C,mEAA8D;AAG9D,2CAA6D;AAC7D,0CAA8C;AAC9C,uEAAkE;AAMlE,MAAa,UAAU;IAGrB,MAAM,CAAO,OAAO,CAAC,IAAY,EAAE,OAAY,EAAE;;YAC/C,IAAI;gBACF,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;oBAC/B,MAAM,MAAM,GAAG,MAAM,oBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;oBACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAG,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;oBAChE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAC7B;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;oBAChD,MAAM,IAAI,GAAG,oBAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC3C,MAAM,MAAM,GAAG,MAAM,oBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAG,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;oBAChE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAC7B;qBAAM,IAAI,oBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBACzC,MAAM,MAAM,GAAG,MAAM,oBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAG,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;oBAChE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAC7B;qBAAM;oBACL,MAAM,GAAG,GAAG,oBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACvC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAClC;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO,EAAE,CAAC;aACX;QAEH,CAAC;KAAA;IAGD,MAAM,CAAC,aAAa,CAAC,UAAuC,EAAC,OAAO,EAAE,oBAAQ,EAAC;QAC7E,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,iBAAQ,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,oBAAQ,EAAC,CAAC,CAAC;QACvC,QAAQ,OAAO,CAAC,OAAO,EAAE;YACvB,KAAK,oBAAQ;gBACX,OAAO,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,UAAyC,EAAC,OAAO,EAAE,oBAAQ,EAAC;QACjF,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,iBAAQ,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,oBAAQ,EAAC,CAAC,CAAC;QACvC,QAAQ,OAAO,CAAC,OAAO,EAAE;YACvB,KAAK,oBAAQ;gBACX,OAAO,IAAI,iDAAuB,CAAC,OAAO,CAAC,CAAC;SAC/C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,CAAC,SAAS,CAAC,KAAiD,EAAE,OAAqC;QACvG,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAGD,MAAM,CAAC,WAAW,CAAC,IAAS,EAAE,OAAuC;QACnE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAGD,MAAM,CAAC,mBAAmB,CAAC,MAAc,EAAE,WAAmB,oBAAQ;QACpE,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;YACrB,IAAI,iBAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACvE,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;oBACrB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;iBACjB;aACF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO;QACL,OAAO,kCAAsB,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,OAAqC;QACjD,OAAO,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe,CAAC,OAAuC;QACrD,OAAO,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,KAAiD,EAAE,OAAqC;QAChG,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,OAAuC;QAC/D,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CAGF;AArGD,gCAqGC","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
+ {"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":"../.."}
@@ -39,4 +39,5 @@ export declare class JsonSchema7Serializer implements IJsonSchemaSerializer {
39
39
  describePropertyForRef(klass: IClassRef, property: IPropertyRef): IJsonSchema7Definition;
40
40
  describeTargetRef(property: IPropertyRef, propMeta: any, mode: 'collection' | 'single'): void;
41
41
  propertyPostproces(opt: IJsonSchema7): void;
42
+ getNormedType(property: IPropertyRef): string | Function;
42
43
  }
@@ -13,10 +13,10 @@ const MetadataRegistry_1 = require("../registry/MetadataRegistry");
13
13
  class JsonSchema7Serializer {
14
14
  constructor(opts) {
15
15
  this.options = opts || {};
16
- lodash_1.defaults(this.options, {
16
+ (0, lodash_1.defaults)(this.options, {
17
17
  keysToSkip: Constants_1.DEFAULT_KEY_TO_SKIP,
18
18
  postProcess: (src, dst, serializer) => {
19
- if (src && src.metaType === Constants_1.METATYPE_PROPERTY && lodash_1.has(dst, 'cardinality')) {
19
+ if (src && src.metaType === Constants_1.METATYPE_PROPERTY && (0, lodash_1.has)(dst, 'cardinality')) {
20
20
  const cardinality = dst['cardinality'];
21
21
  delete dst['cardinality'];
22
22
  // TODO handle value corretly minItem/maxItem when item!
@@ -34,18 +34,18 @@ class JsonSchema7Serializer {
34
34
  return `http://json-schema.org/${Constants_2.DRAFT_07}/schema`;
35
35
  }
36
36
  isCurrentClass(x) {
37
- return lodash_1.snakeCase(this.current) === lodash_1.snakeCase(x);
37
+ return (0, lodash_1.snakeCase)(this.current) === (0, lodash_1.snakeCase)(x);
38
38
  }
39
39
  serialize(klass) {
40
- if (lodash_1.isFunction(klass)) {
40
+ if ((0, lodash_1.isFunction)(klass)) {
41
41
  this.current = base_1.ClassUtils.getClassName(klass);
42
42
  this.describeClass(klass);
43
43
  }
44
- else if (IClassRef_1.isClassRef(klass)) {
44
+ else if ((0, IClassRef_1.isClassRef)(klass)) {
45
45
  this.current = klass.name;
46
46
  this.describeClassRef(klass);
47
47
  }
48
- else if (IEntityRef_1.isEntityRef(klass)) {
48
+ else if ((0, IEntityRef_1.isEntityRef)(klass)) {
49
49
  this.current = klass.name;
50
50
  this.describeEntityRef(klass);
51
51
  }
@@ -80,14 +80,14 @@ class JsonSchema7Serializer {
80
80
  title: className,
81
81
  type: Constants_1.T_OBJECT,
82
82
  };
83
- if (IEntityRef_1.isEntityRef(klass)) {
83
+ if ((0, IEntityRef_1.isEntityRef)(klass)) {
84
84
  // when an entity mark with $id!
85
85
  root.$id = '#' + klass.name;
86
86
  }
87
- else if (IClassRef_1.isClassRef(klass) && klass.hasEntityRef()) {
87
+ else if ((0, IClassRef_1.isClassRef)(klass) && klass.hasEntityRef()) {
88
88
  root.$id = '#' + klass.getEntityRef().name;
89
89
  }
90
- if (IEntityRef_1.isEntityRef(klass) || IClassRef_1.isClassRef(klass)) {
90
+ if ((0, IEntityRef_1.isEntityRef)(klass) || (0, IClassRef_1.isClassRef)(klass)) {
91
91
  const data = klass.getOptions();
92
92
  this.appendAdditionalOptions(root, data);
93
93
  }
@@ -119,7 +119,7 @@ class JsonSchema7Serializer {
119
119
  }
120
120
  }
121
121
  if (this.data.anyOf) {
122
- this.data.anyOf = lodash_1.uniqBy(this.data.anyOf, x => JSON.stringify(x));
122
+ this.data.anyOf = (0, lodash_1.uniqBy)(this.data.anyOf, x => JSON.stringify(x));
123
123
  }
124
124
  }
125
125
  describeEntityRef(klass) {
@@ -129,8 +129,8 @@ class JsonSchema7Serializer {
129
129
  return this.describeRef(klass);
130
130
  }
131
131
  describeRef(klass) {
132
- const clsRef = IEntityRef_1.isEntityRef(klass) ? klass.getClassRef() : klass;
133
- const className = IEntityRef_1.isEntityRef(klass) ? klass.name : clsRef.name;
132
+ const clsRef = (0, IEntityRef_1.isEntityRef)(klass) ? klass.getClassRef() : klass;
133
+ const className = (0, IEntityRef_1.isEntityRef)(klass) ? klass.name : clsRef.name;
134
134
  // schema = this.getOrCreateSchemaDefinitions(schema);
135
135
  const root = this.getOrCreateRoot(className, klass);
136
136
  if (!root) {
@@ -175,7 +175,7 @@ class JsonSchema7Serializer {
175
175
  }
176
176
  appendProperties(data, properties) {
177
177
  data.properties = {};
178
- for (const k of lodash_1.keys(properties)) {
178
+ for (const k of (0, lodash_1.keys)(properties)) {
179
179
  const p = properties[k];
180
180
  if (p[Constants_1.K_PATTERN_PROPERTY]) {
181
181
  if (!data.patternProperties) {
@@ -194,7 +194,7 @@ class JsonSchema7Serializer {
194
194
  const instance = Reflect.construct(klass, []);
195
195
  const _properties = Reflect.ownKeys(instance);
196
196
  for (const p of _properties) {
197
- if (lodash_1.isString(p)) {
197
+ if ((0, lodash_1.isString)(p)) {
198
198
  const result = this.describePropertyForFunction(klass, p, instance);
199
199
  properties[p] = result;
200
200
  }
@@ -211,13 +211,13 @@ class JsonSchema7Serializer {
211
211
  // TODO own key
212
212
  const _properties = Reflect.ownKeys(instance);
213
213
  for (const p of _properties) {
214
- if (lodash_1.isString(p) && !lodash_1.has(properties, p)) {
214
+ if ((0, lodash_1.isString)(p) && !(0, lodash_1.has)(properties, p)) {
215
215
  const result = this.describePropertyForFunction(klass, p, instance);
216
216
  properties[p] = result;
217
217
  }
218
- else if (lodash_1.isString(p) && lodash_1.has(properties, p)) {
218
+ else if ((0, lodash_1.isString)(p) && (0, lodash_1.has)(properties, p)) {
219
219
  const value = instance[p];
220
- if (!lodash_1.isNull(value) || !lodash_1.isUndefined(value)) {
220
+ if (!(0, lodash_1.isNull)(value) || !(0, lodash_1.isUndefined)(value)) {
221
221
  // add default value if exists
222
222
  properties[p].default = SchemaUtils_1.SchemaUtils.normValue(value);
223
223
  }
@@ -226,11 +226,11 @@ class JsonSchema7Serializer {
226
226
  return properties;
227
227
  }
228
228
  isAppendTargetSet() {
229
- return lodash_1.get(this.options, 'appendTarget', false);
229
+ return (0, lodash_1.get)(this.options, 'appendTarget', false);
230
230
  }
231
231
  describePropertyForFunction(klass, propertyName, instance) {
232
232
  var _a;
233
- const clazz = IClassRef_1.isClassRef(klass) ? klass.getClass() : klass;
233
+ const clazz = (0, IClassRef_1.isClassRef)(klass) ? klass.getClass() : klass;
234
234
  const propMeta = {};
235
235
  // check if property is object
236
236
  let value = instance[propertyName];
@@ -246,13 +246,13 @@ class JsonSchema7Serializer {
246
246
  }
247
247
  let target = null;
248
248
  if (typeHint) {
249
- if (lodash_1.isString(typeHint)) {
249
+ if ((0, lodash_1.isString)(typeHint)) {
250
250
  propMeta.type = typeHint;
251
251
  if (propMeta.type === Constants_1.T_ARRAY) {
252
252
  this.setDefaultArray(propMeta);
253
253
  }
254
254
  }
255
- else if (lodash_1.isFunction(typeHint)) {
255
+ else if ((0, lodash_1.isFunction)(typeHint)) {
256
256
  if (typeHint === Date) {
257
257
  // propMeta.type = 'date' as any;
258
258
  propMeta.type = Constants_1.T_STRING;
@@ -279,7 +279,7 @@ class JsonSchema7Serializer {
279
279
  }
280
280
  }
281
281
  }
282
- if (!propMeta.type || (lodash_1.isString(propMeta.type) && lodash_1.isEmpty(propMeta.type))) {
282
+ if (!propMeta.type || ((0, lodash_1.isString)(propMeta.type) && (0, lodash_1.isEmpty)(propMeta.type))) {
283
283
  const reflectMetadataType = Reflect && Reflect.getMetadata ?
284
284
  Reflect.getMetadata(Constants_1.REFLECT_DESIGN_TYPE, clazz, propertyName) : undefined;
285
285
  if (reflectMetadataType) {
@@ -319,7 +319,7 @@ class JsonSchema7Serializer {
319
319
  this.describeClass(target);
320
320
  }
321
321
  }
322
- if (!lodash_1.isUndefined(value) || !lodash_1.isNull(value)) {
322
+ if (!(0, lodash_1.isUndefined)(value) || !(0, lodash_1.isNull)(value)) {
323
323
  propMeta.default = SchemaUtils_1.SchemaUtils.normValue(value);
324
324
  }
325
325
  this.propertyPostproces(propMeta);
@@ -328,29 +328,29 @@ class JsonSchema7Serializer {
328
328
  return propMeta;
329
329
  }
330
330
  appendAdditionalOptions(propMeta, data) {
331
- if (data && lodash_1.keys(data).length > 0) {
331
+ if (data && (0, lodash_1.keys)(data).length > 0) {
332
332
  const metaType = data.metaType;
333
333
  if (metaType === Constants_1.METATYPE_PROPERTY) {
334
- if (IClassRef_1.isClassRef(data.type) || IEntityRef_1.isEntityRef(data.type)) {
334
+ if ((0, IClassRef_1.isClassRef)(data.type) || (0, IEntityRef_1.isEntityRef)(data.type)) {
335
335
  // if reference ignore adding
336
- if (lodash_1.get(this.options, 'deleteReferenceKeys', true)) {
336
+ if ((0, lodash_1.get)(this.options, 'deleteReferenceKeys', true)) {
337
337
  return;
338
338
  }
339
339
  }
340
340
  }
341
- const _keys = lodash_1.keys(data);
341
+ const _keys = (0, lodash_1.keys)(data);
342
342
  for (const k of _keys) {
343
343
  if (this.options.keysToSkip.includes(k)) {
344
344
  continue;
345
345
  }
346
- if (!propMeta[k] || lodash_1.get(this.options, 'allowKeyOverride', false)) {
346
+ if (!propMeta[k] || (0, lodash_1.get)(this.options, 'allowKeyOverride', false)) {
347
347
  propMeta[k] = data[k];
348
348
  }
349
349
  }
350
350
  }
351
351
  }
352
352
  setDefaultArray(schema) {
353
- lodash_1.assign(schema, {
353
+ (0, lodash_1.assign)(schema, {
354
354
  type: Constants_1.T_ARRAY,
355
355
  items: {
356
356
  type: Constants_1.T_OBJECT
@@ -365,8 +365,9 @@ class JsonSchema7Serializer {
365
365
  this.describeTargetRef(property, propMeta, 'collection');
366
366
  }
367
367
  else {
368
+ const normedType = this.getNormedType(property);
368
369
  propMeta.items = {
369
- type: property.getType()
370
+ type: normedType
370
371
  };
371
372
  this.propertyPostproces(propMeta.items);
372
373
  }
@@ -377,7 +378,8 @@ class JsonSchema7Serializer {
377
378
  this.describeTargetRef(property, propMeta, 'single');
378
379
  }
379
380
  else {
380
- propMeta.type = property.getType();
381
+ const normedType = this.getNormedType(property);
382
+ propMeta.type = normedType;
381
383
  this.propertyPostproces(propMeta);
382
384
  }
383
385
  }
@@ -394,8 +396,8 @@ class JsonSchema7Serializer {
394
396
  }
395
397
  describeTargetRef(property, propMeta, mode) {
396
398
  let targetRef = property.getTargetRef();
397
- if (lodash_1.get(this.options, 'deleteReferenceKeys', true)) {
398
- lodash_1.keys(propMeta).map(k => delete propMeta[k]);
399
+ if ((0, lodash_1.get)(this.options, 'deleteReferenceKeys', true)) {
400
+ (0, lodash_1.keys)(propMeta).map(k => delete propMeta[k]);
399
401
  }
400
402
  else {
401
403
  this.options.keysToSkip.map(x => delete propMeta[x]);
@@ -432,6 +434,17 @@ class JsonSchema7Serializer {
432
434
  opt.format = 'date-time';
433
435
  }
434
436
  }
437
+ getNormedType(property) {
438
+ let retType = null;
439
+ const type = property.getType();
440
+ if (this.options.typeConversion) {
441
+ retType = this.options.typeConversion(type, property);
442
+ }
443
+ if (!retType) {
444
+ retType = (0, lodash_1.isFunction)(type) ? type.name.toLowerCase() : type;
445
+ }
446
+ return retType;
447
+ }
435
448
  }
436
449
  exports.JsonSchema7Serializer = JsonSchema7Serializer;
437
450