@merkur/core 0.46.0 → 1.0.3

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
@@ -38,8 +38,42 @@ To check out [live demo](https://merkur.js.org/demo) and [docs](https://merkur.j
38
38
 
39
39
  Contribute to this project via [Pull-Requests](https://github.com/mjancarik/merkur/pulls).
40
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.
41
+ We are using [Changesets](https://github.com/changesets/changesets) for versioning and releasing. To add a changeset describing your changes, run `npm run changeset`.
42
42
 
43
+ > **Note:** The release process is documented **only** in this root README. Any per-package README sections that still describe a Lerna/Conventional Commits–based release flow are outdated and should be ignored in favour of the instructions below.
44
+
45
+ ### Changeset format
46
+
47
+ Each changeset file (`.changeset/*.md`) must follow this structure:
48
+
49
+ **Frontmatter** — standard Changesets YAML listing affected package names and bump types (`patch`, `minor`, `major`).
50
+
51
+ **First line after frontmatter** — a single brief sentence summarising the change. No heading, no bold, no trailing bullet — just a plain declarative sentence. This section is not required but helps to quickly understand the change when browsing the changesets.
52
+
53
+ **Body** — three bullet points in this exact order, with no blank lines between them:
54
+
55
+ - **What** One or more sentences describing what changed: which APIs, files, or behaviours were added, removed, or fixed. Make sublists if needed to break down complex changes, but keep each bullet point as a single paragraph.
56
+ - **Why** One or more sentences explaining the motivation: why the change was necessary or beneficial.
57
+ - **How** Migration steps for consumers or contributors. If no action is required, write exactly: `Nothing.`
58
+
59
+ Additional rules:
60
+ - Each bullet is a single paragraph — no nested lists, no code blocks inside a bullet.
61
+ - Do not use headings (`##`, `###`) inside the body.
62
+ - Code symbols (function names, paths, package names) use backtick inline code.
63
+
64
+ Example:
65
+
66
+ ```markdown
67
+ ---
68
+ "@merkur/example": minor
69
+ ---
70
+
71
+ Add `createFoo` helper for simplified widget initialisation.
72
+
73
+ - **What** New `createFoo(options)` export in `@merkur/example` wraps the low-level `initFoo` call and applies sensible defaults for `name` and `version`.
74
+ - **Why** Every project was duplicating the same boilerplate to call `initFoo`; centralising it reduces setup friction and ensures consistent defaults.
75
+ - **How** Replace direct `initFoo` calls with `createFoo({ name, version })`. The returned object is API-compatible, so no further changes are needed.
76
+ ```
43
77
 
44
78
  ### Release
45
79
 
@@ -48,32 +82,43 @@ To release a version you must have the right permissions, please contact one of
48
82
 
49
83
  #### Regular version release
50
84
 
51
- To do a regular release, in the root of the monorepo run:
85
+ To do a regular release, from the `master` branch with no uncommitted changes, run:
52
86
 
53
87
  ```
54
88
  npm run release
55
89
  ```
56
90
 
57
- #### RC (preversion) release
58
-
59
- 1. From the specific package directory, use this `lerna version` command to bump package versions:
60
- ```
61
- npx lerna version <preminor | prepatch | prerelease> --no-git-tag-version --no-push
62
- // prerelease increments the pre* version's last number, e.g. v0.44.0-rc.0 => v0.44.0-rc.1
63
- ```
64
- - alternatively, manually change the version in the package's `package.json` and in `lerna.json`, and run `npm install` from the root of the monorepo.
65
- 2. Restore all files not related to the package you intend to release. These files should remain:
66
- - the package's own `package.json`
67
- - `lerna.json` (otherwise lerna will stop incrementing the pre-version's number, for some reason)
68
- - `package-lock.json`
69
- 3. Commit the changes (must still be a conventional commit. Suggested: `chore(release): publish`).
70
- 4. Tag the commit with the version (e.g. `v0.44.0-rc.0`).
71
- 5. Push the commit to the repo.
72
- 6. Push the tag to the repo: `git push origin tag <tagname>` (e.g. `git push origin tag v0.44.0-rc.0`).
73
-
74
- The packages are released from a GitHub Action that is triggered when a new version tag is pushed to the repository.
75
-
76
- Before the actual release, it's safer to return all version numbers to the last stable version. Another option is to release from a separate branch, so your feature branch stays clean.
91
+ This runs `release:prepare` (applies pending changesets, bumps versions, updates `package-lock.json`) followed by `release:push` (commits, tags, and pushes to the repository).
92
+
93
+ Packages are published from a GitHub Action triggered when a new version tag is pushed.
94
+
95
+ #### RC (pre-release) release
96
+
97
+ 1. Enter pre-release mode (only needs to be done once per RC cycle):
98
+ ```
99
+ npm run release:next:init
100
+ ```
101
+ This sets pre-release mode to `rc`, so subsequent version bumps produce `rc` versions (e.g. `v0.44.0-rc.0`).
102
+
103
+ 2. Add a changeset describing your changes:
104
+ ```
105
+ npm run changeset
106
+ ```
107
+
108
+ 3. Bump versions and push the RC release:
109
+ ```
110
+ npm run release
111
+ ```
112
+ Repeat steps 2–3 for each subsequent RC iteration (e.g. `rc.0 → rc.1`).
113
+
114
+ 4. When ready to graduate to a stable release, exit pre-release mode and prepare the final version:
115
+ ```
116
+ npm run release:graduate
117
+ ```
118
+ Then push with:
119
+ ```
120
+ npm run release:push
121
+ ```
77
122
 
78
123
  ---
79
124
 
package/lib/index.cjs CHANGED
@@ -216,5 +216,6 @@ exports.defineWidget = defineWidget;
216
216
  exports.getMerkur = getMerkur;
217
217
  exports.hookMethod = hookMethod;
218
218
  exports.isFunction = isFunction;
219
+ exports.isRegistered = isRegistered;
219
220
  exports.removeMerkur = removeMerkur;
220
221
  exports.setDefaultValueForUndefined = setDefaultValueForUndefined;
package/lib/index.es9.cjs CHANGED
@@ -213,5 +213,6 @@ exports.defineWidget = defineWidget;
213
213
  exports.getMerkur = getMerkur;
214
214
  exports.hookMethod = hookMethod;
215
215
  exports.isFunction = isFunction;
216
+ exports.isRegistered = isRegistered;
216
217
  exports.removeMerkur = removeMerkur;
217
218
  exports.setDefaultValueForUndefined = setDefaultValueForUndefined;
package/lib/index.es9.mjs CHANGED
@@ -203,4 +203,4 @@ function getGlobalContext() {
203
203
  }
204
204
  return {};
205
205
  }
206
- export { assignMissingKeys, bindWidgetToFunctions, createMerkur, createMerkurWidget, defineWidget, getMerkur, hookMethod, isFunction, removeMerkur, setDefaultValueForUndefined };
206
+ export { assignMissingKeys, bindWidgetToFunctions, createMerkur, createMerkurWidget, defineWidget, getMerkur, hookMethod, isFunction, isRegistered, removeMerkur, setDefaultValueForUndefined };
package/lib/index.js CHANGED
@@ -216,5 +216,6 @@ exports.defineWidget = defineWidget;
216
216
  exports.getMerkur = getMerkur;
217
217
  exports.hookMethod = hookMethod;
218
218
  exports.isFunction = isFunction;
219
+ exports.isRegistered = isRegistered;
219
220
  exports.removeMerkur = removeMerkur;
220
221
  exports.setDefaultValueForUndefined = setDefaultValueForUndefined;
package/lib/index.mjs CHANGED
@@ -206,4 +206,4 @@ function getGlobalContext() {
206
206
  return {};
207
207
  }
208
208
 
209
- export { assignMissingKeys, bindWidgetToFunctions, createMerkur, createMerkurWidget, defineWidget, getMerkur, hookMethod, isFunction, removeMerkur, setDefaultValueForUndefined };
209
+ export { assignMissingKeys, bindWidgetToFunctions, createMerkur, createMerkurWidget, defineWidget, getMerkur, hookMethod, isFunction, isRegistered, removeMerkur, setDefaultValueForUndefined };
package/lib/index.umd.js CHANGED
@@ -1 +1 @@
1
- !function(e,n){if("function"==typeof define&&define.amd)define("@merkur/core",["exports"],n);else if("undefined"!=typeof exports)n(exports);else{var t={exports:{}};n(t.exports),e.Merkur=e.Merkur||{},e.Merkur.Core=t.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(e){function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||t(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(e,n){if(e){if("string"==typeof e)return r(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r(e,n):void 0}}function r(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function o(e){return o="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},o(e)}function i(e,n,t,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){return void t(e)}c.done?n(a):Promise.resolve(a).then(r,o)}function u(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var u=e.apply(n,t);function c(e){i(u,r,o,c,a,"next",e)}function a(e){i(u,r,o,c,a,"throw",e)}c(void 0)}))}}function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach((function(n){f(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function f(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==o(n)?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){return function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return n.apply(void 0,[e].concat(r))}}function s(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=a({},e);return n.forEach((function(e){r[e]=r[e]||function(e){try{return JSON.parse(JSON.stringify(e))}catch(n){return e}}(t)})),r}function d(e,n){n=n||e,Object.keys(n).forEach((function(t){if(p(n[t])){var r=n[t];n[t]=l(e,r)}}))}function p(e){return"function"==typeof e}function y(e,n,t){return v.apply(this,arguments)}function v(){return(v=u((function*(e,r,o){var i,u=function(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=t(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,c=!0,a=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return c=e.done,e},e:function(e){a=!0,u=e},f:function(){try{c||null==r.return||r.return()}finally{if(a)throw u}}}}(e.$plugins);try{for(u.s();!(i=u.n()).done;){var c=i.value;p(c[r])&&(e=yield c[r].apply(c,[e].concat(n(o))))}}catch(e){u.e(e)}finally{u.f()}return e}))).apply(this,arguments)}function g(){return g=u((function*(){var e=function(e){return a(a(a(a({},e),s(e,["containerSelector"],null)),s(e,["slot","$dependencies","$external"])),s(e,["setup","create"],(function(e){return e})))}(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),n=e.setup,t=e.create,r={setup:function(e){var t=arguments;return u((function*(){for(var r=t.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=t[i];return e=yield y(e,"setup",o),n.apply(void 0,[e].concat(o))}))()},create:function(e){var n=arguments;return u((function*(){for(var r=n.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=n[i];return e=yield y(e,"create",o),t.apply(void 0,[e].concat(o))}))()},$plugins:(e.$plugins||[]).map((function(e){return e()}))};return r.name=e.name,r.version=e.version,r.$dependencies=e.$dependencies,r.$external=e.$external,r.$in={},delete e.name,delete e.version,delete e.$dependencies,delete e.$external,delete e.$plugins,delete e.setup,delete e.create,r=yield r.setup(r,e),d(r=yield r.create(r,e)),Object.seal(r),r})),g.apply(this,arguments)}function b(e){var n=e.name,t=e.version,r=e.createWidget;m().$in.widgetFactory[n+t]=r}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=m(),t=e.name,r=e.version,o=n.$in.widgetFactory[t+r];if(!p(o))throw new Error('The widget with defined name and version "'.concat(t+r,'" is not defined.'));return o(e)}function m(){var e=O();return e.__merkur__||(e.__merkur__={$in:{widgets:[],widgetFactory:{}},$external:{},$dependencies:{},isRegistered:w,register:b,create:h}),e.__merkur__}function w(e){var n=m();return Boolean(Object.keys(n.$in.widgetFactory).find((function(n){return new RegExp("^".concat(e)).test(n)})))}function O(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}}Object.defineProperty(e,"__esModule",{value:!0}),e.assignMissingKeys=function(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];return t.forEach((function(n){Object.keys(n||{}).forEach((function(t){t in e||(e[t]=n[t])}))})),e},e.bindWidgetToFunctions=d,e.createMerkur=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.$plugins,t=void 0===n?[]:n,r=m();return t.forEach((function(e){e&&p(e.setup)&&e.setup(r)})),r},e.createMerkurWidget=function(){return g.apply(this,arguments)},e.defineWidget=function(e){return e},e.getMerkur=m,e.hookMethod=function(e,n,t){var r=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=n.split("."),r=t.pop(),o=t.reduce((function(e,n){return e[n]||{}}),e);if(!p(o[r]))throw new Error("Defined path '".concat(n,"' is incorrect. Check your widget structure."));return{target:o,methodName:r}}(e,n),o=r.target,i=r.methodName,u=l(e,o[i]);return o[i]=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return t.apply(void 0,[e,u].concat(r))},u},e.isFunction=p,e.removeMerkur=function(){delete O().__merkur__},e.setDefaultValueForUndefined=s}));
1
+ !function(e,n){if("function"==typeof define&&define.amd)define("@merkur/core",["exports"],n);else if("undefined"!=typeof exports)n(exports);else{var t={exports:{}};n(t.exports),e.Merkur=e.Merkur||{},e.Merkur.Core=t.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(e){function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||t(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(e,n){if(e){if("string"==typeof e)return r(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r(e,n):void 0}}function r(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function o(e){return o="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},o(e)}function i(e,n,t,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){return void t(e)}c.done?n(a):Promise.resolve(a).then(r,o)}function u(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var u=e.apply(n,t);function c(e){i(u,r,o,c,a,"next",e)}function a(e){i(u,r,o,c,a,"throw",e)}c(void 0)})}}function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach(function(n){f(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function f(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==o(n)?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){return function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return n.apply(void 0,[e].concat(r))}}function s(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=a({},e);return n.forEach(function(e){r[e]=r[e]||function(e){try{return JSON.parse(JSON.stringify(e))}catch(n){return e}}(t)}),r}function d(e,n){n=n||e,Object.keys(n).forEach(function(t){if(p(n[t])){var r=n[t];n[t]=l(e,r)}})}function p(e){return"function"==typeof e}function y(e,n,t){return v.apply(this,arguments)}function v(){return(v=u(function*(e,r,o){var i,u=function(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=t(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,c=!0,a=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return c=e.done,e},e:function(e){a=!0,u=e},f:function(){try{c||null==r.return||r.return()}finally{if(a)throw u}}}}(e.$plugins);try{for(u.s();!(i=u.n()).done;){var c=i.value;p(c[r])&&(e=yield c[r].apply(c,[e].concat(n(o))))}}catch(e){u.e(e)}finally{u.f()}return e})).apply(this,arguments)}function g(){return g=u(function*(){var e=function(e){return a(a(a(a({},e),s(e,["containerSelector"],null)),s(e,["slot","$dependencies","$external"])),s(e,["setup","create"],function(e){return e}))}(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),n=e.setup,t=e.create,r={setup:function(e){var t=arguments;return u(function*(){for(var r=t.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=t[i];return e=yield y(e,"setup",o),n.apply(void 0,[e].concat(o))})()},create:function(e){var n=arguments;return u(function*(){for(var r=n.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=n[i];return e=yield y(e,"create",o),t.apply(void 0,[e].concat(o))})()},$plugins:(e.$plugins||[]).map(function(e){return e()})};return r.name=e.name,r.version=e.version,r.$dependencies=e.$dependencies,r.$external=e.$external,r.$in={},delete e.name,delete e.version,delete e.$dependencies,delete e.$external,delete e.$plugins,delete e.setup,delete e.create,r=yield r.setup(r,e),d(r=yield r.create(r,e)),Object.seal(r),r}),g.apply(this,arguments)}function b(e){var n=e.name,t=e.version,r=e.createWidget;m().$in.widgetFactory[n+t]=r}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=m(),t=e.name,r=e.version,o=n.$in.widgetFactory[t+r];if(!p(o))throw new Error('The widget with defined name and version "'.concat(t+r,'" is not defined.'));return o(e)}function m(){var e=O();return e.__merkur__||(e.__merkur__={$in:{widgets:[],widgetFactory:{}},$external:{},$dependencies:{},isRegistered:w,register:b,create:h}),e.__merkur__}function w(e){var n=m();return Boolean(Object.keys(n.$in.widgetFactory).find(function(n){return new RegExp("^".concat(e)).test(n)}))}function O(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}}Object.defineProperty(e,"__esModule",{value:!0}),e.assignMissingKeys=function(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];return t.forEach(function(n){Object.keys(n||{}).forEach(function(t){t in e||(e[t]=n[t])})}),e},e.bindWidgetToFunctions=d,e.createMerkur=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.$plugins,t=void 0===n?[]:n,r=m();return t.forEach(function(e){e&&p(e.setup)&&e.setup(r)}),r},e.createMerkurWidget=function(){return g.apply(this,arguments)},e.defineWidget=function(e){return e},e.getMerkur=m,e.hookMethod=function(e,n,t){var r=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=n.split("."),r=t.pop(),o=t.reduce(function(e,n){return e[n]||{}},e);if(!p(o[r]))throw new Error("Defined path '".concat(n,"' is incorrect. Check your widget structure."));return{target:o,methodName:r}}(e,n),o=r.target,i=r.methodName,u=l(e,o[i]);return o[i]=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return t.apply(void 0,[e,u].concat(r))},u},e.isFunction=p,e.isRegistered=w,e.removeMerkur=function(){delete O().__merkur__},e.setDefaultValueForUndefined=s});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@merkur/core",
3
- "version": "0.46.0",
3
+ "version": "1.0.3",
4
4
  "description": "Merkur is tiny and extensible library for creating front-end microservices.",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",
@@ -23,11 +23,9 @@
23
23
  "./lib/index.es9.mjs": "./lib/index.es9.mjs"
24
24
  },
25
25
  "scripts": {
26
- "preversion": "npm test",
27
26
  "test": "jest --no-watchman -c ./jest.config.js",
28
27
  "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",
29
- "build": "rollup -c rollup.config.mjs",
30
- "postpublish": "node ../../utils/restoreLatestTag.mjs"
28
+ "build": "rollup -c rollup.config.mjs"
31
29
  },
32
30
  "repository": {
33
31
  "type": "git",
@@ -52,6 +50,5 @@
52
50
  "registry": "https://registry.npmjs.org/",
53
51
  "access": "public"
54
52
  },
55
- "homepage": "https://merkur.js.org/",
56
- "gitHead": "87b662ef7cd7a84fc1724023607ef2cbbae2c811"
53
+ "homepage": "https://merkur.js.org/"
57
54
  }
package/types.d.ts CHANGED
@@ -69,12 +69,13 @@ export type WidgetCreate = (widgetParams: WidgetParams) => Promise<Widget>;
69
69
 
70
70
  export interface Merkur {
71
71
  $in: {
72
- widgets: []; // TODO
72
+ widgets: Widget[];
73
73
  widgetFactory: Record<string, MerkurCreate>;
74
74
  };
75
75
  $external: WidgetExternal;
76
76
  $dependencies: WidgetDependencies;
77
77
  create: MerkurCreate;
78
+ isRegistered: (name: string) => boolean;
78
79
  register: ({
79
80
  name,
80
81
  version,
@@ -135,7 +136,7 @@ export declare function setDefaultValueForUndefined<T extends object>(
135
136
  ): T;
136
137
 
137
138
  export declare function bindWidgetToFunctions(
138
- widget: Widget,
139
+ widget: WidgetPartial,
139
140
  target?: any,
140
141
  ): void;
141
142