{
  "_from": "js-yaml@>=3.1.0 <4.0.0",
  "_id": "js-yaml@3.4.6",
  "_location": "/bower/configstore/js-yaml",
  "_phantomChildren": {},
  "_requiredBy": [
    "/bower/configstore"
  ],
  "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz",
  "_shasum": "6be1b23f6249f53d293370fd4d1aaa63ce1b4eb0",
  "_shrinkwrap": null,
  "author": {
    "email": "dervus.grim@gmail.com",
    "name": "Vladimir Zapparov"
  },
  "bin": {
    "js-yaml": "bin/js-yaml.js"
  },
  "browser": {
    "buffer": false
  },
  "bugs": {
    "url": "https://github.com/nodeca/js-yaml/issues"
  },
  "contributors": [
    {
      "name": "Aleksey V Zapparov",
      "email": "ixti@member.fsf.org",
      "url": "http://www.ixti.net/"
    },
    {
      "name": "Vitaly Puzrin",
      "email": "vitaly@rcdesign.ru",
      "url": "https://github.com/puzrin"
    },
    {
      "name": "Martin Grenfell",
      "email": "martin.grenfell@gmail.com",
      "url": "http://got-ravings.blogspot.com"
    }
  ],
  "dependencies": {
    "argparse": "^1.0.2",
    "esprima": "^2.6.0",
    "inherit": "^2.2.2"
  },
  "description": "YAML 1.2 parser and serializer",
  "devDependencies": {
    "ansi": "*",
    "benchmark": "*",
    "eslint": "0.24.1",
    "eslint-plugin-nodeca": "^1.0.3",
    "istanbul": "*",
    "mocha": "*"
  },
  "files": [
    "bin/",
    "dist/",
    "index.js",
    "lib/"
  ],
  "homepage": "https://github.com/nodeca/js-yaml",
  "keywords": [
    "parser",
    "pyyaml",
    "serializer",
    "yaml"
  ],
  "license": "MIT",
  "name": "js-yaml",
  "optionalDependencies": {},
  "readme": "JS-YAML - YAML 1.2 parser and serializer for JavaScript\n=======================================================\n\n[![Build Status](https://travis-ci.org/nodeca/js-yaml.svg?branch=master)](https://travis-ci.org/nodeca/js-yaml)\n[![NPM version](https://img.shields.io/npm/v/js-yaml.svg)](https://www.npmjs.org/package/js-yaml)\n\n[Online Demo](http://nodeca.github.com/js-yaml/)\n\n\nThis is an implementation of [YAML](http://yaml.org/), a human friendly data\nserialization language. Started as [PyYAML](http://pyyaml.org/) port, it was\ncompletely rewritten from scratch. Now it's very fast, and supports 1.2 spec.\n\n\nInstallation\n------------\n\n### YAML module for node.js\n\n```\nnpm install js-yaml\n```\n\n\n### CLI executable\n\nIf you want to inspect your YAML files from CLI, install js-yaml globally:\n\n```\nnpm install -g js-yaml\n```\n\n#### Usage\n\n```\nusage: js-yaml [-h] [-v] [-c] [-t] file\n\nPositional arguments:\n  file           File with YAML document(s)\n\nOptional arguments:\n  -h, --help     Show this help message and exit.\n  -v, --version  Show program's version number and exit.\n  -c, --compact  Display errors in compact mode\n  -t, --trace    Show stack trace on error\n```\n\n\n### Bundled YAML library for browsers\n\n``` html\n<!-- esprima required only for !!js/function -->\n<script src=\"esprima.js\"></script>\n<script src=\"js-yaml.min.js\"></script>\n<script type=\"text/javascript\">\nvar doc = jsyaml.load('greeting: hello\\nname: world');\n</script>\n```\n\nBrowser support was done mostly for online demo. If you find any errors - feel\nfree to send pull requests with fixes. Also note, that IE and other old browsers\nneeds [es5-shims](https://github.com/kriskowal/es5-shim) to operate.\n\nNotes:\n\n1. We have no resources to support browserified version. Don't expect it to be\n   well tested. Don't expect fast fixes if something goes wrong there.\n2. `!!js/function` in browser bundle will not work by default. If you really need\n   it - load `esprima` parser first (via amd or directly).\n3. `!!bin` in browser will return `Array`, because browsers do not support\n   node.js `Buffer` and adding Buffer shims is completely useless on practice.\n\n\nAPI\n---\n\nHere we cover the most 'useful' methods. If you need advanced details (creating\nyour own tags), see [wiki](https://github.com/nodeca/js-yaml/wiki) and\n[examples](https://github.com/nodeca/js-yaml/tree/master/examples) for more\ninfo.\n\n``` javascript\nyaml = require('js-yaml');\nfs   = require('fs');\n\n// Get document, or throw exception on error\ntry {\n  var doc = yaml.safeLoad(fs.readFileSync('/home/ixti/example.yml', 'utf8'));\n  console.log(doc);\n} catch (e) {\n  console.log(e);\n}\n```\n\n\n### safeLoad (string [ , options ])\n\n**Recommended loading way.** Parses `string` as single YAML document. Returns a JavaScript\nobject or throws `YAMLException` on error. By default, does not support regexps,\nfunctions and undefined. This method is safe for untrusted data.\n\noptions:\n\n- `filename` _(default: null)_ - string to be used as a file path in\n  error/warning messages.\n- `onWarning` _(default: null)_ - function to call on warning messages.\n  Loader will throw on warnings if this function is not provided.\n- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ - specifies a schema to use.\n  - `FAILSAFE_SCHEMA` - only strings, arrays and plain objects:\n    http://www.yaml.org/spec/1.2/spec.html#id2802346\n  - `JSON_SCHEMA` - all JSON-supported types:\n    http://www.yaml.org/spec/1.2/spec.html#id2803231\n  - `CORE_SCHEMA` - same as `JSON_SCHEMA`:\n    http://www.yaml.org/spec/1.2/spec.html#id2804923\n  - `DEFAULT_SAFE_SCHEMA` - all supported YAML types, without unsafe ones\n    (`!!js/undefined`, `!!js/regexp` and `!!js/function`):\n    http://yaml.org/type/\n  - `DEFAULT_FULL_SCHEMA` - all supported YAML types.\n\nNOTE: This function **does not** understand multi-document sources, it throws\nexception on those.\n\nNOTE: JS-YAML **does not** support schema-specific tag resolution restrictions.\nSo, JSON schema is not as strict as defined in the YAML specification.\nIt allows numbers in any notation, use `Null` and `NULL` as `null`, etc.\nCore schema also has no such restrictions. It allows binary notation for integers.\n\n\n### load (string [ , options ])\n\n**Use with care with untrusted sources**. The same as `safeLoad()` but uses\n`DEFAULT_FULL_SCHEMA` by default - adds some JavaScript-specific types:\n`!!js/function`, `!!js/regexp` and `!!js/undefined`. For untrusted sources you\nmust additionally validate object structure, to avoid injections:\n\n``` javascript\nvar untrusted_code = '\"toString\": !<tag:yaml.org,2002:js/function> \"function (){very_evil_thing();}\"';\n\n// I'm just converting that string, what could possibly go wrong?\nrequire('js-yaml').load(untrusted_code) + ''\n```\n\n\n### safeLoadAll (string, iterator [ , options ])\n\nSame as `safeLoad()`, but understands multi-document sources and apply\n`iterator` to each document.\n\n``` javascript\nvar yaml = require('js-yaml');\n\nyaml.safeLoadAll(data, function (doc) {\n  console.log(doc);\n});\n```\n\n\n### loadAll (string, iterator [ , options ])\n\nSame as `safeLoadAll()` but uses `DEFAULT_FULL_SCHEMA` by default.\n\n\n### safeDump (object [ , options ])\n\nSerializes `object` as YAML document. Uses `DEFAULT_SAFE_SCHEMA`, so it will\nthrow exception if you try to dump regexps or functions. However, you can\ndisable exceptions by `skipInvalid` option.\n\noptions:\n\n- `indent` _(default: 2)_ - indentation width to use (in spaces).\n- `skipInvalid` _(default: false)_ - do not throw on invalid types (like function\n  in the safe schema) and skip pairs and single values with such types.\n- `flowLevel` (default: -1) - specifies level of nesting, when to switch from\n  block to flow style for collections. -1 means block style everwhere\n- `styles` - \"tag\" => \"style\" map. Each tag may have own set of styles.\n- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ specifies a schema to use.\n- `sortKeys` _(default: `false`)_ - if `true`, sort keys when dumping YAML. If a\n  function, use the function to sort the keys.\n- `lineWidth` _(default: `80`)_ - set max line width.\n\nstyles:\n\n``` none\n!!null\n  \"canonical\"   => \"~\"\n\n!!int\n  \"binary\"      => \"0b1\", \"0b101010\", \"0b1110001111010\"\n  \"octal\"       => \"01\", \"052\", \"016172\"\n  \"decimal\"     => \"1\", \"42\", \"7290\"\n  \"hexadecimal\" => \"0x1\", \"0x2A\", \"0x1C7A\"\n\n!!null, !!bool, !!float\n  \"lowercase\"   => \"null\", \"true\", \"false\", \".nan\", '.inf'\n  \"uppercase\"   => \"NULL\", \"TRUE\", \"FALSE\", \".NAN\", '.INF'\n  \"camelcase\"   => \"Null\", \"True\", \"False\", \".NaN\", '.Inf'\n```\n\nBy default, !!int uses `decimal`, and !!null, !!bool, !!float use `lowercase`.\n\n\n\n### dump (object [ , options ])\n\nSame as `safeDump()` but without limits (uses `DEFAULT_FULL_SCHEMA` by default).\n\n\nSupported YAML types\n--------------------\n\nThe list of standard YAML tags and corresponding JavaScipt types. See also\n[YAML tag discussion](http://pyyaml.org/wiki/YAMLTagDiscussion) and\n[YAML types repository](http://yaml.org/type/).\n\n```\n!!null ''                   # null\n!!bool 'yes'                # bool\n!!int '3...'                # number\n!!float '3.14...'           # number\n!!binary '...base64...'     # buffer\n!!timestamp 'YYYY-...'      # date\n!!omap [ ... ]              # array of key-value pairs\n!!pairs [ ... ]             # array or array pairs\n!!set { ... }               # array of objects with given keys and null values\n!!str '...'                 # string\n!!seq [ ... ]               # array\n!!map { ... }               # object\n```\n\n**JavaScript-specific tags**\n\n```\n!!js/regexp /pattern/gim            # RegExp\n!!js/undefined ''                   # Undefined\n!!js/function 'function () {...}'   # Function\n```\n\nCaveats\n-------\n\nNote, that you use arrays or objects as key in JS-YAML. JS does not allow objects\nor array as keys, and stringifies (by calling .toString method) them at the\nmoment of adding them.\n\n``` yaml\n---\n? [ foo, bar ]\n: - baz\n? { foo: bar }\n: - baz\n  - baz\n```\n\n``` javascript\n{ \"foo,bar\": [\"baz\"], \"[object Object]\": [\"baz\", \"baz\"] }\n```\n\nAlso, reading of properties on implicit block mapping keys is not supported yet.\nSo, the following YAML document cannot be loaded.\n\n``` yaml\n&anchor foo:\n  foo: bar\n  *anchor: duplicate key\n  baz: bat\n  *anchor: duplicate key\n```\n\n\nBreaking changes in 2.x.x -> 3.x.x\n----------------------------------\n\nIf you have not used __custom__ tags or loader classes and not loaded yaml\nfiles via `require()` - no changes needed. Just upgrade library.\n\nOtherwise, you should:\n\n1. Replace all occurences of `require('xxxx.yml')` by `fs.readFileSync()` +\n  `yaml.safeLoad()`.\n2. rewrite your custom tags constructors and custom loader\n  classes, to conform new API. See\n  [examples](https://github.com/nodeca/js-yaml/tree/master/examples) and\n  [wiki](https://github.com/nodeca/js-yaml/wiki) for details.\n\n\nLicense\n-------\n\nView the [LICENSE](https://github.com/nodeca/js-yaml/blob/master/LICENSE) file\n(MIT).\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/nodeca/js-yaml.git"
  },
  "scripts": {
    "test": "make test"
  },
  "version": "3.4.6"
}
