Socket
Socket
Sign inDemoInstall

bruce

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bruce - npm Package Compare versions

Comparing version 0.2.1 to 0.3.0

node_modules/history/docs/Terms.md

2

docs/components/Navigation.jsx

@@ -27,3 +27,3 @@ import React from 'react';

<ul className="Navigation left">
<li key="styleguide"><strong><a href="#styleguide">styleguide</a></strong></li>
<li key="styleguide"><strong><a href="#styleguide">classes</a></strong></li>
<ul>{map(props.styleguide.sections, renderStyle)}</ul>

@@ -30,0 +30,0 @@

import React from 'react';
import Prism from './Prism';
import Markdown from './Markdown';
function renderDescription(description) {
var arr = description.split('\n');
if(arr.length > 1) {
return <div>
<Markdown data={arr[0]}/>
<pre><Prism language="css">{arr.slice(1, arr.length-1).join('\n')}</Prism></pre>
</div>;
} else {
return <pre><Prism language="css">{arr[0]}</Prism></pre>
}
}
export default (props) => {
var {header, markup} = props;
return <div>
<h3>{header}</h3>
<pre><Prism language="css">{props.description}</Prism></pre>
var {header, markup, description} = props;
var descriptionArray = props.description.split('\n');
return <div id={header} className="DocItem">
<h2>{header}</h2>
{renderDescription(description)}
<pre><Prism language="html">{markup}</Prism></pre>

@@ -10,0 +24,0 @@ <div className="Example" dangerouslySetInnerHTML={{__html: markup}}></div>

## HEAD
- `useBasename` transparently handles trailing slashes (see [#108])
- `useBasename` automatically uses the value of <base href> when no
`basename` option is provided (see [#94])
[#108]: https://github.com/rackt/history/pull/108
[#94]: https://github.com/rackt/history/issues/94
## [v1.12.6]
> Oct 25, 2015
- Add `forceRefresh` option to `createBrowserHistory` that forces
full page refreshes even when the browser supports pushState (see [#95])
[v1.12.6]: https://github.com/rackt/history/compare/v1.12.5...v1.12.6
[#95]: https://github.com/rackt/history/issues/95
## [v1.12.5]
> Oct 11, 2015
- Un-deprecate top-level createLocation method
- Add ability to use `{ pathname, search, hash }` object anywhere
a path can be used
- Fix `useQueries` handling of hashes (see [#93])
[v1.12.5]: https://github.com/rackt/history/compare/v1.12.4...v1.12.5
[#93]: https://github.com/rackt/history/issues/93
## [v1.12.4]
> Oct 9, 2015
- Fix npm postinstall hook on Windows (see [#62])
[v1.12.4]: https://github.com/rackt/history/compare/v1.12.3...v1.12.4
[#62]: https://github.com/rackt/history/issues/62

@@ -37,0 +6,0 @@

## Basename Support
Support for running an app under a "base" URL is provided by the `useBasename` [enhancer](Glossary.md#createhistoryenhancer) function. Simply use a wrapped version of your `createHistory` function to create your `history` object and you'll have the correct `location.pathname` inside `listen` and `listenBefore` hooks.
Support for running an app under a "base" URL is provided by the `useBasename` [enhancer](Terms.md#createhistoryenhancer) function. Simply use a wrapped version of your `createHistory` function to create your `history` object and you'll have the correct `location.pathname` inside `listen` and `listenBefore` hooks.

@@ -26,5 +26,1 @@ ```js

```
### Using <base href>
In HTML documents, you can use the [`<base>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base)'s `href` attribute to specify a `basename` for the page. This way, you don't have to manually pass the `basename` property to your `createHistory` function.
## Confirming Navigation
Sometimes you may want to prevent the user from going to a different page. For example, if they are halfway finished filling out a long form, and they click the back button, you may want to prompt them to confirm they actually want to leave the page before they lose the information they've already entered. For these cases, `history` lets you register [transition hooks](Glossary.md#transitionhook) that return a prompt message you can show the user before the [location](Glossary.md#location) changes. For example, you could do something like this:
Sometimes you may want to prevent the user from going to a different page. For example, if they are halfway finished filling out a long form, and they click the back button, you may want to prompt them to confirm they actually want to leave the page before they lose the information they've already entered. For these cases, `history` lets you register [transition hooks](Terms.md#transitionhook) that return a prompt message you can show the user before the [location](Terms.md#location) changes. For example, you could do something like this:

@@ -12,3 +12,3 @@ ```js

You can also simply `return false` to prevent a [transition](Glossary.md#transition).
You can also simply `return false` to prevent a [transition](Terms.md#transition).

@@ -15,0 +15,0 @@ If your transition hook needs to execute asynchronously, you can provide a second `callback` argument to your transition hook function that you must call when you're done with async work.

## Getting Started
The first thing you'll need to do is create a [history object](Glossary.md#history). The main `history` module exports several different [`create*` methods](Glossary.md#createhistory) that you can use depending on your environment.
The first thing you'll need to do is create a [history object](Terms.md#history). The main `history` module exports several different [`create*` methods](Terms.md#createhistory) that you can use depending on your environment.

@@ -36,3 +36,3 @@ - `createHistory` is for use in modern web browsers that support the [HTML5 history API](http://diveintohtml5.info/history.html) (see [cross-browser compatibility](http://caniuse.com/#feat=history))

The [`path`](Glossary.md#path) argument to `pushState` and `replaceState` represents a complete URL path, including the [query string](Glossary.md#querystring). The [`state`](Glossary.md#locationstate) argument should be a JSON-serializable object.
The [`path`](Terms.md#path) argument to `pushState` and `replaceState` represents a complete URL path, including the [query string](Terms.md#querystring). The [`state`](Terms.md#locationstate) argument should be a JSON-serializable object.

@@ -67,10 +67,10 @@ ```js

```js
// HTML5 history, recommended
// HTML5 history
import createHistory from 'history/lib/createBrowserHistory'
// Hash history
import createHistory from 'history/lib/createHashHistory'
import createHashHistory from 'history/lib/createHashHistory'
// Memory history
import createHistory from 'history/lib/createMemoryHistory'
import createMemoryHistory from 'history/lib/createMemoryHistory'
```
## Location
A [`location` object](Glossary.md#location) is conceptually similar to [`document.location` in web browsers](https://developer.mozilla.org/en-US/docs/Web/API/Document/location), with a few extra goodies. `location` objects have the following properties:
A [`location` object](Terms.md#location) is conceptually similar to [`document.location` in web browsers](https://developer.mozilla.org/en-US/docs/Web/API/Document/location), with a few extra goodies. `location` objects have the following properties:

@@ -17,16 +17,8 @@ ```

You may occasionally need to create a `location` object, either for testing or when using `history` in a stateless, non-DOM environment (i.e. a server). In these cases, you can use the `createLocation` method directly:
You may occasionally need to create a `location` object, either for testing or when using `history` in a stateless environment (like a server). `history` objects have a `createLocation` method for this purpose.
```js
import { createLocation } from 'history'
const location = createLocation('/a/path?a=query', { the: 'state' })
import { createHistory } from 'history'
let history = createHistory()
let location = history.createLocation('/a/path?a=query', { the: 'state' })
```
Alternatively, you can use a `history` object's `createLocation` method:
```js
const location = history.createLocation('/a/path?a=query', { the: 'state' })
```
`location` objects created in this way will get a default `key` property that is generated using `history.createKey()`.
## Query Support
Support for parsing and serializing [URL queries](Glossary.md#query) is provided by the `useQueries` [enhancer](Glossary.md#createhistoryenhancer) function. Simply use a wrapped version of your `createHistory` function to create your `history` object and you'll have a parsed `location.query` object inside `listen` and `listenBefore` callbacks.
Support for parsing and serializing [URL queries](Terms.md#query) is provided by the `useQueries` [enhancer](Terms.md#createhistoryenhancer) function. Simply use a wrapped version of your `createHistory` function to create your `history` object and you'll have a parsed `location.query` object inside `listen` and `listenBefore` callbacks.

@@ -5,0 +5,0 @@ ```js

@@ -9,2 +9,2 @@ ## Table of Contents

- [Caveats of Using Hash History](HashHistoryCaveats.md)
- [Glossary](Glossary.md)
- [Glossary](Terms.md)

@@ -34,11 +34,6 @@ 'use strict';

*/
function createBrowserHistory() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
function createBrowserHistory(options) {
_invariant2['default'](_ExecutionEnvironment.canUseDOM, 'Browser history needs a DOM');
var forceRefresh = options.forceRefresh;
var isSupported = _DOMUtils.supportsHistory();
var useRefresh = !isSupported || forceRefresh;

@@ -100,16 +95,16 @@ function getCurrentLocation(historyState) {

if (action === _Actions.PUSH) {
if (useRefresh) {
if (isSupported) {
window.history.pushState(historyState, null, path);
} else {
// Use a full-page reload to preserve the URL.
window.location.href = path;
return false; // Prevent location update.
} else {
window.history.pushState(historyState, null, path);
}
}
} else {
// REPLACE
if (useRefresh) {
if (isSupported) {
window.history.replaceState(historyState, null, path);
} else {
// Use a full-page reload to preserve the URL.
window.location.replace(path);
return false; // Prevent location update.
} else {
window.history.replaceState(historyState, null, path);
}
}
}

@@ -116,0 +111,0 @@ }

@@ -9,2 +9,6 @@ 'use strict';

var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _deepEqual = require('deep-equal');

@@ -18,6 +22,2 @@

var _createLocation2 = require('./createLocation');
var _createLocation3 = _interopRequireDefault(_createLocation2);
var _runTransitionHook = require('./runTransitionHook');

@@ -35,2 +35,12 @@

function extractPath(string) {
var match = string.match(/^https?:\/\/[^\/]*/);
if (match == null) return string;
_warning2['default'](false, 'Location path must be pathname + query string only, not a fully qualified URL like "%s"', string);
return string.substring(match[0].length);
}
function locationsAreEqual(a, b) {

@@ -146,3 +156,4 @@ return a.pathname === b.pathname && a.search === b.search &&

if (ok) {
if (finishTransition(nextLocation) !== false) updateLocation(nextLocation);
finishTransition(nextLocation);
updateLocation(nextLocation);
} else if (location && nextLocation.action === _Actions.POP) {

@@ -178,25 +189,41 @@ var prevIndex = allKeys.indexOf(location.key);

function createPath(path) {
if (path == null || typeof path === 'string') return path;
return path;
}
var pathname = path.pathname;
var search = path.search;
var hash = path.hash;
function createHref(path) {
return path;
}
var result = pathname;
function createLocation() {
var path = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];
var state = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];
var action = arguments.length <= 2 || arguments[2] === undefined ? _Actions.POP : arguments[2];
var key = arguments.length <= 3 || arguments[3] === undefined ? createKey() : arguments[3];
if (search) result += search;
var pathname = extractPath(path);
var search = '';
var hash = '';
if (hash) result += hash;
var hashIndex = pathname.indexOf('#');
if (hashIndex !== -1) {
hash = pathname.substring(hashIndex);
pathname = pathname.substring(0, hashIndex);
}
return result;
}
var searchIndex = pathname.indexOf('?');
if (searchIndex !== -1) {
search = pathname.substring(searchIndex);
pathname = pathname.substring(0, searchIndex);
}
function createHref(path) {
return createPath(path);
}
if (pathname === '') pathname = '/';
function createLocation(path, state, action) {
var key = arguments.length <= 3 || arguments[3] === undefined ? createKey() : arguments[3];
return _createLocation3['default'](path, state, action, key);
return {
pathname: pathname,
search: search,
hash: hash,
state: state,
action: action,
key: key
};
}

@@ -203,0 +230,0 @@

@@ -7,8 +7,22 @@ 'use strict';

var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _deprecate = require('./deprecate');
var _deprecate2 = _interopRequireDefault(_deprecate);
var _Actions = require('./Actions');
var _parsePath = require('./parsePath');
function extractPath(string) {
var match = string.match(/https?:\/\/[^\/]*/);
var _parsePath2 = _interopRequireDefault(_parsePath);
if (match == null) return string;
_warning2['default'](false, 'Location path must be pathname + query string only, not a fully qualified URL like "%s"', string);
return string.substring(match[0].length);
}
function createLocation() {

@@ -20,8 +34,22 @@ var path = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];

if (typeof path === 'string') path = _parsePath2['default'](path);
path = extractPath(path);
var pathname = path.pathname || '/';
var search = path.search || '';
var hash = path.hash || '';
var pathname = path;
var search = '';
var hash = '';
var hashIndex = pathname.indexOf('#');
if (hashIndex !== -1) {
hash = pathname.substring(hashIndex);
pathname = pathname.substring(0, hashIndex);
}
var searchIndex = pathname.indexOf('?');
if (searchIndex !== -1) {
search = pathname.substring(searchIndex);
pathname = pathname.substring(0, searchIndex);
}
if (pathname === '') pathname = '/';
return {

@@ -37,3 +65,3 @@ pathname: pathname,

exports['default'] = createLocation;
exports['default'] = _deprecate2['default'](createLocation, 'Calling createLocation statically is deprecated; instead call the history.createLocation method - see docs/Location.md');
module.exports = exports['default'];

@@ -25,8 +25,2 @@ 'use strict';

var _createLocation2 = require('./createLocation');
var _createLocation3 = _interopRequireDefault(_createLocation2);
exports.createLocation = _createLocation3['default'];
var _useBasename2 = require('./useBasename');

@@ -58,2 +52,8 @@

var _createLocation2 = require('./createLocation');
var _createLocation3 = _interopRequireDefault(_createLocation2);
exports.createLocation = _createLocation3['default'];
var _enableBeforeUnload2 = require('./enableBeforeUnload');

@@ -60,0 +60,0 @@

@@ -11,4 +11,2 @@ 'use strict';

var _ExecutionEnvironment = require('./ExecutionEnvironment');
var _runTransitionHook = require('./runTransitionHook');

@@ -18,6 +16,2 @@

var _parsePath = require('./parsePath');
var _parsePath2 = _interopRequireDefault(_parsePath);
function useBasename(createHistory) {

@@ -32,10 +26,2 @@ return function () {

// Automatically use the value of <base href> in HTML
// documents as basename if it's not explicitly given.
if (basename == null && _ExecutionEnvironment.canUseDOM) {
var base = document.getElementsByTagName('base')[0];
if (base) basename = base.href;
}
function addBasename(location) {

@@ -57,14 +43,3 @@ if (basename && location.basename == null) {

function prependBasename(path) {
if (!basename) return path;
if (typeof path === 'string') path = _parsePath2['default'](path);
var pname = path.pathname;
var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';
var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;
var pathname = normalizedBasename + normalizedPathname;
return _extends({}, path, {
pathname: pathname
});
return basename ? basename + path : path;
}

@@ -71,0 +46,0 @@

@@ -19,6 +19,2 @@ 'use strict';

var _parsePath = require('./parsePath');
var _parsePath2 = _interopRequireDefault(_parsePath);
function defaultStringifyQuery(query) {

@@ -56,13 +52,7 @@ return _qs2['default'].stringify(query, { arrayFormat: 'brackets' });

function appendQuery(path, query) {
function appendQuery(pathname, query) {
var queryString = undefined;
if (!query || (queryString = stringifyQuery(query)) === '') return path;
if (query && (queryString = stringifyQuery(query)) !== '') return pathname + (pathname.indexOf('?') === -1 ? '?' : '&') + queryString;
if (typeof path === 'string') path = _parsePath2['default'](path);
var search = path.search + (path.search ? '&' : '?') + queryString;
return _extends({}, path, {
search: search
});
return pathname;
}

@@ -84,16 +74,16 @@

// Override all write methods with query-aware versions.
function pushState(state, path, query) {
return history.pushState(state, appendQuery(path, query));
function pushState(state, pathname, query) {
return history.pushState(state, appendQuery(pathname, query));
}
function replaceState(state, path, query) {
return history.replaceState(state, appendQuery(path, query));
function replaceState(state, pathname, query) {
return history.replaceState(state, appendQuery(pathname, query));
}
function createPath(path, query) {
return history.createPath(appendQuery(path, query));
function createPath(pathname, query) {
return history.createPath(appendQuery(pathname, query));
}
function createHref(path, query) {
return history.createHref(appendQuery(path, query));
function createHref(pathname, query) {
return history.createHref(appendQuery(pathname, query));
}

@@ -100,0 +90,0 @@

@@ -17,3 +17,3 @@ import invariant from 'invariant'

*/
function createBrowserHistory(options={}) {
function createBrowserHistory(options) {
invariant(

@@ -24,5 +24,3 @@ canUseDOM,

let { forceRefresh } = options
let isSupported = supportsHistory()
let useRefresh = !isSupported || forceRefresh

@@ -80,14 +78,14 @@ function getCurrentLocation(historyState) {

if (action === PUSH) {
if (useRefresh) {
if (isSupported) {
window.history.pushState(historyState, null, path)
} else {
// Use a full-page reload to preserve the URL.
window.location.href = path
return false // Prevent location update.
} else {
window.history.pushState(historyState, null, path)
}
} else { // REPLACE
if (useRefresh) {
if (isSupported) {
window.history.replaceState(historyState, null, path)
} else {
// Use a full-page reload to preserve the URL.
window.location.replace(path)
return false // Prevent location update.
} else {
window.history.replaceState(historyState, null, path)
}

@@ -94,0 +92,0 @@ }

@@ -0,5 +1,5 @@

import warning from 'warning'
import deepEqual from 'deep-equal'
import { loopAsync } from './AsyncUtils'
import { PUSH, REPLACE, POP } from './Actions'
import _createLocation from './createLocation'
import runTransitionHook from './runTransitionHook'

@@ -12,2 +12,17 @@ import deprecate from './deprecate'

function extractPath(string) {
let match = string.match(/^https?:\/\/[^\/]*/)
if (match == null)
return string
warning(
false,
'Location path must be pathname + query string only, not a fully qualified URL like "%s"',
string
)
return string.substring(match[0].length)
}
function locationsAreEqual(a, b) {

@@ -118,4 +133,4 @@ return a.pathname === b.pathname &&

if (ok) {
if (finishTransition(nextLocation) !== false)
updateLocation(nextLocation)
finishTransition(nextLocation)
updateLocation(nextLocation)
} else if (location && nextLocation.action === POP) {

@@ -156,26 +171,39 @@ let prevIndex = allKeys.indexOf(location.key)

function createPath(path) {
if (path == null || typeof path === 'string')
return path
return path
}
const { pathname, search, hash } = path
function createHref(path) {
return path
}
let result = pathname
function createLocation(path='/', state=null, action=POP, key=createKey()) {
let pathname = extractPath(path)
let search = ''
let hash = ''
if (search)
result += search
let hashIndex = pathname.indexOf('#')
if (hashIndex !== -1) {
hash = pathname.substring(hashIndex)
pathname = pathname.substring(0, hashIndex)
}
if (hash)
result += hash
let searchIndex = pathname.indexOf('?')
if (searchIndex !== -1) {
search = pathname.substring(searchIndex)
pathname = pathname.substring(0, searchIndex)
}
return result
}
if (pathname === '')
pathname = '/'
function createHref(path) {
return createPath(path)
return {
pathname,
search,
hash,
state,
action,
key
}
}
function createLocation(path, state, action, key=createKey()) {
return _createLocation(path, state, action, key)
}
// deprecated

@@ -182,0 +210,0 @@ function setState(state) {

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

import warning from 'warning'
import deprecate from './deprecate'
import { POP } from './Actions'
import parsePath from './parsePath'
function extractPath(string) {
let match = string.match(/https?:\/\/[^\/]*/)
if (match == null)
return string
warning(
false,
'Location path must be pathname + query string only, not a fully qualified URL like "%s"',
string
)
return string.substring(match[0].length)
}
function createLocation(path='/', state=null, action=POP, key=null) {
if (typeof path === 'string')
path = parsePath(path)
path = extractPath(path)
const pathname = path.pathname || '/'
const search = path.search || ''
const hash = path.hash || ''
let pathname = path
let search = ''
let hash = ''
let hashIndex = pathname.indexOf('#')
if (hashIndex !== -1) {
hash = pathname.substring(hashIndex)
pathname = pathname.substring(0, hashIndex)
}
let searchIndex = pathname.indexOf('?')
if (searchIndex !== -1) {
search = pathname.substring(searchIndex)
pathname = pathname.substring(0, searchIndex)
}
if (pathname === '')
pathname = '/'
return {

@@ -22,2 +52,5 @@ pathname,

export default createLocation
export default deprecate(
createLocation,
'Calling createLocation statically is deprecated; instead call the history.createLocation method - see docs/Location.md'
)
export createHistory from './createBrowserHistory'
export createHashHistory from './createHashHistory'
export createMemoryHistory from './createMemoryHistory'
export createLocation from './createLocation'

@@ -13,3 +12,4 @@ export useBasename from './useBasename'

// deprecated
export createLocation from './createLocation'
export enableBeforeUnload from './enableBeforeUnload'
export enableQueries from './enableQueries'

@@ -1,4 +0,2 @@

import { canUseDOM } from './ExecutionEnvironment'
import runTransitionHook from './runTransitionHook'
import parsePath from './parsePath'

@@ -10,11 +8,2 @@ function useBasename(createHistory) {

// Automatically use the value of <base href> in HTML
// documents as basename if it's not explicitly given.
if (basename == null && canUseDOM) {
let base = document.getElementsByTagName('base')[0]
if (base)
basename = base.href
}
function addBasename(location) {

@@ -37,17 +26,3 @@ if (basename && location.basename == null) {

function prependBasename(path) {
if (!basename)
return path
if (typeof path === 'string')
path = parsePath(path)
const pname = path.pathname
const normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/'
const normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname
const pathname = normalizedBasename + normalizedPathname
return {
...path,
pathname
}
return basename ? basename + path : path
}

@@ -54,0 +29,0 @@

import qs from 'qs'
import runTransitionHook from './runTransitionHook'
import parsePath from './parsePath'

@@ -35,16 +34,8 @@ function defaultStringifyQuery(query) {

function appendQuery(path, query) {
function appendQuery(pathname, query) {
let queryString
if (!query || (queryString = stringifyQuery(query)) === '')
return path
if (query && (queryString = stringifyQuery(query)) !== '')
return pathname + (pathname.indexOf('?') === -1 ? '?' : '&') + queryString
if (typeof path === 'string')
path = parsePath(path)
const search = path.search + (path.search ? '&' : '?') + queryString
return {
...path,
search
}
return pathname
}

@@ -66,16 +57,16 @@

// Override all write methods with query-aware versions.
function pushState(state, path, query) {
return history.pushState(state, appendQuery(path, query))
function pushState(state, pathname, query) {
return history.pushState(state, appendQuery(pathname, query))
}
function replaceState(state, path, query) {
return history.replaceState(state, appendQuery(path, query))
function replaceState(state, pathname, query) {
return history.replaceState(state, appendQuery(pathname, query))
}
function createPath(path, query) {
return history.createPath(appendQuery(path, query))
function createPath(pathname, query) {
return history.createPath(appendQuery(pathname, query))
}
function createHref(path, query) {
return history.createHref(appendQuery(path, query))
function createHref(pathname, query) {
return history.createHref(appendQuery(pathname, query))
}

@@ -82,0 +73,0 @@

{
"_args": [
[
"qs@^4.0.0",
"/Users/allan.hortle/Projects/bruce/node_modules/history"
]
],
"_from": "qs@>=4.0.0 <5.0.0",
"_id": "qs@4.0.0",
"_inCache": true,
"_location": "/history/qs",
"_nodeVersion": "0.12.4",
"_npmUser": {
"email": "quitlahok@gmail.com",
"name": "nlf"
},
"_npmVersion": "2.12.0",
"_phantomChildren": {},
"_requested": {
"name": "qs",
"raw": "qs@^4.0.0",
"rawSpec": "^4.0.0",
"scope": null,
"spec": ">=4.0.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
"/history"
],
"_resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz",
"_shasum": "c31d9b74ec27df75e543a86c78728ed8d4623607",
"_shrinkwrap": null,
"_spec": "qs@^4.0.0",
"_where": "/Users/allan.hortle/Projects/bruce/node_modules/history",
"bugs": {
"url": "https://github.com/hapijs/qs/issues"
},
"name": "qs",
"version": "4.0.0",
"description": "A querystring parser that supports nesting and arrays, with a depth limit",
"homepage": "https://github.com/hapijs/qs",
"main": "lib/index.js",
"dependencies": {},
"description": "A querystring parser that supports nesting and arrays, with a depth limit",
"devDependencies": {

@@ -45,28 +13,7 @@ "browserify": "^10.2.1",

},
"directories": {},
"dist": {
"shasum": "c31d9b74ec27df75e543a86c78728ed8d4623607",
"tarball": "http://registry.npmjs.org/qs/-/qs-4.0.0.tgz"
"scripts": {
"test": "lab -a code -t 100 -L",
"test-cov-html": "lab -a code -r html -o coverage.html",
"dist": "browserify --standalone Qs lib/index.js > dist/qs.js"
},
"gitHead": "e573dd08eae6cce30d2202704691a102dfa3782a",
"homepage": "https://github.com/hapijs/qs",
"installable": true,
"keywords": [
"qs",
"querystring"
],
"license": "BSD-3-Clause",
"main": "lib/index.js",
"maintainers": [
{
"name": "nlf",
"email": "quitlahok@gmail.com"
},
{
"name": "hueniverse",
"email": "eran@hueniverse.com"
}
],
"name": "qs",
"optionalDependencies": {},
"repository": {

@@ -76,8 +23,16 @@ "type": "git",

},
"scripts": {
"dist": "browserify --standalone Qs lib/index.js > dist/qs.js",
"test": "lab -a code -t 100 -L",
"test-cov-html": "lab -a code -r html -o coverage.html"
"keywords": [
"querystring",
"qs"
],
"license": "BSD-3-Clause",
"readme": "# qs\n\nA querystring parsing and stringifying library with some added security.\n\n[![Build Status](https://secure.travis-ci.org/hapijs/qs.svg)](http://travis-ci.org/hapijs/qs)\n\nLead Maintainer: [Nathan LaFreniere](https://github.com/nlf)\n\nThe **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring).\n\n## Usage\n\n```javascript\nvar Qs = require('qs');\n\nvar obj = Qs.parse('a=c'); // { a: 'c' }\nvar str = Qs.stringify(obj); // 'a=c'\n```\n\n### Parsing Objects\n\n```javascript\nQs.parse(string, [options]);\n```\n\n**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`, or prefixing the sub-key with a dot `.`.\nFor example, the string `'foo[bar]=baz'` converts to:\n\n```javascript\n{\n foo: {\n bar: 'baz'\n }\n}\n```\n\nWhen using the `plainObjects` option the parsed value is returned as a plain object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like:\n\n```javascript\nQs.parse('a.hasOwnProperty=b', { plainObjects: true });\n// { a: { hasOwnProperty: 'b' } }\n```\n\nBy default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option.\n\n```javascript\nQs.parse('a.hasOwnProperty=b', { allowPrototypes: true });\n// { a: { hasOwnProperty: 'b' } }\n```\n\nURI encoded strings work too:\n\n```javascript\nQs.parse('a%5Bb%5D=c');\n// { a: { b: 'c' } }\n```\n\nYou can also nest your objects, like `'foo[bar][baz]=foobarbaz'`:\n\n```javascript\n{\n foo: {\n bar: {\n baz: 'foobarbaz'\n }\n }\n}\n```\n\nBy default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like\n`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be:\n\n```javascript\n{\n a: {\n b: {\n c: {\n d: {\n e: {\n f: {\n '[g][h][i]': 'j'\n }\n }\n }\n }\n }\n }\n}\n```\n\nThis depth can be overridden by passing a `depth` option to `Qs.parse(string, [options])`:\n\n```javascript\nQs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 });\n// { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }\n```\n\nThe depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number.\n\nFor similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option:\n\n```javascript\nQs.parse('a=b&c=d', { parameterLimit: 1 });\n// { a: 'b' }\n```\n\nAn optional delimiter can also be passed:\n\n```javascript\nQs.parse('a=b;c=d', { delimiter: ';' });\n// { a: 'b', c: 'd' }\n```\n\nDelimiters can be a regular expression too:\n\n```javascript\nQs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ });\n// { a: 'b', c: 'd', e: 'f' }\n```\n\nOption `allowDots` can be used to disable dot notation:\n\n```javascript\nQs.parse('a.b=c', { allowDots: false });\n// { 'a.b': 'c' } }\n```\n\n### Parsing Arrays\n\n**qs** can also parse arrays using a similar `[]` notation:\n\n```javascript\nQs.parse('a[]=b&a[]=c');\n// { a: ['b', 'c'] }\n```\n\nYou may specify an index as well:\n\n```javascript\nQs.parse('a[1]=c&a[0]=b');\n// { a: ['b', 'c'] }\n```\n\nNote that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number\nto create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving\ntheir order:\n\n```javascript\nQs.parse('a[1]=b&a[15]=c');\n// { a: ['b', 'c'] }\n```\n\nNote that an empty string is also a value, and will be preserved:\n\n```javascript\nQs.parse('a[]=&a[]=b');\n// { a: ['', 'b'] }\nQs.parse('a[0]=b&a[1]=&a[2]=c');\n// { a: ['b', '', 'c'] }\n```\n\n**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will\ninstead be converted to an object with the index as the key:\n\n```javascript\nQs.parse('a[100]=b');\n// { a: { '100': 'b' } }\n```\n\nThis limit can be overridden by passing an `arrayLimit` option:\n\n```javascript\nQs.parse('a[1]=b', { arrayLimit: 0 });\n// { a: { '1': 'b' } }\n```\n\nTo disable array parsing entirely, set `parseArrays` to `false`.\n\n```javascript\nQs.parse('a[]=b', { parseArrays: false });\n// { a: { '0': 'b' } }\n```\n\nIf you mix notations, **qs** will merge the two items into an object:\n\n```javascript\nQs.parse('a[0]=b&a[b]=c');\n// { a: { '0': 'b', b: 'c' } }\n```\n\nYou can also create arrays of objects:\n\n```javascript\nQs.parse('a[][b]=c');\n// { a: [{ b: 'c' }] }\n```\n\n### Stringifying\n\n```javascript\nQs.stringify(object, [options]);\n```\n\nWhen stringifying, **qs** always URI encodes output. Objects are stringified as you would expect:\n\n```javascript\nQs.stringify({ a: 'b' });\n// 'a=b'\nQs.stringify({ a: { b: 'c' } });\n// 'a%5Bb%5D=c'\n```\n\nExamples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage.\n\nWhen arrays are stringified, by default they are given explicit indices:\n\n```javascript\nQs.stringify({ a: ['b', 'c', 'd'] });\n// 'a[0]=b&a[1]=c&a[2]=d'\n```\n\nYou may override this by setting the `indices` option to `false`:\n\n```javascript\nQs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });\n// 'a=b&a=c&a=d'\n```\n\nYou may use the `arrayFormat` option to specify the format of the output array\n\n```javascript\nQs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })\n// 'a[0]=b&a[1]=c'\nQs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })\n// 'a[]=b&a[]=c'\nQs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })\n// 'a=b&a=c'\n```\n\nEmpty strings and null values will omit the value, but the equals sign (=) remains in place:\n\n```javascript\nQs.stringify({ a: '' });\n// 'a='\n```\n\nProperties that are set to `undefined` will be omitted entirely:\n\n```javascript\nQs.stringify({ a: null, b: undefined });\n// 'a='\n```\n\nThe delimiter may be overridden with stringify as well:\n\n```javascript\nQs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' });\n// 'a=b;c=d'\n```\n\nFinally, you can use the `filter` option to restrict which keys will be included in the stringified output.\nIf you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you\npass an array, it will be used to select properties and array indices for stringification:\n\n```javascript\nfunction filterFunc(prefix, value) {\n if (prefix == 'b') {\n // Return an `undefined` value to omit a property.\n return;\n }\n if (prefix == 'e[f]') {\n return value.getTime();\n }\n if (prefix == 'e[g][0]') {\n return value * 2;\n }\n return value;\n}\nQs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc })\n// 'a=b&c=d&e[f]=123&e[g][0]=4'\nQs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] })\n// 'a=b&e=f'\nQs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] })\n// 'a[0]=b&a[2]=d'\n```\n\n### Handling of `null` values\n\nBy default, `null` values are treated like empty strings:\n\n```javascript\nQs.stringify({ a: null, b: '' });\n// 'a=&b='\n```\n\nParsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings.\n\n```javascript\nQs.parse('a&b=')\n// { a: '', b: '' }\n```\n\nTo distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null`\nvalues have no `=` sign:\n\n```javascript\nQs.stringify({ a: null, b: '' }, { strictNullHandling: true });\n// 'a&b='\n```\n\nTo parse values without `=` back to `null` use the `strictNullHandling` flag:\n\n```javascript\nQs.parse('a&b=', { strictNullHandling: true });\n// { a: null, b: '' }\n\n```\n",
"readmeFilename": "README.md",
"bugs": {
"url": "https://github.com/hapijs/qs/issues"
},
"version": "4.0.0"
"_id": "qs@4.0.0",
"_shasum": "c31d9b74ec27df75e543a86c78728ed8d4623607",
"_resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz",
"_from": "qs@>=4.0.0 <5.0.0"
}
{
"_args": [
[
"history@^1.12.4",
"/Users/allan.hortle/Projects/bruce"
]
],
"_from": "history@>=1.12.4 <2.0.0",
"_id": "history@1.13.0",
"_inCache": true,
"_location": "/history",
"_nodeVersion": "0.12.7",
"_npmUser": {
"email": "mjijackson@gmail.com",
"name": "mjackson"
"name": "history",
"version": "1.12.4",
"description": "A minimal, functional history implementation for JavaScript",
"main": "lib/index",
"repository": {
"type": "git",
"url": "git+https://github.com/rackt/history.git"
},
"_npmVersion": "3.3.1",
"_phantomChildren": {},
"_requested": {
"name": "history",
"raw": "history@^1.12.4",
"rawSpec": "^1.12.4",
"scope": null,
"spec": ">=1.12.4 <2.0.0",
"type": "range"
"bugs": {
"url": "https://github.com/rackt/history/issues"
},
"_requiredBy": [
"#DEV:/"
],
"_resolved": "https://registry.npmjs.org/history/-/history-1.13.0.tgz",
"_shasum": "ff75e23680d9f7962c5eb1e159a36d22ae87f4aa",
"_shrinkwrap": null,
"_spec": "history@^1.12.4",
"_where": "/Users/allan.hortle/Projects/bruce",
"scripts": {
"build": "babel ./modules --stage 0 --loose all -d lib --ignore '__tests__'",
"build-umd": "NODE_ENV=production webpack modules/index.js umd/History.js",
"build-min": "NODE_ENV=production webpack -p modules/index.js umd/History.min.js",
"lint": "eslint modules",
"start": "webpack-dev-server -d --content-base ./ --history-api-fallback --inline modules/index.js",
"test": "npm run lint && karma start",
"postinstall": "node npm-scripts/postinstall.js"
},
"authors": [
"Michael Jackson"
],
"bugs": {
"url": "https://github.com/rackt/history/issues"
},
"license": "MIT",
"dependencies": {

@@ -47,3 +32,2 @@ "deep-equal": "^1.0.0",

},
"description": "A minimal, functional history implementation for JavaScript",
"devDependencies": {

@@ -56,3 +40,2 @@ "assert": "1.3.0",

"eslint": "1.4.1",
"eslint-config-rackt": "1.0.0",
"eslint-plugin-react": "3.3.2",

@@ -75,10 +58,6 @@ "expect": "^1.12.0",

},
"directories": {},
"dist": {
"shasum": "ff75e23680d9f7962c5eb1e159a36d22ae87f4aa",
"tarball": "http://registry.npmjs.org/history/-/history-1.13.0.tgz"
},
"gitHead": "c1e1ea8435411bd4697a7b39b4dd86ab306ad075",
"homepage": "https://github.com/rackt/history#readme",
"installable": true,
"tags": [
"history",
"location"
],
"keywords": [

@@ -88,4 +67,17 @@ "history",

],
"license": "MIT",
"main": "lib/index",
"gitHead": "0d9ee0888288e689eb9a85db178bae2b23dcce6a",
"homepage": "https://github.com/rackt/history#readme",
"_id": "history@1.12.4",
"_shasum": "0af62c0f4f62e9ef2ac9b495ca226f57abd1ff07",
"_from": "history@*",
"_npmVersion": "3.3.6",
"_nodeVersion": "0.12.7",
"_npmUser": {
"name": "mjackson",
"email": "mjijackson@gmail.com"
},
"dist": {
"shasum": "0af62c0f4f62e9ef2ac9b495ca226f57abd1ff07",
"tarball": "http://registry.npmjs.org/history/-/history-1.12.4.tgz"
},
"maintainers": [

@@ -101,22 +93,4 @@ {

],
"name": "history",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/rackt/history.git"
},
"scripts": {
"build": "babel ./modules --stage 0 --loose all -d lib --ignore '__tests__'",
"build-min": "NODE_ENV=production webpack -p modules/index.js umd/History.min.js",
"build-umd": "NODE_ENV=production webpack modules/index.js umd/History.js",
"lint": "eslint modules",
"postinstall": "node ./npm-scripts/postinstall.js",
"start": "webpack-dev-server -d --content-base ./ --history-api-fallback --inline modules/index.js",
"test": "npm run lint && karma start"
},
"tags": [
"history",
"location"
],
"version": "1.13.0"
"directories": {},
"_resolved": "https://registry.npmjs.org/history/-/history-1.12.4.tgz"
}

@@ -5,15 +5,6 @@ # history

[![npm package](https://img.shields.io/npm/v/history.svg?style=flat-square)](https://www.npmjs.org/package/history)
[![#rackt on freenode](https://img.shields.io/badge/irc-rackt_on_freenode-61DAFB.svg?style=flat-square)](https://webchat.freenode.net/)
[![react-router channel on slack](https://img.shields.io/badge/slack-react--router@reactiflux-61DAFB.svg?style=flat-square)](http://www.reactiflux.com)
[`history`](https://www.npmjs.com/package/history) is a JavaScript library that lets you easily manage session history in browsers, testing environments, and (soon, via [React Native](https://facebook.github.io/react-native/)) native devices. `history` abstracts away the differences in these different platforms and provides a minimal API that lets you manage the history stack, navigate, confirm navigation, and persist state between sessions. `history` is library-agnostic and may easily be included in any JavaScript project.
## Docs & Help
- [Guides and API Docs](/docs#readme)
- [Changelog](/CHANGES.md)
- [#react-router @ Reactiflux](https://discord.gg/0ZcbPKXt5bYaNQ46)
- [Stack Overflow](http://stackoverflow.com/questions/tagged/react-router)
For questions and support, please visit [our channel on Reactiflux](https://discord.gg/0ZcbPKXt5bYaNQ46) or [Stack Overflow](http://stackoverflow.com/questions/tagged/react-router). The issue tracker is *exclusively* for bug reports and feature requests.
## Installation

@@ -20,0 +11,0 @@

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

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.History=t():e.History=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var a=n(17),o=r(a);t.createHistory=o["default"];var i=n(18),u=r(i);t.createHashHistory=u["default"];var s=n(19),f=r(s);t.createMemoryHistory=f["default"];var c=n(12),l=r(c);t.createLocation=l["default"];var d=n(22),p=r(d);t.useBasename=p["default"];var h=n(13),g=r(h);t.useBeforeUnload=g["default"];var y=n(14),v=r(y);t.useQueries=v["default"];var m=n(1),b=r(m);t.Actions=b["default"];var O=n(20),w=r(O);t.enableBeforeUnload=w["default"];var x=n(21),P=r(x);t.enableQueries=P["default"]},function(e,t){"use strict";t.__esModule=!0;var n="PUSH";t.PUSH=n;var r="REPLACE";t.REPLACE=r;var a="POP";t.POP=a,t["default"]={PUSH:n,REPLACE:r,POP:a}},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t){"use strict";t.__esModule=!0;var n=!("undefined"==typeof window||!window.document||!window.document.createElement);t.canUseDOM=n},function(e,t){"use strict";function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function r(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)}function a(){return window.location.href.split("#")[1]||""}function o(e){window.location.replace(window.location.pathname+window.location.search+"#"+e)}function i(){return window.location.pathname+window.location.search+window.location.hash}function u(e){e&&window.history.go(e)}function s(e,t){t(window.confirm(e))}function f(){var e=navigator.userAgent;return-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")?window.history&&"pushState"in window.history:!1}function c(){var e=navigator.userAgent;return-1===e.indexOf("Firefox")}t.__esModule=!0,t.addEventListener=n,t.removeEventListener=r,t.getHashPath=a,t.replaceHashPath=o,t.getWindowPath=i,t.go=u,t.getUserConfirmation=s,t.supportsHistory=f,t.supportsGoWithoutReloadUsingHash=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){return function(){return i["default"](!1,"[history] "+t),e.apply(this,arguments)}}t.__esModule=!0;var o=n(2),i=r(o);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";var r=function(e,t,n,r,a,o,i,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var f=[n,r,a,o,i,u],c=0;s=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return f[c++]}))}throw s.framesToPop=1,s}};e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:(u["default"](!1,'A path must be pathname + search + hash only, not a fully qualified URL like "%s"',e),e.substring(t[0].length))}function o(e){var t=a(e),n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substring(o),t=t.substring(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substring(i),t=t.substring(0,i)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}t.__esModule=!0;var i=n(2),u=r(i);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t,n){var r=e(t,n);e.length<2?n(r):i["default"](void 0===r,'You should not "return" in a transition hook with a callback argument; call the callback instead')}t.__esModule=!0;var o=n(2),i=r(o);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return f+e}function o(e,t){try{window.sessionStorage.setItem(a(e),JSON.stringify(t))}catch(n){if(n.name===c||0===window.sessionStorage.length)return void s["default"](!1,"[history] Unable to save state; sessionStorage is not available in Safari private mode");throw n}}function i(e){var t=window.sessionStorage.getItem(a(e));if(t)try{return JSON.parse(t)}catch(n){}return null}t.__esModule=!0,t.saveState=o,t.readState=i;var u=n(2),s=r(u),f="@@History/",c="QuotaExceededError"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){function t(e){return u["default"](s.canUseDOM,"DOM history needs a DOM"),n.listen(e)}var n=l["default"](o({getUserConfirmation:f.getUserConfirmation},e,{go:f.go}));return o({},n,{listen:t})}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(6),u=r(i),s=n(3),f=n(4),c=n(11),l=r(c);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return Math.random().toString(36).substr(2,e)}function o(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.key===t.key&&f["default"](e.state,t.state)}function i(){function e(e){return U.push(e),function(){U=U.filter(function(t){return t!==e})}}function t(){return R&&R.action===l.POP?B.indexOf(R.key):D?B.indexOf(D.key):-1}function n(e){var n=t();D=e,D.action===l.PUSH?B=[].concat(B.slice(0,n+1),[D.key]):D.action===l.REPLACE&&(B[n]=D.key),C.forEach(function(e){e(D)})}function r(e){if(C.push(e),D)e(D);else{var t=S();B=[t.key],n(t)}return function(){C=C.filter(function(t){return t!==e})}}function i(e,t){c.loopAsync(U.length,function(t,n,r){g["default"](U[t],e,function(e){null!=e?r(e):n()})},function(e){T&&"string"==typeof e?T(e,function(e){t(e!==!1)}):t(e!==!1)})}function s(e){D&&o(D,e)||(R=e,i(e,function(t){if(R===e)if(t)M(e)!==!1&&n(e);else if(D&&e.action===l.POP){var r=B.indexOf(D.key),a=B.indexOf(e.key);-1!==r&&-1!==a&&A(r-a)}}))}function f(e,t){s(x(t,e,l.PUSH,b()))}function d(e,t){s(x(t,e,l.REPLACE,b()))}function h(){A(-1)}function y(){A(1)}function b(){return a(E)}function O(e){if(null==e||"string"==typeof e)return e;var t=e.pathname,n=e.search,r=e.hash,a=t;return n&&(a+=n),r&&(a+=r),a}function w(e){return O(e)}function x(e,t,n){var r=arguments.length<=3||void 0===arguments[3]?b():arguments[3];return p["default"](e,t,n,r)}function P(e){D?(j(D,e),n(D)):j(S(),e)}function j(e,t){e.state=u({},e.state,t),L(e.key,e.state)}function _(e){-1===U.indexOf(e)&&U.push(e)}function H(e){U=U.filter(function(t){return t!==e})}var k=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],S=k.getCurrentLocation,M=k.finishTransition,L=k.saveState,A=k.go,E=k.keyLength,T=k.getUserConfirmation;"number"!=typeof E&&(E=m);var U=[],B=[],C=[],D=void 0,R=void 0;return{listenBefore:e,listen:r,transitionTo:s,pushState:f,replaceState:d,go:A,goBack:h,goForward:y,createKey:b,createPath:O,createHref:w,createLocation:x,setState:v["default"](P,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:v["default"](_,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:v["default"](H,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead")}}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=n(23),f=r(s),c=n(16),l=n(1),d=n(12),p=r(d),h=n(8),g=r(h),y=n(5),v=r(y),m=6;t["default"]=i,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?o.POP:arguments[2],r=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof e&&(e=u["default"](e));var a=e.pathname||"/",i=e.search||"",s=e.hash||"";return{pathname:a,search:i,hash:s,state:t,action:n,key:r}}t.__esModule=!0;var o=n(1),i=n(7),u=r(i);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){function t(t){var n=e();return"string"==typeof n?((t||window.event).returnValue=n,n):void 0}return c.addEventListener(window,"beforeunload",t),function(){c.removeEventListener(window,"beforeunload",t)}}function o(e){return function(t){function n(){for(var e=void 0,t=0,n=p.length;null==e&&n>t;++t)e=p[t].call();return e}function r(e){return p.push(e),1===p.length&&(f.canUseDOM?l=a(n):s["default"](!1,"listenBeforeUnload only works in DOM environments")),function(){p=p.filter(function(t){return t!==e}),0===p.length&&l&&(l(),l=null)}}function o(e){f.canUseDOM&&-1===p.indexOf(e)&&(p.push(e),1===p.length&&(l=a(n)))}function u(e){p.length>0&&(p=p.filter(function(t){return t!==e}),0===p.length&&l())}var c=e(t),l=void 0,p=[];return i({},c,{listenBeforeUnload:r,registerBeforeUnloadHook:d["default"](o,"registerBeforeUnloadHook is deprecated; use listenBeforeUnload instead"),unregisterBeforeUnloadHook:d["default"](u,"unregisterBeforeUnloadHook is deprecated; use the callback returned from listenBeforeUnload instead")})}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(2),s=r(u),f=n(3),c=n(4),l=n(5),d=r(l);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e){return c["default"].stringify(e,{arrayFormat:"brackets"})}function i(e){return c["default"].parse(e)}function u(e){return function(){function t(e){return null==e.query&&(e.query=m(e.search.substring(1))),e}function n(e,t){var n=void 0;if(!t||""===(n=v(t)))return e;"string"==typeof e&&(e=h["default"](e));var r=e.search+(e.search?"&":"?")+n;return s({},e,{search:r})}function r(e){return O.listenBefore(function(n,r){d["default"](e,t(n),r)})}function u(e){return O.listen(function(n){e(t(n))})}function f(e,t,r){return O.pushState(e,n(t,r))}function c(e,t,r){return O.replaceState(e,n(t,r))}function l(e,t){return O.createPath(n(e,t))}function p(e,t){return O.createHref(n(e,t))}function g(){return t(O.createLocation.apply(O,arguments))}var y=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],v=y.stringifyQuery,m=y.parseQueryString,b=a(y,["stringifyQuery","parseQueryString"]),O=e(b);return"function"!=typeof v&&(v=o),"function"!=typeof m&&(m=i),s({},O,{listenBefore:r,listen:u,pushState:f,replaceState:c,createPath:l,createHref:p,createLocation:g})}}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f=n(26),c=r(f),l=n(8),d=r(l),p=n(7),h=r(p);t["default"]=u,e.exports=t["default"]},function(e,t){var n={};n.hexTable=new Array(256);for(var r=0;256>r;++r)n.hexTable[r]="%"+((16>r?"0":"")+r.toString(16)).toUpperCase();t.arrayToObject=function(e,t){for(var n=t.plainObjects?Object.create(null):{},r=0,a=e.length;a>r;++r)"undefined"!=typeof e[r]&&(n[r]=e[r]);return n},t.merge=function(e,n,r){if(!n)return e;if("object"!=typeof n)return Array.isArray(e)?e.push(n):"object"==typeof e?e[n]=!0:e=[e,n],e;if("object"!=typeof e)return e=[e].concat(n);Array.isArray(e)&&!Array.isArray(n)&&(e=t.arrayToObject(e,r));for(var a=Object.keys(n),o=0,i=a.length;i>o;++o){var u=a[o],s=n[u];Object.prototype.hasOwnProperty.call(e,u)?e[u]=t.merge(e[u],s,r):e[u]=s}return e},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;"string"!=typeof e&&(e=""+e);for(var t="",r=0,a=e.length;a>r;++r){var o=e.charCodeAt(r);45===o||46===o||95===o||126===o||o>=48&&57>=o||o>=65&&90>=o||o>=97&&122>=o?t+=e[r]:128>o?t+=n.hexTable[o]:2048>o?t+=n.hexTable[192|o>>6]+n.hexTable[128|63&o]:55296>o||o>=57344?t+=n.hexTable[224|o>>12]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o]:(++r,o=65536+((1023&o)<<10|1023&e.charCodeAt(r)),t+=n.hexTable[240|o>>18]+n.hexTable[128|o>>12&63]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o])}return t},t.compact=function(e,n){if("object"!=typeof e||null===e)return e;n=n||[];var r=n.indexOf(e);if(-1!==r)return n[r];if(n.push(e),Array.isArray(e)){for(var a=[],o=0,i=e.length;i>o;++o)"undefined"!=typeof e[o]&&a.push(e[o]);return a}var u=Object.keys(e);for(o=0,i=u.length;i>o;++o){var s=u[o];e[s]=t.compact(e[s],n)}return e},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null===e||"undefined"==typeof e?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}},function(e,t){"use strict";function n(e,t,n){function r(){i=!0,n.apply(this,arguments)}function a(){i||(e>o?t.call(this,o++,a,r):r.apply(this,arguments))}var o=0,i=!1;a()}t.__esModule=!0,t.loopAsync=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){function e(e){e=e||window.history.state||{};var t=c.getWindowPath(),n=e,r=n.key,a=void 0;return r?a=l.readState(r):(a=null,r=m.createKey(),y&&window.history.replaceState(o({},e,{key:r}),null,t)),m.createLocation(t,a,void 0,r)}function t(t){function n(t){void 0!==t.state&&r(e(t.state))}var r=t.transitionTo;return c.addEventListener(window,"popstate",n),function(){c.removeEventListener(window,"popstate",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,a=e.hash,o=e.state,i=e.action,u=e.key;if(i!==s.POP){l.saveState(u,o);var f=(t||"")+n+r+a,c={key:u};if(i===s.PUSH){if(v)return window.location.href=f,!1;window.history.pushState(c,null,f)}else{if(v)return window.location.replace(f),!1;window.history.replaceState(c,null,f)}}}function r(e){1===++b&&(O=t(m));var n=m.listenBefore(e);return function(){n(),0===--b&&O()}}function a(e){1===++b&&(O=t(m));var n=m.listen(e);return function(){n(),0===--b&&O()}}function i(e){1===++b&&(O=t(m)),m.registerTransitionHook(e)}function d(e){m.unregisterTransitionHook(e),0===--b&&O()}var h=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];u["default"](f.canUseDOM,"Browser history needs a DOM");var g=h.forceRefresh,y=c.supportsHistory(),v=!y||g,m=p["default"](o({},h,{getCurrentLocation:e,finishTransition:n,saveState:l.saveState})),b=0,O=void 0;return o({},m,{listenBefore:r,listen:a,registerTransitionHook:i,unregisterTransitionHook:d})}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(6),u=r(i),s=n(1),f=n(3),c=n(4),l=n(9),d=n(10),p=r(d);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return"string"==typeof e&&"/"===e.charAt(0)}function o(){var e=v.getHashPath();return a(e)?!0:(v.replaceHashPath("/"+e),!1)}function i(e,t,n){return e+(-1===e.indexOf("?")?"?":"&")+(t+"="+n)}function u(e,t){return e.replace(new RegExp("[?&]?"+t+"=[a-zA-Z0-9]+"),"")}function s(e,t){var n=e.match(new RegExp("\\?.*?\\b"+t+"=(.+?)\\b"));return n&&n[1]}function f(){function e(){var e=v.getHashPath(),t=void 0,n=void 0;return _?(t=s(e,_),e=u(e,_),t?n=m.readState(t):(n=null,t=H.createKey(),v.replaceHashPath(i(e,_,t)))):t=n=null,H.createLocation(e,n,void 0,t)}function t(t){function n(){o()&&r(e())}var r=t.transitionTo;return o(),v.addEventListener(window,"hashchange",n),function(){v.removeEventListener(window,"hashchange",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,a=e.state,o=e.action,u=e.key;if(o!==g.POP){var s=(t||"")+n+r;_&&(s=i(s,_,u)),s===v.getHashPath()?d["default"](!1,"You cannot %s the same path using hash history",o):(_?m.saveState(u,a):e.key=e.state=null,o===g.PUSH?window.location.hash=s:v.replaceHashPath(s))}}function r(e){1===++k&&(S=t(H));var n=H.listenBefore(e);return function(){n(),0===--k&&S()}}function a(e){1===++k&&(S=t(H));var n=H.listen(e);return function(){n(),0===--k&&S()}}function f(e,t){d["default"](_||null==e,"You cannot use state without a queryKey it will be dropped"),H.pushState(e,t)}function l(e,t){d["default"](_||null==e,"You cannot use state without a queryKey it will be dropped"),H.replaceState(e,t)}function p(e){d["default"](M,"Hash history go(n) causes a full page reload in this browser"),H.go(e)}function b(e){return"#"+H.createHref(e)}function x(e){1===++k&&(S=t(H)),H.registerTransitionHook(e)}function P(e){H.unregisterTransitionHook(e),0===--k&&S()}var j=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];h["default"](y.canUseDOM,"Hash history needs a DOM");var _=j.queryKey;(void 0===_||_)&&(_="string"==typeof _?_:w);var H=O["default"](c({},j,{getCurrentLocation:e,finishTransition:n,saveState:m.saveState})),k=0,S=void 0,M=v.supportsGoWithoutReloadUsingHash();return c({},H,{listenBefore:r,listen:a,pushState:f,replaceState:l,go:p,createHref:b,registerTransitionHook:x,unregisterTransitionHook:P})}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=n(2),d=r(l),p=n(6),h=r(p),g=n(1),y=n(3),v=n(4),m=n(9),b=n(10),O=r(b),w="_k";t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return e.filter(function(e){return e.state}).reduce(function(e,t){return e[t.key]=t.state,e},{})}function o(){function e(e,t){y[e]=t}function t(e){return y[e]}function n(){var e=h[g],n=e.key,r=e.basename,a=e.pathname,o=e.search,i=(r||"")+a+(o||""),u=void 0;return n?u=t(n):(u=null,n=d.createKey(),e.key=n),d.createLocation(i,u,void 0,n)}function r(e){var t=g+e;return t>=0&&t<h.length}function o(e){if(e){s["default"](r(e),"Cannot go(%s) there is not enough history",e),g+=e;var t=n();d.transitionTo(i({},t,{action:f.POP}))}}function u(t){switch(t.action){case f.PUSH:g+=1,g<h.length&&h.splice(g),h.push(t),e(t.key,t.state);break;case f.REPLACE:h[g]=t,e(t.key,t.state)}}var c=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];Array.isArray(c)?c={entries:c}:"string"==typeof c&&(c={entries:[c]});var d=l["default"](i({},c,{getCurrentLocation:n,finishTransition:u,saveState:e,go:o})),p=c,h=p.entries,g=p.current;"string"==typeof h?h=[h]:Array.isArray(h)||(h=["/"]),h=h.map(function(e){var t=d.createKey();return"string"==typeof e?{pathname:e,key:t}:"object"==typeof e&&e?i({},e,{key:t}):void s["default"](!1,"Unable to create history entry from %s",e)}),null==g?g=h.length-1:s["default"](g>=0&&g<h.length,"Current index must be >= 0 and < %s, was %s",h.length,g);var y=a(h);return d}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(6),s=r(u),f=n(1),c=n(11),l=r(c);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var a=n(5),o=r(a),i=n(13),u=r(i);t["default"]=o["default"](u["default"],"enableBeforeUnload is deprecated, use useBeforeUnload instead"),e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var a=n(5),o=r(a),i=n(14),u=r(i);t["default"]=o["default"](u["default"],"enableQueries is deprecated, use useQueries instead"),e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e){return function(){function t(e){return y&&null==e.basename&&(0===e.pathname.indexOf(y)?(e.pathname=e.pathname.substring(y.length),e.basename=y,""===e.pathname&&(e.pathname="/")):e.basename=""),e}function n(e){if(!y)return e;"string"==typeof e&&(e=l["default"](e));var t=e.pathname,n="/"===y.slice(-1)?y:y+"/",r="/"===t.charAt(0)?t.slice(1):t,a=n+r;return i({},e,{pathname:a})}function r(e){return m.listenBefore(function(n,r){f["default"](e,t(n),r)})}function o(e){return m.listen(function(n){e(t(n))})}function s(e,t){m.pushState(e,n(t))}function c(e,t){m.replaceState(e,n(t))}function d(e){return m.createPath(n(e))}function p(e){return m.createHref(n(e))}function h(){return t(m.createLocation.apply(m,arguments))}var g=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],y=g.basename,v=a(g,["basename"]),m=e(v);if(null==y&&u.canUseDOM){var b=document.getElementsByTagName("base")[0];b&&(y=b.href)}return i({},m,{listenBefore:r,listen:o,pushState:s,replaceState:c,createPath:d,createHref:p,createLocation:h})}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(3),s=n(8),f=r(s),c=n(7),l=r(c);t["default"]=o,e.exports=t["default"]},function(e,t,n){function r(e){return null===e||void 0===e}function a(e){return e&&"object"==typeof e&&"number"==typeof e.length?"function"!=typeof e.copy||"function"!=typeof e.slice?!1:e.length>0&&"number"!=typeof e[0]?!1:!0:!1}function o(e,t,n){var o,c;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(s(e))return s(t)?(e=i.call(e),t=i.call(t),f(e,t,n)):!1;if(a(e)){if(!a(t))return!1;if(e.length!==t.length)return!1;for(o=0;o<e.length;o++)if(e[o]!==t[o])return!1;return!0}try{var l=u(e),d=u(t)}catch(p){return!1}if(l.length!=d.length)return!1;for(l.sort(),d.sort(),o=l.length-1;o>=0;o--)if(l[o]!=d[o])return!1;for(o=l.length-1;o>=0;o--)if(c=l[o],!f(e[c],t[c],n))return!1;return typeof e==typeof t}var i=Array.prototype.slice,u=n(25),s=n(24),f=e.exports=function(e,t,n){return n||(n={}),e===t?!0:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:o(e,t,n)}},function(e,t){function n(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var a="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();t=e.exports=a?n:r,t.supported=n,t.unsupported=r},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}t=e.exports="function"==typeof Object.keys?Object.keys:n,t.shim=n},function(e,t,n){var r=n(28),a=n(27);e.exports={stringify:r,parse:a}},function(e,t,n){var r=n(15),a={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1};a.parseValues=function(e,t){for(var n={},a=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),o=0,i=a.length;i>o;++o){var u=a[o],s=-1===u.indexOf("]=")?u.indexOf("="):u.indexOf("]=")+1;if(-1===s)n[r.decode(u)]="",t.strictNullHandling&&(n[r.decode(u)]=null);else{var f=r.decode(u.slice(0,s)),c=r.decode(u.slice(s+1));Object.prototype.hasOwnProperty.call(n,f)?n[f]=[].concat(n[f]).concat(c):n[f]=c}}return n},a.parseObject=function(e,t,n){if(!e.length)return t;var r,o=e.shift();if("[]"===o)r=[],r=r.concat(a.parseObject(e,t,n));else{r=n.plainObjects?Object.create(null):{};var i="["===o[0]&&"]"===o[o.length-1]?o.slice(1,o.length-1):o,u=parseInt(i,10),s=""+u;!isNaN(u)&&o!==i&&s===i&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(r=[],r[u]=a.parseObject(e,t,n)):r[i]=a.parseObject(e,t,n)}return r},a.parseKeys=function(e,t,n){if(e){n.allowDots&&(e=e.replace(/\.([^\.\[]+)/g,"[$1]"));var r=/^([^\[\]]*)/,o=/(\[[^\[\]]*\])/g,i=r.exec(e),u=[];if(i[1]){if(!n.plainObjects&&Object.prototype.hasOwnProperty(i[1])&&!n.allowPrototypes)return;u.push(i[1])}for(var s=0;null!==(i=o.exec(e))&&s<n.depth;)++s,(n.plainObjects||!Object.prototype.hasOwnProperty(i[1].replace(/\[|\]/g,""))||n.allowPrototypes)&&u.push(i[1]);return i&&u.push("["+e.slice(i.index)+"]"),a.parseObject(u,t,n)}},e.exports=function(e,t){if(t=t||{},t.delimiter="string"==typeof t.delimiter||r.isRegExp(t.delimiter)?t.delimiter:a.delimiter,t.depth="number"==typeof t.depth?t.depth:a.depth,t.arrayLimit="number"==typeof t.arrayLimit?t.arrayLimit:a.arrayLimit,t.parseArrays=t.parseArrays!==!1,t.allowDots=t.allowDots!==!1,t.plainObjects="boolean"==typeof t.plainObjects?t.plainObjects:a.plainObjects,t.allowPrototypes="boolean"==typeof t.allowPrototypes?t.allowPrototypes:a.allowPrototypes,t.parameterLimit="number"==typeof t.parameterLimit?t.parameterLimit:a.parameterLimit,t.strictNullHandling="boolean"==typeof t.strictNullHandling?t.strictNullHandling:a.strictNullHandling,""===e||null===e||"undefined"==typeof e)return t.plainObjects?Object.create(null):{};for(var n="string"==typeof e?a.parseValues(e,t):e,o=t.plainObjects?Object.create(null):{},i=Object.keys(n),u=0,s=i.length;s>u;++u){var f=i[u],c=a.parseKeys(f,n[f],t);o=r.merge(o,c,t)}return r.compact(o)}},function(e,t,n){var r=n(15),a={delimiter:"&",arrayPrefixGenerators:{brackets:function(e,t){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e,t){return e}},strictNullHandling:!1};a.stringify=function(e,t,n,o,i){if("function"==typeof i)e=i(t,e);else if(r.isBuffer(e))e=e.toString();else if(e instanceof Date)e=e.toISOString();else if(null===e){if(o)return r.encode(t);e=""}if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return[r.encode(t)+"="+r.encode(e)];var u=[];if("undefined"==typeof e)return u;for(var s=Array.isArray(i)?i:Object.keys(e),f=0,c=s.length;c>f;++f){var l=s[f];u=Array.isArray(e)?u.concat(a.stringify(e[l],n(t,l),n,o,i)):u.concat(a.stringify(e[l],t+"["+l+"]",n,o,i))}return u},e.exports=function(e,t){t=t||{};var n,r,o="undefined"==typeof t.delimiter?a.delimiter:t.delimiter,i="boolean"==typeof t.strictNullHandling?t.strictNullHandling:a.strictNullHandling;"function"==typeof t.filter?(r=t.filter,e=r("",e)):Array.isArray(t.filter)&&(n=r=t.filter);var u=[];if("object"!=typeof e||null===e)return"";var s;s=t.arrayFormat in a.arrayPrefixGenerators?t.arrayFormat:"indices"in t?t.indices?"indices":"repeat":"indices";var f=a.arrayPrefixGenerators[s];n||(n=Object.keys(e));for(var c=0,l=n.length;l>c;++c){var d=n[c];u=u.concat(a.stringify(e[d],d,f,i,r))}return u.join(o)}}])});
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.History=t():e.History=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var a=n(15),o=r(a);t.createHistory=o["default"];var i=n(16),u=r(i);t.createHashHistory=u["default"];var s=n(18),c=r(s);t.createMemoryHistory=c["default"];var f=n(21),l=r(f);t.useBasename=l["default"];var d=n(11),p=r(d);t.useBeforeUnload=p["default"];var g=n(12),h=r(g);t.useQueries=h["default"];var y=n(2),v=r(y);t.Actions=v["default"];var m=n(17),b=r(m);t.createLocation=b["default"];var O=n(19),w=r(O);t.enableBeforeUnload=w["default"];var x=n(20),P=r(x);t.enableQueries=P["default"]},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t){"use strict";t.__esModule=!0;var n="PUSH";t.PUSH=n;var r="REPLACE";t.REPLACE=r;var a="POP";t.POP=a,t["default"]={PUSH:n,REPLACE:r,POP:a}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){return function(){return i["default"](!1,"[history] "+t),e.apply(this,arguments)}}t.__esModule=!0;var o=n(1),i=r(o);t["default"]=a,e.exports=t["default"]},function(e,t){"use strict";function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function r(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)}function a(){return window.location.href.split("#")[1]||""}function o(e){window.location.replace(window.location.pathname+window.location.search+"#"+e)}function i(){return window.location.pathname+window.location.search+window.location.hash}function u(e){e&&window.history.go(e)}function s(e,t){t(window.confirm(e))}function c(){var e=navigator.userAgent;return-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")?window.history&&"pushState"in window.history:!1}function f(){var e=navigator.userAgent;return-1===e.indexOf("Firefox")}t.__esModule=!0,t.addEventListener=n,t.removeEventListener=r,t.getHashPath=a,t.replaceHashPath=o,t.getWindowPath=i,t.go=u,t.getUserConfirmation=s,t.supportsHistory=c,t.supportsGoWithoutReloadUsingHash=f},function(e,t){"use strict";t.__esModule=!0;var n=!("undefined"==typeof window||!window.document||!window.document.createElement);t.canUseDOM=n},function(e,t,n){"use strict";var r=function(e,t,n,r,a,o,i,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,u],f=0;s=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[f++]}))}throw s.framesToPop=1,s}};e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t,n){var r=e(t,n);e.length<2?n(r):i["default"](void 0===r,'You should not "return" in a transition hook with a callback argument; call the callback instead')}t.__esModule=!0;var o=n(1),i=r(o);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return c+e}function o(e,t){try{window.sessionStorage.setItem(a(e),JSON.stringify(t))}catch(n){if(n.name===f||0===window.sessionStorage.length)return void s["default"](!1,"[history] Unable to save state; sessionStorage is not available in Safari private mode");throw n}}function i(e){var t=window.sessionStorage.getItem(a(e));if(t)try{return JSON.parse(t)}catch(n){}return null}t.__esModule=!0,t.saveState=o,t.readState=i;var u=n(1),s=r(u),c="@@History/",f="QuotaExceededError"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){function t(e){return u["default"](s.canUseDOM,"DOM history needs a DOM"),n.listen(e)}var n=l["default"](o({getUserConfirmation:c.getUserConfirmation},e,{go:c.go}));return o({},n,{listen:t})}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(6),u=r(i),s=n(5),c=n(4),f=n(10),l=r(f);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return Math.random().toString(36).substr(2,e)}function o(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:(f["default"](!1,'Location path must be pathname + query string only, not a fully qualified URL like "%s"',e),e.substring(t[0].length))}function i(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.key===t.key&&d["default"](e.state,t.state)}function u(){function e(e){return T.push(e),function(){T=T.filter(function(t){return t!==e})}}function t(){return R&&R.action===g.POP?B.indexOf(R.key):D?B.indexOf(D.key):-1}function n(e){var n=t();D=e,D.action===g.PUSH?B=[].concat(B.slice(0,n+1),[D.key]):D.action===g.REPLACE&&(B[n]=D.key),C.forEach(function(e){e(D)})}function r(e){if(C.push(e),D)e(D);else{var t=S();B=[t.key],n(t)}return function(){C=C.filter(function(t){return t!==e})}}function u(e,t){p.loopAsync(T.length,function(t,n,r){y["default"](T[t],e,function(e){null!=e?r(e):n()})},function(e){U&&"string"==typeof e?U(e,function(e){t(e!==!1)}):t(e!==!1)})}function c(e){D&&i(D,e)||(R=e,u(e,function(t){if(R===e)if(t)L(e),n(e);else if(D&&e.action===g.POP){var r=B.indexOf(D.key),a=B.indexOf(e.key);-1!==r&&-1!==a&&A(r-a)}}))}function f(e,t){c(x(t,e,g.PUSH,v()))}function l(e,t){c(x(t,e,g.REPLACE,v()))}function d(){A(-1)}function h(){A(1)}function v(){return a(E)}function O(e){return e}function w(e){return e}function x(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?g.POP:arguments[2],r=arguments.length<=3||void 0===arguments[3]?v():arguments[3],a=o(e),i="",u="",s=a.indexOf("#");-1!==s&&(u=a.substring(s),a=a.substring(0,s));var c=a.indexOf("?");return-1!==c&&(i=a.substring(c),a=a.substring(0,c)),""===a&&(a="/"),{pathname:a,search:i,hash:u,state:t,action:n,key:r}}function P(e){D?(j(D,e),n(D)):j(S(),e)}function j(e,t){e.state=s({},e.state,t),M(e.key,e.state)}function _(e){-1===T.indexOf(e)&&T.push(e)}function k(e){T=T.filter(function(t){return t!==e})}var H=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],S=H.getCurrentLocation,L=H.finishTransition,M=H.saveState,A=H.go,E=H.keyLength,U=H.getUserConfirmation;"number"!=typeof E&&(E=b);var T=[],B=[],C=[],D=void 0,R=void 0;return{listenBefore:e,listen:r,transitionTo:c,pushState:f,replaceState:l,go:A,goBack:d,goForward:h,createKey:v,createPath:O,createHref:w,createLocation:x,setState:m["default"](P,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:m["default"](_,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:m["default"](k,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead")}}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=n(1),f=r(c),l=n(22),d=r(l),p=n(14),g=n(2),h=n(7),y=r(h),v=n(3),m=r(v),b=6;t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){function t(t){var n=e();return"string"==typeof n?((t||window.event).returnValue=n,n):void 0}return f.addEventListener(window,"beforeunload",t),function(){f.removeEventListener(window,"beforeunload",t)}}function o(e){return function(t){function n(){for(var e=void 0,t=0,n=p.length;null==e&&n>t;++t)e=p[t].call();return e}function r(e){return p.push(e),1===p.length&&(c.canUseDOM?l=a(n):s["default"](!1,"listenBeforeUnload only works in DOM environments")),function(){p=p.filter(function(t){return t!==e}),0===p.length&&l&&(l(),l=null)}}function o(e){c.canUseDOM&&-1===p.indexOf(e)&&(p.push(e),1===p.length&&(l=a(n)))}function u(e){p.length>0&&(p=p.filter(function(t){return t!==e}),0===p.length&&l())}var f=e(t),l=void 0,p=[];return i({},f,{listenBeforeUnload:r,registerBeforeUnloadHook:d["default"](o,"registerBeforeUnloadHook is deprecated; use listenBeforeUnload instead"),unregisterBeforeUnloadHook:d["default"](u,"unregisterBeforeUnloadHook is deprecated; use the callback returned from listenBeforeUnload instead")})}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(1),s=r(u),c=n(5),f=n(4),l=n(3),d=r(l);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e){return f["default"].stringify(e,{arrayFormat:"brackets"})}function i(e){return f["default"].parse(e)}function u(e){return function(){function t(e){return null==e.query&&(e.query=v(e.search.substring(1))),e}function n(e,t){var n=void 0;return t&&""!==(n=y(t))?e+(-1===e.indexOf("?")?"?":"&")+n:e}function r(e){return b.listenBefore(function(n,r){d["default"](e,t(n),r)})}function u(e){return b.listen(function(n){e(t(n))})}function c(e,t,r){return b.pushState(e,n(t,r))}function f(e,t,r){return b.replaceState(e,n(t,r))}function l(e,t){return b.createPath(n(e,t))}function p(e,t){return b.createHref(n(e,t))}function g(){return t(b.createLocation.apply(b,arguments))}var h=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],y=h.stringifyQuery,v=h.parseQueryString,m=a(h,["stringifyQuery","parseQueryString"]),b=e(m);return"function"!=typeof y&&(y=o),"function"!=typeof v&&(v=i),s({},b,{listenBefore:r,listen:u,pushState:c,replaceState:f,createPath:l,createHref:p,createLocation:g})}}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=n(25),f=r(c),l=n(7),d=r(l);t["default"]=u,e.exports=t["default"]},function(e,t){var n={};n.hexTable=new Array(256);for(var r=0;256>r;++r)n.hexTable[r]="%"+((16>r?"0":"")+r.toString(16)).toUpperCase();t.arrayToObject=function(e,t){for(var n=t.plainObjects?Object.create(null):{},r=0,a=e.length;a>r;++r)"undefined"!=typeof e[r]&&(n[r]=e[r]);return n},t.merge=function(e,n,r){if(!n)return e;if("object"!=typeof n)return Array.isArray(e)?e.push(n):"object"==typeof e?e[n]=!0:e=[e,n],e;if("object"!=typeof e)return e=[e].concat(n);Array.isArray(e)&&!Array.isArray(n)&&(e=t.arrayToObject(e,r));for(var a=Object.keys(n),o=0,i=a.length;i>o;++o){var u=a[o],s=n[u];Object.prototype.hasOwnProperty.call(e,u)?e[u]=t.merge(e[u],s,r):e[u]=s}return e},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;"string"!=typeof e&&(e=""+e);for(var t="",r=0,a=e.length;a>r;++r){var o=e.charCodeAt(r);45===o||46===o||95===o||126===o||o>=48&&57>=o||o>=65&&90>=o||o>=97&&122>=o?t+=e[r]:128>o?t+=n.hexTable[o]:2048>o?t+=n.hexTable[192|o>>6]+n.hexTable[128|63&o]:55296>o||o>=57344?t+=n.hexTable[224|o>>12]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o]:(++r,o=65536+((1023&o)<<10|1023&e.charCodeAt(r)),t+=n.hexTable[240|o>>18]+n.hexTable[128|o>>12&63]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o])}return t},t.compact=function(e,n){if("object"!=typeof e||null===e)return e;n=n||[];var r=n.indexOf(e);if(-1!==r)return n[r];if(n.push(e),Array.isArray(e)){for(var a=[],o=0,i=e.length;i>o;++o)"undefined"!=typeof e[o]&&a.push(e[o]);return a}var u=Object.keys(e);for(o=0,i=u.length;i>o;++o){var s=u[o];e[s]=t.compact(e[s],n)}return e},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null===e||"undefined"==typeof e?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}},function(e,t){"use strict";function n(e,t,n){function r(){i=!0,n.apply(this,arguments)}function a(){i||(e>o?t.call(this,o++,a,r):r.apply(this,arguments))}var o=0,i=!1;a()}t.__esModule=!0,t.loopAsync=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){function t(e){e=e||window.history.state||{};var t=f.getWindowPath(),n=e,r=n.key,a=void 0;return r?a=l.readState(r):(a=null,r=y.createKey(),h&&window.history.replaceState(o({},e,{key:r}),null,t)),y.createLocation(t,a,void 0,r)}function n(e){function n(e){void 0!==e.state&&r(t(e.state))}var r=e.transitionTo;return f.addEventListener(window,"popstate",n),function(){f.removeEventListener(window,"popstate",n)}}function r(e){var t=e.basename,n=e.pathname,r=e.search,a=e.hash,o=e.state,i=e.action,u=e.key;if(i!==s.POP){l.saveState(u,o);var c=(t||"")+n+r+a,f={key:u};i===s.PUSH?h?window.history.pushState(f,null,c):window.location.href=c:h?window.history.replaceState(f,null,c):window.location.replace(c)}}function a(e){1===++v&&(m=n(y));var t=y.listenBefore(e);return function(){t(),0===--v&&m()}}function i(e){1===++v&&(m=n(y));var t=y.listen(e);return function(){t(),0===--v&&m()}}function d(e){1===++v&&(m=n(y)),y.registerTransitionHook(e)}function g(e){y.unregisterTransitionHook(e),0===--v&&m()}u["default"](c.canUseDOM,"Browser history needs a DOM");var h=f.supportsHistory(),y=p["default"](o({},e,{getCurrentLocation:t,finishTransition:r,saveState:l.saveState})),v=0,m=void 0;return o({},y,{listenBefore:a,listen:i,registerTransitionHook:d,unregisterTransitionHook:g})}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(6),u=r(i),s=n(2),c=n(5),f=n(4),l=n(8),d=n(9),p=r(d);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return"string"==typeof e&&"/"===e.charAt(0)}function o(){var e=v.getHashPath();return a(e)?!0:(v.replaceHashPath("/"+e),!1)}function i(e,t,n){return e+(-1===e.indexOf("?")?"?":"&")+(t+"="+n)}function u(e,t){return e.replace(new RegExp("[?&]?"+t+"=[a-zA-Z0-9]+"),"")}function s(e,t){var n=e.match(new RegExp("\\?.*?\\b"+t+"=(.+?)\\b"));return n&&n[1]}function c(){function e(){var e=v.getHashPath(),t=void 0,n=void 0;return _?(t=s(e,_),e=u(e,_),t?n=m.readState(t):(n=null,t=k.createKey(),v.replaceHashPath(i(e,_,t)))):t=n=null,k.createLocation(e,n,void 0,t)}function t(t){function n(){o()&&r(e())}var r=t.transitionTo;return o(),v.addEventListener(window,"hashchange",n),function(){v.removeEventListener(window,"hashchange",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,a=e.state,o=e.action,u=e.key;if(o!==h.POP){var s=(t||"")+n+r;_&&(s=i(s,_,u)),s===v.getHashPath()?d["default"](!1,"You cannot %s the same path using hash history",o):(_?m.saveState(u,a):e.key=e.state=null,o===h.PUSH?window.location.hash=s:v.replaceHashPath(s))}}function r(e){1===++H&&(S=t(k));var n=k.listenBefore(e);return function(){n(),0===--H&&S()}}function a(e){1===++H&&(S=t(k));var n=k.listen(e);return function(){n(),0===--H&&S()}}function c(e,t){d["default"](_||null==e,"You cannot use state without a queryKey it will be dropped"),k.pushState(e,t)}function l(e,t){d["default"](_||null==e,"You cannot use state without a queryKey it will be dropped"),k.replaceState(e,t)}function p(e){d["default"](L,"Hash history go(n) causes a full page reload in this browser"),k.go(e)}function b(e){return"#"+k.createHref(e)}function x(e){1===++H&&(S=t(k)),k.registerTransitionHook(e)}function P(e){k.unregisterTransitionHook(e),0===--H&&S()}var j=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];g["default"](y.canUseDOM,"Hash history needs a DOM");var _=j.queryKey;(void 0===_||_)&&(_="string"==typeof _?_:w);var k=O["default"](f({},j,{getCurrentLocation:e,finishTransition:n,saveState:m.saveState})),H=0,S=void 0,L=v.supportsGoWithoutReloadUsingHash();return f({},k,{listenBefore:r,listen:a,pushState:c,replaceState:l,go:p,createHref:b,registerTransitionHook:x,unregisterTransitionHook:P})}t.__esModule=!0;var f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=n(1),d=r(l),p=n(6),g=r(p),h=n(2),y=n(5),v=n(4),m=n(8),b=n(9),O=r(b),w="_k";t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){var t=e.match(/https?:\/\/[^\/]*/);return null==t?e:(u["default"](!1,'Location path must be pathname + query string only, not a fully qualified URL like "%s"',e),e.substring(t[0].length))}function o(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?f.POP:arguments[2],r=arguments.length<=3||void 0===arguments[3]?null:arguments[3];e=a(e);var o=e,i="",u="",s=o.indexOf("#");-1!==s&&(u=o.substring(s),o=o.substring(0,s));var c=o.indexOf("?");return-1!==c&&(i=o.substring(c),o=o.substring(0,c)),""===o&&(o="/"),{pathname:o,search:i,hash:u,state:t,action:n,key:r}}t.__esModule=!0;var i=n(1),u=r(i),s=n(3),c=r(s),f=n(2);t["default"]=c["default"](o,"Calling createLocation statically is deprecated; instead call the history.createLocation method - see docs/Location.md"),e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){return e.filter(function(e){return e.state}).reduce(function(e,t){return e[t.key]=t.state,e},{})}function o(){function e(e,t){y[e]=t}function t(e){return y[e]}function n(){var e=g[h],n=e.key,r=e.basename,a=e.pathname,o=e.search,i=(r||"")+a+(o||""),u=void 0;return n?u=t(n):(u=null,n=d.createKey(),e.key=n),d.createLocation(i,u,void 0,n)}function r(e){var t=h+e;return t>=0&&t<g.length}function o(e){if(e){s["default"](r(e),"Cannot go(%s) there is not enough history",e),h+=e;var t=n();d.transitionTo(i({},t,{action:c.POP}))}}function u(t){switch(t.action){case c.PUSH:h+=1,h<g.length&&g.splice(h),g.push(t),e(t.key,t.state);break;case c.REPLACE:g[h]=t,e(t.key,t.state)}}var f=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];Array.isArray(f)?f={entries:f}:"string"==typeof f&&(f={entries:[f]});var d=l["default"](i({},f,{getCurrentLocation:n,finishTransition:u,saveState:e,go:o})),p=f,g=p.entries,h=p.current;"string"==typeof g?g=[g]:Array.isArray(g)||(g=["/"]),g=g.map(function(e){var t=d.createKey();return"string"==typeof e?{pathname:e,key:t}:"object"==typeof e&&e?i({},e,{key:t}):void s["default"](!1,"Unable to create history entry from %s",e)}),null==h?h=g.length-1:s["default"](h>=0&&h<g.length,"Current index must be >= 0 and < %s, was %s",g.length,h);var y=a(g);return d}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(6),s=r(u),c=n(2),f=n(10),l=r(f);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var a=n(3),o=r(a),i=n(11),u=r(i);t["default"]=o["default"](u["default"],"enableBeforeUnload is deprecated, use useBeforeUnload instead"),e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var a=n(3),o=r(a),i=n(12),u=r(i);t["default"]=o["default"](u["default"],"enableQueries is deprecated, use useQueries instead"),e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e){return function(){function t(e){return g&&null==e.basename&&(0===e.pathname.indexOf(g)?(e.pathname=e.pathname.substring(g.length),e.basename=g,""===e.pathname&&(e.pathname="/")):e.basename=""),e}function n(e){return g?g+e:e}function r(e){return y.listenBefore(function(n,r){s["default"](e,t(n),r)})}function o(e){return y.listen(function(n){e(t(n))})}function u(e,t){y.pushState(e,n(t))}function c(e,t){y.replaceState(e,n(t))}function f(e){return y.createPath(n(e))}function l(e){return y.createHref(n(e))}function d(){return t(y.createLocation.apply(y,arguments))}var p=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],g=p.basename,h=a(p,["basename"]),y=e(h);return i({},y,{listenBefore:r,listen:o,pushState:u,replaceState:c,createPath:f,createHref:l,createLocation:d})}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(7),s=r(u);t["default"]=o,e.exports=t["default"]},function(e,t,n){function r(e){return null===e||void 0===e}function a(e){return e&&"object"==typeof e&&"number"==typeof e.length?"function"!=typeof e.copy||"function"!=typeof e.slice?!1:e.length>0&&"number"!=typeof e[0]?!1:!0:!1}function o(e,t,n){var o,f;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(s(e))return s(t)?(e=i.call(e),t=i.call(t),c(e,t,n)):!1;if(a(e)){if(!a(t))return!1;if(e.length!==t.length)return!1;for(o=0;o<e.length;o++)if(e[o]!==t[o])return!1;return!0}try{var l=u(e),d=u(t)}catch(p){return!1}if(l.length!=d.length)return!1;for(l.sort(),d.sort(),o=l.length-1;o>=0;o--)if(l[o]!=d[o])return!1;for(o=l.length-1;o>=0;o--)if(f=l[o],!c(e[f],t[f],n))return!1;return typeof e==typeof t}var i=Array.prototype.slice,u=n(24),s=n(23),c=e.exports=function(e,t,n){return n||(n={}),e===t?!0:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:o(e,t,n)}},function(e,t){function n(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var a="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();t=e.exports=a?n:r,t.supported=n,t.unsupported=r},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}t=e.exports="function"==typeof Object.keys?Object.keys:n,t.shim=n},function(e,t,n){var r=n(27),a=n(26);e.exports={stringify:r,parse:a}},function(e,t,n){var r=n(13),a={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1};a.parseValues=function(e,t){for(var n={},a=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),o=0,i=a.length;i>o;++o){var u=a[o],s=-1===u.indexOf("]=")?u.indexOf("="):u.indexOf("]=")+1;if(-1===s)n[r.decode(u)]="",t.strictNullHandling&&(n[r.decode(u)]=null);else{var c=r.decode(u.slice(0,s)),f=r.decode(u.slice(s+1));Object.prototype.hasOwnProperty.call(n,c)?n[c]=[].concat(n[c]).concat(f):n[c]=f}}return n},a.parseObject=function(e,t,n){if(!e.length)return t;var r,o=e.shift();if("[]"===o)r=[],r=r.concat(a.parseObject(e,t,n));else{r=n.plainObjects?Object.create(null):{};var i="["===o[0]&&"]"===o[o.length-1]?o.slice(1,o.length-1):o,u=parseInt(i,10),s=""+u;!isNaN(u)&&o!==i&&s===i&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(r=[],r[u]=a.parseObject(e,t,n)):r[i]=a.parseObject(e,t,n)}return r},a.parseKeys=function(e,t,n){if(e){n.allowDots&&(e=e.replace(/\.([^\.\[]+)/g,"[$1]"));var r=/^([^\[\]]*)/,o=/(\[[^\[\]]*\])/g,i=r.exec(e),u=[];if(i[1]){if(!n.plainObjects&&Object.prototype.hasOwnProperty(i[1])&&!n.allowPrototypes)return;u.push(i[1])}for(var s=0;null!==(i=o.exec(e))&&s<n.depth;)++s,(n.plainObjects||!Object.prototype.hasOwnProperty(i[1].replace(/\[|\]/g,""))||n.allowPrototypes)&&u.push(i[1]);return i&&u.push("["+e.slice(i.index)+"]"),a.parseObject(u,t,n)}},e.exports=function(e,t){if(t=t||{},t.delimiter="string"==typeof t.delimiter||r.isRegExp(t.delimiter)?t.delimiter:a.delimiter,t.depth="number"==typeof t.depth?t.depth:a.depth,t.arrayLimit="number"==typeof t.arrayLimit?t.arrayLimit:a.arrayLimit,t.parseArrays=t.parseArrays!==!1,t.allowDots=t.allowDots!==!1,t.plainObjects="boolean"==typeof t.plainObjects?t.plainObjects:a.plainObjects,t.allowPrototypes="boolean"==typeof t.allowPrototypes?t.allowPrototypes:a.allowPrototypes,t.parameterLimit="number"==typeof t.parameterLimit?t.parameterLimit:a.parameterLimit,t.strictNullHandling="boolean"==typeof t.strictNullHandling?t.strictNullHandling:a.strictNullHandling,""===e||null===e||"undefined"==typeof e)return t.plainObjects?Object.create(null):{};for(var n="string"==typeof e?a.parseValues(e,t):e,o=t.plainObjects?Object.create(null):{},i=Object.keys(n),u=0,s=i.length;s>u;++u){var c=i[u],f=a.parseKeys(c,n[c],t);o=r.merge(o,f,t)}return r.compact(o)}},function(e,t,n){var r=n(13),a={delimiter:"&",arrayPrefixGenerators:{brackets:function(e,t){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e,t){return e}},strictNullHandling:!1};a.stringify=function(e,t,n,o,i){if("function"==typeof i)e=i(t,e);else if(r.isBuffer(e))e=e.toString();else if(e instanceof Date)e=e.toISOString();else if(null===e){if(o)return r.encode(t);e=""}if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return[r.encode(t)+"="+r.encode(e)];var u=[];if("undefined"==typeof e)return u;for(var s=Array.isArray(i)?i:Object.keys(e),c=0,f=s.length;f>c;++c){var l=s[c];u=Array.isArray(e)?u.concat(a.stringify(e[l],n(t,l),n,o,i)):u.concat(a.stringify(e[l],t+"["+l+"]",n,o,i))}return u},e.exports=function(e,t){t=t||{};var n,r,o="undefined"==typeof t.delimiter?a.delimiter:t.delimiter,i="boolean"==typeof t.strictNullHandling?t.strictNullHandling:a.strictNullHandling;"function"==typeof t.filter?(r=t.filter,e=r("",e)):Array.isArray(t.filter)&&(n=r=t.filter);var u=[];if("object"!=typeof e||null===e)return"";var s;s=t.arrayFormat in a.arrayPrefixGenerators?t.arrayFormat:"indices"in t?t.indices?"indices":"repeat":"indices";var c=a.arrayPrefixGenerators[s];n||(n=Object.keys(e));for(var f=0,l=n.length;l>f;++f){var d=n[f];u=u.concat(a.stringify(e[d],d,c,i,r))}return u.join(o)}}])});
{
"name": "bruce",
"title": "Bruce",
"version": "0.2.1",
"version": "0.3.0",
"description": "SCSS Helpers",

@@ -6,0 +6,0 @@ "repository": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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