{"version":3,"sources":["jsdelivr-header.js","/npm/terriajs-schema@0.4.3/validateSchema.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAGA,IAUI,KAAM,WACN,WAXA,EAAI,IAAK,QAAQ,cAAuB,WACxC,gBAAkB,QAAQ,cAAc,gBACxC,KAAO,QAAQ,QACf,KAAO,QAAQ,aACf,GAAK,QAAQ,iBACb,GAAK,QAAQ,MACb,IAAM,KAAK,QAAQ,IACnB,KAAO,QAAQ,QACf,eAAiB,SACjB,eAAiB,KAAK,KAAK,UAAW,UAItC,SAAW,SAAS,GAAW,OAAO,IAAI,SAAS,EAAU,OAAS,EAE1E,SAAS,SAAS,GACd,SAAS,EAAc,GAGnB,OAAgE,IAAzD,CAAC,QAAQ,QAAQ,MAAM,SAAS,QAAQ,EAAM,KACzD,CACA,IAAmB,EAAS,EAC5B,OAAO,KAAK,IAAI,KAAK,IAAI,EAAW,WAAW,SAAS,EAAa,GACjE,IAAI,EAAU,EAAE,SAAS,KAAK,MAAM,GAAc,YAClD,GAAI,EAAO,OAAO,OAAQ,CACtB,QAAQ,MAAM,WAAa,EAAU,GAAK,KAC1C,IAAI,EAAc,EAAO,OAAO,OAAO,GAClC,EAAY,SACb,EAAc,EAAO,QAEzB,EAAY,SAAQ,SAAS,GAC3B,QAAQ,MAVmB,KAUP,EAAM,KAAO,IAAO,EAAM,OAC9C,QAAQ,MAAM,cAAoB,KAAK,UAAU,EAAM,UAAU,MAAM,EAAE,KAC3E,IACA,GACJ,MACI,KAAK,OAAS,QAAQ,IAAI,WAAa,EAAU,GAEzD,IAAG,MAAK,WAIJ,OAHI,EAAS,GACT,QAAQ,IAAI,EAAS,qCAElB,CACX,IAAG,OAAM,SAAS,GAEd,OADA,QAAQ,MAAM,sCAAwC,EAAI,SACnD,CACX,GACJ,CAEA,SAAS,eAAe,GACpB,OAAO,SAAS,KAAK,KAAK,WAAY,IAAW,MAAK,SAAS,GAC3D,IAAI,EAAS,KAAK,MAAM,GACnB,WAID,EAAO,GAAK,GAHZ,WAAa,EACb,EAAO,GAAK,IAAM,GAItB,EAAE,UAAU,GACZ,IAAI,EAAO,EAAE,eAAe,QAC5B,GAAI,EACA,OAAO,eAAe,GAEtB,KAAK,OAAS,QAAQ,IAAI,iBAElC,IAAG,OAAM,SAAS,GAEd,GADA,QAAQ,IAAI,GACK,iBAAb,GAA+B,KAAK,UAAY,eAGhD,OAFA,WAAa,KAAK,KAAK,eAAgB,gBACvC,QAAQ,KAAK,kDAAoD,KAAK,QAAU,uBAAyB,eAAiB,MACnH,eAAe,GAEtB,MAAM,MAAM,yBAA2B,KAAK,KAAK,WAAY,GAErE,GACJ,CAMA,OAAO,QAAU,SAAS,GAItB,IAHA,KAAO,GACF,QAAU,KAAK,SAAW,gBAC9B,KAAK,OAAS,QAAQ,IAAI,8BAAgC,QAAQ,kBAAkB,SACjF,KAAK,YACL,IACI,KAAK,QAAU,KAAK,MAAM,GAAG,aAAa,KAAK,KAAK,KAAK,YAAa,gBAAiB,SAAS,OACpG,CAAE,MAAO,GACL,QAAQ,KAAK,EAAE,SACf,KAAK,QAAU,eACf,QAAQ,KAAK,2BAA6B,KAAK,QAAU,KAC7D,CAIJ,OAFA,WAAa,KAAK,WAAa,KAAK,KAAK,eAAgB,KAAK,SAC9D,KAAK,OAAS,QAAQ,OAAO,MAAM,mBAAqB,KAAK,KAAK,WAAY,uBACvE,eAAe,gBAAgB,MAAK,WACvC,OAAO,SAAS,KAAK,EACzB,GACJ,EACA,OAAO,QAAQ,eAAiB","file":"/npm/terriajs-schema@0.4.3/validateSchema.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/terriajs-schema@0.4.3/validateSchema.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n/*jshint -W030, node:true*/\n\nvar v = new (require('jsonschema').Validator)();\nvar ValidatorResult = require('jsonschema').ValidatorResult;\nvar when = require('when');\nvar node = require('when/node');\nvar fn = require('when/function');\nvar fs = require('fs');\nvar fsp = node.liftAll(fs);\nvar path = require('path');\nvar defaultVersion = 'master';\nvar schemaBasePath = path.join(__dirname, 'schema');\nvar argv, schemaPath;\nvar rootSchema;\n\nvar readFile = function(filename){ return fsp.readFile(filename, 'utf8'); };\n\nfunction validate(filenames) {\n    function isUsefulError(error) {\n        // Now the delicate art of trying to guess which errors are meaningful and which are just spam.\n        // We suppress \"meta-errors\", assuming that a useful error is deeper in the tree.\n        return ['allOf','anyOf','not','oneOf'].indexOf(error.name) === -1;\n    }\n    var processed = 0, errors = 0, pad = '  ';\n    return when.map(when.map(filenames, readFile), function(fileContent, i) {\n        var result  = v.validate(JSON.parse(fileContent), rootSchema);\n        if (result.errors.length) {\n            console.error('FAILED: ' + filenames[i] + ':' );\n            var shownErrors = result.errors.filter(isUsefulError);\n            if (!shownErrors.length) {\n                shownErrors = result.errors;\n            }\n            shownErrors.forEach(function(error) {\n              console.error(pad + error.name + ' ' +  error.stack);\n              console.error(pad + '  Value: ' + JSON.stringify(error.instance).slice(0,160));\n            });\n            errors ++;\n        } else {\n            argv.quiet || console.log('OK:     ' + filenames[i]);\n        }\n    }).then(function() { \n        if (errors > 0) {\n            console.log(errors + ' catalog files failed validation.');\n        }\n        return errors;\n    }).catch(function(err) {\n        console.error(\"FATAL ERROR: Problem loading file: \" + err.message);\n        return 1;\n    });\n}\n\nfunction loadNextSchema(filename) {\n    return readFile(path.join(schemaPath, filename)).then(function(data) {\n        var schema = JSON.parse(data);\n        if (!rootSchema) {\n            rootSchema = schema;\n            schema.id = '/' + filename;\n        } else {\n            schema.id = filename;\n        }\n        v.addSchema(schema);\n        var next = v.unresolvedRefs.shift();\n        if (next) {\n            return loadNextSchema(next);\n        } else {\n            argv.quiet || console.log('Schema loaded.');\n        }\n    }).catch(function(err) {\n        console.log(err);\n        if (filename === 'Catalog.json' && argv.version !== defaultVersion) {\n            schemaPath = path.join(schemaBasePath, defaultVersion);\n            console.warn(\"\\nWARNING: We don't have a schema for version '\" + argv.version + \"'. Falling back to '\" + defaultVersion + \"'.\");\n            return loadNextSchema(filename);\n        } else {\n            throw Error(\"\\nERROR: Missing file \" + path.join(schemaPath, filename));\n        }\n    });\n}\n/**\n * Runs validation for a number of files.\n * @param  {Object} options yargs values\n * @return {Object}         Promise for the number of validation errors.\n */\nmodule.exports = function(options) {\n    argv = options;\n    argv.version = argv.version || defaultVersion;\n    !argv.quiet && console.log('TerriaJS-Schema validator v' + require('./package.json').version);\n    if (argv.terriajsdir) {\n        try  {\n            argv.version = JSON.parse(fs.readFileSync(path.join(argv.terriajsdir, 'package.json'), 'utf8')).version;\n        } catch (e) {\n            console.warn(e.message);\n            argv.version = defaultVersion;\n            console.warn('Warning: using version \"' + argv.version + '\".');\n        }\n    }\n    schemaPath = argv.schemadir || path.join(schemaBasePath, argv.version);\n    argv.quiet || process.stdout.write('Loading schema: ' + path.join(schemaPath, '/Catalog.json ... '));\n    return loadNextSchema('Catalog.json').then(function() { \n        return validate(argv._);\n    });\n};\nmodule.exports.defaultVersion = defaultVersion;"]}