Comparing version 3.0.7 to 3.1.2
'use strict'; | ||
// Load modules | ||
const Boom = require('boom'); | ||
// Declare internals | ||
const internals = {}; | ||
@@ -99,2 +95,8 @@ | ||
if ($1 === '__proto__') { | ||
return 'error'; // Generate leftovers | ||
} | ||
let value; | ||
if ($2) { | ||
@@ -106,12 +108,19 @@ if (!$3) { | ||
try { | ||
result[$1] = decodeURIComponent($3.split('\'')[2]); | ||
value = decodeURIComponent($3.split('\'')[2]); | ||
} | ||
catch (err) { | ||
return 'error'; // Generate leftover | ||
return 'error'; // Generate leftovers | ||
} | ||
} | ||
else { | ||
result[$1] = $4 || $5 || ''; | ||
value = $4 || $5 || ''; | ||
} | ||
if ($1 === 'name' && | ||
value === '__proto__') { | ||
return 'error'; // Generate leftovers | ||
} | ||
result[$1] = value; | ||
return ''; | ||
@@ -118,0 +127,0 @@ }); |
{ | ||
"name": "content", | ||
"description": "HTTP Content-* headers parsing", | ||
"version": "3.0.7", | ||
"version": "3.1.2", | ||
"repository": "git://github.com/hapijs/content", | ||
"engines": { | ||
"node": ">=6.0.0" | ||
}, | ||
"main": "lib/index.js", | ||
@@ -14,5 +17,2 @@ "keywords": [ | ||
], | ||
"engines": { | ||
"node": ">=4.5.0" | ||
}, | ||
"dependencies": { | ||
@@ -26,7 +26,6 @@ "boom": "5.x.x" | ||
"scripts": { | ||
"test": "lab -a code -t 100 -L", | ||
"test-tap": "lab -a code -r tap -o tests.tap", | ||
"test-cov-html": "lab -a code -r html -o coverage.html" | ||
"test": "lab -a code -t 100 -L -l", | ||
"test-cov-html": "lab -a code -r html -o coverage.html -l" | ||
}, | ||
"license": "BSD-3-Clause" | ||
"license": "SEE LICENSE IN LICENSE.md" | ||
} |
# content | ||
HTTP Content-* headers parsing. | ||
HTTP Content-\* headers parsing. | ||
[![NPM Version](https://badge.fury.io/js/content.svg)](http://badge.fury.io/js/content) | ||
[![Build Status](https://secure.travis-ci.org/hapijs/content.svg)](http://travis-ci.org/hapijs/content) | ||
[![Dependencies](https://david-dm.org/hapijs/content.svg)](https://david-dm.org/hapijs/content) | ||
Lead Maintainer - [Rui Quelhas](https://github.com/ruiquelhas) | ||
## Table of Contents | ||
- [Installation](#installation) | ||
- [Usage](#usage) | ||
- [`type(header)`](#typeheader) | ||
- [`disposition(header)`](#dispositionheader) | ||
## Installation | ||
Install via [NPM](https://www.npmjs.org). | ||
``` | ||
$ npm install content | ||
``` | ||
## Usage | ||
**content** allows to parse HTTP `Content-*` headers, currently based on the rules established in both [RFC 7231 Section 3.1.1.1](https://tools.ietf.org/html/rfc7231#section-3.1.1.1) and [RFC 6266 Section 4.1](http://tools.ietf.org/html/rfc6266#section-4.1). | ||
### `type(header)` | ||
Generates an object containing the associated mime-type and the boundary (if specified). | ||
```js | ||
Content.type('application/json; some=property; and="another"'); | ||
// { mime: 'application/json' } | ||
Content.type('application/json; boundary=asdf'); | ||
// { mime: 'application/json', boundary: 'asdf' } | ||
``` | ||
If the header is invalid (malformed) or missing required data, such as a `multipart/form-data` header missing its `boundary`, it returns an HTTP `Bad Request` error. | ||
### `disposition(header)` | ||
Generates an object containing the details related to the `Content-Disposition` header for the `form-data` content type with support for `utf8` encoding. | ||
```js | ||
Content.disposition('form-data; name="file"; filename=file.jpg'); | ||
// { name: 'file', filename: 'file.jpg' } | ||
Content.disposition('form-data; name="file"; filename*=utf-8\'en\'with%20space'); | ||
// { name: 'file', filename: 'with space' } | ||
``` | ||
If the header is invalid (malformed, invalid or missing properties) or is empty/missing, it returns an explanatory error. | ||
[![Build Status](https://travis-ci.org/hapijs/content.svg?branch=v3-commercial)](https://travis-ci.org/hapijs/content) |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
Misc. License Issues
License(Experimental) A package's licensing information has fine-grained problems.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
97
5506
1
1
80
6
1