New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@webqit/observer

Package Overview
Dependencies
Maintainers
1
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@webqit/observer - npm Package Compare versions

Comparing version 1.2.6 to 1.2.7

2

dist/main.js

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

!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);var n=function(e){return Array.isArray(e)},i=function(e){return e instanceof String||"string"==typeof e&&null!==e},s=function(e){return arguments.length&&(void 0===e||void 0===e)},a=function(e){return null===e||""===e},u=function(e){return"function"==typeof e},l=function(e){return Array.isArray(e)||"object"==typeof e&&e||u(e)},o=function(e){return!Array.isArray(e)&&"object"==typeof e&&e},c=function(e,t=!0){return n(e)?e:!t&&o(e)?[e]:!1!==e&&0!==e&&function(e){return a(e)||s(e)||!1===e||0===e||l(e)&&!Object.keys(e).length}(e)?[]:function(e){return!i(e)&&!s(e.length)}(e)?Array.prototype.slice.call(e):o(e)?Object.values(e):[e]},f=function(e){return e instanceof Number||"number"==typeof e},h=function(e){return u(e)||e&&"[object function]"==={}.toString.call(e)},p=function(e){return typeof e},d=function(e,t,r=null){if(!l(e))throw new Error('Object must be of type subject; "'+p(e)+'" given!');var n,i=Symbol.for(t);return!(n=e[i])&&r&&(n=new r(e),e[i]=n),n};function b(e){return(g(e)?e:c(e).length?[e]:[]).reduce((e,t)=>e.concat([c(t)]),[])}function g(e){return c(e).reduce((e,t)=>e||n(t),!1)}function v(e){return e.filter(e=>!e&&0!==e).length}function m(e,t){return e.length===t.length&&e.reduce((e,r,n)=>e&&r===t[n],!0)}function y(e,t){return t.reduce((t,r,n)=>t&&r===e[n],!0)}function j(e,t){return e.slice(t.length)}var w=function(e,t,r=null){return n(t)?e.filter(e=>r?t.filter(t=>r(e,t)).length:-1!==t.indexOf(e)):[]},O=class{constructor(e){this.subject=e,this.fireables=[],this.currentlyFiring=[]}add(e){return this.fireables.push(e),e}remove(e){this.fireables=this.fireables.filter(t=>t!==e)}forget(e){this.match(e).forEach(e=>{this.fireables=this.fireables.filter(t=>t!==e)})}match(e){return this.fireables.filter(t=>{var r,n,i,s=b(t.filter),a=c((t.params||{}).tags),u=b(e.filter),l=c((e.params||{}).tags);return(!e.originalHandler||t.handler===e.originalHandler)&&(!u.length||(n=s,(r=u).length===n.length&&(i=(e,t)=>m(e,n[t]),r.reduce((e,t,r)=>e&&i(t,r),!0))))&&(!l.length||l.length===a.length&&w(a,l).length===l.length)})}},E=function(e){return f(e)||!0!==e&&!1!==e&&null!==e&&""!==e&&!isNaN(1*e)},P=function(e,t,r={},n={}){t=c(t).slice();for(var i=e;!s(i)&&!a(i)&&t.length;){var u=t.shift();if(!(r.get?r.get(i,u):l(i)?u in i:i[u]))return void(n.exists=!1);i=r.get?r.get(i,u):i[u]}return n.exists=!0,i},_=function(e,t=null){var r={};return 2===arguments.length&&(n(e)&&n(t)?e.forEach((e,n)=>r[e]=t[n]):r[e]=t),r},x=function(e){return u(e)&&/^class\s?/.test(Function.prototype.toString.call(e))},S=function(e,t){var r=[];return function(e,t){t=(t=t||Object.prototype)&&!n(t)?[t]:t;var r=[];for(e=e;e&&(!t||t.indexOf(e)<0)&&"default"!==e.name;)r.push(e),e=e?Object.getPrototypeOf(e):null;return r}(e,t).forEach(e=>{!function(e,...t){t.forEach(t=>{e.indexOf(t)<0&&e.push(t)})}(r,...Object.getOwnPropertyNames(e))}),r};function D(e,t,r=!1,i=!1,s=!1){var a=0,u=e.shift();if((E(u)||!0===u||!1===u)&&(a=u,u=e.shift()),!e.length)throw new Error("_merge() requires two or more array/objects.");return e.forEach((e,c)=>{(l(e)||h(e))&&(r?S(e):Object.getOwnPropertyNames(e)).forEach(l=>{if(t(l,u,e,c)){var f=u[l],h=e[l];if((n(f)&&n(h)||o(f)&&o(h))&&(!0===a||a>0))u[l]=n(f)&&n(h)?[]:{},D([E(a)?a-1:a,u[l],f,h],t,r,i,s);else if(n(u)&&n(e))i?u[l]=h:u.push(h);else try{s?Object.defineProperty(u,l,Object.getOwnPropertyDescriptor(e,l)):u[l]=e[l]}catch(e){}}})}),u}var V=function(e,t=[],r=!0){var i=0;return E(arguments[0])&&l(arguments[1])&&(i=arguments[0],e=arguments[1],t=arguments[2]||[]),D([i,{},e],(e,r,i)=>h(t)?t(e):!n(t)||!t.length||t.indexOf(e)>-1,!1,!1,r)},F=function(...e){return D(e,(e,t,r)=>!0,!1,!1,!1)},k=function(e,t,r=null,n={}){if(!e||!l(e))throw new Error('Observable subjects must be of type object; "'+p(e)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!h(r))throw new Error('Handler must be a function; "'+p(r)+'" given!');var i;if(i=Z(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},C=function(e,t){var r=void 0;return l(e)&&Object.keys(e).forEach((n,i)=>{!1!==r&&(r=t(E(n)?parseFloat(n):n,e[n],i))}),r},I=class{constructor(e,t){this.subject=e,this.handler=t.handler,this.filter=t.filter,this.params=t.params}disconnect(){this.disconnected=!0}},A=class extends I{fire(e,t,r){return this.disconnected||this.filter&&!w(c(this.filter),[e.type]).length?t(...Array.prototype.slice.call(arguments,2)):this.handler(e,r,t)}},T=class{constructor(e,t){if(this.subject=e,!t.type)throw new Error("Action type must be given in definition!");C(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),Object.seal(this)}},H=class extends O{add(e){return super.add(new A(this.subject,e))}fire(e,t=null){if(e instanceof T||(e=new T(this.subject,e)),this.currentlyFiring.filter(t=>t.type===e.type&&t.name===e.name).length)return t?t():void 0;this.currentlyFiring.push(e);const r=(n,...i)=>{var s=this.fireables[n];return s?s.fire(e,(...e)=>r(n+1,...e),...i):t?t(...i):i[0]};var n=r(0);return this.currentlyFiring.pop(),n}},U=function(e,t=!0){return d(e,".observer.interceptors",t?H:null)},q=function(e,t){if(!t||!l(t))throw new Error("Target must be of type object!");var r,n=function(r){return arguments.length?r:e?Object.getOwnPropertyNames(t):Object.keys(t)};return(r=U(t,!1))?r.fire({type:e?"ownKeys":"keys"},n)||[]:n()},N=function(e){return q(!1,...arguments)};function B(e,t=null,r=!1){if(!e||!l(e))throw new Error("Target must be of type object!");var n=Z(e);if(n&&!n.build){n.build=r;var i=b(t),s=!i.length||i.filter(e=>!e[0]&&0!==e[0]).length?N(e):i.map(e=>e[0]),a=i.length?i.map(e=>e.slice(1)).filter(e=>e.length):null;n.subBuild=a&&a.length?a:null,s.forEach(t=>{var i=L(e,t);try{l(i)&&(W(e,t,i),(n.subBuild&&M(i)||(_isFunction(r)?r(i):r&&M(i)))&&B(i,n.subBuild,r))}catch(e){}})}}const M=e=>e instanceof Object||e instanceof Array||e instanceof Function;var K=function(e,t,r=null,n={}){if(!e||!l(e))throw new Error('Observable subjects must be of type object; "'+p(e)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),!h(r))throw new Error('Handler must be a function; "'+p(r)+'" given!');var i,s=Z(e),a={filter:t,handler:r,params:n};if((a.filter||a.params.subtree)&&B(e,a.filter,a.params.subtree),a.params.unique&&(i=s.match({filter:t,params:n})).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},Q=class{constructor(e,t){if(this.subject=e,t.originalSubject||(this.originalSubject=e),!("type"in t))throw new Error("Delta type must be given in definition!");if(!("name"in t))throw new Error("Property name must be given in definition!");C(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),this.path||Object.defineProperty(this,"path",{value:[t.name],enumerable:!0}),Object.seal(this)}},W=function(e,t,r,n=null){if(e!==r){var i;if(o(n)&&(i=Z(e,!1))){var s=F({name:t,type:"set",value:r,related:[t]},n);i.fire(s)}K(r,r=>{if(i=Z(e,!1)){var n=r.map(r=>{var n=r;do{if(n.subject===e)return}while(n=n.src);var i={};return C(r,(e,t)=>{"subject"!==e&&"name"!==e&&"path"!==e&&"src"!==e&&(i[e]=t)}),i.name=t,i.path=[t].concat(r.path),i.originalSubject=r.originalSubject,i.src=r,new Q(e,i)}).filter(e=>e);if(n.length)return i.fire(n)}},{subtree:!0,unique:!0,tags:[z,t,e]})}};const z={};var G=function(e,t,r,n=null){var i;if(k(r,null,null,{tags:[z,t,e]}),o(n)&&(i=Z(e,!1))){var s=F({name:t,type:"del",oldValue:r,related:[t]},n);i.fire(s)}},J=function(e,...t){var r=t.map(e=>{if(!l(e))throw new Error("Target must be of type object!");return{subject:e,subjectCopy:n(e)?e.slice(0):V(e)}}),i=e(...t);return r.map(e=>{var t,r,n=Object.keys(e.subjectCopy),i=Object.keys(e.subject),s=[],a=(t=n.concat(i),t.filter((e,t,r)=>r.indexOf(e)===t)).map(t=>{if(e.subjectCopy[t]!==e.subject[t]){s.push(t);var r={name:t,related:s,buffered:!0};return i.includes(t)?(r.type="set",r.value=e.subject[t],n.includes(t)&&(r.isUpdate=!0)):r.type="del",n.includes(t)&&(r.oldValue=e.subjectCopy[t]),l(e.subjectCopy[t])&&G(e.subject,t,e.subjectCopy[t]),l(e.subject[t])&&W(e.subject,t,e.subject[t]),r}}).filter(e=>e);if(a.length&&(r=Z(e.subject,!1)))return r.fire(a)}),i},L=function(e,t,r=!1){if(!e||!l(e))throw new Error("Target must be of type object!");var i,s,a=function(r){return arguments.length?r:n(t)?_(t,e):e[t]};return i=(s=U(e))?s.fire({type:"get",name:t},a):a(),r&&n(e)&&!E(t)&&h(i)&&!x(i)?function(...t){return J(()=>i.apply(e,t),e)}:i},R=class{constructor(e){this._={},this._.target=e,this._.propagationStopped=!1,this._.defaultPrevented=!1,this._.promisesInstance=null,this._.promises=[]}get target(){return this._.target}stopPropagation(){this._.propagationStopped=!0}get propagationStopped(){return this._.propagationStopped}preventDefault(){this._.defaultPrevented=!0}get defaultPrevented(){return this._.defaultPrevented}waitUntil(e){e instanceof Promise&&(this._.promises.push(e),this._.promisesInstance=null)}get promises(){return!this._.promisesInstance&&this._.promises.length&&(this._.promisesInstance=Promise.all(this._.promises)),this._.promisesInstance}respond(e){var t,r=o(e)&&!s(e.propagationStopped)&&!s(e.defaultPrevented);!1===e||r&&e.propagationStopped?this.stopPropagation():!1===e||r&&e.defaultPrevented?this.preventDefault():(e instanceof Promise&&(t=e)||r&&(t=e.promises))&&this.waitUntil(t)}},X=class extends I{constructor(e,t){if(super(e,t),this.filters2D=b(this.filter),this.filtersIsOriginally2D=g(this.filter),this.filtersIsDynamic=this.filters2D.filter(e=>v(c(e))).length,this.filtersIsDynamic&&this.filters2D.length>1)throw new Error('Only one "Dynamic Filter" must be observed at a time! "'+this.filters2D.map(e=>"["+e.join(", ")+"]").join(", ")+'" have been bound together.')}fire(e){if(this.disconnected||this.params.type&&(t=e=>this.params.type===e.type,!e.reduce((e,r,n)=>e||t(r,n),!1)))return;var t;const r=e=>["set","def"].includes(e.type)&&(!this.params.diff||(h(this.params.diff)?this.params.diff(e.value,e.oldValue):e.value!==e.oldValue));var n=new R(this.subject);if(this.filters2D.length){var i=[];this.filters2D.filter((t,n)=>(i[n]=[],e.filter(e=>{var s=this.filtersIsDynamic?t.map((t,r)=>t||0===t?t:e.path[r]||""):t;return i[n].filter(e=>m(e,s)).length||i[n].push(s),(m(s,e.path)||!1!==this.params.suptree&&y(s,e.path)&&(!E(this.params.suptree)||j(s,e.path).length<=this.params.suptree)||this.params.subtree&&y(e.path,s)&&(!E(this.params.subtree)||j(e.path,s).length<=this.params.subtree))&&(!this.filtersIsDynamic||!v(s))&&r(e)}).length)).length&&function(e){return e.reduce((e,t)=>{var r=[];return e.forEach(e=>{c(t).forEach(t=>{var n=e.slice();n.push(t),r.push(n)})}),r},[[]])}(i).forEach(t=>{var r=this.formatChanges(t,e);if(this.filtersIsOriginally2D){var i=r;o(this.filter)&&(i={},_each(this.filter,(e,t,n)=>{i[e]=r[n]})),n.respond(this.handler(i,n))}else n.respond(this.handler(r[0],n))})}else(this.params.subtree||e.filter(e=>m(e.path,[e.name])).length===e.length)&&e.filter(e=>r(e)).length&&n.respond(this.handler(e,n));return n}formatChanges(e,t){return!1===this.params.data?[]:e.map(e=>{var r=t.reduce((t,r)=>t||(m(e,r.path)||this.params.suptree&&y(e,r.path)||this.params.subtree&&y(r.path,e)?r:null),null);if(!r){var n=t.reduce((t,r)=>t||y(e,r.path)?r:null,null);if(n){var i=j(e,n.path),s={type:n.type,name:n.name,derived:!0,src:n};("del"===n.type||n.isUpdate)&&(s.oldValue=P(n.oldValue,i,{get:L})),"del"!==n.type&&(s.value=P(n.value,i,{get:L})),r=new Q(n.subject,s)}else r=new Q(this.subject,{type:"get",name:e[0],path:e,value:P(this.subject,e,{get:L}),derived:!0})}return r})}},Y=class extends O{add(e){return super.add(new X(this.subject,e))}fire(e){var t=new R(this.subject);return e=c(e,!1).map(e=>e instanceof Q?e:new Q(this.subject,e)),this.currentlyFiring.filter(t=>e.filter(e=>t.type===e.type&&t.name===e.name).length).length,this.currentlyFiring.push(...e),this.fireables.forEach(r=>{if(t.propagationStopped)return t;t.respond(r.fire(e))}),e.forEach(e=>function(e,t,r=!1){for(var n=e.indexOf(t);n>-1&&(r||!1===r);)e.splice(n,1),r>0&&r--,n=e.indexOf(t);return e}(this.currentlyFiring,e)),t}},Z=function(e,t=!0){return d(e,".observer.observers",t?Y:null)},$=function(e,t){if(!e||!l(e))throw new Error("Target must be of type object!");var r,n=function(r){return arguments.length?r:t in e};return(r=U(e,!1))?r.fire({type:"has",name:t},n):n()},ee=function(e,t,r,s=null,a={}){if(!t||!l(t))throw new Error("Target must be of type object!");o(r)&&(a=s||{},s=null);var u=U(t,!1),h=Z(t,!1);const p=(r,n,i,s)=>{var a,o="set";e&&(o="def",n=(a=n||{}).value);var c,f=!1;$(t,r)&&(f=!0,c=L(t,r));var p={name:r,type:o,value:n,related:i,detail:s,isUpdate:f,oldValue:c},d=function(e){return arguments.length?e:(a?Object.defineProperty(t,r,a):t[r]=n,!0)};if(u){var b=a?{type:"def",name:r,descriptor:a,related:i,detail:s,isUpdate:f,oldValue:c}:{type:"set",name:r,value:n,related:i,detail:s,isUpdate:f,oldValue:c};p.success=u.fire(b,d)}else p.success=d();return p.success&&p.value!==p.oldValue&&(l(p.oldValue)&&G(t,r,p.oldValue),l(p.value)&&(W(t,r,p.value),h&&(h.subBuild||h.build)&&B(p.value,h.subBuild,h.build))),p};var d,b=[];n(r)||(i(r)||f(r))&&(d=c(r))?b=d.map(e=>p(e,s,d,a.detail)):o(r)&&(d=Object.keys(r))&&(b=d.map(e=>p(e,r[e],d,a.detail)));var g,v=b.filter(e=>e.success);return h?(g=h.fire(v)).successCount=v.length:a.eventObject&&(g=new R(t)),a.eventObject?g:v.length>0},te=function(e,t,r=null,n=null,i={}){return ee(!1,...arguments)},re=function(e,t,r={}){if(!e||!l(e))throw new Error("Target must be of type object!");var n,i,s=(t=c(t)).map(n=>{var i;$(e,n)&&(i=L(e,n));var s,a={name:n,type:"del",related:t,detail:r.detail,oldValue:i},u=function(t){return arguments.length?t:(delete e[n],!0)};return(s=U(e,!1))?a.success=s.fire({type:"del",name:n,oldValue:i,related:t},u):a.success=u(),a.success&&l(a.oldValue)&&G(e,n,a.oldValue),a}).filter(e=>e.success);return(n=Z(e,!1))?(i=n.fire(s)).successCount=s.length:r.eventObject&&(i=new R(e)),r.eventObject?i:s.length>0},ne=function(e,t,r=null,n=null){return ee(!0,...arguments)},ie=function(e){return q(!0,...arguments)};var se={set:te,get:L,has:$,deleteProperty:re,del:re,defineProperty:ne,def:ne,keys:N,ownKeys:ie,intercept:function(e,t,r,n={}){if(!l(e))throw new Error('Object must be of type subject; "'+p(r)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),!h(r))throw new Error('Callback must be a function; "'+p(r)+'" given!');var i,s=U(e),a={filter:t,handler:r,params:n};if(a.params.unique&&(i=s.match(a)).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},unintercept:function(e,t,r=null,n={}){if(!e||!l(e))throw new Error('Object must be of type subject; "'+p(e)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!h(r))throw new Error('Handler must be a function; "'+p(r)+'" given!');var i;if(i=U(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},proxy:function(e){if(!l(e))throw new Error('Object must be of type subject; "'+p(e)+'" given!');var t=new Proxy(e,{get:(e,r)=>{if(r===Symbol.for(".observer.proxy.target"))return()=>e;var n=L(e,r);return h(n)&&!x(n)?n.bind(t):n},set:(...e)=>(te(...e),!0),has:$,deleteProperty:(...e)=>(re(...e),!0),defineProperty:(...e)=>(ne(...e),!0),ownKeys:ie});return t},unproxy:function(e){var t;return l(e)&&(t=e[Symbol.for(".observer.proxy.target")])?t():e},observe:K,unobserve:k,closure:J,init:function(e,t){c(t).forEach(t=>{var r,n,i=e[t],s=Object.getOwnPropertyDescriptor(e,t)||{enumerable:!(t in e)};"value"in s&&delete s.value,"writable"in s&&delete s.writable,s.get=()=>{if(r)return i;r=!0;var n=L(e,t);return r=!1,n},s.set=r=>{if(n)return i=r,!0;n=!0;te(e,t,r);return n=!1,!0},Object.defineProperty(e,t,s)})},build:B,link:W,unlink:G};window.WQ||(window.WQ={}),window.WQ.Observer=se}]);
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);var n=function(e){return Array.isArray(e)},i=function(e){return e instanceof String||"string"==typeof e&&null!==e},s=function(e){return arguments.length&&(void 0===e||void 0===e)},a=function(e){return null===e||""===e},u=function(e){return"function"==typeof e},l=function(e){return Array.isArray(e)||"object"==typeof e&&e||u(e)},o=function(e){return!Array.isArray(e)&&"object"==typeof e&&e},c=function(e,t=!0){return n(e)?e:!t&&o(e)?[e]:!1!==e&&0!==e&&function(e){return a(e)||s(e)||!1===e||0===e||l(e)&&!Object.keys(e).length}(e)?[]:function(e){return!i(e)&&!s(e.length)}(e)?Array.prototype.slice.call(e):o(e)?Object.values(e):[e]},f=function(e){return e instanceof Number||"number"==typeof e},h=function(e){return u(e)||e&&"[object function]"==={}.toString.call(e)},p=function(e){return typeof e},d=function(e,t,r=null){if(!l(e))throw new Error('Object must be of type subject; "'+p(e)+'" given!');var n,i=Symbol.for(t);return!(n=e[i])&&r&&(n=new r(e),e[i]=n),n};function b(e){return(g(e)?e:c(e).length?[e]:[]).reduce((e,t)=>e.concat([c(t)]),[])}function g(e){return c(e).reduce((e,t)=>e||n(t),!1)}function v(e){return e.filter(e=>!e&&0!==e).length}function m(e,t){return e.length===t.length&&e.reduce((e,r,n)=>e&&r===t[n],!0)}function y(e,t){return t.reduce((t,r,n)=>t&&r===e[n],!0)}function j(e,t){return e.slice(t.length)}var w=function(e,t,r=null){return n(t)?e.filter(e=>r?t.filter(t=>r(e,t)).length:-1!==t.indexOf(e)):[]},O=class{constructor(e){this.subject=e,this.fireables=[],this.currentlyFiring=[]}add(e){return this.fireables.push(e),e}remove(e){this.fireables=this.fireables.filter(t=>t!==e)}forget(e){this.match(e).forEach(e=>{this.fireables=this.fireables.filter(t=>t!==e)})}match(e){return this.fireables.filter(t=>{var r,n,i,s=b(t.filter),a=c((t.params||{}).tags),u=b(e.filter),l=c((e.params||{}).tags);return(!e.originalHandler||t.handler===e.originalHandler)&&(!u.length||(n=s,(r=u).length===n.length&&(i=(e,t)=>m(e,n[t]),r.reduce((e,t,r)=>e&&i(t,r),!0))))&&(!l.length||l.length===a.length&&w(a,l).length===l.length)})}},E=function(e){return f(e)||!0!==e&&!1!==e&&null!==e&&""!==e&&!isNaN(1*e)},P=function(e,t,r={},n={}){t=c(t).slice();for(var i=e;!s(i)&&!a(i)&&t.length;){var u=t.shift();if(!(r.get?r.get(i,u):l(i)?u in i:i[u]))return void(n.exists=!1);i=r.get?r.get(i,u):i[u]}return n.exists=!0,i},_=function(e,t=null){var r={};return 2===arguments.length&&(n(e)&&n(t)?e.forEach((e,n)=>r[e]=t[n]):r[e]=t),r},x=function(e){return u(e)&&/^class\s?/.test(Function.prototype.toString.call(e))},S=function(e,t){var r=[];return function(e,t){t=(t=t||Object.prototype)&&!n(t)?[t]:t;var r=[];for(e=e;e&&(!t||t.indexOf(e)<0)&&"default"!==e.name;)r.push(e),e=e?Object.getPrototypeOf(e):null;return r}(e,t).forEach(e=>{!function(e,...t){t.forEach(t=>{e.indexOf(t)<0&&e.push(t)})}(r,...Object.getOwnPropertyNames(e))}),r};function D(e,t,r=!1,i=!1,s=!1){var a=0,u=e.shift();if((E(u)||!0===u||!1===u)&&(a=u,u=e.shift()),!e.length)throw new Error("_merge() requires two or more array/objects.");return e.forEach((e,c)=>{(l(e)||h(e))&&(r?S(e):Object.getOwnPropertyNames(e)).forEach(l=>{if(t(l,u,e,c)){var f=u[l],h=e[l];if((n(f)&&n(h)||o(f)&&o(h))&&(!0===a||a>0))u[l]=n(f)&&n(h)?[]:{},D([E(a)?a-1:a,u[l],f,h],t,r,i,s);else if(n(u)&&n(e))i?u[l]=h:u.push(h);else try{s?Object.defineProperty(u,l,Object.getOwnPropertyDescriptor(e,l)):u[l]=e[l]}catch(e){}}})}),u}var V=function(e,t=[],r=!0){var i=0;return E(arguments[0])&&l(arguments[1])&&(i=arguments[0],e=arguments[1],t=arguments[2]||[]),D([i,{},e],(e,r,i)=>h(t)?t(e):!n(t)||!t.length||t.indexOf(e)>-1,!1,!1,r)},F=function(...e){return D(e,(e,t,r)=>!0,!1,!1,!1)},k=function(e,t,r=null,n={}){if(!e||!l(e))throw new Error('Observable subjects must be of type object; "'+p(e)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!h(r))throw new Error('Handler must be a function; "'+p(r)+'" given!');var i;if(i=Z(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},C=function(e,t){var r=void 0;return l(e)&&Object.keys(e).forEach((n,i)=>{!1!==r&&(r=t(E(n)?parseFloat(n):n,e[n],i))}),r},I=class{constructor(e,t){this.subject=e,this.handler=t.handler,this.filter=t.filter,this.params=t.params}disconnect(){this.disconnected=!0}},A=class extends I{fire(e,t,r){return this.disconnected||this.filter&&!w(c(this.filter),[e.type]).length?t(...Array.prototype.slice.call(arguments,2)):this.handler(e,r,t)}},T=class{constructor(e,t){if(this.subject=e,!t.type)throw new Error("Action type must be given in definition!");C(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),Object.seal(this)}},W=class extends O{add(e){return super.add(new A(this.subject,e))}fire(e,t=null){if(e instanceof T||(e=new T(this.subject,e)),this.currentlyFiring.filter(t=>t.type===e.type&&t.name===e.name).length)return t?t():void 0;this.currentlyFiring.push(e);const r=(n,...i)=>{var s=this.fireables[n];return s?s.fire(e,(...e)=>r(n+1,...e),...i):t?t(...i):i[0]};var n=r(0);return this.currentlyFiring.pop(),n}},H=function(e,t=!0){return d(e,".observer.interceptors",t?W:null)},U=function(e,t){if(!t||!l(t))throw new Error("Target must be of type object!");var r,n=function(r){return arguments.length?r:e?Object.getOwnPropertyNames(t):Object.keys(t)};return(r=H(t,!1))?r.fire({type:e?"ownKeys":"keys"},n)||[]:n()},q=function(e){return U(!1,...arguments)};function N(e,t=null,r=!1){if(!e||!l(e))throw new Error("Target must be of type object!");var n=Z(e);if(n&&!n.build){n.build=r;var i=b(t),s=!i.length||i.filter(e=>!e[0]&&0!==e[0]).length?q(e):i.map(e=>e[0]),a=i.length?i.map(e=>e.slice(1)).filter(e=>e.length):null;n.subBuild=a&&a.length?a:null,s.forEach(t=>{var i=L(e,t);try{l(i)&&(Q(e,t,i),(n.subBuild&&B(i)||(_isFunction(r)?r(i):r&&B(i)))&&N(i,n.subBuild,r))}catch(e){}})}}const B=e=>(e instanceof Object||e instanceof Array||e instanceof Function)&&("undefined"==typeof window||e!==window);var M=function(e,t,r=null,n={}){if(!e||!l(e))throw new Error('Observable subjects must be of type object; "'+p(e)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),!h(r))throw new Error('Handler must be a function; "'+p(r)+'" given!');var i,s=Z(e),a={filter:t,handler:r,params:n};if((a.filter||!0===a.params.subtree||"auto"===a.params.subtree&&B(e))&&N(e,a.filter,a.params.subtree),a.params.unique&&(i=s.match({filter:t,params:n})).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},K=class{constructor(e,t){if(this.subject=e,t.originalSubject||(this.originalSubject=e),!("type"in t))throw new Error("Delta type must be given in definition!");if(!("name"in t))throw new Error("Property name must be given in definition!");C(t,(e,t)=>{Object.defineProperty(this,e,{value:t,enumerable:!0})}),this.path||Object.defineProperty(this,"path",{value:[t.name],enumerable:!0}),Object.seal(this)}},Q=function(e,t,r,n=null,i={}){var s;if(e!==r&&(M(r,(r,n)=>{if(s=Z(e,!1)){var i=r.map(r=>{var n=r;do{if(n.subject===e)return}while(n=n.src);var i={};return C(r,(e,t)=>{"subject"!==e&&"name"!==e&&"path"!==e&&"src"!==e&&(i[e]=t)}),i.name=t,i.path=[t].concat(r.path),i.originalSubject=r.originalSubject,i.src=r,new K(e,i)}).filter(e=>e);if(i.length)return s.fire(i,n.cancellable)}},{subtree:"auto",unique:!0,tags:[z,t,e]}),o(n)&&(s=Z(e,!1)))){var a=F({name:t,type:"set",value:r,related:[t]},n);let e=s.fire(a,i.cancellable);if(i.responseObject)return e}};const z={};var G=function(e,t,r,n=null,i={}){var s;if(k(r,null,null,{tags:[z,t,e]}),o(n)&&(s=Z(e,!1))){var a=F({name:t,type:"del",oldValue:r,related:[t]},n);s.fire(a,i.cancellable)}},J=function(e,...t){var r=t.map(e=>{if(!l(e))throw new Error("Target must be of type object!");return{subject:e,subjectCopy:n(e)?e.slice(0):V(e)}}),i=e(...t);return r.map(e=>{var t,r,n=Object.keys(e.subjectCopy),i=Object.keys(e.subject),s=[],a=(t=n.concat(i),t.filter((e,t,r)=>r.indexOf(e)===t)).map(t=>{if(e.subjectCopy[t]!==e.subject[t]){s.push(t);var r={name:t,related:s,buffered:!0};return i.includes(t)?(r.type="set",r.value=e.subject[t],n.includes(t)&&(r.isUpdate=!0)):r.type="del",n.includes(t)&&(r.oldValue=e.subjectCopy[t]),l(e.subjectCopy[t])&&G(e.subject,t,e.subjectCopy[t]),l(e.subject[t])&&Q(e.subject,t,e.subject[t]),r}}).filter(e=>e);if(a.length&&(r=Z(e.subject,!1)))return r.fire(a)}),i},L=function(e,t,r=!1){if(!e||!l(e))throw new Error("Target must be of type object!");var i,s,a=function(r){return arguments.length?r:n(t)?_(t,e):e[t]};return i=(s=H(e))?s.fire({type:"get",name:t},a):a(),r&&n(e)&&!E(t)&&h(i)&&!x(i)?function(...t){return J(()=>i.apply(e,t),e)}:i},R=class{constructor(e,t=!1){this._={},this._.target=e,this._.cancellable=t,this._.propagationStopped=!1,this._.defaultPrevented=!1,this._.promisesInstance=null,this._.promises=[]}get target(){return this._.target}get cancellable(){return this._.cancellable}stopPropagation(){this._.propagationStopped=!0}get propagationStopped(){return this._.propagationStopped}preventDefault(){this._.defaultPrevented=!0}get defaultPrevented(){return this._.defaultPrevented}waitUntil(e){e instanceof Promise&&(this._.promises.push(e),this._.promisesInstance=null)}get promises(){return!this._.promisesInstance&&this._.promises.length&&(this._.promisesInstance=Promise.all(this._.promises)),this._.promisesInstance}respondWith(e){var t,r=o(e)&&!s(e.propagationStopped)&&!s(e.defaultPrevented);!1===e||r&&e.propagationStopped?this.stopPropagation():!1===e||r&&e.defaultPrevented?this.preventDefault():(e instanceof Promise&&(t=e)||r&&(t=e.promises))&&this.waitUntil(t)}},X=class extends I{constructor(e,t){if(super(e,t),this.filters2D=b(this.filter),this.filtersIsOriginally2D=g(this.filter),this.filtersIsDynamic=this.filters2D.filter(e=>v(c(e))).length,this.filtersIsDynamic&&this.filters2D.length>1)throw new Error('Only one "Dynamic Filter" must be observed at a time! "'+this.filters2D.map(e=>"["+e.join(", ")+"]").join(", ")+'" have been bound together.')}fire(e){if(this.disconnected||this.params.type&&(t=e=>this.params.type===e.type,!e.reduce((e,r,n)=>e||t(r,n),!1)))return;var t;const r=e=>["set","def"].includes(e.type)&&(!this.params.diff||(h(this.params.diff)?this.params.diff(e.value,e.oldValue):e.value!==e.oldValue));var n=new R(this.subject);if(this.filters2D.length){var i=[];this.filters2D.filter((t,n)=>(i[n]=[],e.filter(e=>{var s=this.filtersIsDynamic?t.map((t,r)=>t||0===t?t:e.path[r]||""):t;return i[n].filter(e=>m(e,s)).length||i[n].push(s),(m(s,e.path)||!1!==this.params.suptree&&y(s,e.path)&&(!E(this.params.suptree)||j(s,e.path).length<=this.params.suptree)||this.params.subtree&&y(e.path,s)&&(!E(this.params.subtree)||j(e.path,s).length<=this.params.subtree))&&(!this.filtersIsDynamic||!v(s))&&r(e)}).length)).length&&function(e){return e.reduce((e,t)=>{var r=[];return e.forEach(e=>{c(t).forEach(t=>{var n=e.slice();n.push(t),r.push(n)})}),r},[[]])}(i).forEach(t=>{var r=this.formatChanges(t,e);if(this.filtersIsOriginally2D){var i=r;o(this.filter)&&(i={},_each(this.filter,(e,t,n)=>{i[e]=r[n]})),n.respondWith(this.handler(i,n))}else n.respondWith(this.handler(r[0],n))})}else(this.params.subtree||e.filter(e=>m(e.path,[e.name])).length===e.length)&&e.filter(e=>r(e)).length&&n.respondWith(this.handler(e,n));return n}formatChanges(e,t){return!1===this.params.data?[]:e.map(e=>{var r=t.reduce((t,r)=>t||(m(e,r.path)||this.params.suptree&&y(e,r.path)||this.params.subtree&&y(r.path,e)?r:null),null);if(!r){var n=t.reduce((t,r)=>t||y(e,r.path)?r:null,null);if(n){var i=j(e,n.path),s={type:n.type,name:n.name,derived:!0,src:n};("del"===n.type||n.isUpdate)&&(s.oldValue=P(n.oldValue,i,{get:L})),"del"!==n.type&&(s.value=P(n.value,i,{get:L})),r=new K(n.subject,s)}else r=new K(this.subject,{type:"get",name:e[0],path:e,value:P(this.subject,e,{get:L}),derived:!0})}return r})}},Y=class extends O{add(e){return super.add(new X(this.subject,e))}fire(e,t){var r=new R(this.subject,t);return e=c(e,!1).map(e=>e instanceof K?e:new K(this.subject,e)),this.currentlyFiring.filter(t=>e.filter(e=>t.type===e.type&&t.name===e.name).length).length,this.currentlyFiring.push(...e),this.fireables.forEach(n=>{if(r.propagationStopped&&t)return r;r.respondWith(n.fire(e))}),e.forEach(e=>function(e,t,r=!1){for(var n=e.indexOf(t);n>-1&&(r||!1===r);)e.splice(n,1),r>0&&r--,n=e.indexOf(t);return e}(this.currentlyFiring,e)),r}},Z=function(e,t=!0){return d(e,".observer.observers",t?Y:null)},$=function(e,t){if(!e||!l(e))throw new Error("Target must be of type object!");var r,n=function(r){return arguments.length?r:t in e};return(r=H(e,!1))?r.fire({type:"has",name:t},n):n()},ee=function(e,t,r,s=null,a={}){if(!t||!l(t))throw new Error("Target must be of type object!");o(r)&&(a=s||{},s=null);var u=H(t,!1),h=Z(t,!1);const p=(r,n,i,s)=>{var a,o="set";e&&(o="def",n=(a=n||{}).value);var c,f=!1;$(t,r)&&(f=!0,c=L(t,r));var p={name:r,type:o,value:n,related:i,detail:s,isUpdate:f,oldValue:c},d=function(e){return arguments.length?e:(a?Object.defineProperty(t,r,a):t[r]=n,!0)};if(u){var b=a?{type:"def",name:r,descriptor:a,related:i,detail:s,isUpdate:f,oldValue:c}:{type:"set",name:r,value:n,related:i,detail:s,isUpdate:f,oldValue:c};p.success=u.fire(b,d)}else p.success=d();return p.success&&p.value!==p.oldValue&&(l(p.oldValue)&&G(t,r,p.oldValue),l(p.value)&&(Q(t,r,p.value),h&&(h.subBuild||h.build&&B(p.value))&&N(p.value,h.subBuild,h.build))),p};var d,b=[];n(r)||(i(r)||f(r))&&(d=c(r))?b=d.map(e=>p(e,s,d,a.detail)):o(r)&&(d=Object.keys(r))&&(b=d.map(e=>p(e,r[e],d,a.detail)));var g,v=b.filter(e=>e.success);return h?(g=h.fire(v,a.cancellable)).successCount=v.length:a.responseObject&&(g=new R(t)),a.responseObject?g:v.length>0},te=function(e,t,r=null,n=null,i={}){return ee(!1,...arguments)},re=function(e,t,r={}){if(!e||!l(e))throw new Error("Target must be of type object!");var n,i,s=(t=c(t)).map(n=>{var i;$(e,n)&&(i=L(e,n));var s,a={name:n,type:"del",related:t,detail:r.detail,oldValue:i},u=function(t){return arguments.length?t:(delete e[n],!0)};return(s=H(e,!1))?a.success=s.fire({type:"del",name:n,oldValue:i,related:t},u):a.success=u(),a.success&&l(a.oldValue)&&G(e,n,a.oldValue),a}).filter(e=>e.success);return(n=Z(e,!1))?(i=n.fire(s,r.cancellable)).successCount=s.length:r.responseObject&&(i=new R(e)),r.responseObject?i:s.length>0},ne=function(e,t,r=null,n=null){return ee(!0,...arguments)},ie=function(e){return U(!0,...arguments)};var se={set:te,get:L,has:$,deleteProperty:re,del:re,defineProperty:ne,def:ne,keys:q,ownKeys:ie,intercept:function(e,t,r,n={}){if(!l(e))throw new Error('Object must be of type subject; "'+p(r)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),!h(r))throw new Error('Callback must be a function; "'+p(r)+'" given!');var i,s=H(e),a={filter:t,handler:r,params:n};if(a.params.unique&&(i=s.match(a)).length){if("replace"!==a.params.unique)return i[0];s.remove(i[0])}return s.add(a)},unintercept:function(e,t,r=null,n={}){if(!e||!l(e))throw new Error('Object must be of type subject; "'+p(e)+'" given!');if(h(t)&&(n=arguments.length>2?r:{},r=t,t=null),r&&!h(r))throw new Error('Handler must be a function; "'+p(r)+'" given!');var i;if(i=H(e,!1))return i.forget({filter:t,originalHandler:r,params:n})},proxy:function(e){if(!l(e))throw new Error('Object must be of type subject; "'+p(e)+'" given!');var t=new Proxy(e,{get:(e,r)=>{if(r===Symbol.for(".observer.proxy.target"))return()=>e;var n=L(e,r);return h(n)&&!x(n)?n.bind(t):n},set:(...e)=>(te(...e),!0),has:$,deleteProperty:(...e)=>(re(...e),!0),defineProperty:(...e)=>(ne(...e),!0),ownKeys:ie});return t},unproxy:function(e){var t;return l(e)&&(t=e[Symbol.for(".observer.proxy.target")])?t():e},observe:M,unobserve:k,closure:J,init:function(e,t){c(t).forEach(t=>{var r,n,i=e[t],s=Object.getOwnPropertyDescriptor(e,t)||{enumerable:!(t in e)};"value"in s&&delete s.value,"writable"in s&&delete s.writable,s.get=()=>{if(r)return i;r=!0;var n=L(e,t);return r=!1,n},s.set=r=>{if(n)return i=r,!0;n=!0;te(e,t,r);return n=!1,!0},Object.defineProperty(e,t,s)})},build:N,link:Q,unlink:G};window.WQ||(window.WQ={}),window.WQ.Observer=se}]);
//# sourceMappingURL=main.js.map

@@ -15,3 +15,3 @@ {

"homepage": "https://webqit.io/tooling/observer",
"version": "1.2.6",
"version": "1.2.7",
"license": "MIT",

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

@@ -1,28 +0,35 @@

> Observability and Interceptability, Objects and Arrays.
# The Observer API
# Observer
<!-- BADGES/ -->
<span class="badge-npmversion"><a href="https://npmjs.org/package/@web-native-js/observables" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@web-native-js/observables.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@web-native-js/observables" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@web-native-js/observables.svg" alt="NPM downloads" /></a></span>
<span class="badge-patreon"><a href="https://patreon.com/ox_harris" title="Donate to this project using Patreon"><img src="https://img.shields.io/badge/patreon-donate-yellow.svg" alt="Patreon donate button" /></a></span>
<span class="badge-npmversion"><a href="https://npmjs.org/package/@webqit/observer" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@webqit/observer.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@webqit/observer" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@webqit/observer.svg" alt="NPM downloads" /></a></span>
<!-- /BADGES -->
*[Observer](https://webqit.io/tooling/observer)* is an API for intercepting and observing JavaScript objects and arrays.
Observer is a simple set of functions for intercepting and observing JavaScript objects and arrays. It is designed for general-purpose event-based architectures (from UI data-binding to debugging, and everything in between). It draws its inspiration from [Object.observe](https://arv.github.io/ecmascript-object-observe) and JavaScript's other reflection APIs like [`Reflect`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect).
> [Visit project homepage](https://webqit.io/tooling/observer).
```js
let obj = {};
Observer.observe(obj, events => {
events.forEach(event => {
console.log(event.type, event.name, event.path, event.value, event.oldValue);
});
});
Observer.set(obj, path, value);
```
Follow the [installation guide](https://webqit.io/tooling/observer/installation) to obtain the Observer API.
## Documentation
+ [Examples](https://webqit.io/tooling/observer/examples)
+ [API](https://webqit.io/tooling/observer/api)
+ [Installation](https://docs.web-native.dev/observer/installation)
+ [Examples](https://docs.web-native.dev/observer/examples)
+ [API](https://docs.web-native.dev/observer/api)
## Issues
To report bugs or request features, please submit an [issue](https://github.com/webqit/observer/issues).
To report bugs or request features, please submit an [issue](https://github.com/web-native/observer/issues).
## License
MIT.

@@ -12,3 +12,3 @@

import getObservers from '../observer/getObservers.js';
import build from '../observer/build.js';
import build, { isUserObject } from '../observer/build.js';
import unlink from '../observer/unlink.js';

@@ -82,6 +82,6 @@ import link from '../observer/link.js';

if (interceptors) {
var eventObject = descriptor
var responseObject = descriptor
? {type:'def', name:key, descriptor, related, detail, isUpdate, oldValue}
: {type:'set', name:key, value, related, detail, isUpdate, oldValue};
e.success = interceptors.fire(eventObject, defaultSet);
e.success = interceptors.fire(responseObject, defaultSet);
} else {

@@ -99,3 +99,3 @@ e.success = defaultSet();

link(subject, key, e.value);
if (observers && (observers.subBuild || observers.build)) {
if (observers && (observers.subBuild || (observers.build && isUserObject(e.value)))) {
build(e.value, observers.subBuild, observers.build);

@@ -118,8 +118,8 @@ }

if (observers) {
evt = observers.fire(successfulEvents);
evt = observers.fire(successfulEvents, params.cancellable);
evt.successCount = successfulEvents.length;
} else if (params.eventObject) {
} else if (params.responseObject) {
evt = new Event(subject);
}
return params.eventObject ? evt : successfulEvents.length > 0;
return params.responseObject ? evt : successfulEvents.length > 0;
}

@@ -68,8 +68,8 @@

if (observers = getObservers(subject, false)) {
evt = observers.fire(successfulEvents);
evt = observers.fire(successfulEvents, params.cancellable);
evt.successCount = successfulEvents.length;
} else if (params.eventObject) {
} else if (params.responseObject) {
evt = new Event(subject);
}
return params.eventObject ? evt : successfulEvents.length > 0;
return params.responseObject ? evt : successfulEvents.length > 0;
}

@@ -64,2 +64,3 @@

*/
const isUserObject = value => (value instanceof Object) || (value instanceof Array) || (value instanceof Function);
export const isUserObject = value => ((value instanceof Object) || (value instanceof Array) || (value instanceof Function))
&& (typeof window === 'undefined' || value !== window);

@@ -21,8 +21,10 @@

* @param array|object target
* @param bool cancellable
*
* @return void
*/
constructor(target) {
constructor(target, cancellable = false) {
this._ = {};
this._.target = target;
this._.cancellable = cancellable;
this._.propagationStopped = false;

@@ -44,2 +46,11 @@ this._.defaultPrevented = false;

/**
* Gets the "cancellable" flag.
*
* @return bool
*/
get cancellable() {
return this._.cancellable;
}
/**
* -----------------------

@@ -121,3 +132,3 @@ * RESPONSE HANDLERS

*/
respond(rspns) {
respondWith(rspns) {
var proms;

@@ -124,0 +135,0 @@ var isEvent = _isObject(rspns) && !_isUndefined(rspns.propagationStopped) && !_isUndefined(rspns.defaultPrevented)

@@ -19,6 +19,7 @@

* @param object event
* @param object params
*
* @return void
*/
export default function(subject, field, value, event = null) {
export default function(subject, field, value, event = null, params = {}) {
if (subject === value) {

@@ -28,13 +29,3 @@ return;

var observers;
if (_isObject(event) && (observers = getObservers(subject, false))) {
// The event object
var _event = _merge({
name: field,
type: 'set',
value,
related: [field],
}, event);
observers.fire(_event);
}
observe(value, changes => {
observe(value, (changes, responseObject) => {
if (observers = getObservers(subject, false)) {

@@ -66,6 +57,19 @@ var _changes = changes.map(delta => {

if (_changes.length) {
return observers.fire(_changes);
return observers.fire(_changes, responseObject.cancellable);
}
}
}, {subtree:true, unique:true, tags:[linkTag, field, subject]});
}, {subtree: 'auto', unique: true, tags: [linkTag, field, subject]});
if (_isObject(event) && (observers = getObservers(subject, false))) {
// The event object
var _event = _merge({
name: field,
type: 'set',
value,
related: [field],
}, event);
let response = observers.fire(_event, params.cancellable);
if (params.responseObject) {
return response;
}
}
};

@@ -72,0 +76,0 @@

@@ -9,3 +9,3 @@

import getObservers from './getObservers.js';
import build from './build.js';
import build, { isUserObject } from './build.js';

@@ -36,3 +36,3 @@ /**

var dfn = {filter, handler, params,};
if (dfn.filter || dfn.params.subtree) {
if (dfn.filter || dfn.params.subtree === true || (dfn.params.subtree === 'auto' && isUserObject(subject))) {
build(subject, dfn.filter, dfn.params.subtree);

@@ -39,0 +39,0 @@ }

@@ -94,5 +94,5 @@

}
evt.respond(this.handler(changesObject, evt));
evt.respondWith(this.handler(changesObject, evt));
} else {
evt.respond(this.handler(_changes[0], evt));
evt.respondWith(this.handler(_changes[0], evt));
}

@@ -102,3 +102,3 @@ });

} else if ((this.params.subtree || changes.filter(delta => pathIsSame(delta.path, [delta.name])).length === changes.length) && changes.filter(delta => diff(delta)).length) {
evt.respond(this.handler(changes, evt));
evt.respondWith(this.handler(changes, evt));
}

@@ -105,0 +105,0 @@ return evt;

@@ -31,7 +31,8 @@

* @param array|Delta changes
* @param bool cancellable
*
* @return Event
*/
fire(changes) {
var evt = new Event(this.subject);
fire(changes, cancellable) {
var evt = new Event(this.subject, cancellable);
// We accept multiple changes

@@ -44,6 +45,6 @@ changes = _arrFrom(changes, false).map(delta => !(delta instanceof Delta) ? new Delta(this.subject, delta) : delta);

this.fireables.forEach(observer => {
if (evt.propagationStopped) {
if (evt.propagationStopped && cancellable) {
return evt;
}
evt.respond(observer.fire(changes));
evt.respondWith(observer.fire(changes));
});

@@ -50,0 +51,0 @@ changes.forEach(delta => _remove(this.currentlyFiring, delta));

@@ -18,6 +18,7 @@

* @param object event
* @param object params
*
* @return void
*/
export default function(subject, field, value, event = null) {
export default function(subject, field, value, event = null, params = {}) {
unobserve(value, null, null, {tags:[linkTag, field, subject]});

@@ -33,4 +34,4 @@ var observers;

}, event);
observers.fire(_event);
observers.fire(_event, params.cancellable);
}
}

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