@merkur/plugin-router 0.30.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,24 @@
1
- <center>
2
- <h1 style="font-family: Helvetica, Arial, sans-serif; font-size:60px;">Merkur</h1>
3
- </center>
1
+ <p align="center">
2
+ <a href="https://merkur.js.org/docs/getting-started" title="Getting started">
3
+ <img src="https://raw.githubusercontent.com/mjancarik/merkur/master/images/merkur-illustration.png" width="100px" height="100px" alt="Merkur illustration"/>
4
+ </a>
5
+ </p>
6
+
7
+ # Merkur
4
8
 
5
- [![Build Status](https://github.com/mjancarik/merkur/workflows/CI/badge.svg)](https://travis-ci.com/mjancarik/merkur)
6
- [![NPM package version](https://img.shields.io/npm/v/@merkur/plugin-router/latest.svg)](https://www.npmjs.com/package/@merkur/core)
7
- ![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@merkur/plugin-router/latest)
9
+ [![Build Status](https://github.com/mjancarik/merkur/workflows/CI/badge.svg)](https://github.com/mjancarik/merkur/actions/workflows/ci.yml)
10
+ [![NPM package version](https://img.shields.io/npm/v/@merkur/core/latest.svg)](https://www.npmjs.com/package/@merkur/core)
11
+ ![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@merkur/core/latest)
8
12
  [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
9
13
 
10
- # Merkur
14
+ The [Merkur](https://merkur.js.org/) is tiny extensible javascript library for front-end microservices(micro frontends). It allows by default server side rendering for loading performance boost. You can connect it with other frameworks or languages because merkur defines easy API. You can use one of six predefined template's library [Preact](https://preactjs.com/), [µhtml](https://github.com/WebReflection/uhtml#readme), [Svelte](https://svelte.dev/) and [vanilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) but you can easily extend for others.
11
15
 
12
- The [Merkur](https://merkur.js.org/) is tiny extensible javascript library for front-end microservices. It allows by default server side rendering for loading performance boost. You can connect it with other frameworks or languages because merkur defines easy API. You can use one of four predefined template's library [React](https://reactjs.org/), [Preact](https://preactjs.com/), [hyperHTML](https://viperhtml.js.org/hyper.html) and [µhtml](https://github.com/WebReflection/uhtml#readme) but you can easily extend for others.
16
+ ## Features
17
+ - Flexible templating engine
18
+ - Usable with all tech stacks
19
+ - SSR-ready by default
20
+ - Easy extensible with plugins
21
+ - Tiny - 1 KB minified + gzipped
13
22
 
14
23
  ## Getting started
15
24
 
@@ -20,37 +29,19 @@ cd name
20
29
 
21
30
  npm run dev // Point your browser at http://localhost:4444/
22
31
  ```
23
- <p align="center">
24
- <img alt="Merkur example, hello widget" src="https://raw.githubusercontent.com/mjancarik/merkur/master/images/hello-widget.png" />
25
- </p>
32
+ ![alt text](https://raw.githubusercontent.com/mjancarik/merkur/master/images/hello-widget.png "Merkur example, hello widget")
33
+ ## Documentation
34
+
35
+ To check out [live demo](https://merkur.js.org/demo) and [docs](https://merkur.js.org/docs), visit [https://merkur.js.org](https://merkur.js.org).
36
+
37
+ ## Contribution
38
+
39
+ Contribute to this project via [Pull-Requests](https://github.com/mjancarik/merkur/pulls).
40
+
41
+ We are following [Conventional Commits Specification](https://www.conventionalcommits.org/en/v1.0.0/#summary). To simplify the commit process, you can use `npm run commit` command. It opens an interactive interface, which should help you with commit message composition.
42
+
43
+ Thank you to all the people who already contributed to Merkur!
26
44
 
27
- You can see live [demo](https://merkur.js.org/demo).
28
-
29
- ## API
30
-
31
- Point your browser at `http://localhost:4444/widget`.
32
-
33
- ```json
34
- {
35
- "name":"my-widget",
36
- "version":"0.0.1",
37
- "props":{},
38
- "state":{"counter":0},
39
- "assets":[
40
- {
41
- "name": "widget.js",
42
- "type": "script",
43
- "source": {
44
- "es9": "http://localhost:4444/static/es9/widget.6961af42bfa3596bb147.js",
45
- "es5": "http://localhost:4444/static/es5/widget.31c5090d8c961e43fade.js"
46
- }
47
- },
48
- {
49
- "name": "widget.css",
50
- "type": "stylesheet",
51
- "source": "http://localhost:4444/static/es9/widget.814e0cb568c7ddc0725d.css"
52
- }
53
- ],
54
- "html":"\n <div class=\"merkur__page\">\n <div class=\"merkur__headline\">\n <div class=\"merkur__view\">\n \n <div class=\"merkur__icon\">\n <img src=\"http://localhost:4444/static/merkur-icon.png\" alt=\"Merkur\">\n </div>\n \n \n <h1>Welcome to <a href=\"https://github.com/mjancarik/merkur\">MERKUR</a>,<br> a javascript library for front-end microservices.</h1>\n \n \n <p>The widget's name is <strong>my-widget@0.0.1</strong>.</p>\n \n </div>\n </div>\n <div class=\"merkur__view\">\n \n <div>\n <h2>Counter widget:</h2>\n <p>Count: 0</p>\n <button onclick=\"return ((...rest) =&gt; {\n return originalFunction(widget, ...rest);\n }).call(this, event)\">\n increase counter\n </button>\n <button onclick=\"return ((...rest) =&gt; {\n return originalFunction(widget, ...rest);\n }).call(this, event)\">\n reset counter\n </button>\n </div>\n \n </div>\n </div>\n "
55
- }
56
- ```
45
+ <a href="https://github.com/mjancarik/merkur/graphs/contributors">
46
+ <img src="https://contrib.rocks/image?repo=mjancarik/merkur" />
47
+ </a>
@@ -6,4 +6,4 @@ var RouterEvents = Object.freeze({
6
6
  REDIRECT: '@merkur/plugin-router.redirect',
7
7
  });
8
8
 
9
- exports["default"] = RouterEvents;
9
+ exports.default = RouterEvents;
@@ -6,4 +6,4 @@ Object.defineProperty(exports, '__esModule', {
6
6
  var RouterEvents = Object.freeze({
7
7
  REDIRECT: '@merkur/plugin-router.redirect'
8
8
  });
9
- exports["default"] = RouterEvents;
9
+ exports.default = RouterEvents;
@@ -6,4 +6,4 @@ var RouterEvents = Object.freeze({
6
6
  REDIRECT: '@merkur/plugin-router.redirect',
7
7
  });
8
8
 
9
- exports["default"] = RouterEvents;
9
+ exports.default = RouterEvents;
package/lib/index.cjs CHANGED
@@ -1,16 +1,9 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var core = require('@merkur/core');
6
4
  var UniversalRouter = require('universal-router');
7
5
  var generateUrls = require('universal-router/generateUrls');
8
6
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var UniversalRouter__default = /*#__PURE__*/_interopDefaultLegacy(UniversalRouter);
12
- var generateUrls__default = /*#__PURE__*/_interopDefaultLegacy(generateUrls);
13
-
14
7
  var RouterEvents = Object.freeze({
15
8
  REDIRECT: '@merkur/plugin-router.redirect',
16
9
  });
@@ -22,8 +15,8 @@ const ENV =
22
15
  : DEV;
23
16
 
24
17
  function createRouter(widget, routes, options) {
25
- widget.$dependencies.router = new UniversalRouter__default["default"](routes, options);
26
- widget.$dependencies.link = generateUrls__default["default"](widget.$dependencies.router);
18
+ widget.$dependencies.router = new UniversalRouter(routes, options);
19
+ widget.$dependencies.link = generateUrls(widget.$dependencies.router);
27
20
  }
28
21
 
29
22
  function routerPlugin() {
package/lib/index.es9.cjs CHANGED
@@ -1,26 +1,16 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- });
6
3
  var core = require('@merkur/core');
7
4
  var UniversalRouter = require('universal-router');
8
5
  var generateUrls = require('universal-router/generateUrls');
9
- function _interopDefaultLegacy(e) {
10
- return e && typeof e === 'object' && 'default' in e ? e : {
11
- 'default': e
12
- };
13
- }
14
- var UniversalRouter__default = /*#__PURE__*/_interopDefaultLegacy(UniversalRouter);
15
- var generateUrls__default = /*#__PURE__*/_interopDefaultLegacy(generateUrls);
16
6
  var RouterEvents = Object.freeze({
17
7
  REDIRECT: '@merkur/plugin-router.redirect'
18
8
  });
19
9
  const DEV = 'development';
20
10
  const ENV = typeof process !== 'undefined' && process && process.env ? process.env.NODE_ENV : DEV;
21
11
  function createRouter(widget, routes, options) {
22
- widget.$dependencies.router = new UniversalRouter__default["default"](routes, options);
23
- widget.$dependencies.link = generateUrls__default["default"](widget.$dependencies.router);
12
+ widget.$dependencies.router = new UniversalRouter(routes, options);
13
+ widget.$dependencies.link = generateUrls(widget.$dependencies.router);
24
14
  }
25
15
  function routerPlugin() {
26
16
  return {
package/lib/index.js CHANGED
@@ -1,16 +1,9 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var core = require('@merkur/core');
6
4
  var UniversalRouter = require('universal-router');
7
5
  var generateUrls = require('universal-router/generateUrls');
8
6
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var UniversalRouter__default = /*#__PURE__*/_interopDefaultLegacy(UniversalRouter);
12
- var generateUrls__default = /*#__PURE__*/_interopDefaultLegacy(generateUrls);
13
-
14
7
  var RouterEvents = Object.freeze({
15
8
  REDIRECT: '@merkur/plugin-router.redirect',
16
9
  });
@@ -22,8 +15,8 @@ const ENV =
22
15
  : DEV;
23
16
 
24
17
  function createRouter(widget, routes, options) {
25
- widget.$dependencies.router = new UniversalRouter__default["default"](routes, options);
26
- widget.$dependencies.link = generateUrls__default["default"](widget.$dependencies.router);
18
+ widget.$dependencies.router = new UniversalRouter(routes, options);
19
+ widget.$dependencies.link = generateUrls(widget.$dependencies.router);
27
20
  }
28
21
 
29
22
  function routerPlugin() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@merkur/plugin-router",
3
- "version": "0.30.0",
3
+ "version": "0.32.0",
4
4
  "description": "Merkur router plugin.",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",
@@ -20,20 +20,20 @@
20
20
  "./lib/RouterEvents.es9.cjs": "./lib/RouterEvents.es9.cjs"
21
21
  },
22
22
  "browser": {
23
- "./lib/index.js": "./lib/index.es5.js",
24
- "./lib/index.cjs": "./lib/index.es5.js",
23
+ "./lib/index.js": "./lib/index.js",
24
+ "./lib/index.cjs": "./lib/index.cjs",
25
25
  "./lib/index.mjs": "./lib/index.mjs",
26
26
  "./lib/index.es9.mjs": "./lib/index.es9.mjs",
27
- "./lib/RouterEvents.js": "./lib/RouterEvents.es5.js",
28
- "./lib/RouterEvents.cjs": "./lib/RouterEvents.es5.js",
27
+ "./lib/RouterEvents.js": "./lib/RouterEvents.js",
28
+ "./lib/RouterEvents.cjs": "./lib/RouterEvents.cjs",
29
29
  "./lib/RouterEvents.mjs": "./lib/RouterEvents.mjs",
30
30
  "./lib/RouterEvents.es9.mjs": "./lib/RouterEvents.es9.mjs"
31
31
  },
32
32
  "scripts": {
33
33
  "preversion": "npm test",
34
- "test": "../../node_modules/.bin/jest --no-watchman -c ./jest.config.js",
35
- "test:es:version": "../../node_modules/.bin/es-check es5 ./lib/index.es5.js && ../../node_modules/.bin/es-check es11 ./lib/index.mjs --module && ../../node_modules/.bin/es-check es9 ./lib/index.es9.mjs --module && ../../node_modules/.bin/es-check es9 ./lib/index.es9.cjs --module",
36
- "build": "node_modules/.bin/rollup -c",
34
+ "test": "jest --no-watchman -c ./jest.config.js",
35
+ "test:es:version": "es-check es11 ./lib/index.mjs --module && es-check es9 ./lib/index.es9.mjs --module && es-check es9 ./lib/index.es9.cjs --module",
36
+ "build": "rollup -c rollup.config.mjs",
37
37
  "prepare": "npm run build"
38
38
  },
39
39
  "repository": {
@@ -56,10 +56,9 @@
56
56
  },
57
57
  "homepage": "https://merkur.js.org/",
58
58
  "devDependencies": {
59
- "@merkur/core": "^0.30.0",
60
- "@merkur/plugin-component": "^0.30.0",
61
- "@merkur/plugin-event-emitter": "^0.30.0",
62
- "rollup": "^2.70.2"
59
+ "@merkur/core": "^0.32.0",
60
+ "@merkur/plugin-component": "^0.32.0",
61
+ "@merkur/plugin-event-emitter": "^0.32.0"
63
62
  },
64
63
  "peerDependencies": {
65
64
  "@merkur/core": "*",
@@ -69,5 +68,5 @@
69
68
  "dependencies": {
70
69
  "universal-router": "^9.1.0"
71
70
  },
72
- "gitHead": "13a0ac12f77f381b1d829cffe9b21d453c26ca7a"
71
+ "gitHead": "c45ffe12725e3c4afcf7f13869a25a96f6807055"
73
72
  }
@@ -0,0 +1,26 @@
1
+ import {
2
+ createRollupESConfig,
3
+ createRollupES9Config,
4
+ } from '../../createRollupConfig.mjs';
5
+
6
+ let esConfig = createRollupESConfig();
7
+ let es9Config = createRollupES9Config();
8
+
9
+ let routerEventsConfig = {
10
+ input: 'src/RouterEvents.js',
11
+ };
12
+
13
+ let routerEventsEsConfig = { ...esConfig, ...routerEventsConfig };
14
+ let routerEventsEs9Config = { ...es9Config, ...routerEventsConfig };
15
+
16
+ let extendedExternal = ['universal-router', 'universal-router/generateUrls'];
17
+
18
+ esConfig.external = [...esConfig.external, ...extendedExternal];
19
+ es9Config.external = [...es9Config.external, ...extendedExternal];
20
+
21
+ export default [
22
+ esConfig,
23
+ es9Config,
24
+ routerEventsEsConfig,
25
+ routerEventsEs9Config,
26
+ ];
@@ -1 +0,0 @@
1
- "use strict";require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.object.freeze.js"),Object.defineProperty(exports,"__esModule",{value:!0});var e=Object.freeze({REDIRECT:"@merkur/plugin-router.redirect"});exports.default=e;
package/lib/index.es5.js DELETED
@@ -1 +0,0 @@
1
- "use strict";function e(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,o,i=[],u=!0,a=!1;try{for(t=t.call(e);!(u=(n=t.next()).done)&&(i.push(n.value),!r||i.length!==r);u=!0);}catch(e){a=!0,o=e}finally{try{u||null==t.return||t.return()}finally{if(a)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function t(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */t=function(){return e};var e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,r,t){e[r]=t.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{l({},"")}catch(e){l=function(e,r,t){return e[r]=t}}function f(e,r,t,n){var i=r&&r.prototype instanceof d?r:d,u=Object.create(i.prototype),a=new L(n||[]);return o(u,"_invoke",{value:k(e,t,a)}),u}function p(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var h={};function d(){}function y(){}function m(){}var v={};l(v,u,(function(){return this}));var g=Object.getPrototypeOf,b=g&&g(g(A([])));b&&b!==r&&n.call(b,u)&&(v=b);var j=m.prototype=d.prototype=Object.create(v);function w(e){["next","throw","return"].forEach((function(r){l(e,r,(function(e){return this._invoke(r,e)}))}))}function x(e,r){function t(o,i,u,a){var c=p(e[o],e,i);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==s(f)&&n.call(f,"__await")?r.resolve(f.__await).then((function(e){t("next",e,u,a)}),(function(e){t("throw",e,u,a)})):r.resolve(f).then((function(e){l.value=e,u(l)}),(function(e){return t("throw",e,u,a)}))}a(c.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new r((function(r,o){t(e,n,r,o)}))}return i=i?i.then(o,o):o()}})}function k(e,r,t){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return P()}for(t.method=o,t.arg=i;;){var u=t.delegate;if(u){var a=E(u,t);if(a){if(a===h)continue;return a}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var s=p(e,r,t);if("normal"===s.type){if(n=t.done?"completed":"suspendedYield",s.arg===h)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(n="completed",t.method="throw",t.arg=s.arg)}}}function E(e,r){var t=e.iterator[r.method];if(void 0===t){if(r.delegate=null,"throw"===r.method){if(e.iterator.return&&(r.method="return",r.arg=void 0,E(e,r),"throw"===r.method))return h;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var n=p(t,e.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,h;var o=n.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,h):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function O(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function q(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function A(e){if(e){var r=e[u];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var t=-1,o=function r(){for(;++t<e.length;)if(n.call(e,t))return r.value=e[t],r.done=!1,r;return r.value=void 0,r.done=!0,r};return o.next=o}}return{next:P}}function P(){return{value:void 0,done:!0}}return y.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:y,configurable:!0}),y.displayName=l(m,c,"GeneratorFunction"),e.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===y||"GeneratorFunction"===(r.displayName||r.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,c,"GeneratorFunction")),e.prototype=Object.create(j),e},e.awrap=function(e){return{__await:e}},w(x.prototype),l(x.prototype,a,(function(){return this})),e.AsyncIterator=x,e.async=function(r,t,n,o,i){void 0===i&&(i=Promise);var u=new x(f(r,t,n,o),i);return e.isGeneratorFunction(t)?u:u.next().then((function(e){return e.done?e.value:u.next()}))},w(j),l(j,c,"Generator"),l(j,u,(function(){return this})),l(j,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var r=Object(e),t=[];for(var n in r)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=A,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(q),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function t(t,n){return u.type="throw",u.arg=e,r.next=t,n&&(r.method="next",r.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],u=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(a&&s){if(this.prev<i.catchLoc)return t(i.catchLoc,!0);if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,r){for(var t=this.tryEntries.length-1;t>=0;--t){var o=this.tryEntries[t];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var u=i?i.completion:{};return u.type=e,u.arg=r,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(u)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),h},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),q(t),h}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var o=n.arg;q(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,t){return this.delegate={iterator:A(e),resultName:r,nextLoc:t},"next"===this.method&&(this.arg=void 0),h}},e}function n(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?n(Object(t),!0).forEach((function(r){i(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):n(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function u(e,r,t,n,o,i,u){try{var a=e[i](u),s=a.value}catch(e){return void t(e)}a.done?r(s):Promise.resolve(s).then(n,o)}function a(e){return function(){var r=this,t=arguments;return new Promise((function(n,o){var i=e.apply(r,t);function a(e){u(i,n,o,a,s,"next",e)}function s(e){u(i,n,o,a,s,"throw",e)}a(void 0)}))}}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.object.freeze.js"),require("core-js/modules/es.string.link.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.symbol.js"),require("core-js/modules/es.symbol.description.js"),require("core-js/modules/es.symbol.iterator.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.object.get-own-property-descriptor.js"),require("core-js/modules/es.array.for-each.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.get-own-property-descriptors.js"),require("core-js/modules/es.object.define-properties.js"),require("core-js/modules/es.symbol.async-iterator.js"),require("core-js/modules/es.symbol.to-string-tag.js"),require("core-js/modules/es.json.to-string-tag.js"),require("core-js/modules/es.math.to-string-tag.js"),require("core-js/modules/es.object.create.js"),require("core-js/modules/es.object.get-prototype-of.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.object.set-prototype-of.js"),require("core-js/modules/es.array.reverse.js"),require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.is-array.js"),require("core-js/modules/es.array.from.js"),require("core-js/modules/es.regexp.exec.js"),Object.defineProperty(exports,"__esModule",{value:!0});var c=require("@merkur/core"),l=require("universal-router"),f=require("universal-router/generateUrls");function p(e){return e&&"object"===s(e)&&"default"in e?e:{default:e}}var h=p(l),d=p(f),y=Object.freeze({REDIRECT:"@merkur/plugin-router.redirect"}),m="development",v="undefined"!=typeof process&&process&&process.env?process.env.NODE_ENV:m;function g(e,r){return b.apply(this,arguments)}function b(){return b=a(t().mark((function e(r,n){var o,i,u,a=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.$in.router.isBootstrapCalled){e.next=2;break}return e.abrupt("return");case 2:for(r.$in.router.isBootstrapCalled=!0,o=a.length,i=new Array(o>2?o-2:0),u=2;u<o;u++)i[u-2]=a[u];return e.abrupt("return",n.apply(void 0,i));case 5:case"end":return e.stop()}}),e)}))),b.apply(this,arguments)}function j(e,r){return w.apply(this,arguments)}function w(){return w=a(t().mark((function r(n,i){var u,a,s,l,f,p,h,d,y,m,v=arguments;return t().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(u=n.$in.router,a=v.length,s=new Array(a>2?a-2:0),l=2;l<a;l++)s[l-2]=v[l];if(u.isMounting||n.props.pathname===u.pathname){r.next=7;break}return r.next=5,_.apply(void 0,[n].concat(s));case 5:return r.next=7,$.apply(void 0,[n].concat(s));case 7:if(c.isFunction(u.route.load)){r.next=9;break}throw new Error("The load method is mandatory.");case 9:return f=c.isFunction(i)?i.apply(void 0,[n].concat(s)):Promise.resolve({}),p=u.route.load(n,{route:u.route,args:s,globalState:f}),r.next=13,Promise.all([f,p]);case 13:return h=r.sent,d=e(h,2),y=d[0],m=d[1],r.abrupt("return",o(o({},y),m));case 18:case"end":return r.stop()}}),r)}))),w.apply(this,arguments)}function x(e,r){return k.apply(this,arguments)}function k(){return k=a(t().mark((function e(r,n){var o,i,u,a,s,l=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=l.length,i=new Array(o>2?o-2:0),u=2;u<o;u++)i[u-2]=l[u];return e.next=3,r.bootstrap.apply(r,i);case 3:if((a=r.$in.router).route){e.next=8;break}return e.next=7,A(r);case 7:a.isMounting=!0;case 8:return e.next=10,n.apply(void 0,i);case 10:if(s=e.sent,!a.isMounting||!c.isFunction(a.route.init)){e.next=14;break}return e.next=14,a.route.init(r,{route:a.route,args:i});case 14:return c.isFunction(a.route.activate)&&R()&&!a.isRouteActivated&&(a.isRouteActivated=!0,a.route.activate(r,{route:a.route,args:i})),a.isMounting=!1,e.abrupt("return",s);case 17:case"end":return e.stop()}}),e)}))),k.apply(this,arguments)}function E(e,r){return O.apply(this,arguments)}function O(){return O=a(t().mark((function e(r,n){var o,i,u,a,s,l=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=l.length,i=new Array(o>2?o-2:0),u=2;u<o;u++)i[u-2]=l[u];return e.next=3,n.apply(void 0,i);case 3:return a=e.sent,s=r.$in.router,c.isFunction(s.route.activate)&&R()&&!s.isRouteActivated&&(s.isRouteActivated=!0,s.route.activate(r,{route:s.route,args:i})),e.abrupt("return",a);case 7:case"end":return e.stop()}}),e)}))),O.apply(this,arguments)}function q(e,r){return L.apply(this,arguments)}function L(){return L=a(t().mark((function e(r,n){var o,i,u,a,s=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=s.length,i=new Array(o>2?o-2:0),u=2;u<o;u++)i[u-2]=s[u];return e.next=3,n.apply(void 0,i);case 3:return a=e.sent,e.next=6,_.apply(void 0,[r].concat(i));case 6:return e.abrupt("return",a);case 7:case"end":return e.stop()}}),e)}))),L.apply(this,arguments)}function A(e){return P.apply(this,arguments)}function P(){return(P=a(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(v!==m){e.next=5;break}if(r.props.pathname){e.next=3;break}throw new Error("The props pathname is not defined.");case 3:if(r.$dependencies.router){e.next=5;break}throw new Error("You must add calling of createRouter(widget, routes, options) to widget.setup method.");case 5:return e.next=7,r.$dependencies.router.resolve({pathname:r.props.pathname,widget:r});case 7:return n=e.sent,r.$in.router.route=n,r.$in.router.pathname=r.props.pathname,e.abrupt("return",n);case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function $(e){return S.apply(this,arguments)}function S(){return S=a(t().mark((function e(r){var n,o,i,u,a=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,A(r);case 2:if(n=e.sent,!c.isFunction(n.init)){e.next=7;break}for(o=a.length,i=new Array(o>1?o-1:0),u=1;u<o;u++)i[u-1]=a[u];return e.next=7,n.init(r,{route:n,args:i});case 7:case"end":return e.stop()}}),e)}))),S.apply(this,arguments)}function _(e){return F.apply(this,arguments)}function F(){return F=a(t().mark((function e(r){var n,o,i,u,a,s,l=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.$in.router,o=n.route,i=n.isRouteActivated,!o){e.next=10;break}for(u=l.length,a=new Array(u>1?u-1:0),s=1;s<u;s++)a[s-1]=l[s];if(!c.isFunction(o.deactivate)||!0!==i){e.next=7;break}return e.next=7,o.deactivate(r,{route:o,args:a});case 7:if(!c.isFunction(o.destroy)){e.next=10;break}return e.next=10,o.destroy(r,{route:o,args:a});case 10:n.isRouteActivated=!1;case 11:case"end":return e.stop()}}),e)}))),F.apply(this,arguments)}function R(){return"undefined"!=typeof window}exports.createRouter=function(e,r,t){e.$dependencies.router=new h.default(r,t),e.$dependencies.link=d.default(e.$dependencies.router)},exports.routerPlugin=function(){return{setup:function(e){return a(t().mark((function r(){return t().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e=o(o({},{router:{redirect:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e.emit(y.REDIRECT,o({url:r},t))},link:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.$dependencies.link(r,t)},getCurrentRoute:function(e){return e.$in.router.route}}}),e),e.$in.router={route:null,pathname:null,isMounting:!1,isRouteActivated:!1,isBootstrapCalled:!1},c.bindWidgetToFunctions(e,e.router),r.abrupt("return",e);case 4:case"end":return r.stop()}}),r)})))()},create:function(e){return a(t().mark((function r(){return t().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(v!==m){r.next=5;break}if(e.$in.component){r.next=3;break}throw new Error("You must install missing plugin: npm i @merkur/plugin-component");case 3:if(e.$in.eventEmitter){r.next=5;break}throw new Error("You must install missing plugin: npm i @merkur/plugin-event-emitter");case 5:return e.$in.component.lifeCycle=c.setDefaultValueForUndefined(e.$in.component.lifeCycle,["load"],(function(){})),c.hookMethod(e,"$in.component.lifeCycle.load",j),c.hookMethod(e,"bootstrap",g),c.hookMethod(e,"mount",x),c.hookMethod(e,"unmount",q),c.hookMethod(e,"update",E),r.abrupt("return",e);case 12:case"end":return r.stop()}}),r)})))()}}};