{
  "author": {
    "name": "Isaac Z. Schlueter",
    "email": "i@izs.me",
    "url": "http://blog.izs.me/"
  },
  "name": "ini",
  "description": "An ini encoder/decoder for node",
  "version": "1.3.3",
  "repository": {
    "type": "git",
    "url": "git://github.com/isaacs/ini.git"
  },
  "main": "ini.js",
  "scripts": {
    "test": "tap test/*.js"
  },
  "engines": {
    "node": "*"
  },
  "dependencies": {},
  "devDependencies": {
    "tap": "~0.4.0"
  },
  "license": "ISC",
  "readme": "An ini format parser and serializer for node.\n\nSections are treated as nested objects.  Items before the first\nheading are saved on the object directly.\n\n## Usage\n\nConsider an ini-file `config.ini` that looks like this:\n\n    ; this comment is being ignored\n    scope = global\n\n    [database]\n    user = dbuser\n    password = dbpassword\n    database = use_this_database\n\n    [paths.default]\n    datadir = /var/lib/data\n    array[] = first value\n    array[] = second value\n    array[] = third value\n\nYou can read, manipulate and write the ini-file like so:\n\n    var fs = require('fs')\n      , ini = require('ini')\n\n    var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8'))\n\n    config.scope = 'local'\n    config.database.database = 'use_another_database'\n    config.paths.default.tmpdir = '/tmp'\n    delete config.paths.default.datadir\n    config.paths.default.array.push('fourth value')\n\n    fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' }))\n\nThis will result in a file called `config_modified.ini` being written\nto the filesystem with the following content:\n\n    [section]\n    scope=local\n    [section.database]\n    user=dbuser\n    password=dbpassword\n    database=use_another_database\n    [section.paths.default]\n    tmpdir=/tmp\n    array[]=first value\n    array[]=second value\n    array[]=third value\n    array[]=fourth value\n\n\n## API\n\n### decode(inistring)\n\nDecode the ini-style formatted `inistring` into a nested object.\n\n### parse(inistring)\n\nAlias for `decode(inistring)`\n\n### encode(object, [options])\n\nEncode the object `object` into an ini-style formatted string. If the\noptional parameter `section` is given, then all top-level properties\nof the object are put into this section and the `section`-string is\nprepended to all sub-sections, see the usage example above.\n\nThe `options` object may contain the following:\n\n* `section` A string which will be the first `section` in the encoded\n  ini data.  Defaults to none.\n* `whitespace` Boolean to specify whether to put whitespace around the\n  `=` character.  By default, whitespace is omitted, to be friendly to\n  some persnickety old parsers that don't tolerate it well.  But some\n  find that it's more human-readable and pretty with the whitespace.\n\nFor backwards compatibility reasons, if a `string` options is passed\nin, then it is assumed to be the `section` value.\n\n### stringify(object, [options])\n\nAlias for `encode(object, [options])`\n\n### safe(val)\n\nEscapes the string `val` such that it is safe to be used as a key or\nvalue in an ini-file. Basically escapes quotes. For example\n\n    ini.safe('\"unsafe string\"')\n\nwould result in\n\n    \"\\\"unsafe string\\\"\"\n\n### unsafe(val)\n\nUnescapes the string `val`\n",
  "readmeFilename": "README.md",
  "bugs": {
    "url": "https://github.com/isaacs/ini/issues"
  },
  "homepage": "https://github.com/isaacs/ini",
  "_id": "ini@1.3.3",
  "_shasum": "c07e34aef1de06aff21d413b458e52b21533a11e",
  "_from": "ini@^1.2.0",
  "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.3.tgz"
}
