Socket
Socket
Sign inDemoInstall

path-parser

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

path-parser - npm Package Compare versions

Comparing version 2.0.2 to 2.1.0

11

CHANGELOG.md

@@ -0,1 +1,12 @@

<a name="2.1.0"></a>
# [2.1.0](https://github.com/troch/path-parser/compare/v2.0.2...v2.1.0) (2017-11-08)
### Features
* improve other error messages ([bf5bea5](https://github.com/troch/path-parser/commit/bf5bea5))
* provide more details in "Missing parameters" error [router5/router5[#208](https://github.com/troch/path-parser/issues/208)] ([b562e5c](https://github.com/troch/path-parser/commit/b562e5c))
<a name="2.0.2"></a>

@@ -2,0 +13,0 @@ ## [2.0.2](https://github.com/troch/path-parser/compare/v2.0.1...v2.0.2) (2016-11-01)

197

dist/amd/path-parser.js

@@ -1,120 +0,3 @@

define('Path', ['search-params'], function (searchParams) { 'use strict';
define(['search-params'], function (searchParams) { 'use strict';
var asyncGenerator = function () {
function AwaitValue(value) {
this.value = value;
}
function AsyncGenerator(gen) {
var front, back;
function send(key, arg) {
return new Promise(function (resolve, reject) {
var request = {
key: key,
arg: arg,
resolve: resolve,
reject: reject,
next: null
};
if (back) {
back = back.next = request;
} else {
front = back = request;
resume(key, arg);
}
});
}
function resume(key, arg) {
try {
var result = gen[key](arg);
var value = result.value;
if (value instanceof AwaitValue) {
Promise.resolve(value.value).then(function (arg) {
resume("next", arg);
}, function (arg) {
resume("throw", arg);
});
} else {
settle(result.done ? "return" : "normal", result.value);
}
} catch (err) {
settle("throw", err);
}
}
function settle(type, value) {
switch (type) {
case "return":
front.resolve({
value: value,
done: true
});
break;
case "throw":
front.reject(value);
break;
default:
front.resolve({
value: value,
done: false
});
break;
}
front = front.next;
if (front) {
resume(front.key, front.arg);
} else {
back = null;
}
}
this._invoke = send;
if (typeof gen.return !== "function") {
this.return = undefined;
}
}
if (typeof Symbol === "function" && Symbol.asyncIterator) {
AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
return this;
};
}
AsyncGenerator.prototype.next = function (arg) {
return this._invoke("next", arg);
};
AsyncGenerator.prototype.throw = function (arg) {
return this._invoke("throw", arg);
};
AsyncGenerator.prototype.return = function (arg) {
return this._invoke("return", arg);
};
return {
wrap: function (fn) {
return function () {
return new AsyncGenerator(fn.apply(this, arguments));
};
},
await: function (value) {
return new AwaitValue(value);
}
};
}();
var classCallCheck = function (instance, Constructor) {

@@ -164,65 +47,2 @@ if (!(instance instanceof Constructor)) {

var get = function get(object, property, receiver) {
if (object === null) object = Function.prototype;
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent === null) {
return undefined;
} else {
return get(parent, property, receiver);
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
};
var set = function set(object, property, value, receiver) {
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent !== null) {
set(parent, property, value, receiver);
}
} else if ("value" in desc && desc.writable) {
desc.value = value;
} else {
var setter = desc.set;
if (setter !== undefined) {
setter.call(receiver, value);
}
}
return value;
};
var defaultOrConstrained = function defaultOrConstrained(match) {

@@ -256,2 +76,3 @@ return '(' + (match ? match.replace(/(^<|>$)/g, '') : '[a-zA-Z0-9-_.~%\':]+') + ')';

pattern: /^(?:\?|&)(?:\:)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})(?:\[\])/
// regex: match => new RegExp('(?=(\?|.*&)' + match[0] + '(?=(\=|&|$)))')
}, {

@@ -262,2 +83,3 @@ // Query parameter: ?param1&param2

pattern: /^(?:\?|&)(?:\:)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})/
// regex: match => new RegExp('(?=(\?|.*&)' + match[0] + '(?=(\=|&|$)))')
}, {

@@ -312,3 +134,3 @@ // Delimiter /

if (!matched) {
throw new Error('Could not parse path.');
throw new Error('Could not parse path \'' + str + '\'');
}

@@ -382,3 +204,3 @@ // Return tokens

if (!path) throw new Error('Please supply a path');
if (!path) throw new Error('Missing path in Path constructor');
this.path = path;

@@ -536,3 +358,8 @@ this.tokens = tokenise(path);

return !exists(encodedParams[p]);
})) throw new Error('Missing parameters');
})) {
var missingParameters = this.urlParams.filter(function (p) {
return !exists(encodedParams[p]);
});
throw new Error('Cannot build path: \'' + this.path + '\' requires missing parameters { ' + missingParameters.join(', ') + ' }');
}

@@ -548,3 +375,3 @@ // Check constraints

if (!constraintsPassed) throw new Error('Some parameters are of invalid format');
if (!constraintsPassed) throw new Error('Some parameters of \'' + this.path + '\' are of invalid format');
}

@@ -551,0 +378,0 @@

@@ -43,2 +43,3 @@ 'use strict';

pattern: /^(?:\?|&)(?:\:)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})(?:\[\])/
// regex: match => new RegExp('(?=(\?|.*&)' + match[0] + '(?=(\=|&|$)))')
}, {

@@ -49,2 +50,3 @@ // Query parameter: ?param1&param2

pattern: /^(?:\?|&)(?:\:)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})/
// regex: match => new RegExp('(?=(\?|.*&)' + match[0] + '(?=(\=|&|$)))')
}, {

@@ -99,3 +101,3 @@ // Delimiter /

if (!matched) {
throw new Error('Could not parse path.');
throw new Error('Could not parse path \'' + str + '\'');
}

@@ -169,3 +171,3 @@ // Return tokens

if (!path) throw new Error('Please supply a path');
if (!path) throw new Error('Missing path in Path constructor');
this.path = path;

@@ -323,3 +325,8 @@ this.tokens = tokenise(path);

return !exists(encodedParams[p]);
})) throw new Error('Missing parameters');
})) {
var missingParameters = this.urlParams.filter(function (p) {
return !exists(encodedParams[p]);
});
throw new Error('Cannot build path: \'' + this.path + '\' requires missing parameters { ' + missingParameters.join(', ') + ' }');
}

@@ -335,3 +342,3 @@ // Check constraints

if (!constraintsPassed) throw new Error('Some parameters are of invalid format');
if (!constraintsPassed) throw new Error('Some parameters of \'' + this.path + '\' are of invalid format');
}

@@ -338,0 +345,0 @@

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('search-params')) :
typeof define === 'function' && define.amd ? define('Path', ['search-params'], factory) :
(global.Path = factory(global.searchParams));
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('search-params')) :
typeof define === 'function' && define.amd ? define(['search-params'], factory) :
(global.Path = factory(global.searchParams));
}(this, (function (searchParams) { 'use strict';
var asyncGenerator = function () {
function AwaitValue(value) {
this.value = value;
}
function AsyncGenerator(gen) {
var front, back;
function send(key, arg) {
return new Promise(function (resolve, reject) {
var request = {
key: key,
arg: arg,
resolve: resolve,
reject: reject,
next: null
};
if (back) {
back = back.next = request;
} else {
front = back = request;
resume(key, arg);
}
});
}
function resume(key, arg) {
try {
var result = gen[key](arg);
var value = result.value;
if (value instanceof AwaitValue) {
Promise.resolve(value.value).then(function (arg) {
resume("next", arg);
}, function (arg) {
resume("throw", arg);
});
} else {
settle(result.done ? "return" : "normal", result.value);
}
} catch (err) {
settle("throw", err);
}
}
function settle(type, value) {
switch (type) {
case "return":
front.resolve({
value: value,
done: true
});
break;
case "throw":
front.reject(value);
break;
default:
front.resolve({
value: value,
done: false
});
break;
}
front = front.next;
if (front) {
resume(front.key, front.arg);
} else {
back = null;
}
}
this._invoke = send;
if (typeof gen.return !== "function") {
this.return = undefined;
}
}
if (typeof Symbol === "function" && Symbol.asyncIterator) {
AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
return this;
};
}
AsyncGenerator.prototype.next = function (arg) {
return this._invoke("next", arg);
};
AsyncGenerator.prototype.throw = function (arg) {
return this._invoke("throw", arg);
};
AsyncGenerator.prototype.return = function (arg) {
return this._invoke("return", arg);
};
return {
wrap: function (fn) {
return function () {
return new AsyncGenerator(fn.apply(this, arguments));
};
},
await: function (value) {
return new AwaitValue(value);
}
};
}();
var classCallCheck = function (instance, Constructor) {

@@ -168,65 +51,2 @@ if (!(instance instanceof Constructor)) {

var get = function get(object, property, receiver) {
if (object === null) object = Function.prototype;
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent === null) {
return undefined;
} else {
return get(parent, property, receiver);
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
};
var set = function set(object, property, value, receiver) {
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent !== null) {
set(parent, property, value, receiver);
}
} else if ("value" in desc && desc.writable) {
desc.value = value;
} else {
var setter = desc.set;
if (setter !== undefined) {
setter.call(receiver, value);
}
}
return value;
};
var defaultOrConstrained = function defaultOrConstrained(match) {

@@ -260,2 +80,3 @@ return '(' + (match ? match.replace(/(^<|>$)/g, '') : '[a-zA-Z0-9-_.~%\':]+') + ')';

pattern: /^(?:\?|&)(?:\:)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})(?:\[\])/
// regex: match => new RegExp('(?=(\?|.*&)' + match[0] + '(?=(\=|&|$)))')
}, {

@@ -266,2 +87,3 @@ // Query parameter: ?param1&param2

pattern: /^(?:\?|&)(?:\:)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})/
// regex: match => new RegExp('(?=(\?|.*&)' + match[0] + '(?=(\=|&|$)))')
}, {

@@ -316,3 +138,3 @@ // Delimiter /

if (!matched) {
throw new Error('Could not parse path.');
throw new Error('Could not parse path \'' + str + '\'');
}

@@ -386,3 +208,3 @@ // Return tokens

if (!path) throw new Error('Please supply a path');
if (!path) throw new Error('Missing path in Path constructor');
this.path = path;

@@ -540,3 +362,8 @@ this.tokens = tokenise(path);

return !exists(encodedParams[p]);
})) throw new Error('Missing parameters');
})) {
var missingParameters = this.urlParams.filter(function (p) {
return !exists(encodedParams[p]);
});
throw new Error('Cannot build path: \'' + this.path + '\' requires missing parameters { ' + missingParameters.join(', ') + ' }');
}

@@ -552,3 +379,3 @@ // Check constraints

if (!constraintsPassed) throw new Error('Some parameters are of invalid format');
if (!constraintsPassed) throw new Error('Some parameters of \'' + this.path + '\' are of invalid format');
}

@@ -555,0 +382,0 @@

@@ -82,3 +82,3 @@ import { getSearch, withoutBrackets, parse, toObject } from 'search-params';

if (!matched) {
throw new Error('Could not parse path.');
throw new Error(`Could not parse path '${str}'`);
}

@@ -144,3 +144,3 @@ // Return tokens

constructor(path) {
if (!path) throw new Error('Please supply a path');
if (!path) throw new Error('Missing path in Path constructor');
this.path = path;

@@ -265,3 +265,6 @@ this.tokens = tokenise(path);

// Check all params are provided (not search parameters which are optional)
if (this.urlParams.some(p => !exists(encodedParams[p]))) throw new Error('Missing parameters');
if (this.urlParams.some(p => !exists(encodedParams[p]))) {
const missingParameters = this.urlParams.filter(p => !exists(encodedParams[p]));
throw new Error('Cannot build path: \'' + this.path + '\' requires missing parameters { ' + missingParameters.join(', ') + ' }');
}

@@ -274,3 +277,3 @@ // Check constraints

if (!constraintsPassed) throw new Error('Some parameters are of invalid format');
if (!constraintsPassed) throw new Error(`Some parameters of '${this.path}' are of invalid format`);
}

@@ -277,0 +280,0 @@

{
"name": "path-parser",
"version": "2.0.2",
"version": "2.1.0",
"description": "A small utility to parse, match and generate paths",

@@ -16,3 +16,3 @@ "main": "dist/commonjs/path-parser.js",

"build": "npm run clean && npm run build:amd && npm run build:umd && npm run build:cjs",
"clog": "conventional-changelog -p angular -i CHANGELOG.md -w"
"clog": "conventional-changelog -p angular -i CHANGELOG.md -s"
},

@@ -39,21 +39,21 @@ "repository": {

"devDependencies": {
"babel-core": "~6.9.0",
"babel-eslint": "~7.0.0",
"babel-core": "~6.26.0",
"babel-eslint": "~8.0.2",
"babel-plugin-add-module-exports": "~0.2.1",
"babel-plugin-transform-class-properties": "~6.9.1",
"babel-plugin-transform-export-extensions": "~6.8.0",
"babel-plugin-transform-object-rest-spread": "~6.8.0",
"babel-preset-es2015": "~6.9.0",
"babel-preset-es2015-rollup": "~1.2.0",
"conventional-changelog": "~1.1.0",
"coveralls": "~2.11.14",
"eslint": "~3.7.1",
"babel-plugin-transform-class-properties": "~6.24.1",
"babel-plugin-transform-export-extensions": "~6.22.0",
"babel-plugin-transform-object-rest-spread": "~6.26.0",
"babel-preset-env": "~1.6.1",
"babel-preset-es2015-rollup": "~3.0.0",
"conventional-changelog": "~1.1.6",
"coveralls": "~3.0.0",
"eslint": "~4.10.0",
"isparta": "~4.0.0",
"mkdirp": "~0.5.1",
"mocha": "~3.1.2",
"rimraf": "~2.5.4",
"rollup": "~0.36.3",
"rollup-plugin-babel": "~2.6.1",
"should": "~11.1.1",
"yargs": "~6.0.0"
"mocha": "~4.0.1",
"rimraf": "~2.6.2",
"rollup": "~0.51.0",
"rollup-plugin-babel": "~3.0.2",
"should": "~13.1.3",
"yargs": "~10.0.3"
},

@@ -60,0 +60,0 @@ "dependencies": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc