@hpcc-js/ddl-shim 2.18.1 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/ddl/v1.ts","../src/ddl/v2.ts","../../../node_modules/tslib/tslib.es6.js","../src/dermatology.ts","../src/upgrade.ts","../../../node_modules/uri-js/src/util.ts","../../../node_modules/uri-js/src/regexps-uri.ts","../../../node_modules/uri-js/src/regexps-iri.ts","../../../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../../../node_modules/uri-js/src/uri.ts","../../../node_modules/uri-js/src/schemes/http.ts","../../../node_modules/uri-js/src/schemes/https.ts","../../../node_modules/uri-js/src/schemes/ws.ts","../../../node_modules/uri-js/src/schemes/wss.ts","../../../node_modules/uri-js/src/schemes/mailto.ts","../../../node_modules/uri-js/src/schemes/urn.ts","../../../node_modules/uri-js/src/schemes/urn-uuid.ts","../../../node_modules/uri-js/src/index.ts","../../../node_modules/fast-deep-equal/index.js","../../../node_modules/ajv/lib/compile/ucs2length.js","../../../node_modules/ajv/lib/compile/util.js","../../../node_modules/ajv/lib/compile/schema_obj.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/lib/compile/resolve.js","../../../node_modules/ajv/lib/compile/error_classes.js","../../../node_modules/fast-json-stable-stringify/index.js","../../../node_modules/ajv/lib/dotjs/validate.js","../../../node_modules/ajv/lib/compile/index.js","../../../node_modules/ajv/lib/cache.js","../../../node_modules/ajv/lib/compile/formats.js","../../../node_modules/ajv/lib/dotjs/ref.js","../../../node_modules/ajv/lib/dotjs/allOf.js","../../../node_modules/ajv/lib/dotjs/anyOf.js","../../../node_modules/ajv/lib/dotjs/comment.js","../../../node_modules/ajv/lib/dotjs/const.js","../../../node_modules/ajv/lib/dotjs/contains.js","../../../node_modules/ajv/lib/dotjs/dependencies.js","../../../node_modules/ajv/lib/dotjs/enum.js","../../../node_modules/ajv/lib/dotjs/format.js","../../../node_modules/ajv/lib/dotjs/if.js","../../../node_modules/ajv/lib/dotjs/items.js","../../../node_modules/ajv/lib/dotjs/_limit.js","../../../node_modules/ajv/lib/dotjs/_limitItems.js","../../../node_modules/ajv/lib/dotjs/_limitLength.js","../../../node_modules/ajv/lib/dotjs/_limitProperties.js","../../../node_modules/ajv/lib/dotjs/multipleOf.js","../../../node_modules/ajv/lib/dotjs/not.js","../../../node_modules/ajv/lib/dotjs/oneOf.js","../../../node_modules/ajv/lib/dotjs/pattern.js","../../../node_modules/ajv/lib/dotjs/properties.js","../../../node_modules/ajv/lib/dotjs/propertyNames.js","../../../node_modules/ajv/lib/dotjs/required.js","../../../node_modules/ajv/lib/dotjs/uniqueItems.js","../../../node_modules/ajv/lib/dotjs/index.js","../../../node_modules/ajv/lib/compile/rules.js","../../../node_modules/ajv/lib/data.js","../../../node_modules/ajv/lib/compile/async.js","../../../node_modules/ajv/lib/dotjs/custom.js","../../../node_modules/ajv/lib/definition_schema.js","../../../node_modules/ajv/lib/keyword.js","../../../node_modules/ajv/lib/ajv.js","../src/validate.ts","../src/index.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/ddl-shim\";\r\nexport const PKG_VERSION = \"2.18.1\";\r\nexport const BUILD_VERSION = \"2.102.1\";\r\n","export type StringStringDict = { [key: string]: string; };\r\n\r\n// Datasource ===============================================================\r\nexport type IFilterRule = \"==\" | \"!=\" | \"<\" | \"<=\" | \">\" | \">=\" | \"set\" | \"notequals\";\r\nexport interface IFilter {\r\n fieldid: string;\r\n nullable: boolean;\r\n rule: IFilterRule;\r\n minid?: string;\r\n maxid?: string;\r\n}\r\n\r\nexport interface IOutput {\r\n id: string;\r\n from?: string;\r\n filter?: IFilter[];\r\n notify?: string[];\r\n}\r\n\r\nexport interface IDatasource {\r\n id: string;\r\n filter?: IFilter[];\r\n outputs: IOutput[];\r\n}\r\n\r\nexport interface IWorkunitDatasource extends IDatasource {\r\n WUID: boolean;\r\n}\r\nexport function isWorkunitDatasource(ref: IAnyDatasource): ref is IWorkunitDatasource {\r\n return (ref as IWorkunitDatasource).WUID !== undefined;\r\n}\r\n\r\nexport interface IDatabombDatasource extends IDatasource {\r\n databomb: true;\r\n}\r\nexport function isDatabombDatasource(ref: IAnyDatasource): ref is IDatabombDatasource {\r\n return (ref as IDatabombDatasource).databomb === true;\r\n}\r\n\r\nexport interface IHipieDatasource extends IDatasource {\r\n URL: string;\r\n}\r\nexport function isHipieDatasource(ref: IAnyDatasource): ref is IHipieDatasource {\r\n return (ref as IHipieDatasource).URL !== undefined;\r\n}\r\n\r\nexport type IAnyDatasource = IWorkunitDatasource | IDatabombDatasource | IHipieDatasource;\r\n// Event ====================================================================\r\nexport interface IEventUpdate {\r\n visualization: string;\r\n instance?: string;\r\n datasource: string;\r\n col?: string;\r\n merge: boolean;\r\n mappings?: StringStringDict;\r\n}\r\n\r\nexport interface IEvent {\r\n mappings?: StringStringDict; // Legacy\r\n updates: IEventUpdate[];\r\n}\r\n\r\n// Mappings =================================================================\r\nexport interface IPieMapping {\r\n label: string;\r\n weight: string;\r\n}\r\n\r\nexport interface ILineMapping {\r\n x: string[];\r\n y: string[];\r\n}\r\n\r\nexport interface ITableMapping {\r\n value: string[];\r\n}\r\n\r\nexport interface IChoroMapping {\r\n weight: string | string[];\r\n}\r\n\r\nexport interface IChoroUSStateMapping extends IChoroMapping {\r\n state: string;\r\n}\r\n\r\nexport interface IChoroUSCountyMapping extends IChoroMapping {\r\n county: string;\r\n}\r\n\r\nexport interface IChoroGeohashMapping extends IChoroMapping {\r\n geohash: string;\r\n}\r\n\r\nexport interface IGraphMapping {\r\n uid: string;\r\n label: string;\r\n weight: string;\r\n flags: string;\r\n}\r\n\r\nexport interface IGraphLinkMapping {\r\n uid: string;\r\n}\r\n\r\nexport interface IHeatMapMapping {\r\n x: string;\r\n y: string;\r\n weight: string;\r\n}\r\n\r\nexport interface ISliderMapping {\r\n label: string;\r\n}\r\n// Source ===================================================================\r\nexport interface ISource {\r\n id: string;\r\n output: string;\r\n sort?: string[];\r\n first?: string | number;\r\n reverse?: boolean;\r\n properties?: StringStringDict; // TODO Needed?\r\n}\r\n\r\nexport interface IPieSource extends ISource {\r\n mappings: IPieMapping;\r\n}\r\n\r\nexport interface ILineSource extends ISource {\r\n mappings: ILineMapping;\r\n}\r\n\r\nexport interface ITableSource extends ISource {\r\n mappings: ITableMapping;\r\n}\r\n\r\nexport interface IGraphLink {\r\n mappings: IGraphLinkMapping;\r\n childfile: string;\r\n}\r\n\r\nexport interface IGraphSource extends ISource {\r\n mappings: IGraphMapping;\r\n link: IGraphLink;\r\n}\r\n\r\nexport interface IHeatMapSource extends ISource {\r\n mappings: IHeatMapMapping;\r\n}\r\n\r\nexport interface IChoroSource extends ISource {\r\n mappings: IAnyChoroMapping;\r\n}\r\n\r\nexport interface ISliderSource extends ISource {\r\n mappings: ISliderMapping;\r\n}\r\n\r\n// Visualization ============================================================\r\nexport type VisualizationType = \"PIE\" | \"LINE\" | \"BAR\" | \"TABLE\" | \"CHORO\" | \"GRAPH\" | \"HEAT_MAP\" | \"SLIDER\" | \"SUMMARY\" | \"FORM\" | \"2DCHART\" | \"WORD_CLOUD\" | \"BUBBLE\";\r\nexport type VisualizationFieldDataType = \"bool\" | \"boolean\" | \"integer\" | \"integer4\" | \"integer8\" | \"unsigned\" | \"unsigned4\" | \"unsigned8\" | \"float\" | \"double\" | \"real\" | \"real4\" | \"real8\" | \"string\" | \"date\" | \"time\" | \"geohash\" | \"dataset\" | \"visualization\";\r\nexport type VisualizationFieldType = VisualizationFieldDataType | \"range\";\r\nexport type VisualizationFieldFuncitonType = \"SUM\" | \"AVE\" | \"MIN\" | \"MAX\" | \"SCALE\";\r\n\r\nexport interface IVisualizationField {\r\n id: string;\r\n properties: {\r\n label?: string;\r\n datatype: VisualizationFieldDataType;\r\n default?: any[];\r\n function?: VisualizationFieldFuncitonType;\r\n params?: {\r\n param1: string;\r\n param2: string;\r\n }\r\n type: VisualizationFieldType;\r\n };\r\n}\r\n\r\nexport interface IVisualization {\r\n id: string;\r\n title?: string;\r\n type: VisualizationType;\r\n fields?: IVisualizationField[];\r\n properties?: {\r\n charttype?: string,\r\n\r\n // TODO Split Known Properties ---\r\n [key: string]: any\r\n };\r\n events?: { [key: string]: IEvent };\r\n onSelect?: any; // legacy\r\n color?: any; // legacy\r\n}\r\n\r\nexport interface IPieVisualization extends IVisualization {\r\n type: \"PIE\" | \"BAR\";\r\n source: IPieSource;\r\n}\r\nexport function isPieVisualization(viz: IAnyVisualization): viz is IPieVisualization {\r\n return (viz as IPieVisualization).type === \"PIE\" || (viz as IPieVisualization).type === \"BAR\";\r\n}\r\n\r\nexport interface ILineVisualization extends IVisualization {\r\n type: \"LINE\";\r\n source: ILineSource;\r\n}\r\nexport function isLineVisualization(viz: IAnyVisualization): viz is ILineVisualization {\r\n return (viz as ILineVisualization).type === \"LINE\";\r\n}\r\n\r\nexport type ChoroColor = \"default\" | \"YlGn\" | \"YlGnBu\" | \"GnBu\" | \"BuGn\" | \"PuBuGn\" | \"PuBu\" | \"BuPu\" | \"RdPu\" | \"PuRd\" | \"OrRd\" | \"YlOrRd\" | \"YlOrBr\" | \"Purples\" | \"Blues\" | \"Greens\" | \"Oranges\" | \"Reds\" | \"Greys\" | \"PuOr\" | \"BrBG\" | \"PRGn\" | \"PiYG\" | \"RdBu\" | \"RdGy\" | \"RdYlBu\" | \"Spectral\" | \"RdYlGn\" | \"RdWhGr\";\r\nexport interface IChoroVisualization extends IVisualization {\r\n type: \"CHORO\";\r\n source: IChoroSource;\r\n\r\n visualizations?: IChoroVisualization[];\r\n color?: ChoroColor;\r\n}\r\nexport function isChoroVisualization(viz: IAnyVisualization): viz is IChoroVisualization {\r\n return (viz as IChoroVisualization).type === \"CHORO\";\r\n}\r\n\r\nexport interface ITableVisualization extends IVisualization {\r\n type: \"TABLE\";\r\n label: string[];\r\n source: ITableSource;\r\n}\r\nexport function isTableVisualization(viz: IAnyVisualization): viz is ITableVisualization {\r\n return (viz as ITableVisualization).type === \"TABLE\";\r\n}\r\n\r\nexport interface ISliderVisualization extends IVisualization {\r\n type: \"SLIDER\";\r\n source: ISliderSource;\r\n range?: number[];\r\n}\r\nexport function isSliderVisualization(viz: IAnyVisualization): viz is ISliderVisualization {\r\n return (viz as ISliderVisualization).type === \"SLIDER\";\r\n}\r\n\r\nexport interface IIcon {\r\n [id: string]: string | number | boolean;\r\n}\r\n\r\nexport type IValueMappings = { [key: string]: IIcon; };\r\n\r\nexport interface IVisualizationIcon {\r\n fieldid?: string;\r\n faChar?: string;\r\n valuemappings?: IValueMappings;\r\n}\r\n\r\nexport interface IGraphVisualization extends IVisualization {\r\n type: \"GRAPH\";\r\n source: IGraphSource;\r\n\r\n label: string[];\r\n icon: IVisualizationIcon;\r\n flag: IVisualizationIcon[];\r\n}\r\nexport function isGraphVisualization(viz: IAnyVisualization): viz is IGraphVisualization {\r\n return (viz as IGraphVisualization).type === \"GRAPH\";\r\n}\r\n\r\nexport interface IHeatMapVisualization extends IVisualization {\r\n type: \"HEAT_MAP\";\r\n source: IHeatMapSource;\r\n}\r\nexport function isHeatMapVisualization(viz: IAnyVisualization): viz is IHeatMapVisualization {\r\n return (viz as IHeatMapVisualization).type === \"HEAT_MAP\";\r\n}\r\n\r\nexport interface IFormVisualization extends IVisualization {\r\n type: \"FORM\";\r\n}\r\nexport function isFormVisualization(viz: IAnyVisualization): viz is IFormVisualization {\r\n return (viz as IFormVisualization).type === \"FORM\";\r\n}\r\n\r\n// Dashboard ================================================================\r\nexport interface IDashboard {\r\n id?: string;\r\n title?: string;\r\n enable?: string;\r\n label?: string;\r\n primary?: boolean;\r\n visualizations: IAnyVisualization[];\r\n}\r\n\r\nexport interface IDDL {\r\n dashboards: IDashboard[];\r\n datasources: IAnyDatasource[];\r\n hipieversion: string;\r\n visualizationversion: string;\r\n}\r\n\r\n// DDL ======================================================================\r\nexport type DDLSchema = IDDL;\r\n\r\n// Helpers ==================================================================\r\nexport type IAnyChoroMapping = IChoroUSStateMapping | IChoroUSCountyMapping | IChoroGeohashMapping;\r\nexport function isUSStateMapping(mappings: IAnyChoroMapping) {\r\n return (mappings as IChoroUSStateMapping).state !== undefined;\r\n}\r\nexport function isUSCountyMapping(mappings: IAnyChoroMapping) {\r\n return (mappings as IChoroUSCountyMapping).county !== undefined;\r\n}\r\nexport function isGeohashMapping(mappings: IAnyChoroMapping) {\r\n return (mappings as IChoroGeohashMapping).geohash !== undefined;\r\n}\r\nexport type IAnyMapping = IPieMapping | ILineMapping | IGraphMapping | IAnyChoroMapping | ITableMapping | IHeatMapMapping;\r\nexport type IAnySource = IPieSource | ILineSource | ITableSource | IChoroSource | IGraphSource | IHeatMapSource;\r\nexport type IAnyVisualization = IPieVisualization | ILineVisualization | ITableVisualization | IChoroVisualization | IGraphVisualization | IHeatMapVisualization | ISliderVisualization | IFormVisualization;\r\n","export type RowType = { [key: string]: any; };\r\n\r\n// Fields ==============================================================\r\nexport type Number64 = string;\r\nexport type Range = [number | string, number | string];\r\nexport type Dataset = any[];\r\nexport type IFieldType = \"boolean\" | \"number\" | \"number64\" | \"string\" | \"range\" | \"dataset\" | \"set\" | \"object\";\r\n\r\nexport interface IFieldBoolean {\r\n type: \"boolean\";\r\n id: string;\r\n default?: boolean;\r\n}\r\n\r\nexport interface IFieldNumber {\r\n type: \"number\";\r\n id: string;\r\n default?: number;\r\n}\r\n\r\nexport interface IFieldNumber64 {\r\n type: \"number64\";\r\n id: string;\r\n default?: Number64;\r\n}\r\n\r\nexport interface IFieldString {\r\n type: \"string\";\r\n id: string;\r\n default?: string;\r\n}\r\n\r\nexport interface IFieldRange {\r\n type: \"range\";\r\n id: string;\r\n default?: Range;\r\n}\r\n\r\nexport interface IFieldDataset {\r\n type: \"dataset\";\r\n id: string;\r\n default?: Dataset;\r\n children: IField[];\r\n}\r\n\r\nexport interface IFieldSet {\r\n type: \"set\";\r\n id: string;\r\n default?: Array<string | number>;\r\n fieldType: \"string\" | \"number\";\r\n}\r\n\r\nexport interface IFieldObject {\r\n type: \"object\";\r\n id: string;\r\n default?: object;\r\n fields: { [key: string]: IField };\r\n}\r\n\r\nexport type IField = IFieldBoolean | IFieldNumber | IFieldNumber64 | IFieldString | IFieldRange | IFieldDataset | IFieldSet | IFieldObject;\r\n\r\n// Datasources ==============================================================\r\nexport type IDatasourceType = \"wuresult\" | \"logicalfile\" | \"roxie\" | \"hipie\" | \"rest\" | \"form\" | \"databomb\";\r\nexport type DatasourceType = IWUResult | ILogicalFile | IRoxieService | IHipieService | IRestService | IForm | IDatabomb;\r\n\r\nexport interface IDatasource {\r\n type: IDatasourceType;\r\n id: string;\r\n}\r\n\r\nexport interface IService extends IDatasource {\r\n url: string;\r\n}\r\n\r\nexport interface IOutput {\r\n fields: IField[];\r\n}\r\n\r\nexport type OutputDict = { [key: string]: IOutput };\r\n\r\nexport interface IWUResult extends IService {\r\n type: \"wuresult\";\r\n wuid: string;\r\n outputs: OutputDict;\r\n}\r\n\r\nexport interface ILogicalFile extends IService {\r\n type: \"logicalfile\";\r\n logicalFile: string;\r\n fields: IField[];\r\n}\r\n\r\nexport interface IRoxieService extends IService {\r\n type: \"roxie\";\r\n querySet: string;\r\n queryID: string;\r\n inputs: IField[];\r\n outputs: OutputDict;\r\n}\r\n\r\nexport interface IHipieService extends IService {\r\n type: \"hipie\";\r\n querySet: string;\r\n queryID: string;\r\n inputs: IField[];\r\n outputs: OutputDict;\r\n}\r\n\r\nexport interface IRestService extends IService {\r\n type: \"rest\";\r\n action: string;\r\n mode?: \"get\" | \"post\";\r\n inputs: IField[];\r\n outputs: OutputDict;\r\n}\r\n\r\nexport interface IForm extends IDatasource {\r\n type: \"form\";\r\n fields: IField[];\r\n}\r\n\r\nexport type IDatabombFormat = \"csv\" | \"tsv\" | \"json\";\r\nexport interface IDatabomb extends IDatasource {\r\n type: \"databomb\";\r\n fields: IField[];\r\n format: IDatabombFormat;\r\n payload?: string;\r\n}\r\n\r\n// IDatasorceRef ---\r\nexport interface IDatasourceBaseRef {\r\n id: string;\r\n}\r\n\r\nexport interface IDatabombRef extends IDatasourceBaseRef {\r\n}\r\n\r\nexport interface IWUResultRef extends IDatasourceBaseRef {\r\n output: string;\r\n}\r\n\r\nexport interface IRestResultRef extends IDatasourceBaseRef {\r\n responseField: string;\r\n}\r\n\r\nexport interface IHipieSqlRef extends IDatasourceBaseRef {\r\n}\r\n\r\nexport interface IRequestField {\r\n localFieldID: string;\r\n source: string;\r\n remoteFieldID: string;\r\n value: string;\r\n}\r\n\r\nexport interface IRoxieServiceRef extends IDatasourceBaseRef {\r\n request: IRequestField[];\r\n output: string;\r\n}\r\n\r\nexport type IDatasourceRef = IDatabombRef | IWUResultRef | IRoxieServiceRef | IHipieSqlRef;\r\n\r\nexport function isDatabombRef(ref: IDatasourceRef): ref is IDatabombRef {\r\n return !isWUResultRef(ref) && !isRoxieServiceRef(ref);\r\n}\r\n\r\nexport function isWUResultRef(ref: IDatasourceRef): ref is IWUResultRef {\r\n return (ref as IWUResultRef).output !== undefined && !isRoxieServiceRef(ref);\r\n}\r\n\r\nexport function isRoxieServiceRef(ref: IDatasourceRef): ref is IRoxieServiceRef {\r\n return (ref as IRoxieServiceRef).request !== undefined;\r\n}\r\n\r\n// Activities ===============================================================\r\nexport type IActivityType = \"filter\" | \"project\" | \"groupby\" | \"sort\" | \"limit\" | \"mappings\";\r\nexport type ActivityType = IFilter | IProject | IGroupBy | ISort | ILimit | IMappings;\r\n\r\nexport interface IActivity {\r\n type: IActivityType;\r\n}\r\n\r\n// Filter ===================================================================\r\nexport type IMappingConditionType = \"==\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"range\" | \"in\";\r\nexport interface IMapping {\r\n remoteFieldID: string;\r\n localFieldID: string;\r\n condition: IMappingConditionType;\r\n nullable: boolean;\r\n}\r\n\r\nexport interface IFilterCondition {\r\n viewID: string;\r\n mappings: IMapping[];\r\n}\r\n\r\nexport interface IFilterStaticCondition {\r\n localFieldID: string;\r\n condition: IMappingConditionType;\r\n value: string | number;\r\n}\r\n\r\nexport type FilterCondition = IFilterCondition | IFilterStaticCondition;\r\nexport function isIFilterCondition(fc: FilterCondition): fc is IFilterCondition {\r\n return !!(fc as IFilterCondition).viewID;\r\n}\r\n\r\nexport interface IFilter extends IActivity {\r\n type: \"filter\";\r\n conditions: FilterCondition[];\r\n}\r\nexport function isFilterActivity(activity: IActivity): activity is IFilter {\r\n return activity.type === \"filter\";\r\n}\r\n\r\n// Project ==================================================================\r\nexport interface IEquals {\r\n fieldID: string;\r\n type: \"=\";\r\n sourceFieldID: string;\r\n transformations?: MultiTransformationType[];\r\n}\r\nexport type ICalculatedType = \"+\" | \"-\" | \"*\" | \"/\";\r\nexport interface ICalculated {\r\n fieldID: string;\r\n type: ICalculatedType;\r\n sourceFieldID1: string;\r\n sourceFieldID2: string;\r\n}\r\n\r\nexport interface IScale {\r\n fieldID: string;\r\n type: \"scale\";\r\n sourceFieldID: string;\r\n factor: number;\r\n}\r\n\r\nexport interface ITemplate {\r\n fieldID: string;\r\n type: \"template\";\r\n template: string;\r\n}\r\n\r\nexport interface IMapMapping {\r\n value: any;\r\n newValue: any;\r\n}\r\n\r\nexport interface IMap {\r\n fieldID: string;\r\n type: \"map\";\r\n sourceFieldID: string;\r\n default: any;\r\n mappings: IMapMapping[];\r\n}\r\n\r\nexport type MultiTransformationType = IEquals | ICalculated | IScale | ITemplate | IMap;\r\nexport interface IMulti {\r\n fieldID: string;\r\n type: \"multi\";\r\n transformations: MultiTransformationType[];\r\n}\r\n\r\nexport type ProjectTransformationType = MultiTransformationType | IMulti;\r\nexport interface IProject extends IActivity {\r\n type: \"project\";\r\n transformations: ProjectTransformationType[];\r\n}\r\nexport function isProjectActivity(activity: IActivity): activity is IProject {\r\n return activity.type === \"project\";\r\n}\r\nexport interface IMappings extends IActivity {\r\n type: \"mappings\";\r\n transformations: ProjectTransformationType[];\r\n}\r\nexport function isMappingsActivity(activity: IActivity): activity is IMappings {\r\n return activity.type === \"mappings\";\r\n}\r\n// GroupBy ==================================================================\r\nexport type IAggregateType = \"min\" | \"max\" | \"sum\" | \"mean\" | \"variance\" | \"deviation\";\r\nexport interface IAggregate {\r\n fieldID: string;\r\n type: IAggregateType;\r\n inFieldID: string;\r\n baseCountFieldID?: string;\r\n}\r\n\r\nexport interface ICount {\r\n fieldID: string;\r\n type: \"count\";\r\n}\r\n\r\nexport type AggregateType = IAggregate | ICount;\r\n\r\nexport interface IGroupBy extends IActivity {\r\n type: \"groupby\";\r\n groupByIDs: string[];\r\n aggregates: AggregateType[];\r\n}\r\nexport function isGroupByActivity(activity: IActivity): activity is IGroupBy {\r\n return activity.type === \"groupby\";\r\n}\r\n\r\n// Sort =====================================================================\r\nexport interface ISortCondition {\r\n fieldID: string;\r\n descending: boolean;\r\n}\r\n\r\nexport interface ISort extends IActivity {\r\n type: \"sort\";\r\n conditions: ISortCondition[];\r\n}\r\nexport function isSortActivity(activity: IActivity): activity is ISort {\r\n return activity.type === \"sort\";\r\n}\r\n\r\n// Limit ====================================================================\r\nexport interface ILimit extends IActivity {\r\n type: \"limit\";\r\n limit: number;\r\n}\r\nexport function isLimitActivity(activity: IActivity): activity is ILimit {\r\n return activity.type === \"limit\";\r\n}\r\n\r\n// Visualization ============================================================\r\nexport interface IWidgetProperties {\r\n __class: string;\r\n [propID: string]: string | string[] | number | boolean | undefined | IWidgetProperties | IWidgetProperties[];\r\n}\r\n\r\nexport interface IWidget {\r\n id: string;\r\n chartType: string;\r\n __class: string;\r\n properties: IWidgetProperties;\r\n}\r\n\r\nexport type VisibilityType = \"normal\" | \"flyout\";\r\nexport const VisibilitySet: VisibilityType[] = [\"normal\", \"flyout\"];\r\n\r\nexport interface IVisualization extends IWidget {\r\n title: string;\r\n description?: string;\r\n visibility: VisibilityType;\r\n mappings: IMappings;\r\n secondaryDataviewID?: string;\r\n}\r\n\r\n// View =====================================================================\r\nexport interface IView {\r\n id: string;\r\n datasource: IDatasourceRef;\r\n activities: ActivityType[];\r\n visualization: IVisualization;\r\n}\r\n\r\n// DDL ======================================================================\r\nexport interface IProperties {\r\n [propID: string]: any;\r\n}\r\n\r\nexport interface Schema {\r\n version: \"2.2.1\";\r\n createdBy: {\r\n name: string;\r\n version: string;\r\n };\r\n datasources: DatasourceType[];\r\n dataviews: IView[];\r\n properties?: IProperties;\r\n hipieProperties?: IProperties;\r\n\r\n // The following defs are only provided to assist the Java code generation (from the the generated schema) ---\r\n defs?: {\r\n fieldTypes: {\r\n number64: Number64;\r\n range: Range;\r\n dataset: Dataset;\r\n fieldType: IFieldType;\r\n fieldBoolean: IFieldBoolean;\r\n fieldNumber: IFieldNumber;\r\n fieldNumber64: IFieldNumber64\r\n fieldString: IFieldString;\r\n fieldRange: IFieldRange;\r\n fieldDataset: IFieldDataset;\r\n fieldSet: IFieldSet;\r\n fieldObject: IFieldObject;\r\n field: IField;\r\n };\r\n datasourceTypes: {\r\n datasource: IDatasource;\r\n logicalFile: ILogicalFile;\r\n form: IForm;\r\n databomb: IDatabomb;\r\n wuresult: IWUResult;\r\n hipieService: IHipieService;\r\n roxieService: IRoxieService;\r\n };\r\n datasourceRefTypes: {\r\n wuResultRef: IWUResultRef;\r\n roxieServiceRef: IRoxieServiceRef;\r\n };\r\n activityTypes: {\r\n filter: IFilter;\r\n project: IProject;\r\n groupby: IGroupBy;\r\n sort: ISort;\r\n limit: ILimit;\r\n mappings: IMappings;\r\n };\r\n aggregateTypes: {\r\n aggregate: IAggregate;\r\n count: ICount;\r\n };\r\n transformationTypes: {\r\n equals: IEquals;\r\n calculated: ICalculated;\r\n scale: IScale;\r\n template: ITemplate;\r\n map: IMap;\r\n multi: IMulti;\r\n };\r\n };\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import * as DDL2 from \"./ddl/v2\";\r\n\r\nconst classMappings: any = {\r\n c3chart_Bar: \"chart_Bar\",\r\n c3chart_Column: \"chart_Column\",\r\n c3chart_Pie: \"chart_Pie\",\r\n c3chart_Area: \"chart_Area\",\r\n c3chart_Line: \"chart_Line\",\r\n amchart_Bar: \"chart_Bar\",\r\n amchart_Column: \"chart_Column\",\r\n amchart_Pie: \"chart_Pie\",\r\n amchart_Area: \"chart_Area\",\r\n amchart_Line: \"chart_Line\",\r\n google_Bar: \"chart_Bar\",\r\n google_Column: \"chart_Column\",\r\n google_Pie: \"chart_Pie\",\r\n google_Area: \"chart_Area\",\r\n google_Line: \"chart_Line\",\r\n other_Table: \"dgrid_Table\"\r\n};\r\nconst propertyMappings: any = {\r\n xAxisLabelRotation: [\r\n { name: \"xAxisOverlapMode\", transform: (n: any) => \"rotate\" },\r\n { name: \"xAxisLabelRotation\", transform: (n: any) => n }\r\n ],\r\n tooltipLabelColor: {\r\n name: \"tooltipLabelColor\"\r\n },\r\n tooltipSeriesColor: {\r\n name: \"tooltipSeriesColor\"\r\n },\r\n tooltipValueColor: {\r\n name: \"tooltipValueColor\"\r\n },\r\n tooltipValueFormat: {\r\n name: \"tooltipValueFormat\"\r\n },\r\n timePattern: {\r\n name: \"xAxisTypeTimePattern\"\r\n },\r\n smoothLines: {\r\n name: \"interpolate\",\r\n transform: (n: any) => {\r\n if (n === false) return \"linear\";\r\n return \"catmullRom\";\r\n }\r\n },\r\n holePercent: {\r\n name: \"innerRadius\"\r\n },\r\n flip: {\r\n name: \"orientation\",\r\n transform: (n: any) => n ? \"vertical\" : \"horizontal\"\r\n },\r\n bottomText: {\r\n name: \"xAxisTitle\"\r\n },\r\n xAxisTypeTimePattern: {\r\n name: \"xAxisTypeTimePattern\"\r\n },\r\n yAxisTypeTimePattern: {\r\n name: \"yAxisTypeTimePattern\"\r\n },\r\n valueFormat: {\r\n name: \"tooltipValueFormat\"\r\n },\r\n stacked: {\r\n name: \"yAxisStacked\"\r\n },\r\n showYGrid: {\r\n name: \"yAxisGuideLines\"\r\n },\r\n showXGrid: {\r\n name: \"xAxisGuideLines\"\r\n },\r\n showValueLabel: {\r\n name: \"showValue\"\r\n },\r\n low: {\r\n name: \"yAxisDomainLow\"\r\n },\r\n high: {\r\n name: \"yAxisDomainHigh\"\r\n },\r\n fillOpacity: {\r\n name: \"interpolateFillOpacity\"\r\n },\r\n areaFillOpacity: {\r\n name: \"interpolateFillOpacity\"\r\n },\r\n showToolbar: {\r\n name: \"titleVisible\"\r\n },\r\n showCSV: {\r\n name: \"downloadButtonVisible\"\r\n }\r\n};\r\n\r\nfunction findKeyVal(object: any, key: any, val: any): any {\r\n let value;\r\n\r\n for (const k in object) {\r\n if (k === key && object[k] === val) {\r\n value = object;\r\n break;\r\n }\r\n if (object[k] && typeof object[k] === \"object\") {\r\n value = findKeyVal(object[k], key, val);\r\n if (value !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\n\r\nfunction apply_to_dataviews(ddl2: DDL2.Schema, dermObj: any) {\r\n\r\n ddl2.dataviews.forEach(apply_to_dataview);\r\n\r\n function apply_to_dataview(dv: any) {\r\n const widgetId = dv.id;\r\n const dermPanelObj: any = findKeyVal(dermObj, \"__id\", widgetId);\r\n if (dermPanelObj) {\r\n const dermPanelProps: any = dermPanelObj.__properties;\r\n const dermWidgetObj: any = dermPanelObj.__properties.chart ? dermPanelObj.__properties.chart : dermPanelObj.__properties.widget;\r\n const dermWidgetProps: any = dermWidgetObj.__properties;\r\n apply_class_mapping(dermWidgetObj);\r\n apply_panel_property_mapping(dermPanelProps, dermWidgetProps);\r\n apply_widget_property_mapping(dermPanelProps, dermWidgetProps);\r\n if (dv.visualization.properties.chartType) {\r\n dv.visualization.properties.charttype = dv.visualization.properties.chartType;\r\n }\r\n } else {\r\n console.warn(widgetId + \" not found in dermObj\");\r\n }\r\n\r\n function apply_class_mapping(dermWidgetObj: any) {\r\n dv.visualization.__class = swap_with_supported_class(dermWidgetObj.__class);\r\n dv.visualization.properties.__class = \"marshaller_VizChartPanel\";\r\n if (!dv.visualization.properties.widget) dv.visualization.properties.widget = {};\r\n dv.visualization.properties.widget.__class = dv.visualization.__class;\r\n\r\n function swap_with_supported_class(_class: string): string {\r\n return classMappings[_class] ? classMappings[_class] : _class;\r\n }\r\n }\r\n function apply_panel_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\r\n dv.visualization.title = dermPanelProps.title || \"\";\r\n dv.visualization.description = \"\";\r\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\r\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\r\n for (const propName in dermPanelProps) {\r\n if (typeof propertyMappings[propName] !== \"undefined\") {\r\n const newPropName = propertyMappings[propName].name;\r\n\r\n if (typeof propertyMappings[propName].transform === \"function\") {\r\n dv.visualization.properties[newPropName] = propertyMappings[propName].transform(dermPanelProps[propName]);\r\n } else {\r\n dv.visualization.properties[newPropName] = dermPanelProps[propName];\r\n }\r\n\r\n }\r\n }\r\n if (dermWidgetProps && dermWidgetProps.showLegend && dv.visualization.properties) {\r\n dv.visualization.properties.legendVisible = true;\r\n }\r\n }\r\n function apply_widget_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\r\n dv.visualization.title = dv.visualization.title || dermWidgetProps.title || \"\";\r\n dv.visualization.description = \"\"; // TODO - should this map to anything?\r\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\r\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\r\n for (const propName in dermWidgetProps) {\r\n if (typeof propertyMappings[propName] !== \"undefined\") {\r\n if (propertyMappings[propName] instanceof Array) {\r\n propertyMappings[propName].forEach((p: any) => {\r\n const newPropName = p.name;\r\n dv.visualization.properties.widget[newPropName] = p.transform(dermWidgetProps[propName]);\r\n if (typeof propertyMappings[propName].transform === \"function\") {\r\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\r\n } else {\r\n dv.visualization.properties.widget[newPropName] = dermWidgetProps[propName];\r\n }\r\n });\r\n } else {\r\n const newPropName = propertyMappings[propName].name;\r\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype CellPosition = {\r\n id: string;\r\n position: [number, number, number, number];\r\n};\r\n\r\ntype DDLProperties = {\r\n layout: CellPosition[]\r\n};\r\n\r\nfunction apply_to_properties_layout(ddl2: DDL2.Schema, dermObj: any) {\r\n const retVal: DDLProperties = {\r\n layout: []\r\n };\r\n if (!dermObj || !dermObj.__properties) return;\r\n dermObj.__properties.content.forEach((cell: any) => {\r\n const cellPosition: CellPosition = {\r\n // TODO - if \"id\" could be avoided then layouts could apply to any dashboard with the same number of widgets\r\n id: cell.__properties.widget.__id,\r\n position: [\r\n cell.__properties.gridCol,\r\n cell.__properties.gridRow,\r\n cell.__properties.gridColSpan,\r\n cell.__properties.gridRowSpan\r\n ]\r\n };\r\n retVal.layout.push(cellPosition);\r\n });\r\n return retVal;\r\n}\r\n\r\nexport function upgrade(ddl2: DDL2.Schema, dermObj: any) {\r\n apply_to_dataviews(ddl2, dermObj);\r\n return apply_to_properties_layout(ddl2, dermObj);\r\n}\r\n","import { PKG_NAME, PKG_VERSION } from \"./__package__\";\r\nimport * as DDL1 from \"./ddl/v1\";\r\nimport * as DDL2 from \"./ddl/v2\";\r\nimport { upgrade as dermatologyUpgrade } from \"./dermatology\";\r\n\r\ninterface IDatasourceOutput {\r\n datasource: DDL1.IAnyDatasource;\r\n output: DDL1.IOutput;\r\n}\r\n\r\ninterface IDatasourceOutputFilter extends IDatasourceOutput {\r\n filter: DDL1.IFilter;\r\n}\r\n\r\nconst UPGRADE_HEX_CHAR: boolean = false;\r\nfunction faCharFix(faChar: any): string | undefined {\r\n if (UPGRADE_HEX_CHAR && typeof faChar === \"string\") {\r\n return String.fromCharCode(parseInt(faChar));\r\n }\r\n return faChar;\r\n}\r\n\r\nclass DDLUpgrade {\r\n _ddl: DDL1.IDDL;\r\n _baseUrl: string;\r\n _wuid?: string;\r\n _toLowerCase: boolean;\r\n\r\n _datasources: { [id: string]: DDL1.IAnyDatasource } = {};\r\n _datasourceUpdates: { [id: string]: { id: string, output?: string } } = {};\r\n _visualizations: { [id: string]: DDL1.IAnyVisualization } = {};\r\n\r\n _ddl2Datasources: { [id: string]: DDL2.DatasourceType } = {};\r\n _ddl2DatasourceFields: { [dsid: string]: { [outputID: string]: { [fieldID: string]: DDL2.IField } } } = {};\r\n\r\n _ddl2Dataviews: { [id: string]: DDL2.IView } = {};\r\n _ddl2DataviewActivities: {\r\n [viewID: string]: {\r\n project: DDL2.IProject,\r\n filters: DDL2.IFilter,\r\n sort: DDL2.ISort,\r\n groupBy: DDL2.IGroupBy,\r\n limit: DDL2.ILimit,\r\n mappings: DDL2.IMappings\r\n }\r\n } = {};\r\n\r\n constructor(ddl: DDL1.IDDL, baseUrl: string = \"http://localhost:8010\", wuid: string = \"WUID\", toLowerCase = true) {\r\n this._ddl = ddl;\r\n this._baseUrl = baseUrl;\r\n this._wuid = wuid;\r\n this._toLowerCase = toLowerCase;\r\n\r\n this.indexDDL();\r\n this.readDDL();\r\n }\r\n\r\n toLowerCase(s: string): string {\r\n return this._toLowerCase ? s.toLowerCase() : s;\r\n }\r\n\r\n isVizDatasourceRoxie(viz: DDL1.IAnyVisualization): boolean {\r\n if ((viz as any).source) {\r\n const ds = this._datasources[(viz as any).source.id];\r\n if (DDL1.isHipieDatasource(ds)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getDatasourceOutputs(dsID: string, vizID: string): IDatasourceOutput[] {\r\n const retVal: IDatasourceOutput[] = [];\r\n const datasource = this._datasources[dsID];\r\n for (const output of datasource.outputs) {\r\n if (output.notify) {\r\n for (const notify of output.notify) {\r\n if (notify === vizID) {\r\n retVal.push({\r\n datasource,\r\n output\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n getDatasourceFilters(dsID: string, vizID: string): { [id: string]: IDatasourceOutputFilter } {\r\n const retVal: { [id: string]: IDatasourceOutputFilter } = {};\r\n for (const dsOut of this.getDatasourceOutputs(dsID, vizID)) {\r\n if (dsOut.output.filter) {\r\n for (const filter of dsOut.output.filter) {\r\n retVal[filter.fieldid] = {\r\n datasource: dsOut.datasource,\r\n output: dsOut.output,\r\n filter\r\n };\r\n }\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n indexDDL() {\r\n for (const dash of this._ddl.dashboards) {\r\n for (const viz of dash.visualizations) {\r\n this._visualizations[viz.id] = viz;\r\n }\r\n }\r\n\r\n for (const ds of this._ddl.datasources) {\r\n this._datasources[ds.id] = ds;\r\n for (const output of ds.outputs) {\r\n if (output.notify) {\r\n for (const notify of output.notify) {\r\n this._datasourceUpdates[notify] = {\r\n id: ds.id,\r\n output: output.from || output.id\r\n };\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n readDDL() {\r\n for (const ds of this._ddl.datasources) {\r\n if (DDL1.isWorkunitDatasource(ds)) {\r\n const ddl2DS: DDL2.IWUResult = {\r\n type: \"wuresult\",\r\n id: ds.id,\r\n url: this._baseUrl,\r\n wuid: this._wuid!,\r\n outputs: {}\r\n };\r\n for (const output of ds.outputs) {\r\n this.output2output(output, ddl2DS.outputs);\r\n }\r\n this._ddl2Datasources[ds.id] = ddl2DS;\r\n } else if (DDL1.isDatabombDatasource(ds)) {\r\n } else {\r\n const urlParts = ds.URL!.split(\"/WsEcl/submit/query/\");\r\n const hostParts = urlParts[0];\r\n const roxieParts = urlParts[1].split(\"/\");\r\n const ddl2DS: DDL2.IHipieService = {\r\n type: \"hipie\",\r\n id: ds.id,\r\n url: hostParts,\r\n querySet: roxieParts[0],\r\n queryID: roxieParts[1],\r\n inputs: [],\r\n outputs: {}\r\n };\r\n for (const output of ds.outputs) {\r\n this.output2output(output, ddl2DS.outputs);\r\n }\r\n this._ddl2Datasources[ds.id] = ddl2DS;\r\n }\r\n }\r\n for (const dash of this._ddl.dashboards) {\r\n for (const viz of dash.visualizations) {\r\n if (viz.type === \"FORM\") {\r\n this._ddl2Datasources[viz.id] = {\r\n type: \"form\",\r\n id: viz.id,\r\n fields: this.formFields2field(viz.fields)\r\n };\r\n this._datasourceUpdates[viz.id] = { id: viz.id };\r\n } else if (viz.type === \"SLIDER\") {\r\n this._ddl2Datasources[viz.id] = {\r\n type: \"form\",\r\n id: viz.id,\r\n fields: this.formFields2field(viz.fields, true)\r\n };\r\n this._datasourceUpdates[viz.id] = { id: viz.id };\r\n }\r\n\r\n this._ddl2Dataviews[viz.id] = this.anyViz2view(viz);\r\n }\r\n }\r\n\r\n this.readGroupBy();\r\n this.readFilters();\r\n this.readSort();\r\n this.readMappings();\r\n }\r\n\r\n readGroupBy() {\r\n for (const dash of this._ddl.dashboards) {\r\n for (const viz of dash.visualizations) {\r\n if (viz.fields) {\r\n const projectTransformations: DDL2.ProjectTransformationType[] = [];\r\n const groupByColumns: string[] = [];\r\n const aggrFields: DDL2.IAggregate[] = [];\r\n for (const field of viz.fields) {\r\n if (field.properties && field.properties.function) {\r\n switch (field.properties.function) {\r\n case \"SUM\":\r\n case \"MIN\":\r\n case \"MAX\":\r\n aggrFields.push({\r\n type: this.func2aggr(field.properties.function),\r\n inFieldID: this.toLowerCase(field.properties.params!.param1),\r\n fieldID: this.toLowerCase(field.id)\r\n } as DDL2.IAggregate);\r\n break;\r\n case \"AVE\":\r\n aggrFields.push({\r\n type: this.func2aggr(field.properties.function),\r\n inFieldID: this.toLowerCase(field.properties.params!.param1),\r\n baseCountFieldID: field.properties.params!.param2 ? this.toLowerCase(field.properties.params!.param2) : undefined,\r\n fieldID: this.toLowerCase(field.id)\r\n } as DDL2.IAggregate);\r\n break;\r\n case \"SCALE\":\r\n if (typeof field.properties.params!.param1 === \"object\") {\r\n const props: any = field.properties.params!.param1;\r\n switch (props.function) {\r\n case \"SUM\":\r\n case \"MIN\":\r\n case \"MAX\":\r\n aggrFields.push({\r\n type: this.func2aggr(props.function),\r\n inFieldID: this.toLowerCase(props.params.param1),\r\n fieldID: this.toLowerCase(field.id)\r\n });\r\n break;\r\n }\r\n }\r\n projectTransformations.push({\r\n type: \"scale\",\r\n sourceFieldID: this.toLowerCase(field.id),\r\n fieldID: this.toLowerCase(field.id),\r\n factor: +field.properties.params!.param2\r\n });\r\n break;\r\n default:\r\n groupByColumns.push(this.toLowerCase(field.id));\r\n throw new Error(`Unhandled field function: ${field.properties.function}`);\r\n }\r\n } else {\r\n groupByColumns.push(this.toLowerCase(field.id));\r\n }\r\n }\r\n if (projectTransformations.length) {\r\n this._ddl2DataviewActivities[viz.id].project.transformations = projectTransformations;\r\n }\r\n if (aggrFields.length) {\r\n this._ddl2DataviewActivities[viz.id].groupBy.groupByIDs = [...groupByColumns];\r\n this._ddl2DataviewActivities[viz.id].groupBy.aggregates = aggrFields;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n func2aggr(func: DDL1.VisualizationFieldFuncitonType): DDL2.IAggregateType {\r\n switch (func) {\r\n case \"SUM\":\r\n return \"sum\";\r\n case \"AVE\":\r\n return \"mean\";\r\n case \"MIN\":\r\n return \"min\";\r\n case \"MAX\":\r\n return \"max\";\r\n }\r\n throw new Error(`Unknown DDL1 Function Type: ${func}`);\r\n }\r\n\r\n readMappings() {\r\n for (const dash of this._ddl.dashboards) {\r\n for (const viz of dash.visualizations) {\r\n if (DDL1.isFormVisualization(viz)) {\r\n } else if (DDL1.isPieVisualization(viz)) {\r\n this.readPieMappings(viz);\r\n } else if (DDL1.isChoroVisualization(viz)) {\r\n this.readChoroMappings(viz);\r\n } else if (DDL1.isLineVisualization(viz)) {\r\n this.readLineMappings(viz);\r\n } else if (DDL1.isTableVisualization(viz)) {\r\n this.readTableMappings(viz);\r\n } else if (DDL1.isGraphVisualization(viz)) {\r\n this.readGraphMappings(viz);\r\n } else if (DDL1.isSliderVisualization(viz)) {\r\n this.readSliderMappings(viz);\r\n } else {\r\n throw new Error(`Unkown DDL1 mapping type: ${viz.type}`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n readPieMappings(viz: DDL1.IPieVisualization) {\r\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\r\n mappings.transformations.push({\r\n fieldID: \"label\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\r\n });\r\n mappings.transformations.push({\r\n fieldID: \"weight\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\r\n });\r\n }\r\n\r\n readChoroMappings(viz: DDL1.IChoroVisualization) {\r\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\r\n mappings.transformations.push({\r\n fieldID: \"label\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(this.anyChoroMapping2label(viz.source.mappings))\r\n });\r\n mappings.transformations.push({\r\n fieldID: \"weight\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\r\n });\r\n }\r\n\r\n anyChoroMapping2label(mapping: any) {\r\n return mapping.state || mapping.county || mapping.geohash;\r\n }\r\n\r\n readLineMappings(viz: DDL1.ILineVisualization) {\r\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\r\n mappings.transformations.push({\r\n fieldID: viz.source.mappings.x[0],\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.x[0])\r\n });\r\n for (let i = 0; i < viz.source.mappings.y.length; ++i) {\r\n mappings.transformations.push({\r\n fieldID: viz.source.mappings.y[i],\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.y[i])\r\n });\r\n }\r\n }\r\n\r\n readTableMappings(viz: DDL1.ITableVisualization) {\r\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\r\n for (let i = 0; i < viz.label.length; ++i) {\r\n mappings.transformations.push({\r\n fieldID: viz.label[i],\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.value[i])\r\n });\r\n }\r\n }\r\n\r\n readGraphEnums(valueMappings?: DDL1.IValueMappings, annotation: boolean = false): DDL2.IMapMapping[] {\r\n const retVal: DDL2.IMapMapping[] = [];\r\n if (valueMappings) {\r\n for (const value in valueMappings) {\r\n const newValue: { [key: string]: string | number | boolean | undefined } = {};\r\n for (const key in valueMappings[value]) {\r\n if (key === \"faChar\") {\r\n newValue[key] = faCharFix(valueMappings[value][key]);\r\n } else if (annotation && key.indexOf(\"icon_\") === 0) {\r\n console.log(\"Deprecated flag property: \" + key);\r\n newValue[key.split(\"icon_\")[1]] = valueMappings[value][key];\r\n } else {\r\n newValue[key] = valueMappings[value][key];\r\n }\r\n }\r\n // remove v1.x \"0\" annotations as they equated to \"nothing\" ---\r\n if (!annotation || value !== \"0\") {\r\n retVal.push({\r\n value,\r\n newValue\r\n });\r\n }\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n readGraphMappings(viz: DDL1.IGraphVisualization) {\r\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\r\n mappings.transformations.push({\r\n fieldID: \"uid\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.uid)\r\n });\r\n mappings.transformations.push({\r\n fieldID: \"label\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\r\n });\r\n if (viz.icon.fieldid) {\r\n mappings.transformations.push({\r\n fieldID: \"icon\",\r\n type: \"map\",\r\n sourceFieldID: this.toLowerCase(viz.icon.fieldid),\r\n default: { fachar: faCharFix(viz.icon.faChar) },\r\n mappings: this.readGraphEnums(viz.icon.valuemappings)\r\n });\r\n }\r\n let idx = 0;\r\n if (viz.flag) {\r\n for (const flag of viz.flag) {\r\n if (flag.fieldid) {\r\n mappings.transformations.push({\r\n fieldID: `annotation_${idx++}`,\r\n type: \"map\",\r\n sourceFieldID: this.toLowerCase(flag.fieldid),\r\n default: {},\r\n mappings: this.readGraphEnums(flag.valuemappings, true)\r\n });\r\n }\r\n }\r\n }\r\n mappings.transformations.push({\r\n fieldID: \"links\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.link.childfile),\r\n transformations: [{\r\n fieldID: \"uid\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.link.mappings.uid)\r\n }]\r\n });\r\n }\r\n\r\n readSliderMappings(viz: DDL1.ISliderVisualization) {\r\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\r\n mappings.transformations.push({\r\n fieldID: \"label\",\r\n type: \"=\",\r\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\r\n });\r\n }\r\n\r\n readFilters() {\r\n for (const dash of this._ddl.dashboards) {\r\n for (const viz of dash.visualizations) {\r\n if (viz.events) {\r\n for (const eventID in viz.events) {\r\n const event = viz.events[eventID];\r\n for (const update of event.updates) {\r\n const otherViz = this._ddl2Dataviews[update.visualization];\r\n const dsFilters = this.getDatasourceFilters(update.datasource, otherViz.id);\r\n if (update.mappings) {\r\n if (DDL2.isRoxieServiceRef(otherViz.datasource)) {\r\n for (const key in update.mappings) {\r\n otherViz.datasource.request.push({\r\n source: viz.id,\r\n remoteFieldID: this.toLowerCase(key),\r\n localFieldID: this.toLowerCase(update.mappings[key])\r\n } as DDL2.IRequestField);\r\n }\r\n } else {\r\n const condition: DDL2.IFilterCondition = {\r\n viewID: viz.id,\r\n mappings: []\r\n };\r\n for (const key in update.mappings) {\r\n const mapping = update.mappings[key];\r\n const dsFilter = (mapping && dsFilters[mapping]) ? dsFilters[mapping].filter : undefined;\r\n if (!dsFilter) {\r\n console.warn(`Select Mapping \"${mapping}\" in viz \"${viz.id}\" not found in filters for \"${otherViz.id}\"`);\r\n } else {\r\n condition.mappings.push({\r\n remoteFieldID: this.toLowerCase(key),\r\n localFieldID: this.toLowerCase(update.mappings[key]),\r\n condition: this.rule2condition(dsFilter.rule),\r\n nullable: dsFilter.nullable\r\n });\r\n }\r\n }\r\n this._ddl2DataviewActivities[otherViz.id].filters.conditions.push(condition);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n rule2condition(_: DDL1.IFilterRule): DDL2.IMappingConditionType {\r\n switch (_) {\r\n case \"set\":\r\n return \"in\";\r\n case \"notequals\":\r\n return \"!=\";\r\n }\r\n return _;\r\n }\r\n\r\n readSort() {\r\n for (const dash of this._ddl.dashboards) {\r\n for (const viz of dash.visualizations) {\r\n if ((viz as any).source) {\r\n if ((viz as any).source.sort) {\r\n const vizSort = this._ddl2DataviewActivities[viz.id].sort;\r\n vizSort.conditions = ((viz as any).source.sort as string[]).map(s => {\r\n if (s.indexOf(\"-\") === 0) {\r\n return {\r\n fieldID: this.toLowerCase(s.substr(1)),\r\n descending: true\r\n } as DDL2.ISortCondition;\r\n }\r\n return {\r\n fieldID: this.toLowerCase(s),\r\n descending: false\r\n } as DDL2.ISortCondition;\r\n });\r\n }\r\n if ((viz as any).source.first) {\r\n const vizLimit = this._ddl2DataviewActivities[viz.id].limit;\r\n vizLimit.limit = +(viz as any).source.first;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n anyViz2view(viz: DDL1.IAnyVisualization): DDL2.IView {\r\n const project: DDL2.IProject = {\r\n type: \"project\",\r\n transformations: []\r\n };\r\n const filters: DDL2.IFilter = {\r\n type: \"filter\",\r\n conditions: []\r\n };\r\n const groupBy: DDL2.IGroupBy = {\r\n type: \"groupby\",\r\n groupByIDs: [],\r\n aggregates: []\r\n };\r\n const sort: DDL2.ISort = {\r\n type: \"sort\",\r\n conditions: []\r\n };\r\n const limit: DDL2.ILimit = {\r\n type: \"limit\",\r\n limit: 0\r\n };\r\n const mappings: DDL2.IMappings = {\r\n type: \"mappings\",\r\n transformations: []\r\n };\r\n this._ddl2DataviewActivities[viz.id] = {\r\n project,\r\n filters,\r\n sort,\r\n groupBy,\r\n limit,\r\n mappings\r\n };\r\n const datasourceRef: DDL2.IDatasourceBaseRef | DDL2.IRoxieServiceRef = this.isVizDatasourceRoxie(viz) ? {\r\n id: this._datasourceUpdates[viz.id].id,\r\n request: [],\r\n output: this._datasourceUpdates[viz.id].output\r\n } : {\r\n id: this._datasourceUpdates[viz.id].id,\r\n output: this._datasourceUpdates[viz.id].output\r\n };\r\n return {\r\n id: viz.id,\r\n datasource: datasourceRef,\r\n activities: [\r\n project,\r\n filters,\r\n sort,\r\n groupBy,\r\n limit\r\n ],\r\n visualization: {\r\n id: viz.id,\r\n title: viz.title || \"\",\r\n description: \"\",\r\n visibility: viz.properties && viz.properties.flyout === true ? \"flyout\" : \"normal\",\r\n ...this.type2chartType(viz.type),\r\n mappings,\r\n properties: (viz.properties || {}) as DDL2.IWidgetProperties\r\n }\r\n };\r\n }\r\n\r\n type2chartType(chartType: DDL1.VisualizationType): { chartType: string, __class: string } {\r\n switch (chartType) {\r\n case \"LINE\":\r\n return { chartType: \"Line\", __class: \"chart_Line\" };\r\n case \"BUBBLE\":\r\n return { chartType: \"Bubble\", __class: \"chart_Bubble\" };\r\n case \"PIE\":\r\n return { chartType: \"Pie\", __class: \"chart_Pie\" };\r\n case \"BAR\":\r\n return { chartType: \"Column\", __class: \"chart_Column\" };\r\n case \"FORM\":\r\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\r\n case \"WORD_CLOUD\":\r\n return { chartType: \"WordCloud\", __class: \"chart_WordCloud\" };\r\n case \"CHORO\":\r\n return { chartType: \"ChoroplethStates\", __class: \"map_ChoroplethStates\" };\r\n case \"SUMMARY\":\r\n return { chartType: \"Summary\", __class: \"chart_Summary\" };\r\n case \"SLIDER\":\r\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\r\n case \"HEAT_MAP\":\r\n return { chartType: \"HeatMap\", __class: \"other_HeatMap\" };\r\n case \"2DCHART\":\r\n return { chartType: \"Column\", __class: \"chart_Column\" };\r\n case \"GRAPH\":\r\n return { chartType: \"AdjacencyGraph\", __class: \"graph_AdjacencyGraph\" };\r\n case \"TABLE\":\r\n default:\r\n return { chartType: \"Table\", __class: \"dgrid_Table\" };\r\n }\r\n }\r\n\r\n formFields2field(fields?: DDL1.IVisualizationField[], slider: boolean = false): DDL2.IField[] {\r\n if (!fields) return [];\r\n return fields.map(field => {\r\n switch (field.properties.type) {\r\n case \"range\":\r\n return {\r\n type: \"range\",\r\n id: field.id,\r\n default: (field.properties.default ? field.properties.default as DDL2.Range : undefined)\r\n };\r\n case \"dataset\":\r\n return {\r\n type: \"dataset\",\r\n id: field.id,\r\n default: [],\r\n children: []\r\n };\r\n default:\r\n return {\r\n type: this.formFieldType2fieldType(field.properties.datatype, slider),\r\n id: field.id,\r\n default: field.properties.default ? field.properties.default[0] : undefined\r\n };\r\n }\r\n });\r\n }\r\n\r\n formFieldType2fieldType(fieldType: DDL1.VisualizationFieldType, slider: boolean): \"string\" | \"number\" | \"boolean\" {\r\n switch (fieldType) {\r\n case \"bool\":\r\n case \"boolean\":\r\n return \"boolean\";\r\n case \"integer\":\r\n case \"unsigned\":\r\n case \"float\":\r\n case \"double\":\r\n case \"real\":\r\n return \"number\";\r\n case \"string\":\r\n return \"string\";\r\n default:\r\n return slider ? \"number\" : \"string\";\r\n }\r\n }\r\n\r\n output2output(output: DDL1.IOutput, target: DDL2.OutputDict) {\r\n target[output.from || output.id] = {\r\n fields: this.filters2fields(output.filter)\r\n };\r\n }\r\n\r\n filters2fields(filters?: DDL1.IFilter[]): DDL2.IField[] {\r\n if (!filters) return [];\r\n return filters.filter(filter => {\r\n const idParts = filter.fieldid.split(\"-\");\r\n return idParts.length === 1 || idParts[1] === \"range\";\r\n }).map(filter => {\r\n const idParts = filter.fieldid.split(\"-\");\r\n const retVal: DDL2.IFieldString = {\r\n type: \"string\",\r\n id: idParts[0]\r\n };\r\n return retVal;\r\n });\r\n }\r\n\r\n getVizField(vizID: string, fieldID: string): DDL2.IField {\r\n return {\r\n type: \"string\",\r\n id: \"\",\r\n default: \"\"\r\n };\r\n }\r\n\r\n writeDatasources(): DDL2.DatasourceType[] {\r\n const retVal: DDL2.DatasourceType[] = [];\r\n for (const id in this._ddl2Datasources) {\r\n retVal.push(this._ddl2Datasources[id]);\r\n }\r\n return retVal;\r\n }\r\n\r\n writeDataviews(): DDL2.IView[] {\r\n const retVal: DDL2.IView[] = [];\r\n for (const id in this._ddl2Dataviews) {\r\n retVal.push(this._ddl2Dataviews[id]);\r\n }\r\n return retVal;\r\n }\r\n\r\n writeProperties(): DDL2.IProperties | undefined {\r\n return {\r\n // TODO\r\n };\r\n }\r\n\r\n write(): DDL2.Schema {\r\n return {\r\n version: \"2.2.1\",\r\n createdBy: {\r\n name: PKG_NAME,\r\n version: PKG_VERSION\r\n },\r\n datasources: this.writeDatasources(),\r\n dataviews: this.writeDataviews(),\r\n properties: this.writeProperties()\r\n };\r\n }\r\n}\r\n\r\nexport function upgrade(ddl: DDL1.IDDL, baseUrl?: string, wuid?: string, toLowerCase: boolean = true, dermatologyJson = {}): DDL2.Schema {\r\n const ddlUp = new DDLUpgrade(ddl, baseUrl, wuid, toLowerCase);\r\n const retVal = ddlUp.write();\r\n retVal.properties = dermatologyUpgrade(retVal, dermatologyJson);\r\n return retVal;\r\n}\r\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n","'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n","'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n","'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n","'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n","import * as _Ajv from \"ajv\";\r\nimport * as DDL from \"./ddl/v1\";\r\nimport * as DDL2 from \"./ddl/v2\";\r\n\r\nconst Ajv = (_Ajv as any).default || _Ajv;\r\n\r\nexport const ddl2Schema: object = _ddl2Schema;\r\n\r\nconst options: _Ajv.Options = {\r\n allErrors: false,\r\n verbose: true,\r\n jsonPointers: false\r\n};\r\n\r\nfunction doValidate(ddl: DDL.DDLSchema | DDL2.Schema, schema: DDL.DDLSchema | DDL2.Schema) {\r\n const ajv: _Ajv.Ajv = new Ajv(options);\r\n const validate = ajv.compile(schema);\r\n const success = validate(ddl);\r\n return {\r\n success,\r\n errors: validate.errors\r\n };\r\n}\r\n\r\n/* Not needed ---\r\n// @ts-ignore\r\nimport * as ddlSchema from \"../schema/v1.json\";\r\n\r\nexport function validate(ddl: DDL.DDLSchema) {\r\n return doValidate(ddl, ddlSchema);\r\n}\r\n*/\r\n\r\n// @ts-ignore\r\nimport * as _ddl2Schema from \"../schema/v2.json\";\r\n\r\nexport function validate2(ddl: DDL2.Schema) {\r\n return doValidate(ddl, _ddl2Schema);\r\n}\r\n","export * from \"./__package__\";\r\nimport * as DDL1 from \"./ddl/v1\";\r\nimport * as DDL2 from \"./ddl/v2\";\r\nexport * from \"./upgrade\";\r\nexport * from \"./validate\";\r\n\r\nexport { DDL1, DDL2 };\r\n\r\nexport function isDDL2Schema(ref: DDL1.DDLSchema | DDL2.Schema): ref is DDL2.Schema {\r\n return (ref as DDL2.Schema).version !== undefined && (ref as DDL2.Schema).datasources !== undefined && (ref as DDL2.Schema).dataviews !== undefined;\r\n}\r\n"],"names":["upgrade","DDL1.isHipieDatasource","DDL1.isWorkunitDatasource","DDL1.isDatabombDatasource","DDL1.isFormVisualization","DDL1.isPieVisualization","DDL1.isChoroVisualization","DDL1.isLineVisualization","DDL1.isTableVisualization","DDL1.isGraphVisualization","DDL1.isSliderVisualization","DDL2.isRoxieServiceRef","dermatologyUpgrade","merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","CR$","DIGIT$$","DQUOTE$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","USERINFO$","UNRESERVED$$","DEC_OCTET$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","IP_LITERAL$","HOST$","PCHAR$","PATH_ABEMPTY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","ucs2length","util","toHash","require$$0","require$$1","IDENTIFIER","JSON_POINTER","RELATIVE_JSON_POINTER","SchemaObject","traverse","jsonSchemaTraverseModule","URI","require$$2","require$$3","require$$4","ValidationError","MissingRefError","validate","errorClasses","stableStringify","require$$5","compile","customRuleCode","Cache","cacheModule","formats","properties","required","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","rules","Ajv","_Ajv.default"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/ddl/v1.ts","../src/ddl/v2.ts","../../../node_modules/tslib/tslib.es6.js","../src/dermatology.ts","../src/upgrade.ts","../../../node_modules/uri-js/src/util.ts","../../../node_modules/uri-js/src/regexps-uri.ts","../../../node_modules/uri-js/src/regexps-iri.ts","../../../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../../../node_modules/uri-js/src/uri.ts","../../../node_modules/uri-js/src/schemes/http.ts","../../../node_modules/uri-js/src/schemes/https.ts","../../../node_modules/uri-js/src/schemes/ws.ts","../../../node_modules/uri-js/src/schemes/wss.ts","../../../node_modules/uri-js/src/schemes/mailto.ts","../../../node_modules/uri-js/src/schemes/urn.ts","../../../node_modules/uri-js/src/schemes/urn-uuid.ts","../../../node_modules/uri-js/src/index.ts","../../../node_modules/fast-deep-equal/index.js","../../../node_modules/ajv/lib/compile/ucs2length.js","../../../node_modules/ajv/lib/compile/util.js","../../../node_modules/ajv/lib/compile/schema_obj.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/lib/compile/resolve.js","../../../node_modules/ajv/lib/compile/error_classes.js","../../../node_modules/fast-json-stable-stringify/index.js","../../../node_modules/ajv/lib/dotjs/validate.js","../../../node_modules/ajv/lib/compile/index.js","../../../node_modules/ajv/lib/cache.js","../../../node_modules/ajv/lib/compile/formats.js","../../../node_modules/ajv/lib/dotjs/ref.js","../../../node_modules/ajv/lib/dotjs/allOf.js","../../../node_modules/ajv/lib/dotjs/anyOf.js","../../../node_modules/ajv/lib/dotjs/comment.js","../../../node_modules/ajv/lib/dotjs/const.js","../../../node_modules/ajv/lib/dotjs/contains.js","../../../node_modules/ajv/lib/dotjs/dependencies.js","../../../node_modules/ajv/lib/dotjs/enum.js","../../../node_modules/ajv/lib/dotjs/format.js","../../../node_modules/ajv/lib/dotjs/if.js","../../../node_modules/ajv/lib/dotjs/items.js","../../../node_modules/ajv/lib/dotjs/_limit.js","../../../node_modules/ajv/lib/dotjs/_limitItems.js","../../../node_modules/ajv/lib/dotjs/_limitLength.js","../../../node_modules/ajv/lib/dotjs/_limitProperties.js","../../../node_modules/ajv/lib/dotjs/multipleOf.js","../../../node_modules/ajv/lib/dotjs/not.js","../../../node_modules/ajv/lib/dotjs/oneOf.js","../../../node_modules/ajv/lib/dotjs/pattern.js","../../../node_modules/ajv/lib/dotjs/properties.js","../../../node_modules/ajv/lib/dotjs/propertyNames.js","../../../node_modules/ajv/lib/dotjs/required.js","../../../node_modules/ajv/lib/dotjs/uniqueItems.js","../../../node_modules/ajv/lib/dotjs/index.js","../../../node_modules/ajv/lib/compile/rules.js","../../../node_modules/ajv/lib/data.js","../../../node_modules/ajv/lib/compile/async.js","../../../node_modules/ajv/lib/dotjs/custom.js","../../../node_modules/ajv/lib/definition_schema.js","../../../node_modules/ajv/lib/keyword.js","../../../node_modules/ajv/lib/ajv.js","../src/validate.ts","../src/index.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/ddl-shim\";\r\nexport const PKG_VERSION = \"2.20.0\";\r\nexport const BUILD_VERSION = \"2.104.2\";\r\n","export type StringStringDict = { [key: string]: string; };\n\n// Datasource ===============================================================\nexport type IFilterRule = \"==\" | \"!=\" | \"<\" | \"<=\" | \">\" | \">=\" | \"set\" | \"notequals\";\nexport interface IFilter {\n fieldid: string;\n nullable: boolean;\n rule: IFilterRule;\n minid?: string;\n maxid?: string;\n}\n\nexport interface IOutput {\n id: string;\n from?: string;\n filter?: IFilter[];\n notify?: string[];\n}\n\nexport interface IDatasource {\n id: string;\n filter?: IFilter[];\n outputs: IOutput[];\n}\n\nexport interface IWorkunitDatasource extends IDatasource {\n WUID: boolean;\n}\nexport function isWorkunitDatasource(ref: IAnyDatasource): ref is IWorkunitDatasource {\n return (ref as IWorkunitDatasource).WUID !== undefined;\n}\n\nexport interface IDatabombDatasource extends IDatasource {\n databomb: true;\n}\nexport function isDatabombDatasource(ref: IAnyDatasource): ref is IDatabombDatasource {\n return (ref as IDatabombDatasource).databomb === true;\n}\n\nexport interface IHipieDatasource extends IDatasource {\n URL: string;\n}\nexport function isHipieDatasource(ref: IAnyDatasource): ref is IHipieDatasource {\n return (ref as IHipieDatasource).URL !== undefined;\n}\n\nexport type IAnyDatasource = IWorkunitDatasource | IDatabombDatasource | IHipieDatasource;\n// Event ====================================================================\nexport interface IEventUpdate {\n visualization: string;\n instance?: string;\n datasource: string;\n col?: string;\n merge: boolean;\n mappings?: StringStringDict;\n}\n\nexport interface IEvent {\n mappings?: StringStringDict; // Legacy\n updates: IEventUpdate[];\n}\n\n// Mappings =================================================================\nexport interface IPieMapping {\n label: string;\n weight: string;\n}\n\nexport interface ILineMapping {\n x: string[];\n y: string[];\n}\n\nexport interface ITableMapping {\n value: string[];\n}\n\nexport interface IChoroMapping {\n weight: string | string[];\n}\n\nexport interface IChoroUSStateMapping extends IChoroMapping {\n state: string;\n}\n\nexport interface IChoroUSCountyMapping extends IChoroMapping {\n county: string;\n}\n\nexport interface IChoroGeohashMapping extends IChoroMapping {\n geohash: string;\n}\n\nexport interface IGraphMapping {\n uid: string;\n label: string;\n weight: string;\n flags: string;\n}\n\nexport interface IGraphLinkMapping {\n uid: string;\n}\n\nexport interface IHeatMapMapping {\n x: string;\n y: string;\n weight: string;\n}\n\nexport interface ISliderMapping {\n label: string;\n}\n// Source ===================================================================\nexport interface ISource {\n id: string;\n output: string;\n sort?: string[];\n first?: string | number;\n reverse?: boolean;\n properties?: StringStringDict; // TODO Needed?\n}\n\nexport interface IPieSource extends ISource {\n mappings: IPieMapping;\n}\n\nexport interface ILineSource extends ISource {\n mappings: ILineMapping;\n}\n\nexport interface ITableSource extends ISource {\n mappings: ITableMapping;\n}\n\nexport interface IGraphLink {\n mappings: IGraphLinkMapping;\n childfile: string;\n}\n\nexport interface IGraphSource extends ISource {\n mappings: IGraphMapping;\n link: IGraphLink;\n}\n\nexport interface IHeatMapSource extends ISource {\n mappings: IHeatMapMapping;\n}\n\nexport interface IChoroSource extends ISource {\n mappings: IAnyChoroMapping;\n}\n\nexport interface ISliderSource extends ISource {\n mappings: ISliderMapping;\n}\n\n// Visualization ============================================================\nexport type VisualizationType = \"PIE\" | \"LINE\" | \"BAR\" | \"TABLE\" | \"CHORO\" | \"GRAPH\" | \"HEAT_MAP\" | \"SLIDER\" | \"SUMMARY\" | \"FORM\" | \"2DCHART\" | \"WORD_CLOUD\" | \"BUBBLE\";\nexport type VisualizationFieldDataType = \"bool\" | \"boolean\" | \"integer\" | \"integer4\" | \"integer8\" | \"unsigned\" | \"unsigned4\" | \"unsigned8\" | \"float\" | \"double\" | \"real\" | \"real4\" | \"real8\" | \"string\" | \"date\" | \"time\" | \"geohash\" | \"dataset\" | \"visualization\";\nexport type VisualizationFieldType = VisualizationFieldDataType | \"range\";\nexport type VisualizationFieldFuncitonType = \"SUM\" | \"AVE\" | \"MIN\" | \"MAX\" | \"SCALE\";\n\nexport interface IVisualizationField {\n id: string;\n properties: {\n label?: string;\n datatype: VisualizationFieldDataType;\n default?: any[];\n function?: VisualizationFieldFuncitonType;\n params?: {\n param1: string;\n param2: string;\n }\n type: VisualizationFieldType;\n };\n}\n\nexport interface IVisualization {\n id: string;\n title?: string;\n type: VisualizationType;\n fields?: IVisualizationField[];\n properties?: {\n charttype?: string,\n\n // TODO Split Known Properties ---\n [key: string]: any\n };\n events?: { [key: string]: IEvent };\n onSelect?: any; // legacy\n color?: any; // legacy\n}\n\nexport interface IPieVisualization extends IVisualization {\n type: \"PIE\" | \"BAR\";\n source: IPieSource;\n}\nexport function isPieVisualization(viz: IAnyVisualization): viz is IPieVisualization {\n return (viz as IPieVisualization).type === \"PIE\" || (viz as IPieVisualization).type === \"BAR\";\n}\n\nexport interface ILineVisualization extends IVisualization {\n type: \"LINE\";\n source: ILineSource;\n}\nexport function isLineVisualization(viz: IAnyVisualization): viz is ILineVisualization {\n return (viz as ILineVisualization).type === \"LINE\";\n}\n\nexport type ChoroColor = \"default\" | \"YlGn\" | \"YlGnBu\" | \"GnBu\" | \"BuGn\" | \"PuBuGn\" | \"PuBu\" | \"BuPu\" | \"RdPu\" | \"PuRd\" | \"OrRd\" | \"YlOrRd\" | \"YlOrBr\" | \"Purples\" | \"Blues\" | \"Greens\" | \"Oranges\" | \"Reds\" | \"Greys\" | \"PuOr\" | \"BrBG\" | \"PRGn\" | \"PiYG\" | \"RdBu\" | \"RdGy\" | \"RdYlBu\" | \"Spectral\" | \"RdYlGn\" | \"RdWhGr\";\nexport interface IChoroVisualization extends IVisualization {\n type: \"CHORO\";\n source: IChoroSource;\n\n visualizations?: IChoroVisualization[];\n color?: ChoroColor;\n}\nexport function isChoroVisualization(viz: IAnyVisualization): viz is IChoroVisualization {\n return (viz as IChoroVisualization).type === \"CHORO\";\n}\n\nexport interface ITableVisualization extends IVisualization {\n type: \"TABLE\";\n label: string[];\n source: ITableSource;\n}\nexport function isTableVisualization(viz: IAnyVisualization): viz is ITableVisualization {\n return (viz as ITableVisualization).type === \"TABLE\";\n}\n\nexport interface ISliderVisualization extends IVisualization {\n type: \"SLIDER\";\n source: ISliderSource;\n range?: number[];\n}\nexport function isSliderVisualization(viz: IAnyVisualization): viz is ISliderVisualization {\n return (viz as ISliderVisualization).type === \"SLIDER\";\n}\n\nexport interface IIcon {\n [id: string]: string | number | boolean;\n}\n\nexport type IValueMappings = { [key: string]: IIcon; };\n\nexport interface IVisualizationIcon {\n fieldid?: string;\n faChar?: string;\n valuemappings?: IValueMappings;\n}\n\nexport interface IGraphVisualization extends IVisualization {\n type: \"GRAPH\";\n source: IGraphSource;\n\n label: string[];\n icon: IVisualizationIcon;\n flag: IVisualizationIcon[];\n}\nexport function isGraphVisualization(viz: IAnyVisualization): viz is IGraphVisualization {\n return (viz as IGraphVisualization).type === \"GRAPH\";\n}\n\nexport interface IHeatMapVisualization extends IVisualization {\n type: \"HEAT_MAP\";\n source: IHeatMapSource;\n}\nexport function isHeatMapVisualization(viz: IAnyVisualization): viz is IHeatMapVisualization {\n return (viz as IHeatMapVisualization).type === \"HEAT_MAP\";\n}\n\nexport interface IFormVisualization extends IVisualization {\n type: \"FORM\";\n}\nexport function isFormVisualization(viz: IAnyVisualization): viz is IFormVisualization {\n return (viz as IFormVisualization).type === \"FORM\";\n}\n\n// Dashboard ================================================================\nexport interface IDashboard {\n id?: string;\n title?: string;\n enable?: string;\n label?: string;\n primary?: boolean;\n visualizations: IAnyVisualization[];\n}\n\nexport interface IDDL {\n dashboards: IDashboard[];\n datasources: IAnyDatasource[];\n hipieversion: string;\n visualizationversion: string;\n}\n\n// DDL ======================================================================\nexport type DDLSchema = IDDL;\n\n// Helpers ==================================================================\nexport type IAnyChoroMapping = IChoroUSStateMapping | IChoroUSCountyMapping | IChoroGeohashMapping;\nexport function isUSStateMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSStateMapping).state !== undefined;\n}\nexport function isUSCountyMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSCountyMapping).county !== undefined;\n}\nexport function isGeohashMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroGeohashMapping).geohash !== undefined;\n}\nexport type IAnyMapping = IPieMapping | ILineMapping | IGraphMapping | IAnyChoroMapping | ITableMapping | IHeatMapMapping;\nexport type IAnySource = IPieSource | ILineSource | ITableSource | IChoroSource | IGraphSource | IHeatMapSource;\nexport type IAnyVisualization = IPieVisualization | ILineVisualization | ITableVisualization | IChoroVisualization | IGraphVisualization | IHeatMapVisualization | ISliderVisualization | IFormVisualization;\n","export type RowType = { [key: string]: any; };\n\n// Fields ==============================================================\nexport type Number64 = string;\nexport type Range = [number | string, number | string];\nexport type Dataset = any[];\nexport type IFieldType = \"boolean\" | \"number\" | \"number64\" | \"string\" | \"range\" | \"dataset\" | \"set\" | \"object\";\n\nexport interface IFieldBoolean {\n type: \"boolean\";\n id: string;\n default?: boolean;\n}\n\nexport interface IFieldNumber {\n type: \"number\";\n id: string;\n default?: number;\n}\n\nexport interface IFieldNumber64 {\n type: \"number64\";\n id: string;\n default?: Number64;\n}\n\nexport interface IFieldString {\n type: \"string\";\n id: string;\n default?: string;\n}\n\nexport interface IFieldRange {\n type: \"range\";\n id: string;\n default?: Range;\n}\n\nexport interface IFieldDataset {\n type: \"dataset\";\n id: string;\n default?: Dataset;\n children: IField[];\n}\n\nexport interface IFieldSet {\n type: \"set\";\n id: string;\n default?: Array<string | number>;\n fieldType: \"string\" | \"number\";\n}\n\nexport interface IFieldObject {\n type: \"object\";\n id: string;\n default?: object;\n fields: { [key: string]: IField };\n}\n\nexport type IField = IFieldBoolean | IFieldNumber | IFieldNumber64 | IFieldString | IFieldRange | IFieldDataset | IFieldSet | IFieldObject;\n\n// Datasources ==============================================================\nexport type IDatasourceType = \"wuresult\" | \"logicalfile\" | \"roxie\" | \"hipie\" | \"rest\" | \"form\" | \"databomb\";\nexport type DatasourceType = IWUResult | ILogicalFile | IRoxieService | IHipieService | IRestService | IForm | IDatabomb;\n\nexport interface IDatasource {\n type: IDatasourceType;\n id: string;\n}\n\nexport interface IService extends IDatasource {\n url: string;\n}\n\nexport interface IOutput {\n fields: IField[];\n}\n\nexport type OutputDict = { [key: string]: IOutput };\n\nexport interface IWUResult extends IService {\n type: \"wuresult\";\n wuid: string;\n outputs: OutputDict;\n}\n\nexport interface ILogicalFile extends IService {\n type: \"logicalfile\";\n logicalFile: string;\n fields: IField[];\n}\n\nexport interface IRoxieService extends IService {\n type: \"roxie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IHipieService extends IService {\n type: \"hipie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IRestService extends IService {\n type: \"rest\";\n action: string;\n mode?: \"get\" | \"post\";\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IForm extends IDatasource {\n type: \"form\";\n fields: IField[];\n}\n\nexport type IDatabombFormat = \"csv\" | \"tsv\" | \"json\";\nexport interface IDatabomb extends IDatasource {\n type: \"databomb\";\n fields: IField[];\n format: IDatabombFormat;\n payload?: string;\n}\n\n// IDatasorceRef ---\nexport interface IDatasourceBaseRef {\n id: string;\n}\n\nexport interface IDatabombRef extends IDatasourceBaseRef {\n}\n\nexport interface IWUResultRef extends IDatasourceBaseRef {\n output: string;\n}\n\nexport interface IRestResultRef extends IDatasourceBaseRef {\n responseField: string;\n}\n\nexport interface IHipieSqlRef extends IDatasourceBaseRef {\n}\n\nexport interface IRequestField {\n localFieldID: string;\n source: string;\n remoteFieldID: string;\n value: string;\n}\n\nexport interface IRoxieServiceRef extends IDatasourceBaseRef {\n request: IRequestField[];\n output: string;\n}\n\nexport type IDatasourceRef = IDatabombRef | IWUResultRef | IRoxieServiceRef | IHipieSqlRef;\n\nexport function isDatabombRef(ref: IDatasourceRef): ref is IDatabombRef {\n return !isWUResultRef(ref) && !isRoxieServiceRef(ref);\n}\n\nexport function isWUResultRef(ref: IDatasourceRef): ref is IWUResultRef {\n return (ref as IWUResultRef).output !== undefined && !isRoxieServiceRef(ref);\n}\n\nexport function isRoxieServiceRef(ref: IDatasourceRef): ref is IRoxieServiceRef {\n return (ref as IRoxieServiceRef).request !== undefined;\n}\n\n// Activities ===============================================================\nexport type IActivityType = \"filter\" | \"project\" | \"groupby\" | \"sort\" | \"limit\" | \"mappings\";\nexport type ActivityType = IFilter | IProject | IGroupBy | ISort | ILimit | IMappings;\n\nexport interface IActivity {\n type: IActivityType;\n}\n\n// Filter ===================================================================\nexport type IMappingConditionType = \"==\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"range\" | \"in\";\nexport interface IMapping {\n remoteFieldID: string;\n localFieldID: string;\n condition: IMappingConditionType;\n nullable: boolean;\n}\n\nexport interface IFilterCondition {\n viewID: string;\n mappings: IMapping[];\n}\n\nexport interface IFilterStaticCondition {\n localFieldID: string;\n condition: IMappingConditionType;\n value: string | number;\n}\n\nexport type FilterCondition = IFilterCondition | IFilterStaticCondition;\nexport function isIFilterCondition(fc: FilterCondition): fc is IFilterCondition {\n return !!(fc as IFilterCondition).viewID;\n}\n\nexport interface IFilter extends IActivity {\n type: \"filter\";\n conditions: FilterCondition[];\n}\nexport function isFilterActivity(activity: IActivity): activity is IFilter {\n return activity.type === \"filter\";\n}\n\n// Project ==================================================================\nexport interface IEquals {\n fieldID: string;\n type: \"=\";\n sourceFieldID: string;\n transformations?: MultiTransformationType[];\n}\nexport type ICalculatedType = \"+\" | \"-\" | \"*\" | \"/\";\nexport interface ICalculated {\n fieldID: string;\n type: ICalculatedType;\n sourceFieldID1: string;\n sourceFieldID2: string;\n}\n\nexport interface IScale {\n fieldID: string;\n type: \"scale\";\n sourceFieldID: string;\n factor: number;\n}\n\nexport interface ITemplate {\n fieldID: string;\n type: \"template\";\n template: string;\n}\n\nexport interface IMapMapping {\n value: any;\n newValue: any;\n}\n\nexport interface IMap {\n fieldID: string;\n type: \"map\";\n sourceFieldID: string;\n default: any;\n mappings: IMapMapping[];\n}\n\nexport type MultiTransformationType = IEquals | ICalculated | IScale | ITemplate | IMap;\nexport interface IMulti {\n fieldID: string;\n type: \"multi\";\n transformations: MultiTransformationType[];\n}\n\nexport type ProjectTransformationType = MultiTransformationType | IMulti;\nexport interface IProject extends IActivity {\n type: \"project\";\n transformations: ProjectTransformationType[];\n}\nexport function isProjectActivity(activity: IActivity): activity is IProject {\n return activity.type === \"project\";\n}\nexport interface IMappings extends IActivity {\n type: \"mappings\";\n transformations: ProjectTransformationType[];\n}\nexport function isMappingsActivity(activity: IActivity): activity is IMappings {\n return activity.type === \"mappings\";\n}\n// GroupBy ==================================================================\nexport type IAggregateType = \"min\" | \"max\" | \"sum\" | \"mean\" | \"variance\" | \"deviation\";\nexport interface IAggregate {\n fieldID: string;\n type: IAggregateType;\n inFieldID: string;\n baseCountFieldID?: string;\n}\n\nexport interface ICount {\n fieldID: string;\n type: \"count\";\n}\n\nexport type AggregateType = IAggregate | ICount;\n\nexport interface IGroupBy extends IActivity {\n type: \"groupby\";\n groupByIDs: string[];\n aggregates: AggregateType[];\n}\nexport function isGroupByActivity(activity: IActivity): activity is IGroupBy {\n return activity.type === \"groupby\";\n}\n\n// Sort =====================================================================\nexport interface ISortCondition {\n fieldID: string;\n descending: boolean;\n}\n\nexport interface ISort extends IActivity {\n type: \"sort\";\n conditions: ISortCondition[];\n}\nexport function isSortActivity(activity: IActivity): activity is ISort {\n return activity.type === \"sort\";\n}\n\n// Limit ====================================================================\nexport interface ILimit extends IActivity {\n type: \"limit\";\n limit: number;\n}\nexport function isLimitActivity(activity: IActivity): activity is ILimit {\n return activity.type === \"limit\";\n}\n\n// Visualization ============================================================\nexport interface IWidgetProperties {\n __class: string;\n [propID: string]: string | string[] | number | boolean | undefined | IWidgetProperties | IWidgetProperties[];\n}\n\nexport interface IWidget {\n id: string;\n chartType: string;\n __class: string;\n properties: IWidgetProperties;\n}\n\nexport type VisibilityType = \"normal\" | \"flyout\";\nexport const VisibilitySet: VisibilityType[] = [\"normal\", \"flyout\"];\n\nexport interface IVisualization extends IWidget {\n title: string;\n description?: string;\n visibility: VisibilityType;\n mappings: IMappings;\n secondaryDataviewID?: string;\n}\n\n// View =====================================================================\nexport interface IView {\n id: string;\n datasource: IDatasourceRef;\n activities: ActivityType[];\n visualization: IVisualization;\n}\n\n// DDL ======================================================================\nexport interface IProperties {\n [propID: string]: any;\n}\n\nexport interface Schema {\n version: \"2.2.1\";\n createdBy: {\n name: string;\n version: string;\n };\n datasources: DatasourceType[];\n dataviews: IView[];\n properties?: IProperties;\n hipieProperties?: IProperties;\n\n // The following defs are only provided to assist the Java code generation (from the the generated schema) ---\n defs?: {\n fieldTypes: {\n number64: Number64;\n range: Range;\n dataset: Dataset;\n fieldType: IFieldType;\n fieldBoolean: IFieldBoolean;\n fieldNumber: IFieldNumber;\n fieldNumber64: IFieldNumber64\n fieldString: IFieldString;\n fieldRange: IFieldRange;\n fieldDataset: IFieldDataset;\n fieldSet: IFieldSet;\n fieldObject: IFieldObject;\n field: IField;\n };\n datasourceTypes: {\n datasource: IDatasource;\n logicalFile: ILogicalFile;\n form: IForm;\n databomb: IDatabomb;\n wuresult: IWUResult;\n hipieService: IHipieService;\n roxieService: IRoxieService;\n };\n datasourceRefTypes: {\n wuResultRef: IWUResultRef;\n roxieServiceRef: IRoxieServiceRef;\n };\n activityTypes: {\n filter: IFilter;\n project: IProject;\n groupby: IGroupBy;\n sort: ISort;\n limit: ILimit;\n mappings: IMappings;\n };\n aggregateTypes: {\n aggregate: IAggregate;\n count: ICount;\n };\n transformationTypes: {\n equals: IEquals;\n calculated: ICalculated;\n scale: IScale;\n template: ITemplate;\n map: IMap;\n multi: IMulti;\n };\n };\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import * as DDL2 from \"./ddl/v2\";\n\nconst classMappings: any = {\n c3chart_Bar: \"chart_Bar\",\n c3chart_Column: \"chart_Column\",\n c3chart_Pie: \"chart_Pie\",\n c3chart_Area: \"chart_Area\",\n c3chart_Line: \"chart_Line\",\n amchart_Bar: \"chart_Bar\",\n amchart_Column: \"chart_Column\",\n amchart_Pie: \"chart_Pie\",\n amchart_Area: \"chart_Area\",\n amchart_Line: \"chart_Line\",\n google_Bar: \"chart_Bar\",\n google_Column: \"chart_Column\",\n google_Pie: \"chart_Pie\",\n google_Area: \"chart_Area\",\n google_Line: \"chart_Line\",\n other_Table: \"dgrid_Table\"\n};\nconst propertyMappings: any = {\n xAxisLabelRotation: [\n { name: \"xAxisOverlapMode\", transform: (n: any) => \"rotate\" },\n { name: \"xAxisLabelRotation\", transform: (n: any) => n }\n ],\n tooltipLabelColor: {\n name: \"tooltipLabelColor\"\n },\n tooltipSeriesColor: {\n name: \"tooltipSeriesColor\"\n },\n tooltipValueColor: {\n name: \"tooltipValueColor\"\n },\n tooltipValueFormat: {\n name: \"tooltipValueFormat\"\n },\n timePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n smoothLines: {\n name: \"interpolate\",\n transform: (n: any) => {\n if (n === false) return \"linear\";\n return \"catmullRom\";\n }\n },\n holePercent: {\n name: \"innerRadius\"\n },\n flip: {\n name: \"orientation\",\n transform: (n: any) => n ? \"vertical\" : \"horizontal\"\n },\n bottomText: {\n name: \"xAxisTitle\"\n },\n xAxisTypeTimePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n yAxisTypeTimePattern: {\n name: \"yAxisTypeTimePattern\"\n },\n valueFormat: {\n name: \"tooltipValueFormat\"\n },\n stacked: {\n name: \"yAxisStacked\"\n },\n showYGrid: {\n name: \"yAxisGuideLines\"\n },\n showXGrid: {\n name: \"xAxisGuideLines\"\n },\n showValueLabel: {\n name: \"showValue\"\n },\n low: {\n name: \"yAxisDomainLow\"\n },\n high: {\n name: \"yAxisDomainHigh\"\n },\n fillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n areaFillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n showToolbar: {\n name: \"titleVisible\"\n },\n showCSV: {\n name: \"downloadButtonVisible\"\n }\n};\n\nfunction findKeyVal(object: any, key: any, val: any): any {\n let value;\n\n for (const k in object) {\n if (k === key && object[k] === val) {\n value = object;\n break;\n }\n if (object[k] && typeof object[k] === \"object\") {\n value = findKeyVal(object[k], key, val);\n if (value !== undefined) {\n break;\n }\n }\n }\n return value;\n}\n\nfunction apply_to_dataviews(ddl2: DDL2.Schema, dermObj: any) {\n\n ddl2.dataviews.forEach(apply_to_dataview);\n\n function apply_to_dataview(dv: any) {\n const widgetId = dv.id;\n const dermPanelObj: any = findKeyVal(dermObj, \"__id\", widgetId);\n if (dermPanelObj) {\n const dermPanelProps: any = dermPanelObj.__properties;\n const dermWidgetObj: any = dermPanelObj.__properties.chart ? dermPanelObj.__properties.chart : dermPanelObj.__properties.widget;\n const dermWidgetProps: any = dermWidgetObj.__properties;\n apply_class_mapping(dermWidgetObj);\n apply_panel_property_mapping(dermPanelProps, dermWidgetProps);\n apply_widget_property_mapping(dermPanelProps, dermWidgetProps);\n if (dv.visualization.properties.chartType) {\n dv.visualization.properties.charttype = dv.visualization.properties.chartType;\n }\n } else {\n console.warn(widgetId + \" not found in dermObj\");\n }\n\n function apply_class_mapping(dermWidgetObj: any) {\n dv.visualization.__class = swap_with_supported_class(dermWidgetObj.__class);\n dv.visualization.properties.__class = \"marshaller_VizChartPanel\";\n if (!dv.visualization.properties.widget) dv.visualization.properties.widget = {};\n dv.visualization.properties.widget.__class = dv.visualization.__class;\n\n function swap_with_supported_class(_class: string): string {\n return classMappings[_class] ? classMappings[_class] : _class;\n }\n }\n function apply_panel_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dermPanelProps.title || \"\";\n dv.visualization.description = \"\";\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermPanelProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n const newPropName = propertyMappings[propName].name;\n\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties[newPropName] = propertyMappings[propName].transform(dermPanelProps[propName]);\n } else {\n dv.visualization.properties[newPropName] = dermPanelProps[propName];\n }\n\n }\n }\n if (dermWidgetProps && dermWidgetProps.showLegend && dv.visualization.properties) {\n dv.visualization.properties.legendVisible = true;\n }\n }\n function apply_widget_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dv.visualization.title || dermWidgetProps.title || \"\";\n dv.visualization.description = \"\"; // TODO - should this map to anything?\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermWidgetProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n if (propertyMappings[propName] instanceof Array) {\n propertyMappings[propName].forEach((p: any) => {\n const newPropName = p.name;\n dv.visualization.properties.widget[newPropName] = p.transform(dermWidgetProps[propName]);\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n } else {\n dv.visualization.properties.widget[newPropName] = dermWidgetProps[propName];\n }\n });\n } else {\n const newPropName = propertyMappings[propName].name;\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n }\n }\n }\n }\n }\n}\n\ntype CellPosition = {\n id: string;\n position: [number, number, number, number];\n};\n\ntype DDLProperties = {\n layout: CellPosition[]\n};\n\nfunction apply_to_properties_layout(ddl2: DDL2.Schema, dermObj: any) {\n const retVal: DDLProperties = {\n layout: []\n };\n if (!dermObj || !dermObj.__properties) return;\n dermObj.__properties.content.forEach((cell: any) => {\n const cellPosition: CellPosition = {\n // TODO - if \"id\" could be avoided then layouts could apply to any dashboard with the same number of widgets\n id: cell.__properties.widget.__id,\n position: [\n cell.__properties.gridCol,\n cell.__properties.gridRow,\n cell.__properties.gridColSpan,\n cell.__properties.gridRowSpan\n ]\n };\n retVal.layout.push(cellPosition);\n });\n return retVal;\n}\n\nexport function upgrade(ddl2: DDL2.Schema, dermObj: any) {\n apply_to_dataviews(ddl2, dermObj);\n return apply_to_properties_layout(ddl2, dermObj);\n}\n","import { PKG_NAME, PKG_VERSION } from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nimport { upgrade as dermatologyUpgrade } from \"./dermatology\";\n\ninterface IDatasourceOutput {\n datasource: DDL1.IAnyDatasource;\n output: DDL1.IOutput;\n}\n\ninterface IDatasourceOutputFilter extends IDatasourceOutput {\n filter: DDL1.IFilter;\n}\n\nconst UPGRADE_HEX_CHAR: boolean = false;\nfunction faCharFix(faChar: any): string | undefined {\n if (UPGRADE_HEX_CHAR && typeof faChar === \"string\") {\n return String.fromCharCode(parseInt(faChar));\n }\n return faChar;\n}\n\nclass DDLUpgrade {\n _ddl: DDL1.IDDL;\n _baseUrl: string;\n _wuid?: string;\n _toLowerCase: boolean;\n\n _datasources: { [id: string]: DDL1.IAnyDatasource } = {};\n _datasourceUpdates: { [id: string]: { id: string, output?: string } } = {};\n _visualizations: { [id: string]: DDL1.IAnyVisualization } = {};\n\n _ddl2Datasources: { [id: string]: DDL2.DatasourceType } = {};\n _ddl2DatasourceFields: { [dsid: string]: { [outputID: string]: { [fieldID: string]: DDL2.IField } } } = {};\n\n _ddl2Dataviews: { [id: string]: DDL2.IView } = {};\n _ddl2DataviewActivities: {\n [viewID: string]: {\n project: DDL2.IProject,\n filters: DDL2.IFilter,\n sort: DDL2.ISort,\n groupBy: DDL2.IGroupBy,\n limit: DDL2.ILimit,\n mappings: DDL2.IMappings\n }\n } = {};\n\n constructor(ddl: DDL1.IDDL, baseUrl: string = \"http://localhost:8010\", wuid: string = \"WUID\", toLowerCase = true) {\n this._ddl = ddl;\n this._baseUrl = baseUrl;\n this._wuid = wuid;\n this._toLowerCase = toLowerCase;\n\n this.indexDDL();\n this.readDDL();\n }\n\n toLowerCase(s: string): string {\n return this._toLowerCase ? s.toLowerCase() : s;\n }\n\n isVizDatasourceRoxie(viz: DDL1.IAnyVisualization): boolean {\n if ((viz as any).source) {\n const ds = this._datasources[(viz as any).source.id];\n if (DDL1.isHipieDatasource(ds)) {\n return true;\n }\n }\n return false;\n }\n\n getDatasourceOutputs(dsID: string, vizID: string): IDatasourceOutput[] {\n const retVal: IDatasourceOutput[] = [];\n const datasource = this._datasources[dsID];\n for (const output of datasource.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n if (notify === vizID) {\n retVal.push({\n datasource,\n output\n });\n }\n }\n }\n }\n return retVal;\n }\n\n getDatasourceFilters(dsID: string, vizID: string): { [id: string]: IDatasourceOutputFilter } {\n const retVal: { [id: string]: IDatasourceOutputFilter } = {};\n for (const dsOut of this.getDatasourceOutputs(dsID, vizID)) {\n if (dsOut.output.filter) {\n for (const filter of dsOut.output.filter) {\n retVal[filter.fieldid] = {\n datasource: dsOut.datasource,\n output: dsOut.output,\n filter\n };\n }\n }\n }\n return retVal;\n }\n\n indexDDL() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n this._visualizations[viz.id] = viz;\n }\n }\n\n for (const ds of this._ddl.datasources) {\n this._datasources[ds.id] = ds;\n for (const output of ds.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n this._datasourceUpdates[notify] = {\n id: ds.id,\n output: output.from || output.id\n };\n }\n }\n }\n }\n }\n\n readDDL() {\n for (const ds of this._ddl.datasources) {\n if (DDL1.isWorkunitDatasource(ds)) {\n const ddl2DS: DDL2.IWUResult = {\n type: \"wuresult\",\n id: ds.id,\n url: this._baseUrl,\n wuid: this._wuid!,\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n } else if (DDL1.isDatabombDatasource(ds)) {\n } else {\n const urlParts = ds.URL!.split(\"/WsEcl/submit/query/\");\n const hostParts = urlParts[0];\n const roxieParts = urlParts[1].split(\"/\");\n const ddl2DS: DDL2.IHipieService = {\n type: \"hipie\",\n id: ds.id,\n url: hostParts,\n querySet: roxieParts[0],\n queryID: roxieParts[1],\n inputs: [],\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n }\n }\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.type === \"FORM\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n } else if (viz.type === \"SLIDER\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields, true)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n }\n\n this._ddl2Dataviews[viz.id] = this.anyViz2view(viz);\n }\n }\n\n this.readGroupBy();\n this.readFilters();\n this.readSort();\n this.readMappings();\n }\n\n readGroupBy() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.fields) {\n const projectTransformations: DDL2.ProjectTransformationType[] = [];\n const groupByColumns: string[] = [];\n const aggrFields: DDL2.IAggregate[] = [];\n for (const field of viz.fields) {\n if (field.properties && field.properties.function) {\n switch (field.properties.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"AVE\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n baseCountFieldID: field.properties.params!.param2 ? this.toLowerCase(field.properties.params!.param2) : undefined,\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"SCALE\":\n if (typeof field.properties.params!.param1 === \"object\") {\n const props: any = field.properties.params!.param1;\n switch (props.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(props.function),\n inFieldID: this.toLowerCase(props.params.param1),\n fieldID: this.toLowerCase(field.id)\n });\n break;\n }\n }\n projectTransformations.push({\n type: \"scale\",\n sourceFieldID: this.toLowerCase(field.id),\n fieldID: this.toLowerCase(field.id),\n factor: +field.properties.params!.param2\n });\n break;\n default:\n groupByColumns.push(this.toLowerCase(field.id));\n throw new Error(`Unhandled field function: ${field.properties.function}`);\n }\n } else {\n groupByColumns.push(this.toLowerCase(field.id));\n }\n }\n if (projectTransformations.length) {\n this._ddl2DataviewActivities[viz.id].project.transformations = projectTransformations;\n }\n if (aggrFields.length) {\n this._ddl2DataviewActivities[viz.id].groupBy.groupByIDs = [...groupByColumns];\n this._ddl2DataviewActivities[viz.id].groupBy.aggregates = aggrFields;\n }\n }\n }\n }\n }\n\n func2aggr(func: DDL1.VisualizationFieldFuncitonType): DDL2.IAggregateType {\n switch (func) {\n case \"SUM\":\n return \"sum\";\n case \"AVE\":\n return \"mean\";\n case \"MIN\":\n return \"min\";\n case \"MAX\":\n return \"max\";\n }\n throw new Error(`Unknown DDL1 Function Type: ${func}`);\n }\n\n readMappings() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (DDL1.isFormVisualization(viz)) {\n } else if (DDL1.isPieVisualization(viz)) {\n this.readPieMappings(viz);\n } else if (DDL1.isChoroVisualization(viz)) {\n this.readChoroMappings(viz);\n } else if (DDL1.isLineVisualization(viz)) {\n this.readLineMappings(viz);\n } else if (DDL1.isTableVisualization(viz)) {\n this.readTableMappings(viz);\n } else if (DDL1.isGraphVisualization(viz)) {\n this.readGraphMappings(viz);\n } else if (DDL1.isSliderVisualization(viz)) {\n this.readSliderMappings(viz);\n } else {\n throw new Error(`Unkown DDL1 mapping type: ${viz.type}`);\n }\n }\n }\n }\n\n readPieMappings(viz: DDL1.IPieVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n readChoroMappings(viz: DDL1.IChoroVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(this.anyChoroMapping2label(viz.source.mappings))\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n anyChoroMapping2label(mapping: any) {\n return mapping.state || mapping.county || mapping.geohash;\n }\n\n readLineMappings(viz: DDL1.ILineVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: viz.source.mappings.x[0],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.x[0])\n });\n for (let i = 0; i < viz.source.mappings.y.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.source.mappings.y[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.y[i])\n });\n }\n }\n\n readTableMappings(viz: DDL1.ITableVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n for (let i = 0; i < viz.label.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.label[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.value[i])\n });\n }\n }\n\n readGraphEnums(valueMappings?: DDL1.IValueMappings, annotation: boolean = false): DDL2.IMapMapping[] {\n const retVal: DDL2.IMapMapping[] = [];\n if (valueMappings) {\n for (const value in valueMappings) {\n const newValue: { [key: string]: string | number | boolean | undefined } = {};\n for (const key in valueMappings[value]) {\n if (key === \"faChar\") {\n newValue[key] = faCharFix(valueMappings[value][key]);\n } else if (annotation && key.indexOf(\"icon_\") === 0) {\n console.warn(\"Deprecated flag property: \" + key);\n newValue[key.split(\"icon_\")[1]] = valueMappings[value][key];\n } else {\n newValue[key] = valueMappings[value][key];\n }\n }\n // remove v1.x \"0\" annotations as they equated to \"nothing\" ---\n if (!annotation || value !== \"0\") {\n retVal.push({\n value,\n newValue\n });\n }\n }\n }\n return retVal;\n }\n\n readGraphMappings(viz: DDL1.IGraphVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.uid)\n });\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n if (viz.icon.fieldid) {\n mappings.transformations.push({\n fieldID: \"icon\",\n type: \"map\",\n sourceFieldID: this.toLowerCase(viz.icon.fieldid),\n default: { fachar: faCharFix(viz.icon.faChar) },\n mappings: this.readGraphEnums(viz.icon.valuemappings)\n });\n }\n let idx = 0;\n if (viz.flag) {\n for (const flag of viz.flag) {\n if (flag.fieldid) {\n mappings.transformations.push({\n fieldID: `annotation_${idx++}`,\n type: \"map\",\n sourceFieldID: this.toLowerCase(flag.fieldid),\n default: {},\n mappings: this.readGraphEnums(flag.valuemappings, true)\n });\n }\n }\n }\n mappings.transformations.push({\n fieldID: \"links\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.childfile),\n transformations: [{\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.mappings.uid)\n }]\n });\n }\n\n readSliderMappings(viz: DDL1.ISliderVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n }\n\n readFilters() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.events) {\n for (const eventID in viz.events) {\n const event = viz.events[eventID];\n for (const update of event.updates) {\n const otherViz = this._ddl2Dataviews[update.visualization];\n const dsFilters = this.getDatasourceFilters(update.datasource, otherViz.id);\n if (update.mappings) {\n if (DDL2.isRoxieServiceRef(otherViz.datasource)) {\n for (const key in update.mappings) {\n otherViz.datasource.request.push({\n source: viz.id,\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key])\n } as DDL2.IRequestField);\n }\n } else {\n const condition: DDL2.IFilterCondition = {\n viewID: viz.id,\n mappings: []\n };\n for (const key in update.mappings) {\n const mapping = update.mappings[key];\n const dsFilter = (mapping && dsFilters[mapping]) ? dsFilters[mapping].filter : undefined;\n if (!dsFilter) {\n console.warn(`Select Mapping \"${mapping}\" in viz \"${viz.id}\" not found in filters for \"${otherViz.id}\"`);\n } else {\n condition.mappings.push({\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key]),\n condition: this.rule2condition(dsFilter.rule),\n nullable: dsFilter.nullable\n });\n }\n }\n this._ddl2DataviewActivities[otherViz.id].filters.conditions.push(condition);\n }\n }\n }\n }\n }\n }\n }\n }\n\n rule2condition(_: DDL1.IFilterRule): DDL2.IMappingConditionType {\n switch (_) {\n case \"set\":\n return \"in\";\n case \"notequals\":\n return \"!=\";\n }\n return _;\n }\n\n readSort() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if ((viz as any).source) {\n if ((viz as any).source.sort) {\n const vizSort = this._ddl2DataviewActivities[viz.id].sort;\n vizSort.conditions = ((viz as any).source.sort as string[]).map(s => {\n if (s.indexOf(\"-\") === 0) {\n return {\n fieldID: this.toLowerCase(s.substr(1)),\n descending: true\n } as DDL2.ISortCondition;\n }\n return {\n fieldID: this.toLowerCase(s),\n descending: false\n } as DDL2.ISortCondition;\n });\n }\n if ((viz as any).source.first) {\n const vizLimit = this._ddl2DataviewActivities[viz.id].limit;\n vizLimit.limit = +(viz as any).source.first;\n }\n }\n }\n }\n }\n\n anyViz2view(viz: DDL1.IAnyVisualization): DDL2.IView {\n const project: DDL2.IProject = {\n type: \"project\",\n transformations: []\n };\n const filters: DDL2.IFilter = {\n type: \"filter\",\n conditions: []\n };\n const groupBy: DDL2.IGroupBy = {\n type: \"groupby\",\n groupByIDs: [],\n aggregates: []\n };\n const sort: DDL2.ISort = {\n type: \"sort\",\n conditions: []\n };\n const limit: DDL2.ILimit = {\n type: \"limit\",\n limit: 0\n };\n const mappings: DDL2.IMappings = {\n type: \"mappings\",\n transformations: []\n };\n this._ddl2DataviewActivities[viz.id] = {\n project,\n filters,\n sort,\n groupBy,\n limit,\n mappings\n };\n const datasourceRef: DDL2.IDatasourceBaseRef | DDL2.IRoxieServiceRef = this.isVizDatasourceRoxie(viz) ? {\n id: this._datasourceUpdates[viz.id].id,\n request: [],\n output: this._datasourceUpdates[viz.id].output\n } : {\n id: this._datasourceUpdates[viz.id].id,\n output: this._datasourceUpdates[viz.id].output\n };\n return {\n id: viz.id,\n datasource: datasourceRef,\n activities: [\n project,\n filters,\n sort,\n groupBy,\n limit\n ],\n visualization: {\n id: viz.id,\n title: viz.title || \"\",\n description: \"\",\n visibility: viz.properties && viz.properties.flyout === true ? \"flyout\" : \"normal\",\n ...this.type2chartType(viz.type),\n mappings,\n properties: (viz.properties || {}) as DDL2.IWidgetProperties\n }\n };\n }\n\n type2chartType(chartType: DDL1.VisualizationType): { chartType: string, __class: string } {\n switch (chartType) {\n case \"LINE\":\n return { chartType: \"Line\", __class: \"chart_Line\" };\n case \"BUBBLE\":\n return { chartType: \"Bubble\", __class: \"chart_Bubble\" };\n case \"PIE\":\n return { chartType: \"Pie\", __class: \"chart_Pie\" };\n case \"BAR\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"FORM\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"WORD_CLOUD\":\n return { chartType: \"WordCloud\", __class: \"chart_WordCloud\" };\n case \"CHORO\":\n return { chartType: \"ChoroplethStates\", __class: \"map_ChoroplethStates\" };\n case \"SUMMARY\":\n return { chartType: \"Summary\", __class: \"chart_Summary\" };\n case \"SLIDER\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"HEAT_MAP\":\n return { chartType: \"HeatMap\", __class: \"other_HeatMap\" };\n case \"2DCHART\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"GRAPH\":\n return { chartType: \"AdjacencyGraph\", __class: \"graph_AdjacencyGraph\" };\n case \"TABLE\":\n default:\n return { chartType: \"Table\", __class: \"dgrid_Table\" };\n }\n }\n\n formFields2field(fields?: DDL1.IVisualizationField[], slider: boolean = false): DDL2.IField[] {\n if (!fields) return [];\n return fields.map(field => {\n switch (field.properties.type) {\n case \"range\":\n return {\n type: \"range\",\n id: field.id,\n default: (field.properties.default ? field.properties.default as DDL2.Range : undefined)\n };\n case \"dataset\":\n return {\n type: \"dataset\",\n id: field.id,\n default: [],\n children: []\n };\n default:\n return {\n type: this.formFieldType2fieldType(field.properties.datatype, slider),\n id: field.id,\n default: field.properties.default ? field.properties.default[0] : undefined\n };\n }\n });\n }\n\n formFieldType2fieldType(fieldType: DDL1.VisualizationFieldType, slider: boolean): \"string\" | \"number\" | \"boolean\" {\n switch (fieldType) {\n case \"bool\":\n case \"boolean\":\n return \"boolean\";\n case \"integer\":\n case \"unsigned\":\n case \"float\":\n case \"double\":\n case \"real\":\n return \"number\";\n case \"string\":\n return \"string\";\n default:\n return slider ? \"number\" : \"string\";\n }\n }\n\n output2output(output: DDL1.IOutput, target: DDL2.OutputDict) {\n target[output.from || output.id] = {\n fields: this.filters2fields(output.filter)\n };\n }\n\n filters2fields(filters?: DDL1.IFilter[]): DDL2.IField[] {\n if (!filters) return [];\n return filters.filter(filter => {\n const idParts = filter.fieldid.split(\"-\");\n return idParts.length === 1 || idParts[1] === \"range\";\n }).map(filter => {\n const idParts = filter.fieldid.split(\"-\");\n const retVal: DDL2.IFieldString = {\n type: \"string\",\n id: idParts[0]\n };\n return retVal;\n });\n }\n\n getVizField(vizID: string, fieldID: string): DDL2.IField {\n return {\n type: \"string\",\n id: \"\",\n default: \"\"\n };\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const id in this._ddl2Datasources) {\n retVal.push(this._ddl2Datasources[id]);\n }\n return retVal;\n }\n\n writeDataviews(): DDL2.IView[] {\n const retVal: DDL2.IView[] = [];\n for (const id in this._ddl2Dataviews) {\n retVal.push(this._ddl2Dataviews[id]);\n }\n return retVal;\n }\n\n writeProperties(): DDL2.IProperties | undefined {\n return {\n // TODO\n };\n }\n\n write(): DDL2.Schema {\n return {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDataviews(),\n properties: this.writeProperties()\n };\n }\n}\n\nexport function upgrade(ddl: DDL1.IDDL, baseUrl?: string, wuid?: string, toLowerCase: boolean = true, dermatologyJson = {}): DDL2.Schema {\n const ddlUp = new DDLUpgrade(ddl, baseUrl, wuid, toLowerCase);\n const retVal = ddlUp.write();\n retVal.properties = dermatologyUpgrade(retVal, dermatologyJson);\n return retVal;\n}\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n","'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n","'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n","'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n","'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n","import * as _Ajv from \"ajv\";\nimport * as DDL from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\n\nconst Ajv = (_Ajv as any).default || _Ajv;\n\nexport const ddl2Schema: object = _ddl2Schema;\n\nconst options: _Ajv.Options = {\n allErrors: false,\n verbose: true,\n jsonPointers: false\n};\n\nfunction doValidate(ddl: DDL.DDLSchema | DDL2.Schema, schema: DDL.DDLSchema | DDL2.Schema) {\n const ajv: _Ajv.Ajv = new Ajv(options);\n const validate = ajv.compile(schema);\n const success = validate(ddl);\n return {\n success,\n errors: validate.errors\n };\n}\n\n/* Not needed ---\n// @ts-ignore\nimport * as ddlSchema from \"../schema/v1.json\";\n\nexport function validate(ddl: DDL.DDLSchema) {\n return doValidate(ddl, ddlSchema);\n}\n*/\n\n// @ts-ignore\nimport * as _ddl2Schema from \"../schema/v2.json\";\n\nexport function validate2(ddl: DDL2.Schema) {\n return doValidate(ddl, _ddl2Schema);\n}\n","export * from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nexport * from \"./upgrade\";\nexport * from \"./validate\";\n\nexport { DDL1, DDL2 };\n\nexport function isDDL2Schema(ref: DDL1.DDLSchema | DDL2.Schema): ref is DDL2.Schema {\n return (ref as DDL2.Schema).version !== undefined && (ref as DDL2.Schema).datasources !== undefined && (ref as DDL2.Schema).dataviews !== undefined;\n}\n"],"names":["upgrade","DDL1.isHipieDatasource","DDL1.isWorkunitDatasource","DDL1.isDatabombDatasource","DDL1.isFormVisualization","DDL1.isPieVisualization","DDL1.isChoroVisualization","DDL1.isLineVisualization","DDL1.isTableVisualization","DDL1.isGraphVisualization","DDL1.isSliderVisualization","DDL2.isRoxieServiceRef","dermatologyUpgrade","merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","CR$","DIGIT$$","DQUOTE$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","USERINFO$","UNRESERVED$$","DEC_OCTET$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","IP_LITERAL$","HOST$","PCHAR$","PATH_ABEMPTY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","ucs2length","util","toHash","require$$0","require$$1","IDENTIFIER","JSON_POINTER","RELATIVE_JSON_POINTER","SchemaObject","traverse","jsonSchemaTraverseModule","URI","require$$2","require$$3","require$$4","ValidationError","MissingRefError","validate","errorClasses","stableStringify","require$$5","compile","customRuleCode","Cache","cacheModule","formats","properties","required","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","rules","Ajv","_Ajv.default"],"mappings":"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"}