vue-types
Advanced tools
+4
-16
@@ -32,10 +32,4 @@ import { toType, toValidableType, validateType, fromType } from './utils'; | ||
| }; | ||
| readonly object: VueTypeValidableDef<{ | ||
| [key: string]: any; | ||
| }, import("./types").ValidatorFunction<{ | ||
| [key: string]: any; | ||
| }>> & { | ||
| default: () => { | ||
| [key: string]: any; | ||
| }; | ||
| readonly object: VueTypeValidableDef<Record<string, any>, import("./types").ValidatorFunction<Record<string, any>>> & { | ||
| default: () => Record<string, any>; | ||
| }; | ||
@@ -79,10 +73,4 @@ readonly integer: VueTypeDef<number> & { | ||
| }; | ||
| readonly object: VueTypeValidableDef<{ | ||
| [key: string]: any; | ||
| }, import("./types").ValidatorFunction<{ | ||
| [key: string]: any; | ||
| }>> & { | ||
| default: () => { | ||
| [key: string]: any; | ||
| }; | ||
| readonly object: VueTypeValidableDef<Record<string, any>, import("./types").ValidatorFunction<Record<string, any>>> & { | ||
| default: () => Record<string, any>; | ||
| }; | ||
@@ -89,0 +77,0 @@ readonly integer: VueTypeDef<number> & { |
+1
-1
@@ -54,3 +54,3 @@ import { config } from './config'; | ||
| }; | ||
| export declare function validateType<T, U>(type: T, value: U, silent?: boolean): string | boolean; | ||
| export declare function validateType<T, U>(_type: T, _value: U, _silent?: boolean): string | boolean; | ||
| declare const VueTypes_base: { | ||
@@ -57,0 +57,0 @@ new (): {}; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"shim.m.js","sources":["../src/sensibles.ts","../src/config.ts","../src/shim.ts"],"sourcesContent":["import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { isPlainObject } from 'is-plain-object'\nimport { typeDefaults } from './sensibles'\nimport { config } from './config'\nimport type { VueTypesDefaults } from './types'\nexport type { VueTypeDef, VueTypeValidableDef } from './types'\nconst dfn = Object.defineProperty\n\nconst isArray =\n Array.isArray ||\n function (value) {\n return Object.prototype.toString.call(value) === '[object Array]'\n }\n\nfunction type(name: string, props: any = {}, validable = false): any {\n const descriptors: PropertyDescriptorMap = {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n def: {\n value(this: any, v: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const t = this\n if (v === undefined) {\n if ('default' in this) {\n delete this.default\n }\n return this\n }\n if (isArray(v)) {\n t.default = () => [].concat(v as any)\n } else if (isPlainObject(v)) {\n t.default = () => Object.assign({}, v)\n } else {\n t.default = v\n }\n return t\n },\n },\n isRequired: {\n get(this: any) {\n this.required = true\n return this\n },\n },\n }\n\n if (validable) {\n ;(descriptors as any).validate = {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n value() {},\n }\n }\n if (!props.validator) {\n props.validator = () => true\n }\n\n return Object.defineProperties(props, descriptors)\n}\n\nexport { config }\n\ntype TypeShim = <T = any>(...args: any[]) => any\n\nexport const any: TypeShim = () => type('any', {}, true)\nexport const func: TypeShim = () => type('func', { type: Function }, true)\nexport const bool = () => type('bool', { type: Boolean }, true)\nexport const string: TypeShim = () => type('string', { type: String }, true)\nexport const number: TypeShim = () => type('number', { type: Number }, true)\nexport const array: TypeShim = () => type('array', { type: Array }, true)\nexport const object: TypeShim = () => type('object', { type: Object }, true)\nexport const symbol = () => type('symbol')\nexport const integer: TypeShim = () => type('integer', { type: Number })\nexport const oneOf: TypeShim = (a: any) => type('oneOf')\nexport const custom: TypeShim = (a: any) => type('custom')\nexport const instanceOf: TypeShim = (Constr: any) =>\n type('instanceOf', { type: Constr })\nexport const oneOfType: TypeShim = (a: any) => type('oneOfType')\nexport const arrayOf: TypeShim = (a: any) => type('arrayOf', { type: Array })\n\nexport const objectOf: TypeShim = (a: any) => type('objectOf', { type: Object })\nexport const shape: TypeShim = (a: any) =>\n dfn(type('shape', { type: Object }), 'loose', {\n get() {\n return this\n },\n })\nexport const nullable: TypeShim = () => ({\n type: null,\n})\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nfunction createValidator(\n root: any,\n name: string,\n props: any,\n getter = false,\n validable = false,\n) {\n const prop = getter ? 'get' : 'value'\n const descr = {\n [prop]: () =>\n type(name, Object.assign({}, props), validable).def(\n getter ? root.defaults[name] : undefined,\n ),\n }\n\n return dfn(root, name, descr)\n}\n\nexport function fromType(name: string, source: any, props: any = {}) {\n const t = type(name, Object.assign({}, source, props), !!source.validable)\n t.validator && delete t.validator\n return t\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toValidableType = <T>(name: string, props: any) =>\n type(name, props, true)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toType = <T>(name: string, props: any) => type(name, props)\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get symbol() {\n return symbol()\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get nullable() {\n return nullable()\n }\n static oneOf = oneOf\n static custom = custom\n static instanceOf = instanceOf\n static oneOfType = oneOfType\n static arrayOf = arrayOf\n static objectOf = objectOf\n static shape = shape\n static extend<T = any>(props: any): T {\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n const { name, validate, getter = false, type = null } = props\n // If we are inheriting from a custom type, let's ignore the type property\n const extType = isPlainObject(type) && type.type ? null : type\n return createValidator(this, name, { type: extType }, getter, !!validate)\n }\n static utils = {\n toType: type as (...args: any[]) => any,\n validate: (...args: any[]) => !!args,\n }\n })()\n\nexport function createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults = Object.assign({}, defs)\n\n static get sensibleDefaults() {\n return Object.assign({}, this.defaults)\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = Object.assign({}, defs)\n return\n }\n this.defaults = Object.assign({}, v)\n }\n }\n}\n\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n return true\n}\n\n/* eslint-disable no-console */\nif (process.env.NODE_ENV !== 'production') {\n config.silent === false &&\n console.warn(\n 'You are using the production shimmed version of VueTypes in a development build. Refer to https://dwightjack.github.io/vue-types/guide/installation.html#production-build to learn how to configure VueTypes for usage in multiple environments.',\n )\n}\n/* eslint-enable no-console */\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n"],"names":["config","silent","logLevel","dfn","Object","defineProperty","isArray","Array","value","prototype","toString","call","type","name","props","validable","descriptors","_vueTypes_name","writable","def","v","undefined","this","concat","isPlainObject","assign","isRequired","get","required","validate","validator","defineProperties","any","func","Function","bool","Boolean","string","String","number","Number","array","object","symbol","integer","oneOf","a","custom","instanceOf","Constr","oneOfType","arrayOf","objectOf","shape","nullable","createValidator","root","getter","_descr","descr","defaults","fromType","source","t","toValidableType","toType","BaseVueTypes","_BaseVueTypes","_createClass","extend","_this","forEach","p","_props$getter","_props$type","key","sensibleDefaults","utils","slice","arguments","createTypes","defs","_Class","_BaseVueTypes2","apply","_inheritsLoose","set","validateType","process","env","NODE_ENV","console","warn","VueTypes","_createTypes"],"mappings":"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"} | ||
| {"version":3,"file":"shim.m.js","sources":["../src/sensibles.ts","../src/config.ts","../src/shim.ts"],"sourcesContent":["import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { isPlainObject } from 'is-plain-object'\nimport { typeDefaults } from './sensibles'\nimport { config } from './config'\nimport type { VueTypesDefaults } from './types'\nexport type { VueTypeDef, VueTypeValidableDef } from './types'\nconst dfn = Object.defineProperty\n\nconst isArray =\n Array.isArray ||\n function (value) {\n return Object.prototype.toString.call(value) === '[object Array]'\n }\n\nfunction type(name: string, props: any = {}, validable = false): any {\n const descriptors: PropertyDescriptorMap = {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n def: {\n value(this: any, v: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const t = this\n if (v === undefined) {\n if ('default' in this) {\n delete this.default\n }\n return this\n }\n if (isArray(v)) {\n t.default = () => [].concat(v as any)\n } else if (isPlainObject(v)) {\n t.default = () => Object.assign({}, v)\n } else {\n t.default = v\n }\n return t\n },\n },\n isRequired: {\n get(this: any) {\n this.required = true\n return this\n },\n },\n }\n\n if (validable) {\n ;(descriptors as any).validate = {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n value() {},\n }\n }\n if (!props.validator) {\n props.validator = () => true\n }\n\n return Object.defineProperties(props, descriptors)\n}\n\nexport { config }\n\ntype TypeShim = <T = any>(...args: any[]) => any\n\nexport const any: TypeShim = () => type('any', {}, true)\nexport const func: TypeShim = () => type('func', { type: Function }, true)\nexport const bool = () => type('bool', { type: Boolean }, true)\nexport const string: TypeShim = () => type('string', { type: String }, true)\nexport const number: TypeShim = () => type('number', { type: Number }, true)\nexport const array: TypeShim = () => type('array', { type: Array }, true)\nexport const object: TypeShim = () => type('object', { type: Object }, true)\nexport const symbol = () => type('symbol')\nexport const integer: TypeShim = () => type('integer', { type: Number })\nexport const oneOf: TypeShim = (_a: any) => type('oneOf')\nexport const custom: TypeShim = (_a: any) => type('custom')\nexport const instanceOf: TypeShim = (Constr: any) =>\n type('instanceOf', { type: Constr })\nexport const oneOfType: TypeShim = (_a: any) => type('oneOfType')\nexport const arrayOf: TypeShim = (_a: any) => type('arrayOf', { type: Array })\n\nexport const objectOf: TypeShim = (_a: any) =>\n type('objectOf', { type: Object })\nexport const shape: TypeShim = (_a: any) =>\n dfn(type('shape', { type: Object }), 'loose', {\n get() {\n return this\n },\n })\nexport const nullable: TypeShim = () => ({\n type: null,\n})\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nfunction createValidator(\n root: any,\n name: string,\n props: any,\n getter = false,\n validable = false,\n) {\n const prop = getter ? 'get' : 'value'\n const descr = {\n [prop]: () =>\n type(name, Object.assign({}, props), validable).def(\n getter ? root.defaults[name] : undefined,\n ),\n }\n\n return dfn(root, name, descr)\n}\n\nexport function fromType(name: string, source: any, props: any = {}) {\n const t = type(name, Object.assign({}, source, props), !!source.validable)\n t.validator && delete t.validator\n return t\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toValidableType = <T>(name: string, props: any) =>\n type(name, props, true)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toType = <T>(name: string, props: any) => type(name, props)\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get symbol() {\n return symbol()\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get nullable() {\n return nullable()\n }\n static oneOf = oneOf\n static custom = custom\n static instanceOf = instanceOf\n static oneOfType = oneOfType\n static arrayOf = arrayOf\n static objectOf = objectOf\n static shape = shape\n static extend<T = any>(props: any): T {\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n const { name, validate, getter = false, type = null } = props\n // If we are inheriting from a custom type, let's ignore the type property\n const extType = isPlainObject(type) && type.type ? null : type\n return createValidator(this, name, { type: extType }, getter, !!validate)\n }\n static utils = {\n toType: type as (...args: any[]) => any,\n validate: (...args: any[]) => !!args,\n }\n })()\n\nexport function createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults = Object.assign({}, defs)\n\n static get sensibleDefaults() {\n return Object.assign({}, this.defaults)\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = Object.assign({}, defs)\n return\n }\n this.defaults = Object.assign({}, v)\n }\n }\n}\n\nexport function validateType<T, U>(\n _type: T,\n _value: U,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _silent = false,\n): string | boolean {\n return true\n}\n\nif (process.env.NODE_ENV !== 'production') {\n config.silent === false &&\n console.warn(\n 'You are using the production shimmed version of VueTypes in a development build. Refer to https://dwightjack.github.io/vue-types/guide/installation.html#production-build to learn how to configure VueTypes for usage in multiple environments.',\n )\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n"],"names":["config","silent","logLevel","dfn","Object","defineProperty","isArray","Array","value","prototype","toString","call","type","name","props","validable","descriptors","_vueTypes_name","writable","def","v","undefined","this","concat","isPlainObject","assign","isRequired","get","required","validate","validator","defineProperties","any","func","Function","bool","Boolean","string","String","number","Number","array","object","symbol","integer","oneOf","_a","custom","instanceOf","Constr","oneOfType","arrayOf","objectOf","shape","nullable","createValidator","root","getter","_descr","descr","defaults","fromType","source","t","toValidableType","toType","BaseVueTypes","_BaseVueTypes","_createClass","extend","_this","forEach","p","_props$getter","_props$type","key","sensibleDefaults","utils","slice","arguments","createTypes","defs","_Class","_BaseVueTypes2","apply","_inheritsLoose","set","validateType","_type","_value","_silent","process","env","NODE_ENV","console","warn","VueTypes","_createTypes"],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"shim.modern.js","sources":["../src/config.ts","../src/shim.ts","../src/sensibles.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { isPlainObject } from 'is-plain-object'\nimport { typeDefaults } from './sensibles'\nimport { config } from './config'\nimport type { VueTypesDefaults } from './types'\nexport type { VueTypeDef, VueTypeValidableDef } from './types'\nconst dfn = Object.defineProperty\n\nconst isArray =\n Array.isArray ||\n function (value) {\n return Object.prototype.toString.call(value) === '[object Array]'\n }\n\nfunction type(name: string, props: any = {}, validable = false): any {\n const descriptors: PropertyDescriptorMap = {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n def: {\n value(this: any, v: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const t = this\n if (v === undefined) {\n if ('default' in this) {\n delete this.default\n }\n return this\n }\n if (isArray(v)) {\n t.default = () => [].concat(v as any)\n } else if (isPlainObject(v)) {\n t.default = () => Object.assign({}, v)\n } else {\n t.default = v\n }\n return t\n },\n },\n isRequired: {\n get(this: any) {\n this.required = true\n return this\n },\n },\n }\n\n if (validable) {\n ;(descriptors as any).validate = {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n value() {},\n }\n }\n if (!props.validator) {\n props.validator = () => true\n }\n\n return Object.defineProperties(props, descriptors)\n}\n\nexport { config }\n\ntype TypeShim = <T = any>(...args: any[]) => any\n\nexport const any: TypeShim = () => type('any', {}, true)\nexport const func: TypeShim = () => type('func', { type: Function }, true)\nexport const bool = () => type('bool', { type: Boolean }, true)\nexport const string: TypeShim = () => type('string', { type: String }, true)\nexport const number: TypeShim = () => type('number', { type: Number }, true)\nexport const array: TypeShim = () => type('array', { type: Array }, true)\nexport const object: TypeShim = () => type('object', { type: Object }, true)\nexport const symbol = () => type('symbol')\nexport const integer: TypeShim = () => type('integer', { type: Number })\nexport const oneOf: TypeShim = (a: any) => type('oneOf')\nexport const custom: TypeShim = (a: any) => type('custom')\nexport const instanceOf: TypeShim = (Constr: any) =>\n type('instanceOf', { type: Constr })\nexport const oneOfType: TypeShim = (a: any) => type('oneOfType')\nexport const arrayOf: TypeShim = (a: any) => type('arrayOf', { type: Array })\n\nexport const objectOf: TypeShim = (a: any) => type('objectOf', { type: Object })\nexport const shape: TypeShim = (a: any) =>\n dfn(type('shape', { type: Object }), 'loose', {\n get() {\n return this\n },\n })\nexport const nullable: TypeShim = () => ({\n type: null,\n})\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nfunction createValidator(\n root: any,\n name: string,\n props: any,\n getter = false,\n validable = false,\n) {\n const prop = getter ? 'get' : 'value'\n const descr = {\n [prop]: () =>\n type(name, Object.assign({}, props), validable).def(\n getter ? root.defaults[name] : undefined,\n ),\n }\n\n return dfn(root, name, descr)\n}\n\nexport function fromType(name: string, source: any, props: any = {}) {\n const t = type(name, Object.assign({}, source, props), !!source.validable)\n t.validator && delete t.validator\n return t\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toValidableType = <T>(name: string, props: any) =>\n type(name, props, true)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toType = <T>(name: string, props: any) => type(name, props)\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get symbol() {\n return symbol()\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get nullable() {\n return nullable()\n }\n static oneOf = oneOf\n static custom = custom\n static instanceOf = instanceOf\n static oneOfType = oneOfType\n static arrayOf = arrayOf\n static objectOf = objectOf\n static shape = shape\n static extend<T = any>(props: any): T {\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n const { name, validate, getter = false, type = null } = props\n // If we are inheriting from a custom type, let's ignore the type property\n const extType = isPlainObject(type) && type.type ? null : type\n return createValidator(this, name, { type: extType }, getter, !!validate)\n }\n static utils = {\n toType: type as (...args: any[]) => any,\n validate: (...args: any[]) => !!args,\n }\n })()\n\nexport function createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults = Object.assign({}, defs)\n\n static get sensibleDefaults() {\n return Object.assign({}, this.defaults)\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = Object.assign({}, defs)\n return\n }\n this.defaults = Object.assign({}, v)\n }\n }\n}\n\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n return true\n}\n\n/* eslint-disable no-console */\nif (process.env.NODE_ENV !== 'production') {\n config.silent === false &&\n console.warn(\n 'You are using the production shimmed version of VueTypes in a development build. Refer to https://dwightjack.github.io/vue-types/guide/installation.html#production-build to learn how to configure VueTypes for usage in multiple environments.',\n )\n}\n/* eslint-enable no-console */\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n"],"names":["config","silent","logLevel","dfn","Object","defineProperty","isArray","Array","value","prototype","toString","call","type","name","props","validable","descriptors","_vueTypes_name","writable","def","v","undefined","this","default","concat","isPlainObject","assign","isRequired","get","required","validate","validator","defineProperties","any","func","Function","bool","Boolean","string","String","number","Number","array","object","symbol","integer","oneOf","a","custom","instanceOf","Constr","oneOfType","arrayOf","objectOf","shape","nullable","createValidator","root","getter","prop","defaults","fromType","source","t","toValidableType","toType","BaseVueTypes","_BaseVueTypes","extend","forEach","p","sensibleDefaults","utils","args","createTypes","defs","typeDefaults","_Class","validateType","process","env","NODE_ENV","console","warn","VueTypes"],"mappings":"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"} | ||
| {"version":3,"file":"shim.modern.js","sources":["../src/config.ts","../src/shim.ts","../src/sensibles.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { isPlainObject } from 'is-plain-object'\nimport { typeDefaults } from './sensibles'\nimport { config } from './config'\nimport type { VueTypesDefaults } from './types'\nexport type { VueTypeDef, VueTypeValidableDef } from './types'\nconst dfn = Object.defineProperty\n\nconst isArray =\n Array.isArray ||\n function (value) {\n return Object.prototype.toString.call(value) === '[object Array]'\n }\n\nfunction type(name: string, props: any = {}, validable = false): any {\n const descriptors: PropertyDescriptorMap = {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n def: {\n value(this: any, v: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const t = this\n if (v === undefined) {\n if ('default' in this) {\n delete this.default\n }\n return this\n }\n if (isArray(v)) {\n t.default = () => [].concat(v as any)\n } else if (isPlainObject(v)) {\n t.default = () => Object.assign({}, v)\n } else {\n t.default = v\n }\n return t\n },\n },\n isRequired: {\n get(this: any) {\n this.required = true\n return this\n },\n },\n }\n\n if (validable) {\n ;(descriptors as any).validate = {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n value() {},\n }\n }\n if (!props.validator) {\n props.validator = () => true\n }\n\n return Object.defineProperties(props, descriptors)\n}\n\nexport { config }\n\ntype TypeShim = <T = any>(...args: any[]) => any\n\nexport const any: TypeShim = () => type('any', {}, true)\nexport const func: TypeShim = () => type('func', { type: Function }, true)\nexport const bool = () => type('bool', { type: Boolean }, true)\nexport const string: TypeShim = () => type('string', { type: String }, true)\nexport const number: TypeShim = () => type('number', { type: Number }, true)\nexport const array: TypeShim = () => type('array', { type: Array }, true)\nexport const object: TypeShim = () => type('object', { type: Object }, true)\nexport const symbol = () => type('symbol')\nexport const integer: TypeShim = () => type('integer', { type: Number })\nexport const oneOf: TypeShim = (_a: any) => type('oneOf')\nexport const custom: TypeShim = (_a: any) => type('custom')\nexport const instanceOf: TypeShim = (Constr: any) =>\n type('instanceOf', { type: Constr })\nexport const oneOfType: TypeShim = (_a: any) => type('oneOfType')\nexport const arrayOf: TypeShim = (_a: any) => type('arrayOf', { type: Array })\n\nexport const objectOf: TypeShim = (_a: any) =>\n type('objectOf', { type: Object })\nexport const shape: TypeShim = (_a: any) =>\n dfn(type('shape', { type: Object }), 'loose', {\n get() {\n return this\n },\n })\nexport const nullable: TypeShim = () => ({\n type: null,\n})\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nfunction createValidator(\n root: any,\n name: string,\n props: any,\n getter = false,\n validable = false,\n) {\n const prop = getter ? 'get' : 'value'\n const descr = {\n [prop]: () =>\n type(name, Object.assign({}, props), validable).def(\n getter ? root.defaults[name] : undefined,\n ),\n }\n\n return dfn(root, name, descr)\n}\n\nexport function fromType(name: string, source: any, props: any = {}) {\n const t = type(name, Object.assign({}, source, props), !!source.validable)\n t.validator && delete t.validator\n return t\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toValidableType = <T>(name: string, props: any) =>\n type(name, props, true)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toType = <T>(name: string, props: any) => type(name, props)\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get symbol() {\n return symbol()\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get nullable() {\n return nullable()\n }\n static oneOf = oneOf\n static custom = custom\n static instanceOf = instanceOf\n static oneOfType = oneOfType\n static arrayOf = arrayOf\n static objectOf = objectOf\n static shape = shape\n static extend<T = any>(props: any): T {\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n const { name, validate, getter = false, type = null } = props\n // If we are inheriting from a custom type, let's ignore the type property\n const extType = isPlainObject(type) && type.type ? null : type\n return createValidator(this, name, { type: extType }, getter, !!validate)\n }\n static utils = {\n toType: type as (...args: any[]) => any,\n validate: (...args: any[]) => !!args,\n }\n })()\n\nexport function createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults = Object.assign({}, defs)\n\n static get sensibleDefaults() {\n return Object.assign({}, this.defaults)\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = Object.assign({}, defs)\n return\n }\n this.defaults = Object.assign({}, v)\n }\n }\n}\n\nexport function validateType<T, U>(\n _type: T,\n _value: U,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _silent = false,\n): string | boolean {\n return true\n}\n\nif (process.env.NODE_ENV !== 'production') {\n config.silent === false &&\n console.warn(\n 'You are using the production shimmed version of VueTypes in a development build. Refer to https://dwightjack.github.io/vue-types/guide/installation.html#production-build to learn how to configure VueTypes for usage in multiple environments.',\n )\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n"],"names":["config","silent","logLevel","dfn","Object","defineProperty","isArray","Array","value","prototype","toString","call","type","name","props","validable","descriptors","_vueTypes_name","writable","def","v","undefined","this","default","concat","isPlainObject","assign","isRequired","get","required","validate","validator","defineProperties","any","func","Function","bool","Boolean","string","String","number","Number","array","object","symbol","integer","oneOf","_a","custom","instanceOf","Constr","oneOfType","arrayOf","objectOf","shape","nullable","createValidator","root","getter","prop","defaults","fromType","source","t","toValidableType","toType","BaseVueTypes","_BaseVueTypes","extend","forEach","p","sensibleDefaults","utils","args","createTypes","defs","typeDefaults","_Class","validateType","_type","_value","_silent","process","env","NODE_ENV","console","warn","VueTypes"],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"shim.umd.js","sources":["../src/sensibles.ts","../src/config.ts","../src/shim.ts"],"sourcesContent":["import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { isPlainObject } from 'is-plain-object'\nimport { typeDefaults } from './sensibles'\nimport { config } from './config'\nimport type { VueTypesDefaults } from './types'\nexport type { VueTypeDef, VueTypeValidableDef } from './types'\nconst dfn = Object.defineProperty\n\nconst isArray =\n Array.isArray ||\n function (value) {\n return Object.prototype.toString.call(value) === '[object Array]'\n }\n\nfunction type(name: string, props: any = {}, validable = false): any {\n const descriptors: PropertyDescriptorMap = {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n def: {\n value(this: any, v: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const t = this\n if (v === undefined) {\n if ('default' in this) {\n delete this.default\n }\n return this\n }\n if (isArray(v)) {\n t.default = () => [].concat(v as any)\n } else if (isPlainObject(v)) {\n t.default = () => Object.assign({}, v)\n } else {\n t.default = v\n }\n return t\n },\n },\n isRequired: {\n get(this: any) {\n this.required = true\n return this\n },\n },\n }\n\n if (validable) {\n ;(descriptors as any).validate = {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n value() {},\n }\n }\n if (!props.validator) {\n props.validator = () => true\n }\n\n return Object.defineProperties(props, descriptors)\n}\n\nexport { config }\n\ntype TypeShim = <T = any>(...args: any[]) => any\n\nexport const any: TypeShim = () => type('any', {}, true)\nexport const func: TypeShim = () => type('func', { type: Function }, true)\nexport const bool = () => type('bool', { type: Boolean }, true)\nexport const string: TypeShim = () => type('string', { type: String }, true)\nexport const number: TypeShim = () => type('number', { type: Number }, true)\nexport const array: TypeShim = () => type('array', { type: Array }, true)\nexport const object: TypeShim = () => type('object', { type: Object }, true)\nexport const symbol = () => type('symbol')\nexport const integer: TypeShim = () => type('integer', { type: Number })\nexport const oneOf: TypeShim = (a: any) => type('oneOf')\nexport const custom: TypeShim = (a: any) => type('custom')\nexport const instanceOf: TypeShim = (Constr: any) =>\n type('instanceOf', { type: Constr })\nexport const oneOfType: TypeShim = (a: any) => type('oneOfType')\nexport const arrayOf: TypeShim = (a: any) => type('arrayOf', { type: Array })\n\nexport const objectOf: TypeShim = (a: any) => type('objectOf', { type: Object })\nexport const shape: TypeShim = (a: any) =>\n dfn(type('shape', { type: Object }), 'loose', {\n get() {\n return this\n },\n })\nexport const nullable: TypeShim = () => ({\n type: null,\n})\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nfunction createValidator(\n root: any,\n name: string,\n props: any,\n getter = false,\n validable = false,\n) {\n const prop = getter ? 'get' : 'value'\n const descr = {\n [prop]: () =>\n type(name, Object.assign({}, props), validable).def(\n getter ? root.defaults[name] : undefined,\n ),\n }\n\n return dfn(root, name, descr)\n}\n\nexport function fromType(name: string, source: any, props: any = {}) {\n const t = type(name, Object.assign({}, source, props), !!source.validable)\n t.validator && delete t.validator\n return t\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toValidableType = <T>(name: string, props: any) =>\n type(name, props, true)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toType = <T>(name: string, props: any) => type(name, props)\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get symbol() {\n return symbol()\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get nullable() {\n return nullable()\n }\n static oneOf = oneOf\n static custom = custom\n static instanceOf = instanceOf\n static oneOfType = oneOfType\n static arrayOf = arrayOf\n static objectOf = objectOf\n static shape = shape\n static extend<T = any>(props: any): T {\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n const { name, validate, getter = false, type = null } = props\n // If we are inheriting from a custom type, let's ignore the type property\n const extType = isPlainObject(type) && type.type ? null : type\n return createValidator(this, name, { type: extType }, getter, !!validate)\n }\n static utils = {\n toType: type as (...args: any[]) => any,\n validate: (...args: any[]) => !!args,\n }\n })()\n\nexport function createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults = Object.assign({}, defs)\n\n static get sensibleDefaults() {\n return Object.assign({}, this.defaults)\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = Object.assign({}, defs)\n return\n }\n this.defaults = Object.assign({}, v)\n }\n }\n}\n\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n return true\n}\n\n/* eslint-disable no-console */\nif (process.env.NODE_ENV !== 'production') {\n config.silent === false &&\n console.warn(\n 'You are using the production shimmed version of VueTypes in a development build. Refer to https://dwightjack.github.io/vue-types/guide/installation.html#production-build to learn how to configure VueTypes for usage in multiple environments.',\n )\n}\n/* eslint-enable no-console */\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n"],"names":["config","silent","logLevel","dfn","Object","defineProperty","isArray","Array","value","prototype","toString","call","type","name","props","validable","descriptors","_vueTypes_name","writable","def","v","undefined","this","concat","isPlainObject","assign","isRequired","get","required","validate","validator","defineProperties","any","func","Function","bool","Boolean","string","String","number","Number","array","object","symbol","integer","oneOf","a","custom","instanceOf","Constr","oneOfType","arrayOf","objectOf","shape","createValidator","root","getter","_descr","descr","defaults","BaseVueTypes","_BaseVueTypes","extend","_this","forEach","p","_props$getter","_props$type","_createClass","key","sensibleDefaults","utils","toType","slice","arguments","createTypes","defs","_Class","_BaseVueTypes2","apply","_inheritsLoose","set","VueTypes","_createTypes","source","t"],"mappings":"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"} | ||
| {"version":3,"file":"shim.umd.js","sources":["../src/sensibles.ts","../src/config.ts","../src/shim.ts"],"sourcesContent":["import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { isPlainObject } from 'is-plain-object'\nimport { typeDefaults } from './sensibles'\nimport { config } from './config'\nimport type { VueTypesDefaults } from './types'\nexport type { VueTypeDef, VueTypeValidableDef } from './types'\nconst dfn = Object.defineProperty\n\nconst isArray =\n Array.isArray ||\n function (value) {\n return Object.prototype.toString.call(value) === '[object Array]'\n }\n\nfunction type(name: string, props: any = {}, validable = false): any {\n const descriptors: PropertyDescriptorMap = {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n def: {\n value(this: any, v: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const t = this\n if (v === undefined) {\n if ('default' in this) {\n delete this.default\n }\n return this\n }\n if (isArray(v)) {\n t.default = () => [].concat(v as any)\n } else if (isPlainObject(v)) {\n t.default = () => Object.assign({}, v)\n } else {\n t.default = v\n }\n return t\n },\n },\n isRequired: {\n get(this: any) {\n this.required = true\n return this\n },\n },\n }\n\n if (validable) {\n ;(descriptors as any).validate = {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n value() {},\n }\n }\n if (!props.validator) {\n props.validator = () => true\n }\n\n return Object.defineProperties(props, descriptors)\n}\n\nexport { config }\n\ntype TypeShim = <T = any>(...args: any[]) => any\n\nexport const any: TypeShim = () => type('any', {}, true)\nexport const func: TypeShim = () => type('func', { type: Function }, true)\nexport const bool = () => type('bool', { type: Boolean }, true)\nexport const string: TypeShim = () => type('string', { type: String }, true)\nexport const number: TypeShim = () => type('number', { type: Number }, true)\nexport const array: TypeShim = () => type('array', { type: Array }, true)\nexport const object: TypeShim = () => type('object', { type: Object }, true)\nexport const symbol = () => type('symbol')\nexport const integer: TypeShim = () => type('integer', { type: Number })\nexport const oneOf: TypeShim = (_a: any) => type('oneOf')\nexport const custom: TypeShim = (_a: any) => type('custom')\nexport const instanceOf: TypeShim = (Constr: any) =>\n type('instanceOf', { type: Constr })\nexport const oneOfType: TypeShim = (_a: any) => type('oneOfType')\nexport const arrayOf: TypeShim = (_a: any) => type('arrayOf', { type: Array })\n\nexport const objectOf: TypeShim = (_a: any) =>\n type('objectOf', { type: Object })\nexport const shape: TypeShim = (_a: any) =>\n dfn(type('shape', { type: Object }), 'loose', {\n get() {\n return this\n },\n })\nexport const nullable: TypeShim = () => ({\n type: null,\n})\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nfunction createValidator(\n root: any,\n name: string,\n props: any,\n getter = false,\n validable = false,\n) {\n const prop = getter ? 'get' : 'value'\n const descr = {\n [prop]: () =>\n type(name, Object.assign({}, props), validable).def(\n getter ? root.defaults[name] : undefined,\n ),\n }\n\n return dfn(root, name, descr)\n}\n\nexport function fromType(name: string, source: any, props: any = {}) {\n const t = type(name, Object.assign({}, source, props), !!source.validable)\n t.validator && delete t.validator\n return t\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toValidableType = <T>(name: string, props: any) =>\n type(name, props, true)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const toType = <T>(name: string, props: any) => type(name, props)\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get symbol() {\n return symbol()\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get nullable() {\n return nullable()\n }\n static oneOf = oneOf\n static custom = custom\n static instanceOf = instanceOf\n static oneOfType = oneOfType\n static arrayOf = arrayOf\n static objectOf = objectOf\n static shape = shape\n static extend<T = any>(props: any): T {\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n const { name, validate, getter = false, type = null } = props\n // If we are inheriting from a custom type, let's ignore the type property\n const extType = isPlainObject(type) && type.type ? null : type\n return createValidator(this, name, { type: extType }, getter, !!validate)\n }\n static utils = {\n toType: type as (...args: any[]) => any,\n validate: (...args: any[]) => !!args,\n }\n })()\n\nexport function createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults = Object.assign({}, defs)\n\n static get sensibleDefaults() {\n return Object.assign({}, this.defaults)\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = Object.assign({}, defs)\n return\n }\n this.defaults = Object.assign({}, v)\n }\n }\n}\n\nexport function validateType<T, U>(\n _type: T,\n _value: U,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _silent = false,\n): string | boolean {\n return true\n}\n\nif (process.env.NODE_ENV !== 'production') {\n config.silent === false &&\n console.warn(\n 'You are using the production shimmed version of VueTypes in a development build. Refer to https://dwightjack.github.io/vue-types/guide/installation.html#production-build to learn how to configure VueTypes for usage in multiple environments.',\n )\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n"],"names":["config","silent","logLevel","dfn","Object","defineProperty","isArray","Array","value","prototype","toString","call","type","name","props","validable","descriptors","_vueTypes_name","writable","def","v","undefined","this","concat","isPlainObject","assign","isRequired","get","required","validate","validator","defineProperties","any","func","Function","bool","Boolean","string","String","number","Number","array","object","symbol","integer","oneOf","_a","custom","instanceOf","Constr","oneOfType","arrayOf","objectOf","shape","createValidator","root","getter","_descr","descr","defaults","BaseVueTypes","_BaseVueTypes","extend","_this","forEach","p","_props$getter","_props$type","_createClass","key","sensibleDefaults","utils","toType","slice","arguments","createTypes","defs","_Class","_BaseVueTypes2","apply","_inheritsLoose","set","VueTypes","_createTypes","source","t","_type","_value","_silent"],"mappings":"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"} |
+6
-12
| export type Prop<T = any> = | ||
| | { | ||
| // eslint-disable-next-line @typescript-eslint/ban-types | ||
| new (...args: any[]): T & object | ||
| } | ||
| | { | ||
| (): T | ||
| } | ||
| | (new (...args: any[]) => T & object) | ||
| | (() => T) | ||
| | PropMethod<T> | ||
@@ -35,3 +30,2 @@ | ||
| | ((props: Record<string, unknown>) => D) | ||
| // eslint-disable-next-line @typescript-eslint/ban-types | ||
| | object | ||
@@ -45,3 +39,3 @@ validator?(value: T): boolean | ||
| : T extends ObjectConstructor | { type: ObjectConstructor } | ||
| ? { [key: string]: any } | ||
| ? Record<string, any> | ||
| : T extends Prop<infer V> | ||
@@ -93,4 +87,4 @@ ? V | ||
| T, | ||
| DefaultFactory<Partial<T & { [key: string]: any }>>, | ||
| () => Partial<T> & { [key: string]: any } | ||
| DefaultFactory<Partial<T & Record<string, any>>>, | ||
| () => Partial<T> & Record<string, any> | ||
| > { | ||
@@ -107,3 +101,3 @@ readonly loose: VueTypeLooseShape<T> | ||
| array: () => any[] | ||
| object: () => { [key: string]: any } | ||
| object: () => Record<string, any> | ||
| integer: number | ||
@@ -110,0 +104,0 @@ } |
+2
-4
@@ -5,5 +5,3 @@ import { VueTypeDef, VueTypeValidableDef, VueProp, InferType, PropOptions, VueTypesConfig } from './types'; | ||
| export declare function getNativeType(value: any): string; | ||
| type PlainObject = { | ||
| [key: string]: any; | ||
| }; | ||
| type PlainObject = Record<string, any>; | ||
| export declare const isPlainObject: (obj: any) => obj is PlainObject; | ||
@@ -20,3 +18,3 @@ /** | ||
| export declare const identity: (arg: any) => any; | ||
| declare let warn: (msg: string, level?: VueTypesConfig['logLevel']) => string | void; | ||
| declare let warn: (msg: string, level?: VueTypesConfig['logLevel']) => void; | ||
| export { warn }; | ||
@@ -23,0 +21,0 @@ /** |
@@ -8,7 +8,5 @@ import { PropOptions } from '../types'; | ||
| export declare const array: <T>() => import("../types").VueTypeValidableDef<T[], import("../types").ValidatorFunction<T[]>>; | ||
| export declare const object: <T extends { | ||
| [key: string]: any; | ||
| }>() => import("../types").VueTypeValidableDef<T, import("../types").ValidatorFunction<T>>; | ||
| export declare const object: <T extends Record<string, any>>() => import("../types").VueTypeValidableDef<T, import("../types").ValidatorFunction<T>>; | ||
| export declare const integer: <T extends number = number>() => import("../types").VueTypeDef<T>; | ||
| export declare const symbol: () => import("../types").VueTypeDef<symbol>; | ||
| export declare const nullable: () => PropOptions<null, null>; |
| import { Prop, VueProp, InferType } from '../types'; | ||
| export default function objectOf<T extends VueProp<any> | Prop<any>>(type: T): import("../types").VueTypeDef<{ | ||
| [key: string]: InferType<T>; | ||
| }>; | ||
| export default function objectOf<T extends VueProp<any> | Prop<any>>(type: T): import("../types").VueTypeDef<Record<string, InferType<T>>>; |
@@ -1,2 +0,2 @@ | ||
| var e=require("is-plain-object");function t(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function n(e,n){for(var r=0;r<n.length;r++){var i=n[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,t(i.key),i)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,u(e,t)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function a(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var f={silent:!1,logLevel:"warn"},l=["validator"],s=Object.prototype,c=s.toString,p=s.hasOwnProperty,y=/^\s*function (\w+)/;function v(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(y);return r?r[1]:""}return""}var d=e.isPlainObject,b=function(e){return e},h=b;if("production"!==process.env.NODE_ENV){var g="undefined"!=typeof console;h=g?function(e,t){void 0===t&&(t=f.logLevel),!1===f.silent&&console[t]("[VueTypes warn]: "+e)}:b}var O=function(e,t){return p.call(e,t)},m=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},j=Array.isArray||function(e){return"[object Array]"===c.call(e)},x=function(e){return"[object Function]"===c.call(e)},_=function(e,t){return d(e)&&O(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t)},T=function(e){return d(e)&&(O(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return O(e,t)}))};function w(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function P(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o="";r=d(e)?e:{type:e};var u=_(r)?r._vueTypes_name+" - ":"";if(T(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;j(r.type)?(i=r.type.some(function(e){return!0===P(e,t,!0)}),o=r.type.map(function(e){return v(e)}).join(" or ")):i="Array"===(o=v(r))?j(t):"Object"===o?d(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";var t=e.constructor.toString().match(y);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type}if(!i){var a=u+'value "'+t+'" should be of type "'+o+'"';return!1===n?(h(a),!1):a}if(O(r,"validator")&&x(r.validator)){var f=h,l=[];if(h=function(e){l.push(e)},i=r.validator(t),h=f,!i){var s=(l.length>1?"* ":"")+l.join("\n* ");return l.length=0,!1===n?(h(s),i):s}}return i}function k(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(O(this,"default")&&delete this.default,this):x(e)||!0===P(this,e,!0)?(this.default=j(e)?function(){return[].concat(e)}:d(e)?function(){return Object.assign({},e)}:e,this):(h(this._vueTypes_name+' - invalid default value: "'+e+'"'),this)}}}),r=n.validator;return x(r)&&(n.validator=w(r,n)),n}function S(e,t){var n=k(e,t);return Object.defineProperty(n,"validate",{value:function(e){return x(this.validator)&&h(this._vueTypes_name+" - calling .validate() will overwrite the current custom validator function. Validator info:\n"+JSON.stringify(this)),this.validator=w(e,this),this}})}function A(e,t,n){var r,i,o=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(o._vueTypes_name=e,!d(n))return o;var u,f,s=n.validator,c=a(n,l);if(x(s)){var p=o.validator;p&&(p=null!==(f=(u=p).__original)&&void 0!==f?f:u),o.validator=w(p?function(e){return p.call(this,e)&&s.call(this,e)}:s,o)}return Object.assign(o,c)}function E(e){return e.replace(/^(?!\s*$)/gm," ")}var V=function(){return S("any",{})},q=function(){return S("function",{type:Function})},N=function(){return S("boolean",{type:Boolean})},L=function(){return S("string",{type:String})},B=function(){return S("number",{type:Number})},D=function(){return S("array",{type:Array})},F=function(){return S("object",{type:Object})},Y=function(){return k("integer",{type:Number,validator:function(e){var t=m(e);return!1===t&&h('integer - "'+e+'" is not an integer'),t}})},M=function(){return k("symbol",{validator:function(e){var t="symbol"==typeof e;return!1===t&&h('symbol - invalid value "'+e+'"'),t}})},I=function(){return Object.defineProperty({type:null,validator:function(e){var t=null===e;return!1===t&&h("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"})};function J(e,t){if(void 0===t&&(t="custom validation failed"),"function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return k(e.name||"<<anonymous function>>",{type:null,validator:function(n){var r=e(n);return r||h(this._vueTypes_name+" - "+t),r}})}function R(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.map(function(e){return"symbol"==typeof e?e.toString():e}).join('", "')+'".',n={validator:function(n){var r=-1!==e.indexOf(n);return r||h(t),r}};if(-1===e.indexOf(null)){var r=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);r.length>0&&(n.type=r)}return k("oneOf",n)}function U(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,n=!1,r=[],i=0;i<e.length;i+=1){var o=e[i];if(T(o)){if(x(o.validator)&&(t=!0),_(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(_(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){h('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter(function(e,t){return r.indexOf(e)===t});var u=!1===n&&r.length>0?r:null;return k("oneOfType",t?{type:u,validator:function(t){var n=[],r=e.some(function(e){var r=P(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||h("oneOfType - provided value does not match any of the "+n.length+" passed-in validators:\n"+E(n.join("\n"))),r}}:{type:u})}function $(e){return k("arrayOf",{type:Array,validator:function(t){var n="",r=t.every(function(t){return!0===(n=P(e,t,!0))});return r||h("arrayOf - value validation error:\n"+E(n)),r}})}function z(e){return k("instanceOf",{type:e})}function C(e){return k("objectOf",{type:Object,validator:function(t){var n="",r=Object.keys(t).every(function(r){return!0===(n=P(e,t[r],!0))});return r||h("objectOf - value validation error:\n"+E(n)),r}})}function G(e){var t=Object.keys(e),n=t.filter(function(t){var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=k("shape",{type:Object,validator:function(r){var i=this;if(!d(r))return!1;var o=Object.keys(r);if(n.length>0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return h(1===u.length?'shape - required property "'+u[0]+'" is not defined.':'shape - required properties "'+u.join('", "')+'" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(h('shape - shape definition does not include a "'+n+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var o=P(e[n],r[n],!0);return"string"==typeof o&&h('shape - "'+n+'" property validation error:\n '+E(o)),!0===o})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var H=["name","validate","getter"],K=/*#__PURE__*/function(e){return e=/*#__PURE__*/function(){function e(){}return e.extend=function(e){var t=this;if(h("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),j(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=void 0!==r&&r,o=e.getter,u=void 0!==o&&o,f=a(e,H);if(O(this,n))throw new TypeError('[VueTypes error]: Type "'+n+'" already defined');var l,s=f.type;return _(s)?(delete f.type,Object.defineProperty(this,n,u?{get:function(){return A(n,s,f)}}:{value:function(){var e,t=A(n,s,f);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(l=u?{get:function(){var e=Object.assign({},f);return i?S(n,e):k(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},f);return e=i?S(n,r):k(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,l))},r(e,null,[{key:"any",get:function(){return V()}},{key:"func",get:function(){return q().def(this.defaults.func)}},{key:"bool",get:function(){return void 0===this.defaults.bool?N():N().def(this.defaults.bool)}},{key:"string",get:function(){return L().def(this.defaults.string)}},{key:"number",get:function(){return B().def(this.defaults.number)}},{key:"array",get:function(){return D().def(this.defaults.array)}},{key:"object",get:function(){return F().def(this.defaults.object)}},{key:"integer",get:function(){return Y().def(this.defaults.integer)}},{key:"symbol",get:function(){return M()}},{key:"nullable",get:function(){return I()}}])}(),e.defaults={},e.sensibleDefaults=void 0,e.config=f,e.custom=J,e.oneOf=R,e.instanceOf=z,e.oneOfType=U,e.arrayOf=$,e.objectOf=C,e.shape=G,e.utils={validate:function(e,t){return!0===P(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?S(e,t):k(e,t)}},e}();function Q(e){var t;return void 0===e&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),t=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),r(n,null,[{key:"sensibleDefaults",get:function(){return i({},this.defaults)},set:function(t){this.defaults=!1!==t?i({},!0!==t?t:e):{}}}])}(K),t.defaults=i({},e),t}var W=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(Q());Object.defineProperty(exports,"__esModule",{value:!0}),exports.any=V,exports.array=D,exports.arrayOf=$,exports.bool=N,exports.config=f,exports.createTypes=Q,exports.custom=J,exports.default=W,exports.fromType=A,exports.func=q,exports.instanceOf=z,exports.integer=Y,exports.nullable=I,exports.number=B,exports.object=F,exports.objectOf=C,exports.oneOf=R,exports.oneOfType=U,exports.shape=G,exports.string=L,exports.symbol=M,exports.toType=k,exports.toValidableType=S,exports.validateType=P; | ||
| var e=require("is-plain-object");function t(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function n(e,n){for(var r=0;r<n.length;r++){var i=n[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,t(i.key),i)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,u(e,t)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function a(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var f={silent:!1,logLevel:"warn"},l=["validator"],s=Object.prototype,c=s.toString,p=s.hasOwnProperty,y=/^\s*function (\w+)/;function v(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(y);return r?r[1]:""}return""}var d=e.isPlainObject;function b(){}var h=b;if("production"!==process.env.NODE_ENV){var g="undefined"!=typeof console;h=g?function(e,t){void 0===t&&(t=f.logLevel),!1===f.silent&&console[t]("[VueTypes warn]: "+e)}:b}var O=function(e,t){return p.call(e,t)},m=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},j=Array.isArray||function(e){return"[object Array]"===c.call(e)},x=function(e){return"[object Function]"===c.call(e)},_=function(e,t){return d(e)&&O(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t)},T=function(e){return d(e)&&(O(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return O(e,t)}))};function w(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function P(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o="";r=d(e)?e:{type:e};var u=_(r)?r._vueTypes_name+" - ":"";if(T(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;j(r.type)?(i=r.type.some(function(e){return!0===P(e,t,!0)}),o=r.type.map(function(e){return v(e)}).join(" or ")):i="Array"===(o=v(r))?j(t):"Object"===o?d(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";var t=e.constructor.toString().match(y);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type}if(!i){var a=u+'value "'+t+'" should be of type "'+o+'"';return!1===n?(h(a),!1):a}if(O(r,"validator")&&x(r.validator)){var f=h,l=[];if(h=function(e){l.push(e)},i=r.validator(t),h=f,!i){var s=(l.length>1?"* ":"")+l.join("\n* ");return l.length=0,!1===n?(h(s),i):s}}return i}function k(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(O(this,"default")&&delete this.default,this):x(e)||!0===P(this,e,!0)?(this.default=j(e)?function(){return[].concat(e)}:d(e)?function(){return Object.assign({},e)}:e,this):(h(this._vueTypes_name+' - invalid default value: "'+e+'"'),this)}}}),r=n.validator;return x(r)&&(n.validator=w(r,n)),n}function S(e,t){var n=k(e,t);return Object.defineProperty(n,"validate",{value:function(e){return x(this.validator)&&h(this._vueTypes_name+" - calling .validate() will overwrite the current custom validator function. Validator info:\n"+JSON.stringify(this)),this.validator=w(e,this),this}})}function A(e,t,n){var r,i,o=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(o._vueTypes_name=e,!d(n))return o;var u,f,s=n.validator,c=a(n,l);if(x(s)){var p=o.validator;p&&(p=null!==(f=(u=p).__original)&&void 0!==f?f:u),o.validator=w(p?function(e){return p.call(this,e)&&s.call(this,e)}:s,o)}return Object.assign(o,c)}function E(e){return e.replace(/^(?!\s*$)/gm," ")}var V=function(){return S("any",{})},q=function(){return S("function",{type:Function})},N=function(){return S("boolean",{type:Boolean})},L=function(){return S("string",{type:String})},B=function(){return S("number",{type:Number})},D=function(){return S("array",{type:Array})},F=function(){return S("object",{type:Object})},Y=function(){return k("integer",{type:Number,validator:function(e){var t=m(e);return!1===t&&h('integer - "'+e+'" is not an integer'),t}})},M=function(){return k("symbol",{validator:function(e){var t="symbol"==typeof e;return!1===t&&h('symbol - invalid value "'+e+'"'),t}})},I=function(){return Object.defineProperty({type:null,validator:function(e){var t=null===e;return!1===t&&h("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"})};function J(e,t){if(void 0===t&&(t="custom validation failed"),"function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return k(e.name||"<<anonymous function>>",{type:null,validator:function(n){var r=e(n);return r||h(this._vueTypes_name+" - "+t),r}})}function R(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.map(function(e){return"symbol"==typeof e?e.toString():e}).join('", "')+'".',n={validator:function(n){var r=-1!==e.indexOf(n);return r||h(t),r}};if(-1===e.indexOf(null)){var r=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);r.length>0&&(n.type=r)}return k("oneOf",n)}function U(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,n=!1,r=[],i=0;i<e.length;i+=1){var o=e[i];if(T(o)){if(x(o.validator)&&(t=!0),_(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(_(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){h('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter(function(e,t){return r.indexOf(e)===t});var u=!1===n&&r.length>0?r:null;return k("oneOfType",t?{type:u,validator:function(t){var n=[],r=e.some(function(e){var r=P(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||h("oneOfType - provided value does not match any of the "+n.length+" passed-in validators:\n"+E(n.join("\n"))),r}}:{type:u})}function $(e){return k("arrayOf",{type:Array,validator:function(t){var n="",r=t.every(function(t){return!0===(n=P(e,t,!0))});return r||h("arrayOf - value validation error:\n"+E(n)),r}})}function z(e){return k("instanceOf",{type:e})}function C(e){return k("objectOf",{type:Object,validator:function(t){var n="",r=Object.keys(t).every(function(r){return!0===(n=P(e,t[r],!0))});return r||h("objectOf - value validation error:\n"+E(n)),r}})}function G(e){var t=Object.keys(e),n=t.filter(function(t){var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=k("shape",{type:Object,validator:function(r){var i=this;if(!d(r))return!1;var o=Object.keys(r);if(n.length>0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return h(1===u.length?'shape - required property "'+u[0]+'" is not defined.':'shape - required properties "'+u.join('", "')+'" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(h('shape - shape definition does not include a "'+n+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var o=P(e[n],r[n],!0);return"string"==typeof o&&h('shape - "'+n+'" property validation error:\n '+E(o)),!0===o})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var H=["name","validate","getter"],K=/*#__PURE__*/function(e){return e=/*#__PURE__*/function(){function e(){}return e.extend=function(e){var t=this;if(h("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),j(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=void 0!==r&&r,o=e.getter,u=void 0!==o&&o,f=a(e,H);if(O(this,n))throw new TypeError('[VueTypes error]: Type "'+n+'" already defined');var l,s=f.type;return _(s)?(delete f.type,Object.defineProperty(this,n,u?{get:function(){return A(n,s,f)}}:{value:function(){var e,t=A(n,s,f);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(l=u?{get:function(){var e=Object.assign({},f);return i?S(n,e):k(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},f);return e=i?S(n,r):k(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,l))},r(e,null,[{key:"any",get:function(){return V()}},{key:"func",get:function(){return q().def(this.defaults.func)}},{key:"bool",get:function(){return void 0===this.defaults.bool?N():N().def(this.defaults.bool)}},{key:"string",get:function(){return L().def(this.defaults.string)}},{key:"number",get:function(){return B().def(this.defaults.number)}},{key:"array",get:function(){return D().def(this.defaults.array)}},{key:"object",get:function(){return F().def(this.defaults.object)}},{key:"integer",get:function(){return Y().def(this.defaults.integer)}},{key:"symbol",get:function(){return M()}},{key:"nullable",get:function(){return I()}}])}(),e.defaults={},e.sensibleDefaults=void 0,e.config=f,e.custom=J,e.oneOf=R,e.instanceOf=z,e.oneOfType=U,e.arrayOf=$,e.objectOf=C,e.shape=G,e.utils={validate:function(e,t){return!0===P(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?S(e,t):k(e,t)}},e}();function Q(e){var t;return void 0===e&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),t=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),r(n,null,[{key:"sensibleDefaults",get:function(){return i({},this.defaults)},set:function(t){this.defaults=!1!==t?i({},!0!==t?t:e):{}}}])}(K),t.defaults=i({},e),t}var W=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(Q());Object.defineProperty(exports,"__esModule",{value:!0}),exports.any=V,exports.array=D,exports.arrayOf=$,exports.bool=N,exports.config=f,exports.createTypes=Q,exports.custom=J,exports.default=W,exports.fromType=A,exports.func=q,exports.instanceOf=z,exports.integer=Y,exports.nullable=I,exports.number=B,exports.object=F,exports.objectOf=C,exports.oneOf=R,exports.oneOfType=U,exports.shape=G,exports.string=L,exports.symbol=M,exports.toType=k,exports.toValidableType=S,exports.validateType=P; | ||
| //# sourceMappingURL=vue-types.cjs.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"vue-types.cjs","sources":["../src/config.ts","../src/utils.ts","../src/sensibles.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts","../src/index.cjs.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = { [key: string]: any }\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => string | void =\n identity\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : identity\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: { [key: string]: any }\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends { [key: string]: any }>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<{ [key: string]: InferType<T> }>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n","import VueTypes from './index'\nObject.defineProperty(exports, '__esModule', {\n value: true,\n})\n\nexport default VueTypes\n\nexport * from './index'\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","identity","arg","warn","process","env","NODE_ENV","hasConsole","console","msg","level","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","concat","assign","toValidableType","JSON","stringify","fromType","source","props","descriptors","copy","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","_fn$__original","rest","_objectWithoutPropertiesLoose","prevValidator","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","_this","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","extend","p","_props$validate","validate","_props$getter","getter","opts","descriptor","_t$validator","apply","slice","arguments","typeOptions","enumerable","_typeOptions$validato","_createClass","defaults","sensibleDefaults","utils","validable","createTypes","defs","_Class","_BaseVueTypes2","_inheritsLoose","_extends","set","VueTypes","_createTypes","exports"],"mappings":"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"} | ||
| {"version":3,"file":"vue-types.cjs","sources":["../src/config.ts","../src/utils.ts","../src/sensibles.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts","../src/index.cjs.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = Record<string, any>\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => void = noop\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : noop\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: Record<string, any>\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends Record<string, any>>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<Record<string, InferType<T>>>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n","import VueTypes from './index'\nObject.defineProperty(exports, '__esModule', {\n value: true,\n})\n\nexport default VueTypes\n\nexport * from './index'\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","noop","warn","process","env","NODE_ENV","hasConsole","console","msg","level","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","concat","assign","toValidableType","JSON","stringify","fromType","source","props","descriptors","copy","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","_fn$__original","rest","_objectWithoutPropertiesLoose","prevValidator","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","_this","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","extend","p","_props$validate","validate","_props$getter","getter","opts","descriptor","_t$validator","apply","slice","arguments","typeOptions","enumerable","_typeOptions$validato","_createClass","defaults","sensibleDefaults","utils","validable","createTypes","defs","_Class","_BaseVueTypes2","_inheritsLoose","_extends","set","VueTypes","_createTypes","exports"],"mappings":"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"} |
@@ -1,2 +0,2 @@ | ||
| import{isPlainObject as e}from"is-plain-object";function t(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function n(e,n){for(var r=0;r<n.length;r++){var i=n[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,t(i.key),i)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,u(e,t)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function a(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var f={silent:!1,logLevel:"warn"},l=["validator"],c=Object.prototype,s=c.toString,v=c.hasOwnProperty,d=/^\s*function (\w+)/;function p(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(d);return r?r[1]:""}return""}var y=e,h=function(e){return e},b=h;if("production"!==process.env.NODE_ENV){var g="undefined"!=typeof console;b=g?function(e,t){void 0===t&&(t=f.logLevel),!1===f.silent&&console[t]("[VueTypes warn]: "+e)}:h}var O=function(e,t){return v.call(e,t)},m=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},j=Array.isArray||function(e){return"[object Array]"===s.call(e)},_=function(e){return"[object Function]"===s.call(e)},T=function(e,t){return y(e)&&O(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t)},w=function(e){return y(e)&&(O(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return O(e,t)}))};function P(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function k(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o="";r=y(e)?e:{type:e};var u=T(r)?r._vueTypes_name+" - ":"";if(w(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;j(r.type)?(i=r.type.some(function(e){return!0===k(e,t,!0)}),o=r.type.map(function(e){return p(e)}).join(" or ")):i="Array"===(o=p(r))?j(t):"Object"===o?y(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";var t=e.constructor.toString().match(d);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type}if(!i){var a=u+'value "'+t+'" should be of type "'+o+'"';return!1===n?(b(a),!1):a}if(O(r,"validator")&&_(r.validator)){var f=b,l=[];if(b=function(e){l.push(e)},i=r.validator(t),b=f,!i){var c=(l.length>1?"* ":"")+l.join("\n* ");return l.length=0,!1===n?(b(c),i):c}}return i}function x(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(O(this,"default")&&delete this.default,this):_(e)||!0===k(this,e,!0)?(this.default=j(e)?function(){return[].concat(e)}:y(e)?function(){return Object.assign({},e)}:e,this):(b(this._vueTypes_name+' - invalid default value: "'+e+'"'),this)}}}),r=n.validator;return _(r)&&(n.validator=P(r,n)),n}function S(e,t){var n=x(e,t);return Object.defineProperty(n,"validate",{value:function(e){return _(this.validator)&&b(this._vueTypes_name+" - calling .validate() will overwrite the current custom validator function. Validator info:\n"+JSON.stringify(this)),this.validator=P(e,this),this}})}function A(e,t,n){var r,i,o=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(o._vueTypes_name=e,!y(n))return o;var u,f,c=n.validator,s=a(n,l);if(_(c)){var v=o.validator;v&&(v=null!==(f=(u=v).__original)&&void 0!==f?f:u),o.validator=P(v?function(e){return v.call(this,e)&&c.call(this,e)}:c,o)}return Object.assign(o,s)}function E(e){return e.replace(/^(?!\s*$)/gm," ")}var N=function(){return S("any",{})},V=function(){return S("function",{type:Function})},q=function(){return S("boolean",{type:Boolean})},L=function(){return S("string",{type:String})},B=function(){return S("number",{type:Number})},D=function(){return S("array",{type:Array})},F=function(){return S("object",{type:Object})},Y=function(){return x("integer",{type:Number,validator:function(e){var t=m(e);return!1===t&&b('integer - "'+e+'" is not an integer'),t}})},I=function(){return x("symbol",{validator:function(e){var t="symbol"==typeof e;return!1===t&&b('symbol - invalid value "'+e+'"'),t}})},J=function(){return Object.defineProperty({type:null,validator:function(e){var t=null===e;return!1===t&&b("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"})};function M(e,t){if(void 0===t&&(t="custom validation failed"),"function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return x(e.name||"<<anonymous function>>",{type:null,validator:function(n){var r=e(n);return r||b(this._vueTypes_name+" - "+t),r}})}function R(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.map(function(e){return"symbol"==typeof e?e.toString():e}).join('", "')+'".',n={validator:function(n){var r=-1!==e.indexOf(n);return r||b(t),r}};if(-1===e.indexOf(null)){var r=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);r.length>0&&(n.type=r)}return x("oneOf",n)}function U(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,n=!1,r=[],i=0;i<e.length;i+=1){var o=e[i];if(w(o)){if(_(o.validator)&&(t=!0),T(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(T(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){b('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter(function(e,t){return r.indexOf(e)===t});var u=!1===n&&r.length>0?r:null;return x("oneOfType",t?{type:u,validator:function(t){var n=[],r=e.some(function(e){var r=k(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||b("oneOfType - provided value does not match any of the "+n.length+" passed-in validators:\n"+E(n.join("\n"))),r}}:{type:u})}function $(e){return x("arrayOf",{type:Array,validator:function(t){var n="",r=t.every(function(t){return!0===(n=k(e,t,!0))});return r||b("arrayOf - value validation error:\n"+E(n)),r}})}function z(e){return x("instanceOf",{type:e})}function C(e){return x("objectOf",{type:Object,validator:function(t){var n="",r=Object.keys(t).every(function(r){return!0===(n=k(e,t[r],!0))});return r||b("objectOf - value validation error:\n"+E(n)),r}})}function G(e){var t=Object.keys(e),n=t.filter(function(t){var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=x("shape",{type:Object,validator:function(r){var i=this;if(!y(r))return!1;var o=Object.keys(r);if(n.length>0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return b(1===u.length?'shape - required property "'+u[0]+'" is not defined.':'shape - required properties "'+u.join('", "')+'" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(b('shape - shape definition does not include a "'+n+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var o=k(e[n],r[n],!0);return"string"==typeof o&&b('shape - "'+n+'" property validation error:\n '+E(o)),!0===o})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var H=["name","validate","getter"],K=/*#__PURE__*/function(e){return e=/*#__PURE__*/function(){function e(){}return e.extend=function(e){var t=this;if(b("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),j(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=void 0!==r&&r,o=e.getter,u=void 0!==o&&o,f=a(e,H);if(O(this,n))throw new TypeError('[VueTypes error]: Type "'+n+'" already defined');var l,c=f.type;return T(c)?(delete f.type,Object.defineProperty(this,n,u?{get:function(){return A(n,c,f)}}:{value:function(){var e,t=A(n,c,f);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(l=u?{get:function(){var e=Object.assign({},f);return i?S(n,e):x(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},f);return e=i?S(n,r):x(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,l))},r(e,null,[{key:"any",get:function(){return N()}},{key:"func",get:function(){return V().def(this.defaults.func)}},{key:"bool",get:function(){return void 0===this.defaults.bool?q():q().def(this.defaults.bool)}},{key:"string",get:function(){return L().def(this.defaults.string)}},{key:"number",get:function(){return B().def(this.defaults.number)}},{key:"array",get:function(){return D().def(this.defaults.array)}},{key:"object",get:function(){return F().def(this.defaults.object)}},{key:"integer",get:function(){return Y().def(this.defaults.integer)}},{key:"symbol",get:function(){return I()}},{key:"nullable",get:function(){return J()}}])}(),e.defaults={},e.sensibleDefaults=void 0,e.config=f,e.custom=M,e.oneOf=R,e.instanceOf=z,e.oneOfType=U,e.arrayOf=$,e.objectOf=C,e.shape=G,e.utils={validate:function(e,t){return!0===k(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?S(e,t):x(e,t)}},e}();function Q(e){var t;return void 0===e&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),t=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),r(n,null,[{key:"sensibleDefaults",get:function(){return i({},this.defaults)},set:function(t){this.defaults=!1!==t?i({},!0!==t?t:e):{}}}])}(K),t.defaults=i({},e),t}var W=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(Q());export{N as any,D as array,$ as arrayOf,q as bool,f as config,Q as createTypes,M as custom,W as default,A as fromType,V as func,z as instanceOf,Y as integer,J as nullable,B as number,F as object,C as objectOf,R as oneOf,U as oneOfType,G as shape,L as string,I as symbol,x as toType,S as toValidableType,k as validateType}; | ||
| import{isPlainObject as e}from"is-plain-object";function t(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function n(e,n){for(var r=0;r<n.length;r++){var i=n[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,t(i.key),i)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,u(e,t)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function a(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var f={silent:!1,logLevel:"warn"},l=["validator"],c=Object.prototype,s=c.toString,v=c.hasOwnProperty,d=/^\s*function (\w+)/;function p(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(d);return r?r[1]:""}return""}var y=e;function h(){}var b=h;if("production"!==process.env.NODE_ENV){var g="undefined"!=typeof console;b=g?function(e,t){void 0===t&&(t=f.logLevel),!1===f.silent&&console[t]("[VueTypes warn]: "+e)}:h}var O=function(e,t){return v.call(e,t)},m=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},j=Array.isArray||function(e){return"[object Array]"===s.call(e)},_=function(e){return"[object Function]"===s.call(e)},T=function(e,t){return y(e)&&O(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t)},w=function(e){return y(e)&&(O(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return O(e,t)}))};function P(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function k(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o="";r=y(e)?e:{type:e};var u=T(r)?r._vueTypes_name+" - ":"";if(w(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;j(r.type)?(i=r.type.some(function(e){return!0===k(e,t,!0)}),o=r.type.map(function(e){return p(e)}).join(" or ")):i="Array"===(o=p(r))?j(t):"Object"===o?y(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";var t=e.constructor.toString().match(d);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type}if(!i){var a=u+'value "'+t+'" should be of type "'+o+'"';return!1===n?(b(a),!1):a}if(O(r,"validator")&&_(r.validator)){var f=b,l=[];if(b=function(e){l.push(e)},i=r.validator(t),b=f,!i){var c=(l.length>1?"* ":"")+l.join("\n* ");return l.length=0,!1===n?(b(c),i):c}}return i}function x(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(O(this,"default")&&delete this.default,this):_(e)||!0===k(this,e,!0)?(this.default=j(e)?function(){return[].concat(e)}:y(e)?function(){return Object.assign({},e)}:e,this):(b(this._vueTypes_name+' - invalid default value: "'+e+'"'),this)}}}),r=n.validator;return _(r)&&(n.validator=P(r,n)),n}function S(e,t){var n=x(e,t);return Object.defineProperty(n,"validate",{value:function(e){return _(this.validator)&&b(this._vueTypes_name+" - calling .validate() will overwrite the current custom validator function. Validator info:\n"+JSON.stringify(this)),this.validator=P(e,this),this}})}function A(e,t,n){var r,i,o=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(o._vueTypes_name=e,!y(n))return o;var u,f,c=n.validator,s=a(n,l);if(_(c)){var v=o.validator;v&&(v=null!==(f=(u=v).__original)&&void 0!==f?f:u),o.validator=P(v?function(e){return v.call(this,e)&&c.call(this,e)}:c,o)}return Object.assign(o,s)}function E(e){return e.replace(/^(?!\s*$)/gm," ")}var N=function(){return S("any",{})},V=function(){return S("function",{type:Function})},q=function(){return S("boolean",{type:Boolean})},L=function(){return S("string",{type:String})},B=function(){return S("number",{type:Number})},D=function(){return S("array",{type:Array})},F=function(){return S("object",{type:Object})},Y=function(){return x("integer",{type:Number,validator:function(e){var t=m(e);return!1===t&&b('integer - "'+e+'" is not an integer'),t}})},I=function(){return x("symbol",{validator:function(e){var t="symbol"==typeof e;return!1===t&&b('symbol - invalid value "'+e+'"'),t}})},J=function(){return Object.defineProperty({type:null,validator:function(e){var t=null===e;return!1===t&&b("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"})};function M(e,t){if(void 0===t&&(t="custom validation failed"),"function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return x(e.name||"<<anonymous function>>",{type:null,validator:function(n){var r=e(n);return r||b(this._vueTypes_name+" - "+t),r}})}function R(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.map(function(e){return"symbol"==typeof e?e.toString():e}).join('", "')+'".',n={validator:function(n){var r=-1!==e.indexOf(n);return r||b(t),r}};if(-1===e.indexOf(null)){var r=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);r.length>0&&(n.type=r)}return x("oneOf",n)}function U(e){if(!j(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,n=!1,r=[],i=0;i<e.length;i+=1){var o=e[i];if(w(o)){if(_(o.validator)&&(t=!0),T(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(T(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){b('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter(function(e,t){return r.indexOf(e)===t});var u=!1===n&&r.length>0?r:null;return x("oneOfType",t?{type:u,validator:function(t){var n=[],r=e.some(function(e){var r=k(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||b("oneOfType - provided value does not match any of the "+n.length+" passed-in validators:\n"+E(n.join("\n"))),r}}:{type:u})}function $(e){return x("arrayOf",{type:Array,validator:function(t){var n="",r=t.every(function(t){return!0===(n=k(e,t,!0))});return r||b("arrayOf - value validation error:\n"+E(n)),r}})}function z(e){return x("instanceOf",{type:e})}function C(e){return x("objectOf",{type:Object,validator:function(t){var n="",r=Object.keys(t).every(function(r){return!0===(n=k(e,t[r],!0))});return r||b("objectOf - value validation error:\n"+E(n)),r}})}function G(e){var t=Object.keys(e),n=t.filter(function(t){var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=x("shape",{type:Object,validator:function(r){var i=this;if(!y(r))return!1;var o=Object.keys(r);if(n.length>0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return b(1===u.length?'shape - required property "'+u[0]+'" is not defined.':'shape - required properties "'+u.join('", "')+'" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(b('shape - shape definition does not include a "'+n+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var o=k(e[n],r[n],!0);return"string"==typeof o&&b('shape - "'+n+'" property validation error:\n '+E(o)),!0===o})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var H=["name","validate","getter"],K=/*#__PURE__*/function(e){return e=/*#__PURE__*/function(){function e(){}return e.extend=function(e){var t=this;if(b("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),j(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=void 0!==r&&r,o=e.getter,u=void 0!==o&&o,f=a(e,H);if(O(this,n))throw new TypeError('[VueTypes error]: Type "'+n+'" already defined');var l,c=f.type;return T(c)?(delete f.type,Object.defineProperty(this,n,u?{get:function(){return A(n,c,f)}}:{value:function(){var e,t=A(n,c,f);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(l=u?{get:function(){var e=Object.assign({},f);return i?S(n,e):x(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},f);return e=i?S(n,r):x(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,l))},r(e,null,[{key:"any",get:function(){return N()}},{key:"func",get:function(){return V().def(this.defaults.func)}},{key:"bool",get:function(){return void 0===this.defaults.bool?q():q().def(this.defaults.bool)}},{key:"string",get:function(){return L().def(this.defaults.string)}},{key:"number",get:function(){return B().def(this.defaults.number)}},{key:"array",get:function(){return D().def(this.defaults.array)}},{key:"object",get:function(){return F().def(this.defaults.object)}},{key:"integer",get:function(){return Y().def(this.defaults.integer)}},{key:"symbol",get:function(){return I()}},{key:"nullable",get:function(){return J()}}])}(),e.defaults={},e.sensibleDefaults=void 0,e.config=f,e.custom=M,e.oneOf=R,e.instanceOf=z,e.oneOfType=U,e.arrayOf=$,e.objectOf=C,e.shape=G,e.utils={validate:function(e,t){return!0===k(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?S(e,t):x(e,t)}},e}();function Q(e){var t;return void 0===e&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),t=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),r(n,null,[{key:"sensibleDefaults",get:function(){return i({},this.defaults)},set:function(t){this.defaults=!1!==t?i({},!0!==t?t:e):{}}}])}(K),t.defaults=i({},e),t}var W=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(Q());export{N as any,D as array,$ as arrayOf,q as bool,f as config,Q as createTypes,M as custom,W as default,A as fromType,V as func,z as instanceOf,Y as integer,J as nullable,B as number,F as object,C as objectOf,R as oneOf,U as oneOfType,G as shape,L as string,I as symbol,x as toType,S as toValidableType,k as validateType}; | ||
| //# sourceMappingURL=vue-types.m.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"vue-types.m.js","sources":["../src/config.ts","../src/utils.ts","../src/sensibles.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = { [key: string]: any }\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => string | void =\n identity\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : identity\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: { [key: string]: any }\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends { [key: string]: any }>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<{ [key: string]: InferType<T> }>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","identity","arg","warn","process","env","NODE_ENV","hasConsole","console","msg","level","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","concat","assign","toValidableType","JSON","stringify","fromType","source","props","descriptors","copy","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","_fn$__original","rest","_objectWithoutPropertiesLoose","prevValidator","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","_this","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","extend","p","_props$validate","validate","_props$getter","getter","opts","descriptor","_t$validator","apply","slice","arguments","typeOptions","enumerable","_typeOptions$validato","_createClass","defaults","sensibleDefaults","utils","validable","createTypes","defs","_Class","_BaseVueTypes2","_inheritsLoose","_extends","set","VueTypes","_createTypes"],"mappings":"orCAEa,IAAAA,EAAyB,CACpCC,QAAQ,EACRC,SAAU,QCJZC,EAAA,CAAA,aAWMC,EAAWC,OAAOC,UAClBC,EAAWH,EAASG,SACbC,EAASJ,EAASK,eAEzBC,EAAkB,8BAGRC,EACdC,OAA8DC,EAExDC,UAAID,EAAID,aAAAA,EAAAA,EAAqBE,YAAI,IAAAD,EAAAA,EAAID,EAC3C,GAAIE,EAAM,CACR,IAAMC,EAAQD,EAAKP,WAAWQ,MAAML,GACpC,OAAOK,EAAQA,EAAM,GAAK,EAC5B,CACA,MAAO,EACT,CASa,IAAAC,EAAgBC,EAahBC,EAAW,SAACC,GAAQ,OAAKA,CAAG,EAErCC,EACFF,EAEF,GAA6B,eAAzBG,QAAQC,IAAIC,SAA2B,CACzC,IAAMC,EAAgC,oBAAZC,QAC1BL,EAAOI,EACH,SAAcE,EAAaC,QAAK,IAALA,IAAAA,EAAQ3B,EAAOE,WAClB,IAAlBF,EAAOC,QACTwB,QAAQE,GAAM,oBAAqBD,EAEvC,EACAR,CACN,CAUO,IAAMU,EAAM,SAAuBC,EAAQC,GAAO,OACvDtB,EAAOuB,KAAKF,EAAKC,EAAK,EASXE,EACXC,OAAOD,WACP,SAAmBE,GACjB,MACmB,iBAAVA,GACPC,SAASD,IACTE,KAAKC,MAAMH,KAAWA,CAE1B,EAQWI,EACXC,MAAMD,SACN,SAAiBJ,GACf,MAAgC,mBAAzB3B,EAASwB,KAAKG,EACvB,EASWM,EAAa,SAAqBN,SACpB,sBAAzB3B,EAASwB,KAAKG,EAA8B,EAOjCO,EAAe,SAC1BP,EACAQ,GAEA,OAAA1B,EAAckB,IACdN,EAAIM,EAAO,qBACTQ,GAAQR,EAAMS,iBAAmBD,EAAK,EAM7BE,EAAgB,SAAIV,GAAU,OACzClB,EAAckB,KACbN,EAAIM,EAAO,SACV,CAAC,iBAAkB,YAAa,UAAW,YAAYW,KAAK,SAACC,GAAC,OAC5DlB,EAAIM,EAAOY,EAAE,GACb,WAaUC,EAAOnC,EAA6BoC,GAClD,OAAO3C,OAAO4C,eAAerC,EAAGsC,KAAKF,GAAmB,aAAc,CACpEd,MAAOtB,GAEX,UAuBgBuC,EACdrC,EACAoB,EACAjC,GAEA,IAAImD,WAFJnD,IAAAA,GAAS,GAGT,IAAIoD,GAAQ,EACRC,EAAe,GAIjBF,EAHGpC,EAAcF,GAGHA,EAFA,CAAEA,KAAAA,GAIlB,IAAMyC,EAAad,EAAaW,GAC5BA,EAAYT,eAAiB,MAC7B,GAEJ,GAAIC,EAAcQ,IAAqC,OAArBA,EAAYtC,KAAe,CAC3D,QAAyB0C,IAArBJ,EAAYtC,OAA2C,IAArBsC,EAAYtC,KAChD,OAAOuC,EAET,IAAKD,EAAYK,UAAqB,MAATvB,EAC3B,OAAOmB,EAELf,EAAQc,EAAYtC,OACtBuC,EAAQD,EAAYtC,KAAK+B,KACvB,SAAC/B,UAAkD,IAApCqC,EAAarC,EAAMoB,GAAO,EAAc,GAEzDoB,EAAeF,EAAYtC,KACxB4C,IAAI,SAAC5C,GAAc,OAAAH,EAAQG,EAAK,GAChC6C,KAAK,SAKNN,EADmB,WAFrBC,EAAe3C,EAAQyC,IAGbd,EAAQJ,GACU,WAAjBoB,EACDtC,EAAckB,GAEL,WAAjBoB,GACiB,WAAjBA,GACiB,YAAjBA,GACiB,aAAjBA,EA9LQ,SAAcpB,GAC5B,GAAIA,QAAuC,MAAO,GAClD,IAAMnB,EAAQmB,EAAM0B,YAAYrD,WAAWQ,MAAML,GACjD,OAAOK,EAAQA,EAAM,GAAG8C,QAAQ,SAAU,IAAM,EAClD,CA4LgBC,CAAc5B,KAAWoB,EAEzBpB,aAAiBkB,EAAYtC,IAG3C,CAEA,IAAKuC,EAAO,CACV,IAAM3B,EAAS6B,EAAoBrB,UAAAA,0BAA6BoB,EAAY,IAC5E,OAAe,IAAXrD,GACFmB,EAAKM,IACE,GAEFA,CACT,CAEA,GAAIE,EAAIwB,EAAa,cAAgBZ,EAAWY,EAAYW,WAAY,CACtE,IAAMC,EAAU5C,EACV6C,EAAoB,GAQ1B,GAPA7C,EAAO,SAACM,GACNuC,EAAQC,KAAKxC,EACf,EAEA2B,EAAQD,EAAYW,UAAU7B,GAC9Bd,EAAO4C,GAEFX,EAAO,CACV,IAAM3B,GAAOuC,EAAQE,OAAS,EAAI,KAAO,IAAMF,EAAQN,KAAK,QAE5D,OADAM,EAAQE,OAAS,GACF,IAAXlE,GACFmB,EAAKM,GACE2B,GAEF3B,CACT,CACF,CACA,OAAO2B,CACT,CAQgB,SAAAe,EAAgB1B,EAAcb,GAC5C,IAAMf,EAAsBT,OAAOgE,iBAAiBxC,EAAsB,CACxEc,eAAgB,CACdT,MAAOQ,EACP4B,UAAU,GAEZC,WAAY,CACVC,eAEE,OADAC,KAAKhB,UAAW,MAElB,GAEFiB,IAAK,CACHxC,MAAK,SAACwC,GACJ,YAAYlB,IAARkB,EAEAD,KAAK3D,OAAS6D,SACbpC,MAAMD,QAAQmC,KAAK3D,OAAS2D,KAAK3D,KAAK8D,SAASD,cAEhDF,KAAY,aAAGjB,IAGb5B,EAAI6C,KAAM,wBAEd,QACOA,MAEJjC,EAAWkC,KAA0C,IAAlCvB,EAAasB,KAAMC,GAAK,IAK9CD,KAAY,QADVnC,EAAQoC,GACK,WAAAG,MAAAA,GAAAA,OAAUH,EAAG,EACnB1D,EAAc0D,GACR,WAAM,OAAArE,OAAOyE,OAAO,CAAA,EAAIJ,EAAI,EAE5BA,SARftD,EAAQqD,KAAK9B,6CAA4C+B,EAAG,UAWhE,KAIIX,EAAcjD,EAAdiD,UAKR,OAJIvB,EAAWuB,KACbjD,EAAKiD,UAAYhB,EAAOgB,EAAWjD,IAG9BA,CACT,CAQgB,SAAAiE,EAAyBrC,EAAcb,GACrD,IAAMf,EAAOsD,EAAU1B,EAAMb,GAC7B,OAAOxB,OAAO4C,eAAenC,EAAM,WAAY,CAC7CoB,MAAK,SAACtB,GAWJ,OAVI4B,EAAWiC,KAAKV,YAClB3C,EAEIqD,KAAK9B,eACP,iGAAiGqC,KAAKC,UACpGR,OAINA,KAAKV,UAAYhB,EAAOnC,EAAI6D,MAE9BA,IAAA,GAEJ,CA+BgB,SAAAS,EAGdxC,EAAcyC,EAAWC,GAEzB,IA5BsCvD,EAChCwD,EA2BAC,GA5BgCzD,EA4BnBsD,EA3BbE,EAAc,CAA6B,EACjDhF,OAAOkF,oBAAoB1D,GAAK2D,QAAQ,SAACC,GACvCJ,EAAYI,GAAkBpF,OAAOqF,yBAAyB7D,EAAK4D,EACrE,GACOpF,OAAOgE,iBAAiB,CAAA,EAAIgB,IA4BnC,GAFAC,EAAK3C,eAAiBD,GAEjB1B,EAAcoE,GACjB,OAAOE,EAET,IA7NqD1E,EAAK+E,EA6NlD5B,EAAuBqB,EAAvBrB,UAAc6B,EAAIC,EAAKT,EAAKjF,GAKpC,GAAIqC,EAAWuB,GAAY,CACzB,IAAiB+B,EAAkBR,EAA7BvB,UAEF+B,IACFA,UArOJH,GADqD/E,EAsO1BkF,GArOFC,kBAAU,IAAAJ,EAAAA,EAAI/E,GAwOrC0E,EAAKvB,UAAYhB,EACf+C,EACI,SAAmB5D,GACjB,OAEE4D,EAAe/D,KAAK0C,KAAMvC,IAAU6B,EAAUhC,KAAK0C,KAAMvC,EAE7D,EACA6B,EACJuB,EAEJ,CAEA,OAAOjF,OAAOyE,OAAOQ,EAAMM,EAC7B,UAEgBI,EAAOC,GACrB,OAAOA,EAAOpC,QAAQ,cAAe,KACvC,CC5ZO,ICCMqC,EAAM,WAAH,OAAkBnB,EAAmB,MAAO,CAAE,EAAC,EAElDoB,EAAO,WAClB,OAAApB,EAAmB,WAAY,CAC7BjE,KAAMsF,UACN,EAESC,EAAO,kBAClBtB,EAAgB,UAAW,CACzBjE,KAAM6D,SACN,EAESsB,EAAS,WACpB,OAAAlB,EAAmB,SAAU,CAC3BjE,KAAMwF,QACN,EAESC,EAAS,WACpB,OAAAxB,EAAmB,SAAU,CAC3BjE,KAAMmB,QACN,EAESuE,EAAQ,WAAH,OAChBzB,EAAqB,QAAS,CAC5BjE,KAAMyB,OACN,EAESkE,EAAS,WACpB,OAAA1B,EAAmB,SAAU,CAC3BjE,KAAMT,QACN,EAESqG,EAAU,WAAH,OAClBtC,EAAU,UAAW,CACnBtD,KAAMmB,OACN8B,UAAS,SAAC7B,GACR,IAAMyE,EAAM3E,EAAUE,GAItB,OAHY,IAARyE,GACFvF,EAAI,cAAec,EAA0B,uBAExCyE,CACT,GACA,EAESC,EAAS,kBACpBxC,EAAe,SAAU,CACvBL,UAASA,SAAC7B,GACR,IAAMyE,EAAuB,iBAAVzE,EAInB,OAHY,IAARyE,GACFvF,EAAI,2BAA4Bc,EAAQ,KAEnCyE,CACT,GACA,EAESE,EAAW,kBACtBxG,OAAO4C,eACL,CACEnC,KAAM,KACNiD,UAASA,SAAC7B,GACR,IAAMyE,EAAgB,OAAVzE,EAIZ,OAHY,IAARyE,GACFvF,EAAsC,mCAEjCuF,CACT,GAEF,iBACA,CAAEzE,MAAO,YACW,ECrEA,SAAA4E,EACtBC,EACAC,GAEA,YAFAA,IAAAA,EAAU,4BAEiB,mBAAhBD,EACT,UAAUE,UACR,6DAIJ,OAAO7C,EAAU2C,EAAYrE,MAAQ,yBAA0B,CAC7D5B,KAAM,KACNiD,UAASA,SAAsB7B,GAC7B,IAAMmB,EAAQ0D,EAAY7E,GAE1B,OADKmB,GAAOjC,EAAQqD,KAAK9B,eAAoBqE,MAAAA,GACtC3D,CACT,GAEJ,CClBwB,SAAA6D,EACtBC,GAEA,IAAK7E,EAAQ6E,GACX,MAAM,IAAIF,UACR,4DAGJ,IAAMvF,qCAAyCyF,EAC5CzD,IAAI,SAAC0D,GAAY,MAAa,iBAANA,EAAiBA,EAAE7G,WAAa6G,CAAC,GACzDzD,KAAK,aACF0D,EAA+B,CACnCtD,UAASA,SAAC7B,GACR,IAAMmB,GAAgC,IAAxB8D,EAAIG,QAAQpF,GAE1B,OADKmB,GAAOjC,EAAKM,GACV2B,CACT,GAEF,IAA2B,IAAvB8D,EAAIG,QAAQ,MAAc,CAC5B,IAAMxG,EAAOqG,EAAII,OACf,SAACC,EAAKJ,GACJ,GAAIA,QAA+B,CACjC,IAAMK,EAAUL,EAAUxD,aACD,IAAzB4D,EAAIF,QAAQG,IAAkBD,EAAItD,KAAKuD,EACzC,CACA,OAAOD,CACT,EACA,IAGE1G,EAAKqD,OAAS,IAChBkD,EAAKvG,KAAOA,EAEhB,CAEA,OAAOsD,EAAkB,QAASiD,EACpC,CC3BwB,SAAAK,EAItBP,GACA,IAAK7E,EAAQ6E,GACX,UAAUF,UACR,2DASJ,IALA,IAAIU,GAAsB,EACtBC,GAAc,EAEdC,EAA0B,GAErBC,EAAI,EAAGA,EAAIX,EAAIhD,OAAQ2D,GAAK,EAAG,CACtC,IAAMhH,EAAOqG,EAAIW,GACjB,GAAIlF,EAAiB9B,GAAO,CAI1B,GAHI0B,EAAW1B,EAAKiD,aAClB4D,GAAsB,GAEpBlF,EAAgB3B,EAAM,UAAYA,EAAKA,KAAM,CAC/C+G,EAAeA,EAAahD,OAAO/D,EAAKA,MACxC,QACF,CACA,GAAI2B,EAAgB3B,EAAM,YAAa,CACrC8G,GAAc,EACd,QACF,CACA,IAAkB,IAAd9G,EAAKA,OAAkBA,EAAKA,KAAM,CACpCM,EAAK,4DACL,QACF,CACAyG,EAAeA,EAAahD,OAAO/D,EAAKA,KAC1C,MACE+G,EAAa3D,KAAKpD,EAEtB,CAGA+G,EAAeA,EAAaE,OAAO,SAACC,EAAGF,GAAM,OAAAD,EAAaP,QAAQU,KAAOF,CAAC,GAE1E,IAAMG,GACY,IAAhBL,GAAyBC,EAAa1D,OAAS,EAAI0D,EAAe,KAEpE,OAQOzD,EAAU,YARZuD,EAQyB,CAC5B7G,KAAMmH,EACNlE,UAASA,SAAC7B,GACR,IAAMgG,EAAgB,GAChB7E,EAAQ8D,EAAItE,KAAK,SAAC/B,GACtB,IAAM6F,EAAMxD,EAAarC,EAAMoB,GAAO,GAItC,MAHmB,iBAARyE,GACTuB,EAAIhE,KAAKyC,IAEI,IAARA,CACT,GAUA,OARKtD,GACHjC,EAAI,wDAEA8G,EAAI/D,OACqB6B,2BAAAA,EAAOkC,EAAIvE,KAAK,QAIxCN,CACT,GA1B8B,CAC5BvC,KAAMmH,GA2BZ,CCtFwB,SAAAE,EAA4CrH,GAClE,OAAOsD,EAAuB,UAAW,CACvCtD,KAAMyB,MACNwB,mBAAUqE,GACR,IAAIC,EAA4B,GAC1BhF,EAAQ+E,EAAOE,MAAM,SAACpG,GAE1B,OAAmB,KADnBmG,EAAUlF,EAAarC,EAAMoB,GAAO,GAEtC,GAIA,OAHKmB,GACHjC,EAA2C4E,sCAAAA,EAAOqC,IAE7ChF,CACT,GAEJ,CCfwB,SAAAkF,EACtBC,GAEA,OAAOpE,EAAwB,aAAc,CAC3CtD,KAAM0H,GAEV,CCNwB,SAAAC,EAA6C3H,GACnE,OAAOsD,EAAwC,WAAY,CACzDtD,KAAMT,OACN0D,UAASA,SAAClC,GACR,IAAIwG,EAA4B,GAC1BhF,EAAQhD,OAAOqI,KAAK7G,GAAKyG,MAAM,SAAC7C,GAEpC,OAAmB,KADnB4C,EAAUlF,EAAarC,EAAMe,EAAI4D,IAAM,GAEzC,GAKA,OAHKpC,GACHjC,EAAI,uCAAwC4E,EAAOqC,IAE9ChF,CACT,GAEJ,UCfwBsF,EAAwB9G,GAG9C,IAAM6G,EAAOrI,OAAOqI,KAAK7G,GACnB+G,EAAeF,EAAKX,OAAO,SAACtC,GAAG,IAAAoD,EAAK,gBAACA,EAAEhH,EAAY4D,UAAI,IAAAoD,IAAhBA,EAAkBpF,YAEzD3C,EAAOsD,EAAO,QAAS,CAC3BtD,KAAMT,OACN0D,UAASA,SAA+C7B,GAAK,IAAA4G,EAC3DrE,KAAA,IAAKzD,EAAckB,GACjB,OACF,EACA,IAAM6G,EAAY1I,OAAOqI,KAAKxG,GAG9B,GACE0G,EAAazE,OAAS,GACtByE,EAAa/F,KAAK,SAACmG,GAAQ,OAA4B,IAA5BD,EAAUzB,QAAQ0B,EAAW,GACxD,CACA,IAAMC,EAAUL,EAAab,OAC3B,SAACiB,GAAQ,OAA4B,IAA5BD,EAAUzB,QAAQ0B,EAAW,GAYxC,OATE5H,EADqB,IAAnB6H,EAAQ9E,OACyB8E,8BAAAA,EAAQ,GAAqB,oBAE5D,gCAC8BA,EAAQtF,KACtC,QACmB,uBAIlB,CACT,CAEA,OAAOoF,EAAUT,MAAM,SAAC7C,GACtB,IAA2B,IAAvBiD,EAAKpB,QAAQ7B,GACf,OAAyD,IAApDqD,EAA8BI,oBAEnC9H,EACkDqE,gDAAAA,gCAAiCiD,EAAK/E,KACpF,QACG,UAIT,IACMN,EAAQF,EADAtB,EAAY4D,GACOvD,EAAMuD,IAAM,GAI7C,MAHqB,iBAAVpC,GACTjC,EAAiBqE,YAAAA,oCAAqCO,EAAO3C,KAE9C,IAAVA,CACT,EACF,IAeF,OAZAhD,OAAO4C,eAAenC,EAAM,oBAAqB,CAC/CwD,UAAU,EACVpC,OAAO,IAGT7B,OAAO4C,eAAenC,EAAM,QAAS,CACnC0D,eAEE,OADAC,KAAKyE,mBAAoB,MAE3B,IAGKpI,CACT,CCzEA,IAAAX,EAAA,CAAA,OAAA,WAAA,UA2CMgJ,eAA8B,SAAAC,GAAAA,OAAAA,eAAAD,WAAAA,SAAAA,IAAAA,CA4H/B,OA5H+BA,EAoDzBE,OAAP,SAAuBjE,GAAkC0D,IAAAA,EACvD1H,KAGA,GAHAA,EACgM,gMAE5LkB,EAAQ8C,GAEV,OADAA,EAAMI,QAAQ,SAAC8D,GAAC,OAAKR,EAAKO,OAAOC,EAAE,GAErC7E,KAEA,IAAQ/B,EAAoD0C,EAApD1C,KAAI6G,EAAgDnE,EAA9CoE,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAA8BrE,EAA5BsE,OAAAA,OAAM,IAAAD,GAAQA,EAAKE,EAAI9D,EAAKT,EAAKjF,GAEjE,GAAIyB,EAAI6C,KAAM/B,GACZ,MAAM,IAAIuE,UAAqCvE,2BAAAA,EAAuB,qBAGxE,IAwBIkH,EAxBI9I,EAAS6I,EAAT7I,KACR,OAAI2B,EAAa3B,WAKR6I,EAAK7I,KAGHT,OAAO4C,eAAewB,KAAsB/B,EADjDgH,EACuD,CACvDlF,IAAK,WAAA,OAAMU,EAASxC,EAAM5B,EAAM6I,EAAkC,GAGb,CACvDzH,MAAKA,WACH,IACiB2H,EADX7B,EAAI9C,EAASxC,EAAM5B,EAAM6I,GAI/B,OAHI3B,EAAEjE,YACJiE,EAAEjE,WAAY8F,EAAA7B,EAAEjE,WAAUb,KAAI4G,MAAAD,EAAA,CAAC7B,GAACnD,OAAA,GAAAkF,MAAAhI,KAAAiI,cAE3BhC,CACT,MAMF4B,EADEF,EACW,CACXlF,IAAGA,WACD,IAAMyF,EAAc5J,OAAOyE,OAAO,CAAA,EAAI6E,GACtC,OAAIH,EACKzE,EAAmBrC,EAAMuH,GAE3B7F,EAAU1B,EAAMuH,EACzB,EACAC,YAAY,GAGD,CACXhI,MAAK,WACH,IACIsF,EAOuB2C,EARrBF,EAAc5J,OAAOyE,OAAO,CAAE,EAAE6E,GAWtC,OAREnC,EADEgC,EACIzE,EAAmBrC,EAAMuH,GAEzB7F,EAAU1B,EAAMuH,GAGpBA,EAAYlG,YACdyD,EAAIzD,WAAYoG,EAAAF,EAAYlG,WAAUb,KAAI4G,MAAAK,EAAC3C,CAAAA,GAAG3C,OAAAkF,GAAAA,MAAAhI,KAAAiI,cAEzCxC,CACT,EACA0C,YAAY,GAIT7J,OAAO4C,eAAewB,KAAsB/B,EAAMkH,GAC3D,EAACQ,EAAAjB,EAAA,KAAA,CAAA,CAAA1D,IAAAjB,MAAAA,IApHD,WACE,OAAO0B,GACT,GAAC,CAAAT,IAAA,OAAAjB,IACD,WACE,OAAO2B,IAAOzB,IAAID,KAAK4F,SAASlE,KAClC,GAACV,CAAAA,IAAAjB,OAAAA,IACD,WAEE,YAA2BhB,IAAvBiB,KAAK4F,SAAShE,KACTA,IAEFA,IAAO3B,IAAID,KAAK4F,SAAShE,KAClC,GAACZ,CAAAA,IAAAjB,SAAAA,IACD,WACE,OAAOyB,IAASvB,IAAID,KAAK4F,SAASpE,OACpC,GAAC,CAAAR,IAAA,SAAAjB,IACD,WACE,OAAO+B,IAAS7B,IAAID,KAAK4F,SAAS9D,OACpC,GAACd,CAAAA,IAAAjB,QAAAA,IACD,WACE,OAAOgC,IAAQ9B,IAAID,KAAK4F,SAAS7D,MACnC,GAAC,CAAAf,IAAAjB,SAAAA,IACD,WACE,OAAOiC,IAAS/B,IAAID,KAAK4F,SAAS5D,OACpC,GAAChB,CAAAA,IAAAjB,UAAAA,IACD,WACE,OAAOkC,IAAUhC,IAAID,KAAK4F,SAAS3D,QACrC,GAAC,CAAAjB,IAAA,SAAAjB,IACD,WACE,OAAOoC,GACT,GAAC,CAAAnB,IAAA,WAAAjB,IAED,WACE,OAAOqC,GACT,IAAC,CA1C+BsC,GA0C/BC,EAxCMiB,SAAsC,CAAE,EAAAjB,EAExCkB,sBAAgBlB,EAAAA,EAEhBpJ,OAASA,EAAMoJ,EAsCNtC,OAASA,EAAMsC,EACflC,MAAQA,EAAKkC,EACbb,WAAaA,EAAUa,EACvB1B,UAAYA,EAAS0B,EACrBjB,QAAUA,EAAOiB,EACjBX,SAAWA,EAAQW,EACnBT,MAAQA,EAAKS,EA4EtBmB,MAAQ,CACbf,SAAQA,SAAOtH,EAAUpB,GACvB,OAAiD,IAA1CqC,EAAmBrC,EAAMoB,GAAO,EACzC,EACAkC,OAAMA,SACJ1B,EACAb,EACA2I,GAEA,YAFS,IAATA,IAAAA,GAAY,GAELA,EAAYzF,EAAmBrC,EAAMb,GAAOuC,EAAU1B,EAAMb,EACrE,GACDuH,CAAA,CAzI+B,GA4IpC,SAASqB,EAAYC,GAAgD,IAAAC,EACnE,YADqD,IAAlCD,IAAAA,ETrLgC,CACnDvE,KAAM,WAAe,EACrBE,MAAM,EACNJ,OAAQ,GACRM,OAAQ,EACRC,MAAO,WAAM,MAAA,EAAE,EACfC,OAAQ,WAAO,MAAA,CAAA,CAAE,EACjBC,QAAS,IS+KTiE,eAAAC,SAAAA,GAAAD,SAAAA,IAAAC,OAAAA,EAAAd,MAAAE,KAAAA,iBAAA,OAAAa,EAAAF,EAAAC,GAAAR,EAAAO,EAAA,KAAA,CAAA,CAAAlF,IAAA,mBAAAjB,IAGE,WACE,OAAAsG,EAAA,CAAA,EAAYrG,KAAK4F,SACnB,EAACU,IAED,SAA4B3D,GAS1B3C,KAAK4F,UARK,IAANjD,EAQS0D,EAAQ1D,CAAAA,GAJX,IAANA,EAIiBA,EAHEsD,GAJL,CAAE,CAQtB,IAjBmBvB,CAArByB,CAAqBzB,GAAYwB,EACxBN,SAAQS,KAAmCJ,GAAIC,CAkB1D,CAEqB,IAAAK,eAASC,SAAAA,GAAAD,SAAAA,IAAAC,OAAAA,EAAAnB,WAAAE,YAAAvF,IAAA,CAAA,OAAAoG,EAAAG,EAAAC,GAAAD,CAAA,CAAAC,CAAsBR"} | ||
| {"version":3,"file":"vue-types.m.js","sources":["../src/config.ts","../src/utils.ts","../src/sensibles.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = Record<string, any>\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => void = noop\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : noop\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: Record<string, any>\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends Record<string, any>>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<Record<string, InferType<T>>>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","noop","warn","process","env","NODE_ENV","hasConsole","console","msg","level","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","concat","assign","toValidableType","JSON","stringify","fromType","source","props","descriptors","copy","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","_fn$__original","rest","_objectWithoutPropertiesLoose","prevValidator","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","_this","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","extend","p","_props$validate","validate","_props$getter","getter","opts","descriptor","_t$validator","apply","slice","arguments","typeOptions","enumerable","_typeOptions$validato","_createClass","defaults","sensibleDefaults","utils","validable","createTypes","defs","_Class","_BaseVueTypes2","_inheritsLoose","_extends","set","VueTypes","_createTypes"],"mappings":"orCAEa,IAAAA,EAAyB,CACpCC,QAAQ,EACRC,SAAU,QCJZC,EAAA,CAAA,aAWMC,EAAWC,OAAOC,UAClBC,EAAWH,EAASG,SACbC,EAASJ,EAASK,eAEzBC,EAAkB,8BAGRC,EACdC,OAA8DC,EAExDC,UAAID,EAAID,aAAAA,EAAAA,EAAqBE,YAAI,IAAAD,EAAAA,EAAID,EAC3C,GAAIE,EAAM,CACR,IAAMC,EAAQD,EAAKP,WAAWQ,MAAML,GACpC,OAAOK,EAAQA,EAAM,GAAK,EAC5B,CACA,MAAO,EACT,CASa,IAAAC,EAAgBC,EAMvB,SAAUC,KAShB,IAAIC,EAAkED,EAEtE,GAA6B,eAAzBE,QAAQC,IAAIC,SAA2B,CACzC,IAAMC,EAAgC,oBAAZC,QAC1BL,EAAOI,EACH,SAAcE,EAAaC,QAAK,IAALA,IAAAA,EAAQ1B,EAAOE,WAClB,IAAlBF,EAAOC,QACTuB,QAAQE,GAAM,oBAAqBD,EAEvC,EACAP,CACN,CAUO,IAAMS,EAAM,SAAuBC,EAAQC,GAAO,OACvDrB,EAAOsB,KAAKF,EAAKC,EAAK,EASXE,EACXC,OAAOD,WACP,SAAmBE,GACjB,MACmB,iBAAVA,GACPC,SAASD,IACTE,KAAKC,MAAMH,KAAWA,CAE1B,EAQWI,EACXC,MAAMD,SACN,SAAiBJ,GACf,MAAgC,mBAAzB1B,EAASuB,KAAKG,EACvB,EASWM,EAAa,SAAqBN,SACpB,sBAAzB1B,EAASuB,KAAKG,EAA8B,EAOjCO,EAAe,SAC1BP,EACAQ,GAEA,OAAAzB,EAAciB,IACdN,EAAIM,EAAO,qBACTQ,GAAQR,EAAMS,iBAAmBD,EAAK,EAM7BE,EAAgB,SAAIV,GAAU,OACzCjB,EAAciB,KACbN,EAAIM,EAAO,SACV,CAAC,iBAAkB,YAAa,UAAW,YAAYW,KAAK,SAACC,GAAC,OAC5DlB,EAAIM,EAAOY,EAAE,GACb,WAaUC,EAAOlC,EAA6BmC,GAClD,OAAO1C,OAAO2C,eAAepC,EAAGqC,KAAKF,GAAmB,aAAc,CACpEd,MAAOrB,GAEX,UAuBgBsC,EACdpC,EACAmB,EACAhC,GAEA,IAAIkD,WAFJlD,IAAAA,GAAS,GAGT,IAAImD,GAAQ,EACRC,EAAe,GAIjBF,EAHGnC,EAAcF,GAGHA,EAFA,CAAEA,KAAAA,GAIlB,IAAMwC,EAAad,EAAaW,GAC5BA,EAAYT,eAAiB,MAC7B,GAEJ,GAAIC,EAAcQ,IAAqC,OAArBA,EAAYrC,KAAe,CAC3D,QAAyByC,IAArBJ,EAAYrC,OAA2C,IAArBqC,EAAYrC,KAChD,OAAOsC,EAET,IAAKD,EAAYK,UAAqB,MAATvB,EAC3B,OAAOmB,EAELf,EAAQc,EAAYrC,OACtBsC,EAAQD,EAAYrC,KAAK8B,KACvB,SAAC9B,UAAkD,IAApCoC,EAAapC,EAAMmB,GAAO,EAAc,GAEzDoB,EAAeF,EAAYrC,KACxB2C,IAAI,SAAC3C,GAAc,OAAAH,EAAQG,EAAK,GAChC4C,KAAK,SAKNN,EADmB,WAFrBC,EAAe1C,EAAQwC,IAGbd,EAAQJ,GACU,WAAjBoB,EACDrC,EAAciB,GAEL,WAAjBoB,GACiB,WAAjBA,GACiB,YAAjBA,GACiB,aAAjBA,EA7LQ,SAAcpB,GAC5B,GAAIA,QAAuC,MAAO,GAClD,IAAMlB,EAAQkB,EAAM0B,YAAYpD,WAAWQ,MAAML,GACjD,OAAOK,EAAQA,EAAM,GAAG6C,QAAQ,SAAU,IAAM,EAClD,CA2LgBC,CAAc5B,KAAWoB,EAEzBpB,aAAiBkB,EAAYrC,IAG3C,CAEA,IAAKsC,EAAO,CACV,IAAM3B,EAAS6B,EAAoBrB,UAAAA,0BAA6BoB,EAAY,IAC5E,OAAe,IAAXpD,GACFkB,EAAKM,IACE,GAEFA,CACT,CAEA,GAAIE,EAAIwB,EAAa,cAAgBZ,EAAWY,EAAYW,WAAY,CACtE,IAAMC,EAAU5C,EACV6C,EAAoB,GAQ1B,GAPA7C,EAAO,SAACM,GACNuC,EAAQC,KAAKxC,EACf,EAEA2B,EAAQD,EAAYW,UAAU7B,GAC9Bd,EAAO4C,GAEFX,EAAO,CACV,IAAM3B,GAAOuC,EAAQE,OAAS,EAAI,KAAO,IAAMF,EAAQN,KAAK,QAE5D,OADAM,EAAQE,OAAS,GACF,IAAXjE,GACFkB,EAAKM,GACE2B,GAEF3B,CACT,CACF,CACA,OAAO2B,CACT,CAQgB,SAAAe,EAAgB1B,EAAcb,GAC5C,IAAMd,EAAsBT,OAAO+D,iBAAiBxC,EAAsB,CACxEc,eAAgB,CACdT,MAAOQ,EACP4B,UAAU,GAEZC,WAAY,CACVC,eAEE,OADAC,KAAKhB,UAAW,MAElB,GAEFiB,IAAK,CACHxC,MAAK,SAACwC,GACJ,YAAYlB,IAARkB,EAEAD,KAAK1D,OAAS4D,SACbpC,MAAMD,QAAQmC,KAAK1D,OAAS0D,KAAK1D,KAAK6D,SAASD,cAEhDF,KAAY,aAAGjB,IAGb5B,EAAI6C,KAAM,wBAEd,QACOA,MAEJjC,EAAWkC,KAA0C,IAAlCvB,EAAasB,KAAMC,GAAK,IAK9CD,KAAY,QADVnC,EAAQoC,GACK,WAAAG,MAAAA,GAAAA,OAAUH,EAAG,EACnBzD,EAAcyD,GACR,WAAM,OAAApE,OAAOwE,OAAO,CAAA,EAAIJ,EAAI,EAE5BA,SARftD,EAAQqD,KAAK9B,6CAA4C+B,EAAG,UAWhE,KAIIX,EAAchD,EAAdgD,UAKR,OAJIvB,EAAWuB,KACbhD,EAAKgD,UAAYhB,EAAOgB,EAAWhD,IAG9BA,CACT,CAQgB,SAAAgE,EAAyBrC,EAAcb,GACrD,IAAMd,EAAOqD,EAAU1B,EAAMb,GAC7B,OAAOvB,OAAO2C,eAAelC,EAAM,WAAY,CAC7CmB,MAAK,SAACrB,GAWJ,OAVI2B,EAAWiC,KAAKV,YAClB3C,EAEIqD,KAAK9B,eACP,iGAAiGqC,KAAKC,UACpGR,OAINA,KAAKV,UAAYhB,EAAOlC,EAAI4D,MAE9BA,IAAA,GAEJ,CA+BgB,SAAAS,EAGdxC,EAAcyC,EAAWC,GAEzB,IA5BsCvD,EAChCwD,EA2BAC,GA5BgCzD,EA4BnBsD,EA3BbE,EAAc,GACpB/E,OAAOiF,oBAAoB1D,GAAK2D,QAAQ,SAACC,GACvCJ,EAAYI,GAAkBnF,OAAOoF,yBAAyB7D,EAAK4D,EACrE,GACOnF,OAAO+D,iBAAiB,CAAE,EAAEgB,IA4BnC,GAFAC,EAAK3C,eAAiBD,GAEjBzB,EAAcmE,GACjB,OAAOE,EAET,IA7NqDzE,EAAK8E,EA6NlD5B,EAAuBqB,EAAvBrB,UAAc6B,EAAIC,EAAKT,EAAKhF,GAKpC,GAAIoC,EAAWuB,GAAY,CACzB,IAAiB+B,EAAkBR,EAA7BvB,UAEF+B,IACFA,UArOJH,GADqD9E,EAsO1BiF,GArOFC,kBAAU,IAAAJ,EAAAA,EAAI9E,GAwOrCyE,EAAKvB,UAAYhB,EACf+C,EACI,SAAmB5D,GACjB,OAEE4D,EAAe/D,KAAK0C,KAAMvC,IAAU6B,EAAUhC,KAAK0C,KAAMvC,EAE7D,EACA6B,EACJuB,EAEJ,CAEA,OAAOhF,OAAOwE,OAAOQ,EAAMM,EAC7B,UAEgBI,EAAOC,GACrB,OAAOA,EAAOpC,QAAQ,cAAe,KACvC,CC3ZO,ICCMqC,EAAM,WAAH,OAAkBnB,EAAmB,MAAO,CAAE,EAAC,EAElDoB,EAAO,WAClB,OAAApB,EAAmB,WAAY,CAC7BhE,KAAMqF,UACN,EAESC,EAAO,kBAClBtB,EAAgB,UAAW,CACzBhE,KAAM4D,SACN,EAESsB,EAAS,WACpB,OAAAlB,EAAmB,SAAU,CAC3BhE,KAAMuF,QACN,EAESC,EAAS,WACpB,OAAAxB,EAAmB,SAAU,CAC3BhE,KAAMkB,QACN,EAESuE,EAAQ,WAAH,OAChBzB,EAAqB,QAAS,CAC5BhE,KAAMwB,OACN,EAESkE,EAAS,WACpB,OAAA1B,EAAmB,SAAU,CAC3BhE,KAAMT,QACN,EAESoG,EAAU,WAAH,OAClBtC,EAAU,UAAW,CACnBrD,KAAMkB,OACN8B,UAAS,SAAC7B,GACR,IAAMyE,EAAM3E,EAAUE,GAItB,OAHY,IAARyE,GACFvF,EAAI,cAAec,EAA0B,uBAExCyE,CACT,GACA,EAESC,EAAS,kBACpBxC,EAAe,SAAU,CACvBL,UAASA,SAAC7B,GACR,IAAMyE,EAAuB,iBAAVzE,EAInB,OAHY,IAARyE,GACFvF,EAAI,2BAA4Bc,EAAQ,KAEnCyE,CACT,GACA,EAESE,EAAW,kBACtBvG,OAAO2C,eACL,CACElC,KAAM,KACNgD,UAASA,SAAC7B,GACR,IAAMyE,EAAgB,OAAVzE,EAIZ,OAHY,IAARyE,GACFvF,EAAsC,mCAEjCuF,CACT,GAEF,iBACA,CAAEzE,MAAO,YACW,ECrEA,SAAA4E,EACtBC,EACAC,GAEA,YAFAA,IAAAA,EAAU,4BAEiB,mBAAhBD,EACT,UAAUE,UACR,6DAIJ,OAAO7C,EAAU2C,EAAYrE,MAAQ,yBAA0B,CAC7D3B,KAAM,KACNgD,UAASA,SAAsB7B,GAC7B,IAAMmB,EAAQ0D,EAAY7E,GAE1B,OADKmB,GAAOjC,EAAQqD,KAAK9B,eAAoBqE,MAAAA,GACtC3D,CACT,GAEJ,CClBwB,SAAA6D,EACtBC,GAEA,IAAK7E,EAAQ6E,GACX,MAAM,IAAIF,UACR,4DAGJ,IAAMvF,qCAAyCyF,EAC5CzD,IAAI,SAAC0D,GAAY,MAAa,iBAANA,EAAiBA,EAAE5G,WAAa4G,CAAC,GACzDzD,KAAK,aACF0D,EAA+B,CACnCtD,UAASA,SAAC7B,GACR,IAAMmB,GAAgC,IAAxB8D,EAAIG,QAAQpF,GAE1B,OADKmB,GAAOjC,EAAKM,GACV2B,CACT,GAEF,IAA2B,IAAvB8D,EAAIG,QAAQ,MAAc,CAC5B,IAAMvG,EAAOoG,EAAII,OACf,SAACC,EAAKJ,GACJ,GAAIA,QAA+B,CACjC,IAAMK,EAAUL,EAAUxD,aACD,IAAzB4D,EAAIF,QAAQG,IAAkBD,EAAItD,KAAKuD,EACzC,CACA,OAAOD,CACT,EACA,IAGEzG,EAAKoD,OAAS,IAChBkD,EAAKtG,KAAOA,EAEhB,CAEA,OAAOqD,EAAkB,QAASiD,EACpC,CC3BwB,SAAAK,EAItBP,GACA,IAAK7E,EAAQ6E,GACX,UAAUF,UACR,2DAUJ,IANA,IAAIU,GAAsB,EACtBC,GAAc,EAEdC,EAA0B,GAGrBC,EAAI,EAAGA,EAAIX,EAAIhD,OAAQ2D,GAAK,EAAG,CACtC,IAAM/G,EAAOoG,EAAIW,GACjB,GAAIlF,EAAiB7B,GAAO,CAI1B,GAHIyB,EAAWzB,EAAKgD,aAClB4D,GAAsB,GAEpBlF,EAAgB1B,EAAM,UAAYA,EAAKA,KAAM,CAC/C8G,EAAeA,EAAahD,OAAO9D,EAAKA,MACxC,QACF,CACA,GAAI0B,EAAgB1B,EAAM,YAAa,CACrC6G,GAAc,EACd,QACF,CACA,IAAkB,IAAd7G,EAAKA,OAAkBA,EAAKA,KAAM,CACpCK,EAAK,4DACL,QACF,CACAyG,EAAeA,EAAahD,OAAO9D,EAAKA,KAC1C,MACE8G,EAAa3D,KAAKnD,EAEtB,CAGA8G,EAAeA,EAAaE,OAAO,SAACC,EAAGF,GAAM,OAAAD,EAAaP,QAAQU,KAAOF,CAAC,GAE1E,IAAMG,GACY,IAAhBL,GAAyBC,EAAa1D,OAAS,EAAI0D,EAAe,KAEpE,OAQOzD,EAAU,YARZuD,EAQyB,CAC5B5G,KAAMkH,EACNlE,UAASA,SAAC7B,GACR,IAAMgG,EAAgB,GAChB7E,EAAQ8D,EAAItE,KAAK,SAAC9B,GACtB,IAAM4F,EAAMxD,EAAapC,EAAMmB,GAAO,GAItC,MAHmB,iBAARyE,GACTuB,EAAIhE,KAAKyC,IAEI,IAARA,CACT,GAUA,OARKtD,GACHjC,EAAI,wDAEA8G,EAAI/D,OACqB6B,2BAAAA,EAAOkC,EAAIvE,KAAK,QAIxCN,CACT,GA1B8B,CAC5BtC,KAAMkH,GA2BZ,CCvFwB,SAAAE,EAA4CpH,GAClE,OAAOqD,EAAuB,UAAW,CACvCrD,KAAMwB,MACNwB,mBAAUqE,GACR,IAAIC,EAA4B,GAC1BhF,EAAQ+E,EAAOE,MAAM,SAACpG,GAE1B,OAAmB,KADnBmG,EAAUlF,EAAapC,EAAMmB,GAAO,GAEtC,GAIA,OAHKmB,GACHjC,EAA2C4E,sCAAAA,EAAOqC,IAE7ChF,CACT,GAEJ,CCfwB,SAAAkF,EACtBC,GAEA,OAAOpE,EAAwB,aAAc,CAC3CrD,KAAMyH,GAEV,CCNwB,SAAAC,EAA6C1H,GACnE,OAAOqD,EAAqC,WAAY,CACtDrD,KAAMT,OACNyD,UAASA,SAAClC,GACR,IAAIwG,EAA4B,GAC1BhF,EAAQ/C,OAAOoI,KAAK7G,GAAKyG,MAAM,SAAC7C,GAEpC,OAAmB,KADnB4C,EAAUlF,EAAapC,EAAMc,EAAI4D,IAAM,GAEzC,GAKA,OAHKpC,GACHjC,EAAI,uCAAwC4E,EAAOqC,IAE9ChF,CACT,GAEJ,UChBwBsF,EAAwB9G,GAG9C,IAAM6G,EAAOpI,OAAOoI,KAAK7G,GACnB+G,EAAeF,EAAKX,OAAO,SAACtC,GAAG,IAAAoD,EAAK,gBAACA,EAAEhH,EAAY4D,UAAI,IAAAoD,IAAhBA,EAAkBpF,YAEzD1C,EAAOqD,EAAO,QAAS,CAC3BrD,KAAMT,OACNyD,UAASA,SAA+C7B,GAAK,IAAA4G,EAC3DrE,KAAA,IAAKxD,EAAciB,GACjB,OACF,EACA,IAAM6G,EAAYzI,OAAOoI,KAAKxG,GAG9B,GACE0G,EAAazE,OAAS,GACtByE,EAAa/F,KAAK,SAACmG,GAAQ,OAA4B,IAA5BD,EAAUzB,QAAQ0B,EAAW,GACxD,CACA,IAAMC,EAAUL,EAAab,OAC3B,SAACiB,GAAQ,OAA4B,IAA5BD,EAAUzB,QAAQ0B,EAAW,GAYxC,OATE5H,EADqB,IAAnB6H,EAAQ9E,OACyB8E,8BAAAA,EAAQ,GAAqB,oBAE5D,gCAC8BA,EAAQtF,KACtC,QACmB,uBAIlB,CACT,CAEA,OAAOoF,EAAUT,MAAM,SAAC7C,GACtB,IAA2B,IAAvBiD,EAAKpB,QAAQ7B,GACf,OAAyD,IAApDqD,EAA8BI,oBAEnC9H,EACkDqE,gDAAAA,gCAAiCiD,EAAK/E,KACpF,QACG,UAIT,IACMN,EAAQF,EADAtB,EAAY4D,GACOvD,EAAMuD,IAAM,GAI7C,MAHqB,iBAAVpC,GACTjC,EAAiBqE,YAAAA,oCAAqCO,EAAO3C,KAE9C,IAAVA,CACT,EACF,IAeF,OAZA/C,OAAO2C,eAAelC,EAAM,oBAAqB,CAC/CuD,UAAU,EACVpC,OAAO,IAGT5B,OAAO2C,eAAelC,EAAM,QAAS,CACnCyD,eAEE,OADAC,KAAKyE,mBAAoB,MAE3B,IAGKnI,CACT,CCxEA,IAAAX,EAAA,CAAA,OAAA,WAAA,UA2CM+I,eAA8B,SAAAC,GAAAA,OAAAA,eAAAD,WAAAA,SAAAA,IAAAA,CA6H/B,OA7H+BA,EAqDzBE,OAAP,SAAuBjE,GAAkC0D,IAAAA,EACvD1H,KAGA,GAHAA,EACgM,gMAE5LkB,EAAQ8C,GAEV,OADAA,EAAMI,QAAQ,SAAC8D,GAAC,OAAKR,EAAKO,OAAOC,EAAE,GAErC7E,KAEA,IAAQ/B,EAAoD0C,EAApD1C,KAAI6G,EAAgDnE,EAA9CoE,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAA8BrE,EAA5BsE,OAAAA,OAAM,IAAAD,GAAQA,EAAKE,EAAI9D,EAAKT,EAAKhF,GAEjE,GAAIwB,EAAI6C,KAAM/B,GACZ,MAAM,IAAIuE,UAAqCvE,2BAAAA,EAAuB,qBAGxE,IAwBIkH,EAxBI7I,EAAS4I,EAAT5I,KACR,OAAI0B,EAAa1B,WAKR4I,EAAK5I,KAGHT,OAAO2C,eAAewB,KAAsB/B,EADjDgH,EACuD,CACvDlF,IAAK,WAAA,OAAMU,EAASxC,EAAM3B,EAAM4I,EAAkC,GAGb,CACvDzH,MAAKA,WACH,IACiB2H,EADX7B,EAAI9C,EAASxC,EAAM3B,EAAM4I,GAI/B,OAHI3B,EAAEjE,YACJiE,EAAEjE,WAAY8F,EAAA7B,EAAEjE,WAAUb,KAAI4G,MAAAD,EAAA,CAAC7B,GAACnD,OAAA,GAAAkF,MAAAhI,KAAAiI,cAE3BhC,CACT,MAMF4B,EADEF,EACW,CACXlF,IAAGA,WACD,IAAMyF,EAAc3J,OAAOwE,OAAO,CAAA,EAAI6E,GACtC,OAAIH,EACKzE,EAAmBrC,EAAMuH,GAE3B7F,EAAU1B,EAAMuH,EACzB,EACAC,YAAY,GAGD,CACXhI,MAAK,WACH,IACIsF,EAOuB2C,EARrBF,EAAc3J,OAAOwE,OAAO,CAAE,EAAE6E,GAWtC,OAREnC,EADEgC,EACIzE,EAAmBrC,EAAMuH,GAEzB7F,EAAU1B,EAAMuH,GAGpBA,EAAYlG,YACdyD,EAAIzD,WAAYoG,EAAAF,EAAYlG,WAAUb,KAAI4G,MAAAK,EAAC3C,CAAAA,GAAG3C,OAAAkF,GAAAA,MAAAhI,KAAAiI,cAEzCxC,CACT,EACA0C,YAAY,GAIT5J,OAAO2C,eAAewB,KAAsB/B,EAAMkH,GAC3D,EAACQ,EAAAjB,EAAA,KAAA,CAAA,CAAA1D,IAAAjB,MAAAA,IApHD,WACE,OAAO0B,GACT,GAAC,CAAAT,IAAA,OAAAjB,IACD,WACE,OAAO2B,IAAOzB,IAAID,KAAK4F,SAASlE,KAClC,GAACV,CAAAA,IAAAjB,OAAAA,IACD,WAEE,YAA2BhB,IAAvBiB,KAAK4F,SAAShE,KACTA,IAEFA,IAAO3B,IAAID,KAAK4F,SAAShE,KAClC,GAACZ,CAAAA,IAAAjB,SAAAA,IACD,WACE,OAAOyB,IAASvB,IAAID,KAAK4F,SAASpE,OACpC,GAAC,CAAAR,IAAA,SAAAjB,IACD,WACE,OAAO+B,IAAS7B,IAAID,KAAK4F,SAAS9D,OACpC,GAACd,CAAAA,IAAAjB,QAAAA,IACD,WACE,OAAOgC,IAAQ9B,IAAID,KAAK4F,SAAS7D,MACnC,GAAC,CAAAf,IAAAjB,SAAAA,IACD,WACE,OAAOiC,IAAS/B,IAAID,KAAK4F,SAAS5D,OACpC,GAAChB,CAAAA,IAAAjB,UAAAA,IACD,WACE,OAAOkC,IAAUhC,IAAID,KAAK4F,SAAS3D,QACrC,GAAC,CAAAjB,IAAA,SAAAjB,IACD,WACE,OAAOoC,GACT,GAAC,CAAAnB,IAAA,WAAAjB,IAED,WACE,OAAOqC,GACT,IAAC,CA3C+BsC,GA2C/BC,EAxCMiB,SAAsC,CAAE,EAAAjB,EAExCkB,sBAAgBlB,EAAAA,EAEhBnJ,OAASA,EAAMmJ,EAsCNtC,OAASA,EAAMsC,EACflC,MAAQA,EAAKkC,EACbb,WAAaA,EAAUa,EACvB1B,UAAYA,EAAS0B,EACrBjB,QAAUA,EAAOiB,EACjBX,SAAWA,EAAQW,EACnBT,MAAQA,EAAKS,EA4EtBmB,MAAQ,CACbf,SAAQA,SAAOtH,EAAUnB,GACvB,OAAiD,IAA1CoC,EAAmBpC,EAAMmB,GAAO,EACzC,EACAkC,OAAMA,SACJ1B,EACAb,EACA2I,GAEA,YAFS,IAATA,IAAAA,GAAY,GAELA,EAAYzF,EAAmBrC,EAAMb,GAAOuC,EAAU1B,EAAMb,EACrE,GACDuH,CAAA,CA1I+B,GA6IpC,SAASqB,EAAYC,GAAgD,IAAAC,EACnE,YADqD,IAAlCD,IAAAA,ETtLgC,CACnDvE,KAAM,WAAe,EACrBE,MAAM,EACNJ,OAAQ,GACRM,OAAQ,EACRC,MAAO,WAAM,MAAA,EAAE,EACfC,OAAQ,WAAO,MAAA,CAAA,CAAE,EACjBC,QAAS,ISgLTiE,eAAAC,SAAAA,GAAAD,SAAAA,IAAAC,OAAAA,EAAAd,MAAAE,KAAAA,iBAAA,OAAAa,EAAAF,EAAAC,GAAAR,EAAAO,EAAA,KAAA,CAAA,CAAAlF,IAAA,mBAAAjB,IAGE,WACE,OAAAsG,EAAA,CAAA,EAAYrG,KAAK4F,SACnB,EAACU,IAED,SAA4B3D,GAS1B3C,KAAK4F,UARK,IAANjD,EAQS0D,EAAQ1D,CAAAA,GAJX,IAANA,EAIiBA,EAHEsD,GAJL,CAAE,CAQtB,IAjBmBvB,CAArByB,CAAqBzB,GAAYwB,EACxBN,SAAQS,KAAmCJ,GAAIC,CAkB1D,CAEqB,IAAAK,eAASC,SAAAA,GAAAD,SAAAA,IAAAC,OAAAA,EAAAnB,WAAAE,YAAAvF,IAAA,CAAA,OAAAoG,EAAAG,EAAAC,GAAAD,CAAA,CAAAC,CAAsBR"} |
@@ -1,2 +0,2 @@ | ||
| import{isPlainObject as e}from"is-plain-object";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}function n(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}const r={silent:!1,logLevel:"warn"},i=["validator"],o=Object.prototype,a=o.toString,s=o.hasOwnProperty,u=/^\s*function (\w+)/;function l(e){var t;const n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){const e=n.toString().match(u);return e?e[1]:""}return""}const c=e,f=e=>e;let d=f;if("production"!==process.env.NODE_ENV){const e="undefined"!=typeof console;d=e?function(e,t=r.logLevel){!1===r.silent&&console[t](`[VueTypes warn]: ${e}`)}:f}const p=(e,t)=>s.call(e,t),y=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},v=Array.isArray||function(e){return"[object Array]"===a.call(e)},h=e=>"[object Function]"===a.call(e),b=(e,t)=>c(e)&&p(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t),g=e=>c(e)&&(p(e,"type")||["_vueTypes_name","validator","default","required"].some(t=>p(e,t)));function O(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function m(e,t,n=!1){let r,i=!0,o="";r=c(e)?e:{type:e};const a=b(r)?r._vueTypes_name+" - ":"";if(g(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;v(r.type)?(i=r.type.some(e=>!0===m(e,t,!0)),o=r.type.map(e=>l(e)).join(" or ")):(o=l(r),i="Array"===o?v(t):"Object"===o?c(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";const t=e.constructor.toString().match(u);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type)}if(!i){const e=`${a}value "${t}" should be of type "${o}"`;return!1===n?(d(e),!1):e}if(p(r,"validator")&&h(r.validator)){const e=d,o=[];if(d=e=>{o.push(e)},i=r.validator(t),d=e,!i){const e=(o.length>1?"* ":"")+o.join("\n* ");return o.length=0,!1===n?(d(e),i):e}}return i}function j(e,t){const n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get(){return this.required=!0,this}},def:{value(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(p(this,"default")&&delete this.default,this):h(e)||!0===m(this,e,!0)?(this.default=v(e)?()=>[...e]:c(e)?()=>Object.assign({},e):e,this):(d(`${this._vueTypes_name} - invalid default value: "${e}"`),this)}}}),{validator:r}=n;return h(r)&&(n.validator=O(r,n)),n}function _(e,t){const n=j(e,t);return Object.defineProperty(n,"validate",{value(e){return h(this.validator)&&d(`${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:\n${JSON.stringify(this)}`),this.validator=O(e,this),this}})}function T(e,t,r){const o=function(e){const t={};return Object.getOwnPropertyNames(e).forEach(n=>{t[n]=Object.getOwnPropertyDescriptor(e,n)}),Object.defineProperties({},t)}(t);if(o._vueTypes_name=e,!c(r))return o;const{validator:a}=r,s=n(r,i);if(h(a)){let{validator:e}=o;e&&(e=null!==(l=(u=e).__original)&&void 0!==l?l:u),o.validator=O(e?function(t){return e.call(this,t)&&a.call(this,t)}:a,o)}var u,l;return Object.assign(o,s)}function $(e){return e.replace(/^(?!\s*$)/gm," ")}const w=()=>_("any",{}),x=()=>_("function",{type:Function}),P=()=>_("boolean",{type:Boolean}),A=()=>_("string",{type:String}),E=()=>_("number",{type:Number}),S=()=>_("array",{type:Array}),N=()=>_("object",{type:Object}),V=()=>j("integer",{type:Number,validator(e){const t=y(e);return!1===t&&d(`integer - "${e}" is not an integer`),t}}),q=()=>j("symbol",{validator(e){const t="symbol"==typeof e;return!1===t&&d(`symbol - invalid value "${e}"`),t}}),k=()=>Object.defineProperty({type:null,validator(e){const t=null===e;return!1===t&&d("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"});function D(e,t="custom validation failed"){if("function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return j(e.name||"<<anonymous function>>",{type:null,validator(n){const r=e(n);return r||d(`${this._vueTypes_name} - ${t}`),r}})}function L(e){if(!v(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");const t=`oneOf - value should be one of "${e.map(e=>"symbol"==typeof e?e.toString():e).join('", "')}".`,n={validator(n){const r=-1!==e.indexOf(n);return r||d(t),r}};if(-1===e.indexOf(null)){const t=e.reduce((e,t)=>{if(null!=t){const n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);t.length>0&&(n.type=t)}return j("oneOf",n)}function B(e){if(!v(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");let t=!1,n=!1,r=[];for(let i=0;i<e.length;i+=1){const o=e[i];if(g(o)){if(h(o.validator)&&(t=!0),b(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(b(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){d('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter((e,t)=>r.indexOf(e)===t);const i=!1===n&&r.length>0?r:null;return j("oneOfType",t?{type:i,validator(t){const n=[],r=e.some(e=>{const r=m(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||d(`oneOfType - provided value does not match any of the ${n.length} passed-in validators:\n${$(n.join("\n"))}`),r}}:{type:i})}function F(e){return j("arrayOf",{type:Array,validator(t){let n="";const r=t.every(t=>(n=m(e,t,!0),!0===n));return r||d(`arrayOf - value validation error:\n${$(n)}`),r}})}function Y(e){return j("instanceOf",{type:e})}function I(e){return j("objectOf",{type:Object,validator(t){let n="";const r=Object.keys(t).every(r=>(n=m(e,t[r],!0),!0===n));return r||d(`objectOf - value validation error:\n${$(n)}`),r}})}function J(e){const t=Object.keys(e),n=t.filter(t=>{var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=j("shape",{type:Object,validator(r){if(!c(r))return!1;const i=Object.keys(r);if(n.length>0&&n.some(e=>-1===i.indexOf(e))){const e=n.filter(e=>-1===i.indexOf(e));return d(1===e.length?`shape - required property "${e[0]}" is not defined.`:`shape - required properties "${e.join('", "')}" are not defined.`),!1}return i.every(n=>{if(-1===t.indexOf(n))return!0===this._vueTypes_isLoose||(d(`shape - shape definition does not include a "${n}" property. Allowed keys: "${t.join('", "')}".`),!1);const i=m(e[n],r[n],!0);return"string"==typeof i&&d(`shape - "${n}" property validation error:\n ${$(i)}`),!0===i})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get(){return this._vueTypes_isLoose=!0,this}}),r}const M=["name","validate","getter"],R=/*#__PURE__*/(e=>((e=class{static get any(){return w()}static get func(){return x().def(this.defaults.func)}static get bool(){return void 0===this.defaults.bool?P():P().def(this.defaults.bool)}static get string(){return A().def(this.defaults.string)}static get number(){return E().def(this.defaults.number)}static get array(){return S().def(this.defaults.array)}static get object(){return N().def(this.defaults.object)}static get integer(){return V().def(this.defaults.integer)}static get symbol(){return q()}static get nullable(){return k()}static extend(e){if(d("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),v(e))return e.forEach(e=>this.extend(e)),this;const{name:t,validate:r=!1,getter:i=!1}=e,o=n(e,M);if(p(this,t))throw new TypeError(`[VueTypes error]: Type "${t}" already defined`);const{type:a}=o;if(b(a))return delete o.type,Object.defineProperty(this,t,i?{get:()=>T(t,a,o)}:{value(...e){const n=T(t,a,o);return n.validator&&(n.validator=n.validator.bind(n,...e)),n}});let s;return s=i?{get(){const e=Object.assign({},o);return r?_(t,e):j(t,e)},enumerable:!0}:{value(...e){const n=Object.assign({},o);let i;return i=r?_(t,n):j(t,n),n.validator&&(i.validator=n.validator.bind(i,...e)),i},enumerable:!0},Object.defineProperty(this,t,s)}}).defaults={},e.sensibleDefaults=void 0,e.config=r,e.custom=D,e.oneOf=L,e.instanceOf=Y,e.oneOfType=B,e.arrayOf=F,e.objectOf=I,e.shape=J,e.utils={validate:(e,t)=>!0===m(t,e,!0),toType:(e,t,n=!1)=>n?_(e,t):j(e,t)},e))();function U(e={func:()=>{},bool:!0,string:"",number:0,array:()=>[],object:()=>({}),integer:0}){var n;return(n=class extends R{static get sensibleDefaults(){return t({},this.defaults)}static set sensibleDefaults(n){this.defaults=!1!==n?t({},!0!==n?n:e):{}}}).defaults=t({},e),n}class z extends(U()){}export{w as any,S as array,F as arrayOf,P as bool,r as config,U as createTypes,D as custom,z as default,T as fromType,x as func,Y as instanceOf,V as integer,k as nullable,E as number,N as object,I as objectOf,L as oneOf,B as oneOfType,J as shape,A as string,q as symbol,j as toType,_ as toValidableType,m as validateType}; | ||
| import{isPlainObject as e}from"is-plain-object";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}function n(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}const r={silent:!1,logLevel:"warn"},i=["validator"],o=Object.prototype,a=o.toString,s=o.hasOwnProperty,u=/^\s*function (\w+)/;function l(e){var t;const n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){const e=n.toString().match(u);return e?e[1]:""}return""}const c=e;function f(){}let d=f;if("production"!==process.env.NODE_ENV){const e="undefined"!=typeof console;d=e?function(e,t=r.logLevel){!1===r.silent&&console[t](`[VueTypes warn]: ${e}`)}:f}const p=(e,t)=>s.call(e,t),y=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},v=Array.isArray||function(e){return"[object Array]"===a.call(e)},h=e=>"[object Function]"===a.call(e),b=(e,t)=>c(e)&&p(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t),g=e=>c(e)&&(p(e,"type")||["_vueTypes_name","validator","default","required"].some(t=>p(e,t)));function O(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function m(e,t,n=!1){let r,i=!0,o="";r=c(e)?e:{type:e};const a=b(r)?r._vueTypes_name+" - ":"";if(g(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;v(r.type)?(i=r.type.some(e=>!0===m(e,t,!0)),o=r.type.map(e=>l(e)).join(" or ")):(o=l(r),i="Array"===o?v(t):"Object"===o?c(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";const t=e.constructor.toString().match(u);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type)}if(!i){const e=`${a}value "${t}" should be of type "${o}"`;return!1===n?(d(e),!1):e}if(p(r,"validator")&&h(r.validator)){const e=d,o=[];if(d=e=>{o.push(e)},i=r.validator(t),d=e,!i){const e=(o.length>1?"* ":"")+o.join("\n* ");return o.length=0,!1===n?(d(e),i):e}}return i}function j(e,t){const n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get(){return this.required=!0,this}},def:{value(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(p(this,"default")&&delete this.default,this):h(e)||!0===m(this,e,!0)?(this.default=v(e)?()=>[...e]:c(e)?()=>Object.assign({},e):e,this):(d(`${this._vueTypes_name} - invalid default value: "${e}"`),this)}}}),{validator:r}=n;return h(r)&&(n.validator=O(r,n)),n}function _(e,t){const n=j(e,t);return Object.defineProperty(n,"validate",{value(e){return h(this.validator)&&d(`${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:\n${JSON.stringify(this)}`),this.validator=O(e,this),this}})}function T(e,t,r){const o=function(e){const t={};return Object.getOwnPropertyNames(e).forEach(n=>{t[n]=Object.getOwnPropertyDescriptor(e,n)}),Object.defineProperties({},t)}(t);if(o._vueTypes_name=e,!c(r))return o;const{validator:a}=r,s=n(r,i);if(h(a)){let{validator:e}=o;e&&(e=null!==(l=(u=e).__original)&&void 0!==l?l:u),o.validator=O(e?function(t){return e.call(this,t)&&a.call(this,t)}:a,o)}var u,l;return Object.assign(o,s)}function $(e){return e.replace(/^(?!\s*$)/gm," ")}const w=()=>_("any",{}),x=()=>_("function",{type:Function}),P=()=>_("boolean",{type:Boolean}),A=()=>_("string",{type:String}),E=()=>_("number",{type:Number}),S=()=>_("array",{type:Array}),N=()=>_("object",{type:Object}),V=()=>j("integer",{type:Number,validator(e){const t=y(e);return!1===t&&d(`integer - "${e}" is not an integer`),t}}),q=()=>j("symbol",{validator(e){const t="symbol"==typeof e;return!1===t&&d(`symbol - invalid value "${e}"`),t}}),k=()=>Object.defineProperty({type:null,validator(e){const t=null===e;return!1===t&&d("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"});function D(e,t="custom validation failed"){if("function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return j(e.name||"<<anonymous function>>",{type:null,validator(n){const r=e(n);return r||d(`${this._vueTypes_name} - ${t}`),r}})}function L(e){if(!v(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");const t=`oneOf - value should be one of "${e.map(e=>"symbol"==typeof e?e.toString():e).join('", "')}".`,n={validator(n){const r=-1!==e.indexOf(n);return r||d(t),r}};if(-1===e.indexOf(null)){const t=e.reduce((e,t)=>{if(null!=t){const n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);t.length>0&&(n.type=t)}return j("oneOf",n)}function B(e){if(!v(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");let t=!1,n=!1,r=[];for(let i=0;i<e.length;i+=1){const o=e[i];if(g(o)){if(h(o.validator)&&(t=!0),b(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(b(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){d('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter((e,t)=>r.indexOf(e)===t);const i=!1===n&&r.length>0?r:null;return j("oneOfType",t?{type:i,validator(t){const n=[],r=e.some(e=>{const r=m(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||d(`oneOfType - provided value does not match any of the ${n.length} passed-in validators:\n${$(n.join("\n"))}`),r}}:{type:i})}function F(e){return j("arrayOf",{type:Array,validator(t){let n="";const r=t.every(t=>(n=m(e,t,!0),!0===n));return r||d(`arrayOf - value validation error:\n${$(n)}`),r}})}function Y(e){return j("instanceOf",{type:e})}function I(e){return j("objectOf",{type:Object,validator(t){let n="";const r=Object.keys(t).every(r=>(n=m(e,t[r],!0),!0===n));return r||d(`objectOf - value validation error:\n${$(n)}`),r}})}function J(e){const t=Object.keys(e),n=t.filter(t=>{var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=j("shape",{type:Object,validator(r){if(!c(r))return!1;const i=Object.keys(r);if(n.length>0&&n.some(e=>-1===i.indexOf(e))){const e=n.filter(e=>-1===i.indexOf(e));return d(1===e.length?`shape - required property "${e[0]}" is not defined.`:`shape - required properties "${e.join('", "')}" are not defined.`),!1}return i.every(n=>{if(-1===t.indexOf(n))return!0===this._vueTypes_isLoose||(d(`shape - shape definition does not include a "${n}" property. Allowed keys: "${t.join('", "')}".`),!1);const i=m(e[n],r[n],!0);return"string"==typeof i&&d(`shape - "${n}" property validation error:\n ${$(i)}`),!0===i})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get(){return this._vueTypes_isLoose=!0,this}}),r}const M=["name","validate","getter"],R=/*#__PURE__*/(e=>((e=class{static get any(){return w()}static get func(){return x().def(this.defaults.func)}static get bool(){return void 0===this.defaults.bool?P():P().def(this.defaults.bool)}static get string(){return A().def(this.defaults.string)}static get number(){return E().def(this.defaults.number)}static get array(){return S().def(this.defaults.array)}static get object(){return N().def(this.defaults.object)}static get integer(){return V().def(this.defaults.integer)}static get symbol(){return q()}static get nullable(){return k()}static extend(e){if(d("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),v(e))return e.forEach(e=>this.extend(e)),this;const{name:t,validate:r=!1,getter:i=!1}=e,o=n(e,M);if(p(this,t))throw new TypeError(`[VueTypes error]: Type "${t}" already defined`);const{type:a}=o;if(b(a))return delete o.type,Object.defineProperty(this,t,i?{get:()=>T(t,a,o)}:{value(...e){const n=T(t,a,o);return n.validator&&(n.validator=n.validator.bind(n,...e)),n}});let s;return s=i?{get(){const e=Object.assign({},o);return r?_(t,e):j(t,e)},enumerable:!0}:{value(...e){const n=Object.assign({},o);let i;return i=r?_(t,n):j(t,n),n.validator&&(i.validator=n.validator.bind(i,...e)),i},enumerable:!0},Object.defineProperty(this,t,s)}}).defaults={},e.sensibleDefaults=void 0,e.config=r,e.custom=D,e.oneOf=L,e.instanceOf=Y,e.oneOfType=B,e.arrayOf=F,e.objectOf=I,e.shape=J,e.utils={validate:(e,t)=>!0===m(t,e,!0),toType:(e,t,n=!1)=>n?_(e,t):j(e,t)},e))();function U(e={func:()=>{},bool:!0,string:"",number:0,array:()=>[],object:()=>({}),integer:0}){var n;return(n=class extends R{static get sensibleDefaults(){return t({},this.defaults)}static set sensibleDefaults(n){this.defaults=!1!==n?t({},!0!==n?n:e):{}}}).defaults=t({},e),n}class z extends(U()){}export{w as any,S as array,F as arrayOf,P as bool,r as config,U as createTypes,D as custom,z as default,T as fromType,x as func,Y as instanceOf,V as integer,k as nullable,E as number,N as object,I as objectOf,L as oneOf,B as oneOfType,J as shape,A as string,q as symbol,j as toType,_ as toValidableType,m as validateType}; | ||
| //# sourceMappingURL=vue-types.modern.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"vue-types.modern.js","sources":["../src/config.ts","../src/utils.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts","../src/sensibles.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = { [key: string]: any }\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => string | void =\n identity\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : identity\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: { [key: string]: any }\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends { [key: string]: any }>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<{ [key: string]: InferType<T> }>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","identity","arg","warn","process","env","NODE_ENV","hasConsole","console","msg","level","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","default","assign","toValidableType","JSON","stringify","fromType","source","props","copy","descriptors","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","clone","rest","_objectWithoutPropertiesLoose","prevValidator","_fn$__original","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","concat","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","defaults","extend","p","validate","getter","opts","args","descriptor","typeOptions","enumerable","sensibleDefaults","utils","validable","createTypes","defs","typeDefaults","_Class","_extends","VueTypes"],"mappings":"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"} | ||
| {"version":3,"file":"vue-types.modern.js","sources":["../src/config.ts","../src/utils.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts","../src/sensibles.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = Record<string, any>\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => void = noop\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : noop\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: Record<string, any>\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends Record<string, any>>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<Record<string, InferType<T>>>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","noop","warn","process","env","NODE_ENV","hasConsole","console","msg","level","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","default","assign","toValidableType","JSON","stringify","fromType","source","props","copy","descriptors","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","clone","rest","_objectWithoutPropertiesLoose","prevValidator","_fn$__original","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","concat","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","defaults","extend","p","validate","getter","opts","args","descriptor","typeOptions","enumerable","sensibleDefaults","utils","validable","createTypes","defs","typeDefaults","_Class","_extends","VueTypes"],"mappings":"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"} |
@@ -1,2 +0,2 @@ | ||
| !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("is-plain-object")):"function"==typeof define&&define.amd?define(["exports","is-plain-object"],t):t((e||self).VueTypes={},e.isPlainObject)}(this,function(e,t){function n(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function r(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,n(i.key),i)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function u(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,a(e,t)}function a(e,t){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},a(e,t)}function f(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var l={silent:!1,logLevel:"warn"},c=["validator"],s=Object.prototype,y=s.toString,p=s.hasOwnProperty,d=/^\s*function (\w+)/;function v(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(d);return r?r[1]:""}return""}var b=t.isPlainObject,h=function(e){return e},g=function(e,t){return p.call(e,t)},O=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},m=Array.isArray||function(e){return"[object Array]"===y.call(e)},j=function(e){return"[object Function]"===y.call(e)},T=function(e,t){return b(e)&&g(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t)},_=function(e){return b(e)&&(g(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return g(e,t)}))};function w(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function P(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o="";r=b(e)?e:{type:e};var u=T(r)?r._vueTypes_name+" - ":"";if(_(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;m(r.type)?(i=r.type.some(function(e){return!0===P(e,t,!0)}),o=r.type.map(function(e){return v(e)}).join(" or ")):i="Array"===(o=v(r))?m(t):"Object"===o?b(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";var t=e.constructor.toString().match(d);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type}if(!i){var a=u+'value "'+t+'" should be of type "'+o+'"';return!1===n?(h(a),!1):a}if(g(r,"validator")&&j(r.validator)){var f=h,l=[];if(h=function(e){l.push(e)},i=r.validator(t),h=f,!i){var c=(l.length>1?"* ":"")+l.join("\n* ");return l.length=0,!1===n?(h(c),i):c}}return i}function k(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(g(this,"default")&&delete this.default,this):j(e)||!0===P(this,e,!0)?(this.default=m(e)?function(){return[].concat(e)}:b(e)?function(){return Object.assign({},e)}:e,this):(h(this._vueTypes_name+' - invalid default value: "'+e+'"'),this)}}}),r=n.validator;return j(r)&&(n.validator=w(r,n)),n}function x(e,t){var n=k(e,t);return Object.defineProperty(n,"validate",{value:function(e){return j(this.validator)&&h(this._vueTypes_name+" - calling .validate() will overwrite the current custom validator function. Validator info:\n"+JSON.stringify(this)),this.validator=w(e,this),this}})}function S(e,t,n){var r,i,o=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(o._vueTypes_name=e,!b(n))return o;var u,a,l=n.validator,s=f(n,c);if(j(l)){var y=o.validator;y&&(y=null!==(a=(u=y).__original)&&void 0!==a?a:u),o.validator=w(y?function(e){return y.call(this,e)&&l.call(this,e)}:l,o)}return Object.assign(o,s)}function A(e){return e.replace(/^(?!\s*$)/gm," ")}var q=function(){return x("any",{})},E=function(){return x("function",{type:Function})},V=function(){return x("boolean",{type:Boolean})},N=function(){return x("string",{type:String})},B=function(){return x("number",{type:Number})},F=function(){return x("array",{type:Array})},L=function(){return x("object",{type:Object})},D=function(){return k("integer",{type:Number,validator:function(e){var t=O(e);return!1===t&&h('integer - "'+e+'" is not an integer'),t}})},Y=function(){return k("symbol",{validator:function(e){var t="symbol"==typeof e;return!1===t&&h('symbol - invalid value "'+e+'"'),t}})},I=function(){return Object.defineProperty({type:null,validator:function(e){var t=null===e;return!1===t&&h("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"})};function J(e,t){if(void 0===t&&(t="custom validation failed"),"function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return k(e.name||"<<anonymous function>>",{type:null,validator:function(n){var r=e(n);return r||h(this._vueTypes_name+" - "+t),r}})}function M(e){if(!m(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.map(function(e){return"symbol"==typeof e?e.toString():e}).join('", "')+'".',n={validator:function(n){var r=-1!==e.indexOf(n);return r||h(t),r}};if(-1===e.indexOf(null)){var r=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);r.length>0&&(n.type=r)}return k("oneOf",n)}function R(e){if(!m(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,n=!1,r=[],i=0;i<e.length;i+=1){var o=e[i];if(_(o)){if(j(o.validator)&&(t=!0),T(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(T(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){h('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter(function(e,t){return r.indexOf(e)===t});var u=!1===n&&r.length>0?r:null;return k("oneOfType",t?{type:u,validator:function(t){var n=[],r=e.some(function(e){var r=P(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||h("oneOfType - provided value does not match any of the "+n.length+" passed-in validators:\n"+A(n.join("\n"))),r}}:{type:u})}function U(e){return k("arrayOf",{type:Array,validator:function(t){var n="",r=t.every(function(t){return!0===(n=P(e,t,!0))});return r||h("arrayOf - value validation error:\n"+A(n)),r}})}function $(e){return k("instanceOf",{type:e})}function z(e){return k("objectOf",{type:Object,validator:function(t){var n="",r=Object.keys(t).every(function(r){return!0===(n=P(e,t[r],!0))});return r||h("objectOf - value validation error:\n"+A(n)),r}})}function C(e){var t=Object.keys(e),n=t.filter(function(t){var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=k("shape",{type:Object,validator:function(r){var i=this;if(!b(r))return!1;var o=Object.keys(r);if(n.length>0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return h(1===u.length?'shape - required property "'+u[0]+'" is not defined.':'shape - required properties "'+u.join('", "')+'" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(h('shape - shape definition does not include a "'+n+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var o=P(e[n],r[n],!0);return"string"==typeof o&&h('shape - "'+n+'" property validation error:\n '+A(o)),!0===o})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var G=["name","validate","getter"],H=/*#__PURE__*/function(e){return e=/*#__PURE__*/function(){function e(){}return e.extend=function(e){var t=this;if(h("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),m(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=void 0!==r&&r,o=e.getter,u=void 0!==o&&o,a=f(e,G);if(g(this,n))throw new TypeError('[VueTypes error]: Type "'+n+'" already defined');var l,c=a.type;return T(c)?(delete a.type,Object.defineProperty(this,n,u?{get:function(){return S(n,c,a)}}:{value:function(){var e,t=S(n,c,a);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(l=u?{get:function(){var e=Object.assign({},a);return i?x(n,e):k(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},a);return e=i?x(n,r):k(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,l))},i(e,null,[{key:"any",get:function(){return q()}},{key:"func",get:function(){return E().def(this.defaults.func)}},{key:"bool",get:function(){return void 0===this.defaults.bool?V():V().def(this.defaults.bool)}},{key:"string",get:function(){return N().def(this.defaults.string)}},{key:"number",get:function(){return B().def(this.defaults.number)}},{key:"array",get:function(){return F().def(this.defaults.array)}},{key:"object",get:function(){return L().def(this.defaults.object)}},{key:"integer",get:function(){return D().def(this.defaults.integer)}},{key:"symbol",get:function(){return Y()}},{key:"nullable",get:function(){return I()}}])}(),e.defaults={},e.sensibleDefaults=void 0,e.config=l,e.custom=J,e.oneOf=M,e.instanceOf=$,e.oneOfType=R,e.arrayOf=U,e.objectOf=z,e.shape=C,e.utils={validate:function(e,t){return!0===P(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?x(e,t):k(e,t)}},e}();function K(e){var t;return void 0===e&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),t=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return u(n,t),i(n,null,[{key:"sensibleDefaults",get:function(){return o({},this.defaults)},set:function(t){this.defaults=!1!==t?o({},!0!==t?t:e):{}}}])}(H),t.defaults=o({},e),t}var Q=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return u(t,e),t}(K());e.any=q,e.array=F,e.arrayOf=U,e.bool=V,e.config=l,e.createTypes=K,e.custom=J,e.default=Q,e.fromType=S,e.func=E,e.instanceOf=$,e.integer=D,e.nullable=I,e.number=B,e.object=L,e.objectOf=z,e.oneOf=M,e.oneOfType=R,e.shape=C,e.string=N,e.symbol=Y,e.toType=k,e.toValidableType=x,e.validateType=P}); | ||
| !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("is-plain-object")):"function"==typeof define&&define.amd?define(["exports","is-plain-object"],t):t((e||self).VueTypes={},e.isPlainObject)}(this,function(e,t){function n(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function r(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,n(i.key),i)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function u(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,a(e,t)}function a(e,t){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},a(e,t)}function f(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var l={silent:!1,logLevel:"warn"},c=["validator"],s=Object.prototype,y=s.toString,p=s.hasOwnProperty,d=/^\s*function (\w+)/;function v(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(d);return r?r[1]:""}return""}var b=t.isPlainObject,h=function(){},g=function(e,t){return p.call(e,t)},O=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},m=Array.isArray||function(e){return"[object Array]"===y.call(e)},j=function(e){return"[object Function]"===y.call(e)},T=function(e,t){return b(e)&&g(e,"_vueTypes_name")&&(!t||e._vueTypes_name===t)},_=function(e){return b(e)&&(g(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return g(e,t)}))};function w(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function P(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o="";r=b(e)?e:{type:e};var u=T(r)?r._vueTypes_name+" - ":"";if(_(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&null==t)return i;m(r.type)?(i=r.type.some(function(e){return!0===P(e,t,!0)}),o=r.type.map(function(e){return v(e)}).join(" or ")):i="Array"===(o=v(r))?m(t):"Object"===o?b(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";var t=e.constructor.toString().match(d);return t?t[1].replace(/^Async/,""):""}(t)===o:t instanceof r.type}if(!i){var a=u+'value "'+t+'" should be of type "'+o+'"';return!1===n?(h(a),!1):a}if(g(r,"validator")&&j(r.validator)){var f=h,l=[];if(h=function(e){l.push(e)},i=r.validator(t),h=f,!i){var c=(l.length>1?"* ":"")+l.join("\n* ");return l.length=0,!1===n?(h(c),i):c}}return i}function k(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0===e?this.type===Boolean||Array.isArray(this.type)&&this.type.includes(Boolean)?void(this.default=void 0):(g(this,"default")&&delete this.default,this):j(e)||!0===P(this,e,!0)?(this.default=m(e)?function(){return[].concat(e)}:b(e)?function(){return Object.assign({},e)}:e,this):(h(this._vueTypes_name+' - invalid default value: "'+e+'"'),this)}}}),r=n.validator;return j(r)&&(n.validator=w(r,n)),n}function x(e,t){var n=k(e,t);return Object.defineProperty(n,"validate",{value:function(e){return j(this.validator)&&h(this._vueTypes_name+" - calling .validate() will overwrite the current custom validator function. Validator info:\n"+JSON.stringify(this)),this.validator=w(e,this),this}})}function S(e,t,n){var r,i,o=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(o._vueTypes_name=e,!b(n))return o;var u,a,l=n.validator,s=f(n,c);if(j(l)){var y=o.validator;y&&(y=null!==(a=(u=y).__original)&&void 0!==a?a:u),o.validator=w(y?function(e){return y.call(this,e)&&l.call(this,e)}:l,o)}return Object.assign(o,s)}function A(e){return e.replace(/^(?!\s*$)/gm," ")}var q=function(){return x("any",{})},E=function(){return x("function",{type:Function})},V=function(){return x("boolean",{type:Boolean})},N=function(){return x("string",{type:String})},B=function(){return x("number",{type:Number})},F=function(){return x("array",{type:Array})},L=function(){return x("object",{type:Object})},D=function(){return k("integer",{type:Number,validator:function(e){var t=O(e);return!1===t&&h('integer - "'+e+'" is not an integer'),t}})},Y=function(){return k("symbol",{validator:function(e){var t="symbol"==typeof e;return!1===t&&h('symbol - invalid value "'+e+'"'),t}})},I=function(){return Object.defineProperty({type:null,validator:function(e){var t=null===e;return!1===t&&h("nullable - value should be null"),t}},"_vueTypes_name",{value:"nullable"})};function J(e,t){if(void 0===t&&(t="custom validation failed"),"function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return k(e.name||"<<anonymous function>>",{type:null,validator:function(n){var r=e(n);return r||h(this._vueTypes_name+" - "+t),r}})}function M(e){if(!m(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.map(function(e){return"symbol"==typeof e?e.toString():e}).join('", "')+'".',n={validator:function(n){var r=-1!==e.indexOf(n);return r||h(t),r}};if(-1===e.indexOf(null)){var r=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);r.length>0&&(n.type=r)}return k("oneOf",n)}function R(e){if(!m(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,n=!1,r=[],i=0;i<e.length;i+=1){var o=e[i];if(_(o)){if(j(o.validator)&&(t=!0),T(o,"oneOf")&&o.type){r=r.concat(o.type);continue}if(T(o,"nullable")){n=!0;continue}if(!0===o.type||!o.type){h('oneOfType - invalid usage of "true" and "null" as types.');continue}r=r.concat(o.type)}else r.push(o)}r=r.filter(function(e,t){return r.indexOf(e)===t});var u=!1===n&&r.length>0?r:null;return k("oneOfType",t?{type:u,validator:function(t){var n=[],r=e.some(function(e){var r=P(e,t,!0);return"string"==typeof r&&n.push(r),!0===r});return r||h("oneOfType - provided value does not match any of the "+n.length+" passed-in validators:\n"+A(n.join("\n"))),r}}:{type:u})}function U(e){return k("arrayOf",{type:Array,validator:function(t){var n="",r=t.every(function(t){return!0===(n=P(e,t,!0))});return r||h("arrayOf - value validation error:\n"+A(n)),r}})}function $(e){return k("instanceOf",{type:e})}function z(e){return k("objectOf",{type:Object,validator:function(t){var n="",r=Object.keys(t).every(function(r){return!0===(n=P(e,t[r],!0))});return r||h("objectOf - value validation error:\n"+A(n)),r}})}function C(e){var t=Object.keys(e),n=t.filter(function(t){var n;return!(null===(n=e[t])||void 0===n||!n.required)}),r=k("shape",{type:Object,validator:function(r){var i=this;if(!b(r))return!1;var o=Object.keys(r);if(n.length>0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return h(1===u.length?'shape - required property "'+u[0]+'" is not defined.':'shape - required properties "'+u.join('", "')+'" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(h('shape - shape definition does not include a "'+n+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var o=P(e[n],r[n],!0);return"string"==typeof o&&h('shape - "'+n+'" property validation error:\n '+A(o)),!0===o})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var G=["name","validate","getter"],H=/*#__PURE__*/function(e){return e=/*#__PURE__*/function(){function e(){}return e.extend=function(e){var t=this;if(h("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."),m(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=void 0!==r&&r,o=e.getter,u=void 0!==o&&o,a=f(e,G);if(g(this,n))throw new TypeError('[VueTypes error]: Type "'+n+'" already defined');var l,c=a.type;return T(c)?(delete a.type,Object.defineProperty(this,n,u?{get:function(){return S(n,c,a)}}:{value:function(){var e,t=S(n,c,a);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(l=u?{get:function(){var e=Object.assign({},a);return i?x(n,e):k(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},a);return e=i?x(n,r):k(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,l))},i(e,null,[{key:"any",get:function(){return q()}},{key:"func",get:function(){return E().def(this.defaults.func)}},{key:"bool",get:function(){return void 0===this.defaults.bool?V():V().def(this.defaults.bool)}},{key:"string",get:function(){return N().def(this.defaults.string)}},{key:"number",get:function(){return B().def(this.defaults.number)}},{key:"array",get:function(){return F().def(this.defaults.array)}},{key:"object",get:function(){return L().def(this.defaults.object)}},{key:"integer",get:function(){return D().def(this.defaults.integer)}},{key:"symbol",get:function(){return Y()}},{key:"nullable",get:function(){return I()}}])}(),e.defaults={},e.sensibleDefaults=void 0,e.config=l,e.custom=J,e.oneOf=M,e.instanceOf=$,e.oneOfType=R,e.arrayOf=U,e.objectOf=z,e.shape=C,e.utils={validate:function(e,t){return!0===P(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?x(e,t):k(e,t)}},e}();function K(e){var t;return void 0===e&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),t=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return u(n,t),i(n,null,[{key:"sensibleDefaults",get:function(){return o({},this.defaults)},set:function(t){this.defaults=!1!==t?o({},!0!==t?t:e):{}}}])}(H),t.defaults=o({},e),t}var Q=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return u(t,e),t}(K());e.any=q,e.array=F,e.arrayOf=U,e.bool=V,e.config=l,e.createTypes=K,e.custom=J,e.default=Q,e.fromType=S,e.func=E,e.instanceOf=$,e.integer=D,e.nullable=I,e.number=B,e.object=L,e.objectOf=z,e.oneOf=M,e.oneOfType=R,e.shape=C,e.string=N,e.symbol=Y,e.toType=k,e.toValidableType=x,e.validateType=P}); | ||
| //# sourceMappingURL=vue-types.umd.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"vue-types.umd.js","sources":["../src/config.ts","../src/utils.ts","../src/sensibles.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = { [key: string]: any }\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => string | void =\n identity\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : identity\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: { [key: string]: any }\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends { [key: string]: any }>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<{ [key: string]: InferType<T> }>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","warn","arg","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","msg","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","concat","assign","toValidableType","JSON","stringify","fromType","source","props","descriptors","copy","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","_fn$__original","rest","_objectWithoutPropertiesLoose","prevValidator","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","_this","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","extend","p","_props$validate","validate","_props$getter","getter","opts","descriptor","_t$validator","apply","slice","arguments","typeOptions","enumerable","_typeOptions$validato","_createClass","defaults","sensibleDefaults","utils","validable","createTypes","defs","_Class","_BaseVueTypes2","_inheritsLoose","_extends","set","VueTypes","_createTypes"],"mappings":"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"} | ||
| {"version":3,"file":"vue-types.umd.js","sources":["../src/config.ts","../src/utils.ts","../src/sensibles.ts","../src/validators/native.ts","../src/validators/custom.ts","../src/validators/oneof.ts","../src/validators/oneoftype.ts","../src/validators/arrayof.ts","../src/validators/instanceof.ts","../src/validators/objectof.ts","../src/validators/shape.ts","../src/index.ts"],"sourcesContent":["import { VueTypesConfig } from './types'\n\nexport const config: VueTypesConfig = {\n silent: false,\n logLevel: 'warn',\n}\n","import { isPlainObject as _isPlainObject } from 'is-plain-object'\nimport { config } from './config'\nimport {\n VueTypeDef,\n VueTypeValidableDef,\n VueProp,\n InferType,\n PropOptions,\n VueTypesConfig,\n} from './types'\n\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nexport const hasOwn = ObjProto.hasOwnProperty\n\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L177\nexport function getType(\n fn: VueProp<any> | (() => any) | (new (...args: any[]) => any),\n): string {\n const type = (fn as VueProp<any>)?.type ?? fn\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP)\n return match ? match[1] : ''\n }\n return ''\n}\n\nexport function getNativeType(value: any): string {\n if (value === null || value === undefined) return ''\n const match = value.constructor.toString().match(FN_MATCH_REGEXP)\n return match ? match[1].replace(/^Async/, '') : ''\n}\n\ntype PlainObject = Record<string, any>\nexport const isPlainObject = _isPlainObject as (obj: any) => obj is PlainObject\n\n/**\n * No-op function\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\n/**\n * A function that returns its first argument\n *\n * @param arg - Any argument\n */\nexport const identity = (arg: any) => arg\n\nlet warn: (msg: string, level?: VueTypesConfig['logLevel']) => void = noop\n\nif (process.env.NODE_ENV !== 'production') {\n const hasConsole = typeof console !== 'undefined'\n warn = hasConsole\n ? function warn(msg: string, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`)\n }\n }\n : noop\n}\n\nexport { warn }\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport const has = <T, U extends keyof T>(obj: T, prop: U) =>\n hasOwn.call(obj, prop)\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport const isInteger =\n Number.isInteger ||\n function isInteger(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n )\n }\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport const isArray =\n Array.isArray ||\n function isArray(value): value is any[] {\n return toString.call(value) === '[object Array]'\n }\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = <T extends Function>(value: unknown): value is T =>\n toString.call(value) === '[object Function]'\n\n/**\n * Checks if the passed-in value is a VueTypes type\n * @param value - The value to check\n * @param name - Optional validator name\n */\nexport const isVueTypeDef = <T>(\n value: any,\n name?: string,\n): value is VueTypeDef<T> | VueTypeValidableDef<T> =>\n isPlainObject(value) &&\n has(value, '_vueTypes_name') &&\n (!name || value._vueTypes_name === name)\n\n/**\n * Checks if the passed-in value is a Vue prop definition object or a VueTypes type\n * @param value - The value to check\n */\nexport const isComplexType = <T>(value: any): value is VueProp<T> =>\n isPlainObject(value) &&\n (has(value, 'type') ||\n ['_vueTypes_name', 'validator', 'default', 'required'].some((k) =>\n has(value, k),\n ))\n\nexport interface WrappedFn {\n (...args: any[]): any\n __original: (...args: any[]) => any\n}\n\n/**\n * Binds a function to a context and saves a reference to the original.\n *\n * @param fn - Target function\n * @param ctx - New function context\n */\nexport function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn {\n return Object.defineProperty(fn.bind(ctx) as WrappedFn, '__original', {\n value: fn,\n })\n}\n\n/**\n * Returns the original function bounded with `bindTo`. If the passed-in function\n * has not be bound, the function itself will be returned instead.\n *\n * @param fn - Function to unwrap\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function unwrap<T extends WrappedFn | Function>(fn: T) {\n return (fn as WrappedFn).__original ?? fn\n}\n\n/**\n * Validates a given value against a prop type object.\n *\n * If `silent` is `false` (default) will return a boolean. If it is set to `true`\n * it will return `true` on success or a string error message on failure\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n */\nexport function validateType<T, U>(\n type: T,\n value: U,\n silent = false,\n): string | boolean {\n let typeToCheck: Record<string, any>\n let valid = true\n let expectedType = ''\n if (!isPlainObject(type)) {\n typeToCheck = { type }\n } else {\n typeToCheck = type\n }\n const namePrefix = isVueTypeDef(typeToCheck)\n ? typeToCheck._vueTypes_name + ' - '\n : ''\n\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === undefined || typeToCheck.type === true) {\n return valid\n }\n if (!typeToCheck.required && value == null) {\n return valid\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type: any) => validateType(type, value, true) === true,\n )\n expectedType = typeToCheck.type\n .map((type: any) => getType(type))\n .join(' or ')\n } else {\n expectedType = getType(typeToCheck)\n\n if (expectedType === 'Array') {\n valid = isArray(value)\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value)\n } else if (\n expectedType === 'String' ||\n expectedType === 'Number' ||\n expectedType === 'Boolean' ||\n expectedType === 'Function'\n ) {\n valid = getNativeType(value) === expectedType\n } else {\n valid = value instanceof typeToCheck.type\n }\n }\n }\n\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`\n if (silent === false) {\n warn(msg)\n return false\n }\n return msg\n }\n\n if (has(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n const oldWarn = warn\n const warnLog: string[] = []\n warn = (msg) => {\n warnLog.push(msg)\n }\n\n valid = typeToCheck.validator(value)\n warn = oldWarn\n\n if (!valid) {\n const msg = (warnLog.length > 1 ? '* ' : '') + warnLog.join('\\n* ')\n warnLog.length = 0\n if (silent === false) {\n warn(msg)\n return valid\n }\n return msg\n }\n }\n return valid\n}\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toType<T = any>(name: string, obj: PropOptions<T>) {\n const type: VueTypeDef<T> = Object.defineProperties(obj as VueTypeDef<T>, {\n _vueTypes_name: {\n value: name,\n writable: true,\n },\n isRequired: {\n get() {\n this.required = true\n return this\n },\n },\n def: {\n value(def?: any) {\n if (def === undefined) {\n if (\n this.type === Boolean ||\n (Array.isArray(this.type) && this.type.includes(Boolean))\n ) {\n this.default = undefined\n return\n }\n if (has(this, 'default')) {\n delete this.default\n }\n return this\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`)\n return this\n }\n if (isArray(def)) {\n this.default = () => [...def]\n } else if (isPlainObject(def)) {\n this.default = () => Object.assign({}, def)\n } else {\n this.default = def\n }\n return this\n },\n },\n })\n\n const { validator } = type\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type)\n }\n\n return type\n}\n\n/**\n * Like `toType` but also adds the `validate()` method to the type object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n */\nexport function toValidableType<T = any>(name: string, obj: PropOptions<T>) {\n const type = toType<T>(name, obj)\n return Object.defineProperty(type, 'validate', {\n value(fn: (value: T) => boolean) {\n if (isFunction(this.validator)) {\n warn(\n `${\n this._vueTypes_name\n } - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(\n this,\n )}`,\n )\n }\n this.validator = bindTo(fn, this)\n return this\n },\n }) as VueTypeValidableDef<T>\n}\n\n/**\n * Clones an object preserving all of it's own keys.\n *\n * @param obj - Object to clone\n */\n\nexport function clone<T extends object>(obj: T): T {\n const descriptors = {} as { [P in keyof T]: any }\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key as keyof T] = Object.getOwnPropertyDescriptor(obj, key)\n })\n return Object.defineProperties({}, descriptors) as T\n}\n\n/**\n * Return a new VueTypes type using another type as base.\n *\n * Properties in the `props` object will overwrite those defined in the source one\n * expect for the `validator` function. In that case both functions will be executed in series.\n *\n * @param name - Name of the new type\n * @param source - Source type\n * @param props - Custom type properties\n */\nexport function fromType<T extends VueTypeDef<any>>(name: string, source: T): T\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props: V): Omit<T, keyof V> & V\nexport function fromType<\n T extends VueTypeDef<any>,\n V extends PropOptions<InferType<T>>,\n>(name: string, source: T, props?: V) {\n // 1. create an exact copy of the source type\n const copy = clone(source)\n\n // 2. give it a new name\n copy._vueTypes_name = name\n\n if (!isPlainObject(props)) {\n return copy\n }\n const { validator, ...rest } = props\n\n // 3. compose the validator function\n // with the one on the source (if present)\n // and ensure it is bound to the copy\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy\n\n if (prevValidator) {\n prevValidator = unwrap(prevValidator) as (_v: any) => boolean\n }\n\n copy.validator = bindTo(\n prevValidator\n ? function (this: T, value: any) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator!.call(this, value) && validator.call(this, value)\n )\n }\n : validator,\n copy,\n )\n }\n // 4. overwrite the rest, if present\n return Object.assign(copy, rest as V)\n}\n\nexport function indent(string: string) {\n return string.replace(/^(?!\\s*$)/gm, ' ')\n}\n","import { VueTypesDefaults } from './types'\n\nexport const typeDefaults = (): VueTypesDefaults => ({\n func: () => undefined,\n bool: true,\n string: '',\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0,\n})\n","import { toType, toValidableType, isInteger, warn } from '../utils'\nimport { PropOptions, PropType } from '../types'\n\nexport const any = <T = any>() => toValidableType<T>('any', {})\n\nexport const func = <T extends (...args: any[]) => any>() =>\n toValidableType<T>('function', {\n type: Function as PropType<T>,\n })\n\nexport const bool = () =>\n toValidableType('boolean', {\n type: Boolean,\n })\n\nexport const string = <T extends string = string>() =>\n toValidableType<T>('string', {\n type: String as unknown as PropType<T>,\n })\n\nexport const number = <T extends number = number>() =>\n toValidableType<T>('number', {\n type: Number as unknown as PropType<T>,\n })\n\nexport const array = <T>() =>\n toValidableType<T[]>('array', {\n type: Array,\n })\n\nexport const object = <T extends Record<string, any>>() =>\n toValidableType<T>('object', {\n type: Object,\n })\n\nexport const integer = <T extends number = number>() =>\n toType<T>('integer', {\n type: Number as unknown as PropType<T>,\n validator(value) {\n const res = isInteger(value)\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`)\n }\n return res\n },\n })\n\nexport const symbol = () =>\n toType<symbol>('symbol', {\n validator(value: unknown) {\n const res = typeof value === 'symbol'\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`)\n }\n return res\n },\n })\n\nexport const nullable = () =>\n Object.defineProperty(\n {\n type: null as unknown as PropType<null>,\n validator(value: unknown) {\n const res = value === null\n if (res === false) {\n warn(`nullable - value should be null`)\n }\n return res\n },\n },\n '_vueTypes_name',\n { value: 'nullable' },\n ) as PropOptions<null>\n","import { toType, warn } from '../utils'\nimport { ValidatorFunction, VueTypeDef, PropType } from '../types'\n\nexport default function custom<T>(\n validatorFn: ValidatorFunction<T>,\n warnMsg = 'custom validation failed',\n) {\n if (typeof validatorFn !== 'function') {\n throw new TypeError(\n '[VueTypes error]: You must provide a function as argument',\n )\n }\n\n return toType<T>(validatorFn.name || '<<anonymous function>>', {\n type: null as unknown as PropType<T>,\n validator(this: VueTypeDef<T>, value: T) {\n const valid = validatorFn(value)\n if (!valid) warn(`${this._vueTypes_name} - ${warnMsg}`)\n return valid\n },\n })\n}\n","import { Prop, PropOptions } from '../types'\nimport { toType, warn, isArray } from '../utils'\n\nexport default function oneOf<D, T extends readonly D[] = readonly D[]>(\n arr: T,\n) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument.',\n )\n }\n const msg = `oneOf - value should be one of \"${arr\n .map((v: any) => (typeof v === 'symbol' ? v.toString() : v))\n .join('\", \"')}\".`\n const base: PropOptions<T[number]> = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1\n if (!valid) warn(msg)\n return valid\n },\n }\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== undefined) {\n const constr = (v as any).constructor\n ret.indexOf(constr) === -1 && ret.push(constr)\n }\n return ret\n },\n [] as Prop<T[number]>[],\n )\n\n if (type.length > 0) {\n base.type = type\n }\n }\n\n return toType<T[number]>('oneOf', base)\n}\n","import { Prop, VueProp, InferType, PropType } from '../types'\nimport {\n isArray,\n isComplexType,\n isVueTypeDef,\n isFunction,\n toType,\n validateType,\n warn,\n indent,\n} from '../utils'\n\nexport default function oneOfType<\n D extends V,\n U extends VueProp<any> | Prop<any> = any,\n V = InferType<U>,\n>(arr: U[]) {\n if (!isArray(arr)) {\n throw new TypeError(\n '[VueTypes error]: You must provide an array as argument',\n )\n }\n\n let hasCustomValidators = false\n let hasNullable = false\n\n let nativeChecks: Prop<V>[] = []\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i]\n if (isComplexType<V>(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true\n }\n if (isVueTypeDef<V>(type, 'oneOf') && type.type) {\n nativeChecks = nativeChecks.concat(type.type as PropType<V>)\n continue\n }\n if (isVueTypeDef<V>(type, 'nullable')) {\n hasNullable = true\n continue\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.')\n continue\n }\n nativeChecks = nativeChecks.concat(type.type)\n } else {\n nativeChecks.push(type as Prop<V>)\n }\n }\n\n // filter duplicates\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i)\n\n const typeProp =\n hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n })\n }\n\n return toType<D>('oneOfType', {\n type: typeProp as unknown as PropType<D>,\n validator(value) {\n const err: string[] = []\n const valid = arr.some((type) => {\n const res = validateType(type, value, true)\n if (typeof res === 'string') {\n err.push(res)\n }\n return res === true\n })\n\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${\n err.length\n } passed-in validators:\\n${indent(err.join('\\n'))}`,\n )\n }\n\n return valid\n },\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function arrayOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<InferType<T>[]>('arrayOf', {\n type: Array,\n validator(values: any[]) {\n let vResult: string | boolean = ''\n const valid = values.every((value) => {\n vResult = validateType(type, value, true)\n return vResult === true\n })\n if (!valid) {\n warn(`arrayOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { toType } from '../utils'\nimport { Constructor } from '../types'\n\nexport default function instanceOf<C extends Constructor>(\n instanceConstructor: C,\n) {\n return toType<InstanceType<C>>('instanceOf', {\n type: instanceConstructor,\n })\n}\n","import { Prop, VueProp, InferType } from '../types'\nimport { toType, validateType, warn, indent } from '../utils'\n\nexport default function objectOf<T extends VueProp<any> | Prop<any>>(type: T) {\n return toType<Record<string, InferType<T>>>('objectOf', {\n type: Object,\n validator(obj) {\n let vResult: string | boolean = ''\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true)\n return vResult === true\n })\n\n if (!valid) {\n warn(`objectOf - value validation error:\\n${indent(vResult as string)}`)\n }\n return valid\n },\n })\n}\n","import { Prop, VueProp, VueTypeShape, VueTypeLooseShape } from '../types'\nimport { toType, validateType, warn, isPlainObject, indent } from '../utils'\n\nexport default function shape<T extends object>(obj: {\n [K in keyof T]: Prop<T[K]> | VueProp<T[K]>\n}): VueTypeShape<T> {\n const keys = Object.keys(obj)\n const requiredKeys = keys.filter((key) => !!(obj as any)[key]?.required)\n\n const type = toType('shape', {\n type: Object,\n validator(this: VueTypeShape<T> | VueTypeLooseShape<T>, value) {\n if (!isPlainObject(value)) {\n return false\n }\n const valueKeys = Object.keys(value)\n\n // check for required keys (if any)\n if (\n requiredKeys.length > 0 &&\n requiredKeys.some((req) => valueKeys.indexOf(req) === -1)\n ) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1,\n )\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`)\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"',\n )}\" are not defined.`,\n )\n }\n\n return false\n }\n\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if ((this as VueTypeLooseShape<T>)._vueTypes_isLoose === true)\n return true\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"',\n )}\".`,\n )\n return false\n }\n const type = (obj as any)[key]\n const valid = validateType(type, value[key], true)\n if (typeof valid === 'string') {\n warn(`shape - \"${key}\" property validation error:\\n ${indent(valid)}`)\n }\n return valid === true\n })\n },\n }) as VueTypeShape<T>\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n writable: true,\n value: false,\n })\n\n Object.defineProperty(type, 'loose', {\n get() {\n this._vueTypes_isLoose = true\n return this\n },\n })\n\n return type\n}\n","import {\n toType,\n toValidableType,\n validateType,\n isArray,\n isVueTypeDef,\n has,\n fromType,\n warn,\n} from './utils'\n\nimport {\n VueTypesDefaults,\n ExtendProps,\n VueTypeDef,\n VueTypeValidableDef,\n VueTypeShape,\n VueTypeLooseShape,\n} from './types'\nimport { typeDefaults } from './sensibles'\nimport { PropOptions } from './types'\n\nimport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n nullable,\n} from './validators/native'\nimport custom from './validators/custom'\nimport oneOf from './validators/oneof'\nimport oneOfType from './validators/oneoftype'\nimport arrayOf from './validators/arrayof'\nimport instanceOf from './validators/instanceof'\nimport objectOf from './validators/objectof'\nimport shape from './validators/shape'\nimport { config } from './config'\n\nconst BaseVueTypes = /*#__PURE__*/ (() =>\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = {}\n\n static sensibleDefaults: Partial<VueTypesDefaults> | boolean\n\n static config = config\n\n static get any() {\n return any()\n }\n static get func() {\n return func().def(this.defaults.func)\n }\n static get bool() {\n // prevent undefined to be explicitly set\n if (this.defaults.bool === undefined) {\n return bool()\n }\n return bool().def(this.defaults.bool)\n }\n static get string() {\n return string().def(this.defaults.string)\n }\n static get number() {\n return number().def(this.defaults.number)\n }\n static get array() {\n return array().def(this.defaults.array)\n }\n static get object() {\n return object().def(this.defaults.object)\n }\n static get integer() {\n return integer().def(this.defaults.integer)\n }\n static get symbol() {\n return symbol()\n }\n\n static get nullable() {\n return nullable()\n }\n\n static readonly custom = custom\n static readonly oneOf = oneOf\n static readonly instanceOf = instanceOf\n static readonly oneOfType = oneOfType\n static readonly arrayOf = arrayOf\n static readonly objectOf = objectOf\n static readonly shape = shape\n\n static extend<T = any>(props: ExtendProps | ExtendProps[]): T {\n warn(\n `VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`,\n )\n if (isArray(props)) {\n props.forEach((p) => this.extend(p))\n return this as any\n }\n\n const { name, validate = false, getter = false, ...opts } = props\n\n if (has(this, name as any)) {\n throw new TypeError(`[VueTypes error]: Type \"${name}\" already defined`)\n }\n\n const { type } = opts\n if (isVueTypeDef(type)) {\n // we are using as base type a vue-type object\n\n // detach the original type\n // we are going to inherit the parent data.\n delete opts.type\n\n if (getter) {\n return Object.defineProperty(this as unknown as T, name, {\n get: () => fromType(name, type, opts as Omit<ExtendProps, 'type'>),\n })\n }\n return Object.defineProperty(this as unknown as T, name, {\n value(...args: unknown[]) {\n const t = fromType(name, type, opts as Omit<ExtendProps, 'type'>)\n if (t.validator) {\n t.validator = t.validator.bind(t, ...args)\n }\n return t\n },\n })\n }\n\n let descriptor: PropertyDescriptor\n if (getter) {\n descriptor = {\n get() {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n if (validate) {\n return toValidableType<T>(name, typeOptions)\n }\n return toType<T>(name, typeOptions)\n },\n enumerable: true,\n }\n } else {\n descriptor = {\n value(...args: T[]) {\n const typeOptions = Object.assign({}, opts as PropOptions<T>)\n let ret: VueTypeDef<T>\n if (validate) {\n ret = toValidableType<T>(name, typeOptions)\n } else {\n ret = toType<T>(name, typeOptions)\n }\n\n if (typeOptions.validator) {\n ret.validator = typeOptions.validator.bind(ret, ...args)\n }\n return ret\n },\n enumerable: true,\n }\n }\n\n return Object.defineProperty(this as unknown as T, name, descriptor)\n }\n\n static utils = {\n validate<T, U>(value: T, type: U) {\n return validateType<U, T>(type, value, true) === true\n },\n toType<T = unknown>(\n name: string,\n obj: PropOptions<T>,\n validable = false,\n ): VueTypeDef<T> | VueTypeValidableDef<T> {\n return validable ? toValidableType<T>(name, obj) : toType<T>(name, obj)\n },\n }\n })()\n\nfunction createTypes(defs: Partial<VueTypesDefaults> = typeDefaults()) {\n return class extends BaseVueTypes {\n static defaults: Partial<VueTypesDefaults> = { ...defs }\n\n static get sensibleDefaults() {\n return { ...this.defaults }\n }\n\n static set sensibleDefaults(v: boolean | Partial<VueTypesDefaults>) {\n if (v === false) {\n this.defaults = {}\n return\n }\n if (v === true) {\n this.defaults = { ...defs }\n return\n }\n this.defaults = { ...v }\n }\n }\n}\n\nexport default class VueTypes /*#__PURE__*/ extends createTypes() {}\n\nexport {\n any,\n func,\n bool,\n string,\n number,\n array,\n integer,\n symbol,\n object,\n custom,\n oneOf,\n oneOfType,\n arrayOf,\n instanceOf,\n objectOf,\n shape,\n nullable,\n createTypes,\n toType,\n toValidableType,\n validateType,\n fromType,\n config,\n}\n\nexport type VueTypesInterface = ReturnType<typeof createTypes>\nexport type { VueTypeDef, VueTypeValidableDef, VueTypeShape, VueTypeLooseShape }\n"],"names":["config","silent","logLevel","_excluded","ObjProto","Object","prototype","toString","hasOwn","hasOwnProperty","FN_MATCH_REGEXP","getType","fn","_fn$type","type","match","isPlainObject","_isPlainObject","warn","has","obj","prop","call","isInteger","Number","value","isFinite","Math","floor","isArray","Array","isFunction","isVueTypeDef","name","_vueTypes_name","isComplexType","some","k","bindTo","ctx","defineProperty","bind","validateType","typeToCheck","valid","expectedType","namePrefix","undefined","required","map","join","constructor","replace","getNativeType","msg","validator","oldWarn","warnLog","push","length","toType","defineProperties","writable","isRequired","get","this","def","Boolean","includes","concat","assign","toValidableType","JSON","stringify","fromType","source","props","descriptors","copy","getOwnPropertyNames","forEach","key","getOwnPropertyDescriptor","_fn$__original","rest","_objectWithoutPropertiesLoose","prevValidator","__original","indent","string","any","func","Function","bool","String","number","array","object","integer","res","symbol","nullable","custom","validatorFn","warnMsg","TypeError","oneOf","arr","v","base","indexOf","reduce","ret","constr","oneOfType","hasCustomValidators","hasNullable","nativeChecks","i","filter","t","typeProp","err","arrayOf","values","vResult","every","instanceOf","instanceConstructor","objectOf","keys","shape","requiredKeys","_obj$key","_this","valueKeys","req","missing","_vueTypes_isLoose","BaseVueTypes","_BaseVueTypes","extend","p","_props$validate","validate","_props$getter","getter","opts","descriptor","_t$validator","apply","slice","arguments","typeOptions","enumerable","_typeOptions$validato","_createClass","defaults","sensibleDefaults","utils","validable","createTypes","defs","_Class","_BaseVueTypes2","_inheritsLoose","_extends","set","VueTypes","_createTypes"],"mappings":"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"} |
+5
-2
| { | ||
| "name": "vue-types", | ||
| "version": "0.0.0-20240502091121", | ||
| "version": "0.0.0-20240701051251", | ||
| "description": "Prop types utility for Vue", | ||
@@ -25,2 +25,5 @@ "author": "Marco Solazzi", | ||
| }, | ||
| "./dist/types": { | ||
| "types": "./dist/types.d.ts" | ||
| }, | ||
| "./shim": { | ||
@@ -56,3 +59,3 @@ "types": "./dist/shim.d.ts", | ||
| "@babel/plugin-proposal-optional-chaining": "7.21.0", | ||
| "@types/node": "20.12.7", | ||
| "@types/node": "20.14.2", | ||
| "babel-plugin-transform-node-env-inline": "0.4.3", | ||
@@ -59,0 +62,0 @@ "cpy-cli": "5.0.0", |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
298129
-0.03%722
-3.22%