{
  "_args": [
    [
      {
        "raw": "JSV@^4.0.x",
        "scope": null,
        "escapedName": "JSV",
        "name": "JSV",
        "rawSpec": "^4.0.x",
        "spec": ">=4.0.0 <5.0.0",
        "type": "range"
      },
      "/Users/gerrit/Documents/dev/nodejs/rentfor.camp/html/RentForCamp/node_modules/jsonlint"
    ]
  ],
  "_defaultsLoaded": true,
  "_engineSupported": true,
  "_from": "JSV@>=4.0.0 <5.0.0",
  "_id": "JSV@4.0.2",
  "_inCache": true,
  "_location": "/JSV",
  "_nodeVersion": "v0.6.6",
  "_npmUser": {
    "name": "garycourt",
    "email": "gary.court@gmail.com"
  },
  "_npmVersion": "1.1.0-beta-4",
  "_phantomChildren": {},
  "_requested": {
    "raw": "JSV@^4.0.x",
    "scope": null,
    "escapedName": "JSV",
    "name": "JSV",
    "rawSpec": "^4.0.x",
    "spec": ">=4.0.0 <5.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/jsonlint"
  ],
  "_resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz",
  "_shasum": "d077f6825571f82132f9dffaed587b4029feff57",
  "_shrinkwrap": null,
  "_spec": "JSV@^4.0.x",
  "_where": "/Users/gerrit/Documents/dev/nodejs/rentfor.camp/html/RentForCamp/node_modules/jsonlint",
  "author": {
    "name": "Gary Court",
    "email": "gary.court@gmail.com"
  },
  "bugs": {
    "url": "http://github.com/garycourt/JSV/issues",
    "email": "gary.court@gmail.com"
  },
  "dependencies": {},
  "description": "A JavaScript implementation of a extendable, fully compliant JSON Schema validator.",
  "devDependencies": {},
  "directories": {},
  "dist": {
    "shasum": "d077f6825571f82132f9dffaed587b4029feff57",
    "tarball": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz"
  },
  "engines": {
    "node": "*"
  },
  "homepage": "http://github.com/garycourt/JSV",
  "keywords": [
    "json",
    "schema",
    "validator"
  ],
  "licenses": [
    {
      "type": "FreeBSD",
      "url": "http://github.com/garycourt/JSV/raw/master/jsv.js"
    }
  ],
  "main": "lib/jsv.js",
  "maintainers": [
    {
      "name": "garycourt",
      "email": "gary.court@gmail.com"
    }
  ],
  "name": "JSV",
  "optionalDependencies": {},
  "readme": "JSV: JSON Schema Validator\r\n==========================\r\n\r\nJSV is a JavaScript implementation of a extendable, fully compliant JSON Schema validator with the following features:\r\n\r\n*\tThe fastest extendable JSON validator available!\r\n*\tComplete implementation of all current JSON Schema draft revisions.\r\n*\tSupports creating individual environments (sandboxes) that validate using a particular schema specification.\r\n*\tProvides an intuitive API for creating new validating schema attributes, or whole new custom schema schemas.\r\n*\tSupports `self`, `full` and `describedby` hyper links.\r\n*\tValidates itself, and is bootstrapped from the JSON Schema schemas.\r\n*\tIncludes over 1100 unit tests for testing all parts of the specifications.\r\n*\tWorks in all ECMAScript 3 environments, including all web browsers and Node.js.\r\n*\tLicensed under the FreeBSD License, a very open license.\r\n\r\n## It's a what?\r\n\r\n**JSON** (an acronym for **JavaScript Object Notation**) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of JavaScript/ECMA-262 3rd Edition. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages. (C, C++, C#, Java, JavaScript, Perl, Python, ...) These properties make JSON an ideal data-interchange language. \\[[json.org](http://json.org)\\]\r\n\r\n**JSON Schema** is a JSON media type for defining the structure of JSON data.  JSON Schema provides a contract for what JSON data is required for a given application and how to interact with it.  JSON Schema is intended to define validation, documentation, hyperlink navigation, and interaction control of JSON data. \\[[draft-zyp-json-schema-02](http://tools.ietf.org/html/draft-zyp-json-schema-02)\\]\r\n\r\nA **JSON validator** is a program that takes JSON data and, with a provided schema, will ensure that the provided JSON is structured in the way defined by the schema. This ensures that if validation has passed, the JSON instance is guaranteed to be in the expected format. It will also provide an explanation on why a particular instance failed validation.\r\n\r\n## Example\r\n\r\nHere's an example on how to validate some JSON with JSV:\r\n\r\n\tvar JSV = require(\"./jsv\").JSV;\r\n\tvar json = {};\r\n\tvar schema = {\"type\" : \"object\"};\r\n\tvar env = JSV.createEnvironment();\r\n\tvar report = env.validate(json, schema);\r\n\t\r\n\tif (report.errors.length === 0) {\r\n\t\t//JSON is valid against the schema\r\n\t}\r\n\r\nAnother example; for the following test:\r\n\r\n\tenv.validate({ a : 1 }, { type : 'object', properties : { a : { type : 'string' }} });\r\n\r\nThe generated report would look like:\r\n\r\n\t{\r\n\t\terrors : [\r\n\t\t\t{\r\n\t\t\t\tmessage : \"Instance is not a required type\",\r\n\t\t\t\turi : \"urn:uuid:74b843b5-3aa4-44e9-b7bc-f555936fa823#/a\",\r\n\t\t\t\tschemaUri : \"urn:uuid:837fdefe-3bd4-4993-9a20-38a6a0624d5a#/properties/a\",\r\n\t\t\t\tattribute : \"type\",\r\n\t\t\t\tdetails : [\"string\"]\r\n\t\t\t}\r\n\t\t],\r\n\t\tvalidated : {\r\n\t\t\t\"urn:uuid:74b843b5-3aa4-44e9-b7bc-f555936fa823#\" : [\"urn:uuid:837fdefe-3bd4-4993-9a20-38a6a0624d5a#\"],\r\n\t\t\t\"urn:uuid:74b843b5-3aa4-44e9-b7bc-f555936fa823#/a\" : [\"urn:uuid:837fdefe-3bd4-4993-9a20-38a6a0624d5a#/properties/a\"],\r\n\t\t\t//...\r\n\t\t},\r\n\t\tinstance : [JSONInstance object],\r\n\t\tschema : [JSONSchema object],\r\n\t\tschemaSchema : [JSONSchema object]\r\n\t}\r\n\r\n## Environments & JSON Schema support\r\n\r\nThere is no one way to validate JSON, just like there is no one way to validate XML. Even the JSON Schema specification has gone through several revisions which are not 100% backwards compatible with each other. To solve the issue of using numerous schemas already written to older specifications, JSV provides customizable environments to validate your JSON within. \r\n\r\nWhen creating an environment, you can optionally specify how you want that environment to behave. For example, this allows you to specify which version of the JSON Schema you would like the environment to behave like. JSV already provides the following environments:\r\n\r\n*\t`json-schema-draft-03`\r\n\r\n\tA complete implementation of the [third revision](http://tools.ietf.org/html/draft-zyp-json-schema-03) of the JSON Schema specification. This is the same as the second revision, except:\r\n\t\r\n\t*\t\"optional\" has been replaced by \"required\"\r\n\t*\t\"requires\" has been replaced by \"dependencies\"\r\n\t*\t\"minimumCanEqual\"/\"maximumCanEqual\" has been replaced by \"exclusiveMinimum\"/\"exclusiveMaximum\"\r\n\t*\t\"self\"/\"full\"/\"describedby\" links have been moved to the core schema, and are provided by \"id\"/\"$ref\"/\"$schema\"\r\n\t*\tAdds the attributes \"patternSchema\" and \"additionalItems\"\r\n\t*\tDeprecates the attributes \"root\" and \"alternate\"\r\n\t*\tSchemas are now versioned under the URIs \"http://json-schema.org/draft-XX/\", where XX is the draft number\r\n\t\r\n\tIn addition to this, all schemas from the previous versions of the JSON Schema draft are included in this environment, and are backwards compatible (where possible) with it's previous version.\r\n\tThis backwards compatibility can be disabled with the environment option `strict` is set to `true`.\r\n\t\r\n\tThis is currently the default environment.\r\n\r\n*\t`json-schema-draft-02`\r\n\r\n\tA complete implementation of the [second revision](http://tools.ietf.org/html/draft-zyp-json-schema-02) of the JSON Schema specification. This is the same as the first revision, except adds:\r\n\t\r\n\t*\t\"targetSchema\" attribute\r\n\t*\tslash-delimited fragment identifiers, which is now the default behavior\r\n\t\r\n*\t`json-schema-draft-01`\r\n\r\n\tA complete implementation of the [first revision](http://tools.ietf.org/html/draft-zyp-json-schema-01) of the JSON Schema specification, which is exactly the same as the [original draft](http://tools.ietf.org/html/draft-zyp-json-schema-00).\r\n\t\r\n\tUsers with JSON Schemas written for JSV < v2.1 should use this environment for it's dot-delimited fragment identifiers.\r\n\r\nEnvironments can also be customized and registered for multiple reuse. (See the section on *Extending Environments* below)\r\n\r\n## Validation API\r\n\r\nThe following methods are used to validate JSON data:\r\n\r\n### JSV.createEnvironment(*environmentID?*) *->* *&lt;Environment&gt;*\r\n\r\n*\t*environmentID* *&lt;String&gt;* *(optional)* The ID of the environment to clone a new Environment from\r\n\r\nCreates an new environment that is a copy of the Environment registered with the provided `environmentID`. If no ID is provided, the latest registered JSON Schema is used as the template.\r\n\r\nSee the above section on *Environments* for the default available Environment IDs.\r\n\r\n### *&lt;Environment&gt;*.validate(*json*, *schema*) *->* *&lt;Report&gt;*\r\n\r\n*\t*json* *&lt;Any|JSONInstance&gt;* The JSON data to validate\r\n*\t*schema* *&lt;Object|JSONInstance|JSONSchema&gt;* The schema to validate the JSON with\r\n\r\nValidates both the schema and the JSON, and returns a report of the validation.\r\n\r\n### *&lt;Report&gt;*.errors *&lt;Array&gt;*\r\n\r\nAn array of error objects from the validation process; each object represents a restriction check that failed. If the array is empty, the validation passed.\r\n\r\nThe error objects have the following schema:\r\n\r\n\t{\r\n\t\t\"type\" : \"object\",\r\n\t\t\"properties\" : {\r\n\t\t\t\"message\" : {\r\n\t\t\t\t\"description\" : \"A user-friendly error message about what failed to validate.\",\r\n\t\t\t\t\"type\" : \"string\"\r\n\t\t\t},\r\n\t\t\t\"uri\" : {\r\n\t\t\t\t\"description\" : \"URI of the instance that failed to validate.\",\r\n\t\t\t\t\"type\" : \"string\",\r\n\t\t\t\t\"format\" : \"uri\"\r\n\t\t\t},\r\n\t\t\t\"schemaUri\" : {\r\n\t\t\t\t\"description\" : \"URI of the schema instance that reported the error.\",\r\n\t\t\t\t\"type\" : \"string\",\r\n\t\t\t\t\"format\" : \"uri\"\r\n\t\t\t},\r\n\t\t\t\"attribute\" : {\r\n\t\t\t\t\"description\" : \"The attribute of the schema instance that failed to validate.\",\r\n\t\t\t\t\"type\" : \"string\"\r\n\t\t\t},\r\n\t\t\t\"details\" : {\r\n\t\t\t\t\"description\" : \"The value of the schema attribute that failed to validate.\",\r\n\t\t\t\t\"type\" : \"any\"\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n## API Documentation\r\n\r\nThere are many more APIs available for JSV, too many to detail here. The complete API and documentation can be found in the `docs` directory.\r\n\r\n## Extending Environments\r\n\r\nJSV provides an API for extending available schemas, adding new attributes and validation to currently existing schemas, and creating whole new Environments with unique behaviors. \r\nIn fact, in the [eat-your-own-dog-food](http://en.wikipedia.org/wiki/Eating_your_own_dog_food) approach, all the default JSON Schema environments available are implemented using this API. \r\nDetails and instruction on this feature will be provided at a later date.\r\n\r\n## Installation\r\n\r\nThe preferred method of installation is to download the latest copy from GitHub:\r\n\r\n\tgit clone git://github.com/garycourt/JSV.git\r\n\r\nIf you are using JSV within Node.js, you can quickly install it using:\r\n\r\n\tnpm install JSV\r\n\r\nThen you can reference it within your application using:\r\n\r\n\tvar JSV = require(\"JSV\").JSV;\r\n\r\n## Unit Tests\r\n\r\nOpen `tests/index.html` and `tests/index3.html` in your web browser to run the unit tests.\r\n\r\nCurrently, the unit tests can not be run in Node.js.\r\n\r\n## License\r\n\r\n\tCopyright 2010 Gary Court. All rights reserved.\r\n\t\r\n\tRedistribution and use in source and binary forms, with or without modification, are\r\n\tpermitted provided that the following conditions are met:\r\n\t\r\n\t   1. Redistributions of source code must retain the above copyright notice, this list of\r\n\t      conditions and the following disclaimer.\r\n\t\r\n\t   2. Redistributions in binary form must reproduce the above copyright notice, this list\r\n\t      of conditions and the following disclaimer in the documentation and/or other materials\r\n\t      provided with the distribution.\r\n\t\r\n\tTHIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\r\n\tWARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\r\n\tFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\r\n\tCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r\n\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r\n\tSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\r\n\tANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r\n\tNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r\n\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\t\r\n\tThe views and conclusions contained in the software and documentation are those of the\r\n\tauthors and should not be interpreted as representing official policies, either expressed\r\n\tor implied, of Gary Court or the JSON Schema specification.",
  "repositories": [
    {
      "type": "git",
      "url": "git://github.com/garycourt/JSV.git"
    }
  ],
  "repository": {
    "type": "git",
    "url": "git://github.com/garycourt/JSV.git"
  },
  "version": "4.0.2"
}
