@mediacubeco/base 1.0.0 → 1.2.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.
@@ -1 +1 @@
1
- "use strict";const t=t=>t instanceof Error,e=(t,...e)=>{if(t instanceof Function)return t(...e)};class s{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class r{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,s,r){const i=this.subscriptions[t];if(i){const{event:t,listenerList:n}=i;n.forEach(r=>e(r,Object.assign(t,s))),t.isDefaultPrevented||e(r)}else e(r)}on(t,e){const r=this.subscriptions[t];return r?r.listenerList.push(e):this.subscriptions[t]={event:new s,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:r,listenerList:i}=s;this.subscriptions[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const i=(t="?",...e)=>{const s=(t&&(r=t,"string"==typeof r)?t:"?").toUpperCase();var r;const i=e.reduce((t,e,s,{length:r})=>{const i=s===r-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[]);return[`[${s}]`,...i]};var n,a,o;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(a||(a={}));class c{static formatted={info:(...t)=>c.info(...i(...t)),success:(...t)=>c.success(...i(...t)),warning:(...t)=>c.warning(...i(...t)),danger:(...t)=>c.danger(...i(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){c.#t(n.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...i(t,...s)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,a.Info,...t)}static success(...t){c.#t(n.Default,a.Success,...t)}static warning(...t){c.#t(n.Default,a.Warning,...t)}static danger(...t){c.#t(n.Default,a.Danger,...t)}}exports.ErrorHandlerEventName=void 0,(o=exports.ErrorHandlerEventName||(exports.ErrorHandlerEventName={})).Capture="capture",o.Forward="forward";class u{static eventEmitter=new r;static caseList=[];static log(e,s){const{signal:r,message:i,payload:n,stack:a}=s,o=[i,t(e)?e.message:void 0].filter(Boolean);c.formatted.danger(r,...o,{error:e,payload:n,stack:a})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw u.create(t,e)}static capture(t,e){u.log(t,e),u.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e})}static forward(t,e){throw u.log(t,e),u.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e}),t}static case(t){u.caseList.push(t)}static parse(e){const s={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:r}of u.caseList)if(t(e,s))return r(e,s);return!0===t(e)?{message:e.message,status:s.status,errors:s.errors,isExternal:s.isExternal}:{message:s.message,status:s.status,errors:s.errors,isExternal:s.isExternal}}}exports.ErrorHandler=u,exports.EventEmitter=r,exports.Log=c;
1
+ "use strict";const t=t=>t instanceof Error,e=(t,...e)=>{if(t instanceof Function)return t(...e)};class s{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class r{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,s,r){const i=this.subscriptions[t];if(i){const{event:t,listenerList:n}=i;n.forEach(r=>e(r,Object.assign(t,s))),t.isDefaultPrevented||e(r)}else e(r)}on(t,e){const r=this.subscriptions[t];return r?r.listenerList.push(e):this.subscriptions[t]={event:new s,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:r,listenerList:i}=s;this.subscriptions[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const i=(t="?",...e)=>{const s=(t&&(r=t,"string"==typeof r)?t:"?").toUpperCase();var r;const i=e.reduce((t,e,s,{length:r})=>{const i=s===r-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[]);return[`[${s}]`,...i]};var n,a,o;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(a||(a={}));class c{static formatted={info:(...t)=>c.info(...i(...t)),success:(...t)=>c.success(...i(...t)),warning:(...t)=>c.warning(...i(...t)),danger:(...t)=>c.danger(...i(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){c.#t(n.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...i(t,...s)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,a.Info,...t)}static success(...t){c.#t(n.Default,a.Success,...t)}static warning(...t){c.#t(n.Default,a.Warning,...t)}static danger(...t){c.#t(n.Default,a.Danger,...t)}}exports.ErrorHandlerEventName=void 0,(o=exports.ErrorHandlerEventName||(exports.ErrorHandlerEventName={})).Capture="capture",o.Forward="forward";class u{static eventEmitter=new r;static caseList=[];static log(e,s={signal:"unknown"}){const{signal:r,message:i,payload:n,stack:a}=s,o=[i,t(e)?e.message:void 0].filter(Boolean);c.formatted.danger(r,...o,{error:e,payload:n,stack:a})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw u.create(t,e)}static capture(t,e){u.log(t,e),u.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e})}static forward(t,e){throw u.log(t,e),u.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e}),t}static case(t){u.caseList.push(t)}static parse(e){const s={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:r}of u.caseList)if(t(e,s))return r(e,s);return!0===t(e)?{message:e.message,status:s.status,errors:s.errors,isExternal:s.isExternal}:{message:s.message,status:s.status,errors:s.errors,isExternal:s.isExternal}}}exports.ErrorHandler=u,exports.EventEmitter=r,exports.Log=c;
@@ -186,7 +186,7 @@ type ErrorHandlerConfig = {
186
186
  */
187
187
  type ErrorHandlerEventParams = {
188
188
  error: ErrorHandlerError;
189
- config: ErrorHandlerConfig;
189
+ config?: ErrorHandlerConfig;
190
190
  };
191
191
 
192
192
  /**
@@ -285,7 +285,7 @@ declare class ErrorHandler {
285
285
  * })
286
286
  * ```
287
287
  */
288
- static capture(error: ErrorHandlerError, config: ErrorHandlerConfig): void;
288
+ static capture(error: ErrorHandlerError, config?: ErrorHandlerConfig): void;
289
289
  /**
290
290
  * Логирует ошибку, эмитит 'capture' и пробрасывает ошибку дальше (never).
291
291
  *
@@ -300,7 +300,7 @@ declare class ErrorHandler {
300
300
  * })
301
301
  * ```
302
302
  */
303
- static forward(error: ErrorHandlerError, config: ErrorHandlerConfig): never;
303
+ static forward(error: ErrorHandlerError, config?: ErrorHandlerConfig): never;
304
304
  /**
305
305
  * Регистрирует кейс для parse: при совпадении check() будет вызван parse().
306
306
  * Порядок регистрации важен — используется первый подходящий кейс.
@@ -1 +1 @@
1
- const t=t=>t instanceof Error,e=(t,...e)=>{if(t instanceof Function)return t(...e)};class s{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class r{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,s,r){const i=this.subscriptions[t];if(i){const{event:t,listenerList:n}=i;n.forEach(r=>e(r,Object.assign(t,s))),t.isDefaultPrevented||e(r)}else e(r)}on(t,e){const r=this.subscriptions[t];return r?r.listenerList.push(e):this.subscriptions[t]={event:new s,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:r,listenerList:i}=s;this.subscriptions[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const i=(t="?",...e)=>{const s=(t&&(r=t,"string"==typeof r)?t:"?").toUpperCase();var r;const i=e.reduce((t,e,s,{length:r})=>{const i=s===r-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[]);return[`[${s}]`,...i]};var n,a,o;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(a||(a={}));class c{static formatted={info:(...t)=>c.info(...i(...t)),success:(...t)=>c.success(...i(...t)),warning:(...t)=>c.warning(...i(...t)),danger:(...t)=>c.danger(...i(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){c.#t(n.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...i(t,...s)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,a.Info,...t)}static success(...t){c.#t(n.Default,a.Success,...t)}static warning(...t){c.#t(n.Default,a.Warning,...t)}static danger(...t){c.#t(n.Default,a.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(o||(o={}));class u{static eventEmitter=new r;static caseList=[];static log(e,s){const{signal:r,message:i,payload:n,stack:a}=s,o=[i,t(e)?e.message:void 0].filter(Boolean);c.formatted.danger(r,...o,{error:e,payload:n,stack:a})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw u.create(t,e)}static capture(t,e){u.log(t,e),u.eventEmitter.emit(o.Capture,{error:t,config:e})}static forward(t,e){throw u.log(t,e),u.eventEmitter.emit(o.Capture,{error:t,config:e}),t}static case(t){u.caseList.push(t)}static parse(e){const s={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:r}of u.caseList)if(t(e,s))return r(e,s);return!0===t(e)?{message:e.message,status:s.status,errors:s.errors,isExternal:s.isExternal}:{message:s.message,status:s.status,errors:s.errors,isExternal:s.isExternal}}}export{u as ErrorHandler,o as ErrorHandlerEventName,r as EventEmitter,c as Log};
1
+ const t=t=>t instanceof Error,s=(t,...s)=>{if(t instanceof Function)return t(...s)};class e{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class r{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,e,r){const i=this.subscriptions[t];if(i){const{event:t,listenerList:n}=i;n.forEach(r=>s(r,Object.assign(t,e))),t.isDefaultPrevented||s(r)}else s(r)}on(t,s){const r=this.subscriptions[t];return r?r.listenerList.push(s):this.subscriptions[t]={event:new e,listenerList:[s]},()=>this.off(t,s)}off(t,s){const e=this.subscriptions[t];if(e){const{event:r,listenerList:i}=e;this.subscriptions[t]={event:r,listenerList:i.filter(t=>t!==s)},r.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const i=(t="?",...s)=>{const e=(t&&(r=t,"string"==typeof r)?t:"?").toUpperCase();var r;const i=s.reduce((t,s,e,{length:r})=>{const i=e===r-1?[]:["|"];return t.push(s,...i),t},s.length?["-"]:[]);return[`[${e}]`,...i]};var n,a,o;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(a||(a={}));class c{static formatted={info:(...t)=>c.info(...i(...t)),success:(...t)=>c.success(...i(...t)),warning:(...t)=>c.warning(...i(...t)),danger:(...t)=>c.danger(...i(...t))};static#t(t,...s){console[t](...s)}static startGroup(t,s,...e){c.#t(n.StartGroup,...((t,...s)=>["%c%s",t,...s])(`font-size: 16px;${s}`,...i(t,...e)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,a.Info,...t)}static success(...t){c.#t(n.Default,a.Success,...t)}static warning(...t){c.#t(n.Default,a.Warning,...t)}static danger(...t){c.#t(n.Default,a.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(o||(o={}));class u{static eventEmitter=new r;static caseList=[];static log(s,e={signal:"unknown"}){const{signal:r,message:i,payload:n,stack:a}=e,o=[i,t(s)?s.message:void 0].filter(Boolean);c.formatted.danger(r,...o,{error:s,payload:n,stack:a})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,s){return new Error(t,{cause:s})}static throw(t,s){throw u.create(t,s)}static capture(t,s){u.log(t,s),u.eventEmitter.emit(o.Capture,{error:t,config:s})}static forward(t,s){throw u.log(t,s),u.eventEmitter.emit(o.Capture,{error:t,config:s}),t}static case(t){u.caseList.push(t)}static parse(s){const e={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:r}of u.caseList)if(t(s,e))return r(s,e);return!0===t(s)?{message:s.message,status:e.status,errors:e.errors,isExternal:e.isExternal}:{message:e.message,status:e.status,errors:e.errors,isExternal:e.isExternal}}}export{u as ErrorHandler,o as ErrorHandlerEventName,r as EventEmitter,c as Log};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const t=t=>void 0===t,e=t=>null===t,s=s=>t(s)||e(s),r=t=>"string"==typeof t,i=t=>"object"==typeof t,o=t=>{const e=[n,a,c,u,l,f,p,h,g,m,d].some(e=>e(t));return!!t&&"object"==typeof t&&!e},n=t=>Array.isArray(t),a=t=>t instanceof ArrayBuffer,c=t=>t instanceof Map,u=t=>t instanceof Set,l=t=>t instanceof Map,f=t=>t instanceof Set,p=t=>t instanceof Date,h=t=>t instanceof Error,g=t=>t instanceof RegExp,m=t=>t instanceof Promise,d=t=>t instanceof Function;const x=(t,...e)=>{if(d(t))return t(...e)};function y(t,e){return!(!i(e)||!(t in e))}function b(t,e){return t.filter(t=>e.includes(t))}class E{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class v{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,e,s){const r=this.subscriptions[t];if(r){const{event:t,listenerList:i}=r;i.forEach(s=>x(s,Object.assign(t,e))),t.isDefaultPrevented||x(s)}else x(s)}on(t,e){const s=this.subscriptions[t];return s?s.listenerList.push(e):this.subscriptions[t]={event:new E,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:r,listenerList:i}=s;this.subscriptions[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const w=(t="?",...e)=>[`[${(t&&r(t)?t:"?").toUpperCase()}]`,...e.reduce((t,e,s,{length:r})=>{const i=s===r-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[])];var D,N,k;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(D||(D={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(N||(N={}));class S{static formatted={info:(...t)=>S.info(...w(...t)),success:(...t)=>S.success(...w(...t)),warning:(...t)=>S.warning(...w(...t)),danger:(...t)=>S.danger(...w(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){S.#t(D.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...w(t,...s)))}static endGroup(){S.#t(D.EndGroup)}static info(...t){S.#t(D.Default,N.Info,...t)}static success(...t){S.#t(D.Default,N.Success,...t)}static warning(...t){S.#t(D.Default,N.Warning,...t)}static danger(...t){S.#t(D.Default,N.Danger,...t)}}exports.ErrorHandlerEventName=void 0,(k=exports.ErrorHandlerEventName||(exports.ErrorHandlerEventName={})).Capture="capture",k.Forward="forward";class L{static eventEmitter=new v;static caseList=[];static log(t,e){const{signal:s,message:r,payload:i,stack:o}=e,n=[r,h(t)?t.message:void 0].filter(Boolean);S.formatted.danger(s,...n,{error:t,payload:i,stack:o})}static get on(){return L.eventEmitter.on}static get off(){return L.eventEmitter.off}static get clear(){return L.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw L.create(t,e)}static capture(t,e){L.log(t,e),L.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e})}static forward(t,e){throw L.log(t,e),L.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e}),t}static case(t){L.caseList.push(t)}static parse(t){const e={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:s,parse:r}of L.caseList)if(s(t,e))return r(t,e);return!0===h(t)?{message:t.message,status:e.status,errors:e.errors,isExternal:e.isExternal}:{message:e.message,status:e.status,errors:e.errors,isExternal:e.isExternal}}}class j{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},r=await this.model.get(this.key),i=r&&JSON.parse(r)||e;return s&&S.formatted.info("get",this.key,i),i}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&S.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&S.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&S.formatted.info("has",this.key,s),!!s}}exports.ErrorHandler=L,exports.EventEmitter=v,exports.Log=S,exports.Storage=class{model;config;constructor(t,e){this.model=t,this.config=e}async all(){L.throw("Not implemented")}async clear(){L.throw("Not implemented")}create(t){const e={[t]:new j(t,this.model,this.config)};return Object.assign(this,e)}},exports.chunkList=function(t,e){const s=[];for(let r=0;r<t.length;r+=e)s.push(t.slice(r,r+e));return s},exports.compose=function(t,e,r){const i=!o(t);return!s(r)&&{...e,...i?{[r]:t}:t}||!s(e)&&{...e,...t}||{...t}},exports.debounce=(t,e)=>{let s;return(...r)=>{s&&clearTimeout(s),s=setTimeout(()=>x(t,...r),e)}},exports.filterByKey=function(t,e="isVisible"){return t.filter(t=>!y(e,t)||t[e])},exports.filterDuplicateByKey=function(t,e){return t.reduce((t,s)=>t.some(t=>t[e]===s[e])?t:[...t,s],[])},exports.filterEqualValues=b,exports.filterNullableValues=function(t){return t.filter(t=>!s(t))},exports.forceList=function(t){return n(t)?t:[t]},exports.getValueByKey=function(t,e,r){return s(t)?r:2===arguments.length?e[t]:e[t]??r},exports.hasEqualValues=function(t,e){return!!b(t,e).length},exports.hasKey=y,exports.isAnyObject=i,exports.isArray=n,exports.isArrayBuffer=a,exports.isArrayEmpty=function(t){return 0===t.length},exports.isBigint=t=>"bigint"==typeof t,exports.isBoolean=t=>"boolean"==typeof t,exports.isDate=p,exports.isError=h,exports.isFunction=d,exports.isMap=c,exports.isNaN=t=>Number.isNaN(t),exports.isNull=e,exports.isNullable=s,exports.isNumber=t=>"number"==typeof t,exports.isObject=o,exports.isObjectEmpty=function(t){for(const e in t)return!1;return!0},exports.isPromise=m,exports.isProxy=t=>t instanceof Proxy,exports.isRegExp=g,exports.isSet=u,exports.isString=r,exports.isSymbol=t=>"symbol"==typeof t,exports.isUndefined=t,exports.isWeakMap=l,exports.isWeakSet=f,exports.mapRecord=(t,e)=>{const s=Object.entries(t);return Object.fromEntries(s.map(([t,s],r,i)=>[t,e(t,s,r,i)]))},exports.runCallback=x,exports.throttle=(t,e)=>{let s=!0;return(...r)=>{s&&(x(t,...r),s=!1),setTimeout(()=>s=!0,e)}},exports.wait=t=>new Promise(e=>setTimeout(e,t));
1
+ "use strict";const t=t=>void 0===t,e=t=>null===t,s=s=>t(s)||e(s),r=t=>"string"==typeof t,i=t=>"object"==typeof t,o=t=>{const e=[n,a,c,u,l,f,p,h,g,m,d].some(e=>e(t));return!!t&&"object"==typeof t&&!e},n=t=>Array.isArray(t),a=t=>t instanceof ArrayBuffer,c=t=>t instanceof Map,u=t=>t instanceof Set,l=t=>t instanceof Map,f=t=>t instanceof Set,p=t=>t instanceof Date,h=t=>t instanceof Error,g=t=>t instanceof RegExp,m=t=>t instanceof Promise,d=t=>t instanceof Function;const x=(t,...e)=>{if(d(t))return t(...e)};function y(t,e){return!(!i(e)||!(t in e))}function b(t,e){return t.filter(t=>e.includes(t))}class E{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class v{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,e,s){const r=this.subscriptions[t];if(r){const{event:t,listenerList:i}=r;i.forEach(s=>x(s,Object.assign(t,e))),t.isDefaultPrevented||x(s)}else x(s)}on(t,e){const s=this.subscriptions[t];return s?s.listenerList.push(e):this.subscriptions[t]={event:new E,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:r,listenerList:i}=s;this.subscriptions[t]={event:r,listenerList:i.filter(t=>t!==e)},r.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const w=(t="?",...e)=>[`[${(t&&r(t)?t:"?").toUpperCase()}]`,...e.reduce((t,e,s,{length:r})=>{const i=s===r-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[])];var D,N,k;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(D||(D={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(N||(N={}));class S{static formatted={info:(...t)=>S.info(...w(...t)),success:(...t)=>S.success(...w(...t)),warning:(...t)=>S.warning(...w(...t)),danger:(...t)=>S.danger(...w(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){S.#t(D.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...w(t,...s)))}static endGroup(){S.#t(D.EndGroup)}static info(...t){S.#t(D.Default,N.Info,...t)}static success(...t){S.#t(D.Default,N.Success,...t)}static warning(...t){S.#t(D.Default,N.Warning,...t)}static danger(...t){S.#t(D.Default,N.Danger,...t)}}exports.ErrorHandlerEventName=void 0,(k=exports.ErrorHandlerEventName||(exports.ErrorHandlerEventName={})).Capture="capture",k.Forward="forward";class L{static eventEmitter=new v;static caseList=[];static log(t,e={signal:"unknown"}){const{signal:s,message:r,payload:i,stack:o}=e,n=[r,h(t)?t.message:void 0].filter(Boolean);S.formatted.danger(s,...n,{error:t,payload:i,stack:o})}static get on(){return L.eventEmitter.on}static get off(){return L.eventEmitter.off}static get clear(){return L.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw L.create(t,e)}static capture(t,e){L.log(t,e),L.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e})}static forward(t,e){throw L.log(t,e),L.eventEmitter.emit(exports.ErrorHandlerEventName.Capture,{error:t,config:e}),t}static case(t){L.caseList.push(t)}static parse(t){const e={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:s,parse:r}of L.caseList)if(s(t,e))return r(t,e);return!0===h(t)?{message:t.message,status:e.status,errors:e.errors,isExternal:e.isExternal}:{message:e.message,status:e.status,errors:e.errors,isExternal:e.isExternal}}}class j{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},r=await this.model.get(this.key),i=r&&JSON.parse(r)||e;return s&&S.formatted.info("get",this.key,i),i}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&S.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&S.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&S.formatted.info("has",this.key,s),!!s}}exports.ErrorHandler=L,exports.EventEmitter=v,exports.Log=S,exports.Storage=class{model;config;constructor(t,e){this.model=t,this.config=e}async all(){L.throw("Not implemented")}async clear(){L.throw("Not implemented")}create(t){const e={[t]:new j(t,this.model,this.config)};return Object.assign(this,e)}},exports.chunkList=function(t,e){const s=[];for(let r=0;r<t.length;r+=e)s.push(t.slice(r,r+e));return s},exports.compose=function(t,e,r){const i=!o(t);return!s(r)&&{...e,...i?{[r]:t}:t}||!s(e)&&{...e,...t}||{...t}},exports.debounce=(t,e)=>{let s;return(...r)=>{s&&clearTimeout(s),s=setTimeout(()=>x(t,...r),e)}},exports.filterByKey=function(t,e="isVisible"){return t.filter(t=>!y(e,t)||t[e])},exports.filterDuplicateByKey=function(t,e){return t.reduce((t,s)=>t.some(t=>t[e]===s[e])?t:[...t,s],[])},exports.filterEqualValues=b,exports.filterNullableValues=function(t){return t.filter(t=>!s(t))},exports.forceList=function(t){return n(t)?t:[t]},exports.getValueByKey=function(t,e,r){return s(t)?r:2===arguments.length?e[t]:e[t]??r},exports.hasEqualValues=function(t,e){return!!b(t,e).length},exports.hasKey=y,exports.isAnyObject=i,exports.isArray=n,exports.isArrayBuffer=a,exports.isArrayEmpty=function(t){return 0===t.length},exports.isBigint=t=>"bigint"==typeof t,exports.isBoolean=t=>"boolean"==typeof t,exports.isDate=p,exports.isError=h,exports.isFunction=d,exports.isMap=c,exports.isNaN=t=>Number.isNaN(t),exports.isNull=e,exports.isNullable=s,exports.isNumber=t=>"number"==typeof t,exports.isObject=o,exports.isObjectEmpty=function(t){for(const e in t)return!1;return!0},exports.isPromise=m,exports.isProxy=t=>t instanceof Proxy,exports.isRegExp=g,exports.isSet=u,exports.isString=r,exports.isSymbol=t=>"symbol"==typeof t,exports.isUndefined=t,exports.isWeakMap=l,exports.isWeakSet=f,exports.mapRecord=(t,e)=>{const s=Object.entries(t);return Object.fromEntries(s.map(([t,s],r,i)=>[t,e(t,s,r,i)]))},exports.runCallback=x,exports.throttle=(t,e)=>{let s=!0;return(...r)=>{s&&(x(t,...r),s=!1),setTimeout(()=>s=!0,e)}},exports.wait=t=>new Promise(e=>setTimeout(e,t));
package/dist/index.d.ts CHANGED
@@ -305,7 +305,7 @@ type ErrorHandlerConfig = {
305
305
  */
306
306
  type ErrorHandlerEventParams = {
307
307
  error: ErrorHandlerError;
308
- config: ErrorHandlerConfig;
308
+ config?: ErrorHandlerConfig;
309
309
  };
310
310
 
311
311
  /**
@@ -404,7 +404,7 @@ declare class ErrorHandler {
404
404
  * })
405
405
  * ```
406
406
  */
407
- static capture(error: ErrorHandlerError, config: ErrorHandlerConfig): void;
407
+ static capture(error: ErrorHandlerError, config?: ErrorHandlerConfig): void;
408
408
  /**
409
409
  * Логирует ошибку, эмитит 'capture' и пробрасывает ошибку дальше (never).
410
410
  *
@@ -419,7 +419,7 @@ declare class ErrorHandler {
419
419
  * })
420
420
  * ```
421
421
  */
422
- static forward(error: ErrorHandlerError, config: ErrorHandlerConfig): never;
422
+ static forward(error: ErrorHandlerError, config?: ErrorHandlerConfig): never;
423
423
  /**
424
424
  * Регистрирует кейс для parse: при совпадении check() будет вызван parse().
425
425
  * Порядок регистрации важен — используется первый подходящий кейс.
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- const t=t=>void 0===t,e=t=>null===t,s=s=>t(s)||e(s),n=t=>"string"==typeof t,i=t=>"number"==typeof t,r=t=>"bigint"==typeof t,o=t=>Number.isNaN(t),a=t=>"boolean"==typeof t,c=t=>"symbol"==typeof t,u=t=>"object"==typeof t,f=t=>{const e=[l,h,g,m,d,p,b,y,D,v,E].some(e=>e(t));return!!t&&"object"==typeof t&&!e},l=t=>Array.isArray(t),h=t=>t instanceof ArrayBuffer,g=t=>t instanceof Map,m=t=>t instanceof Set,d=t=>t instanceof Map,p=t=>t instanceof Set,b=t=>t instanceof Date,y=t=>t instanceof Error,w=t=>t instanceof Proxy,D=t=>t instanceof RegExp,v=t=>t instanceof Promise,E=t=>t instanceof Function,k=t=>new Promise(e=>setTimeout(e,t));function x(t,e,n){const i=!f(t);return!s(n)&&{...e,...i?{[n]:t}:t}||!s(e)&&{...e,...t}||{...t}}function L(t,e,n){return s(t)?n:2===arguments.length?e[t]:e[t]??n}const S=(t,e)=>{const s=Object.entries(t);return Object.fromEntries(s.map(([t,s],n,i)=>[t,e(t,s,n,i)]))},N=(t,...e)=>{if(E(t))return t(...e)},P=(t,e)=>{let s;return(...n)=>{s&&clearTimeout(s),s=setTimeout(()=>N(t,...n),e)}},j=(t,e)=>{let s=!0;return(...n)=>{s&&(N(t,...n),s=!1),setTimeout(()=>s=!0,e)}};function G(t){for(const e in t)return!1;return!0}function O(t){return 0===t.length}function C(t,e){return!(!u(e)||!(t in e))}function T(t,e){return!!F(t,e).length}function A(t,e="isVisible"){return t.filter(t=>!C(e,t)||t[e])}function B(t,e){return t.reduce((t,s)=>t.some(t=>t[e]===s[e])?t:[...t,s],[])}function F(t,e){return t.filter(t=>e.includes(t))}function I(t){return t.filter(t=>!s(t))}function J(t){return l(t)?t:[t]}function M(t,e){const s=[];for(let n=0;n<t.length;n+=e)s.push(t.slice(n,n+e));return s}class V{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class W{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,e,s){const n=this.subscriptions[t];if(n){const{event:t,listenerList:i}=n;i.forEach(s=>N(s,Object.assign(t,e))),t.isDefaultPrevented||N(s)}else N(s)}on(t,e){const s=this.subscriptions[t];return s?s.listenerList.push(e):this.subscriptions[t]={event:new V,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:n,listenerList:i}=s;this.subscriptions[t]={event:n,listenerList:i.filter(t=>t!==e)},n.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const $=(t="?",...e)=>[`[${(t&&n(t)?t:"?").toUpperCase()}]`,...e.reduce((t,e,s,{length:n})=>{const i=s===n-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[])];var z,R,U;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(z||(z={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(R||(R={}));class q{static formatted={info:(...t)=>q.info(...$(...t)),success:(...t)=>q.success(...$(...t)),warning:(...t)=>q.warning(...$(...t)),danger:(...t)=>q.danger(...$(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){q.#t(z.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...$(t,...s)))}static endGroup(){q.#t(z.EndGroup)}static info(...t){q.#t(z.Default,R.Info,...t)}static success(...t){q.#t(z.Default,R.Success,...t)}static warning(...t){q.#t(z.Default,R.Warning,...t)}static danger(...t){q.#t(z.Default,R.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(U||(U={}));class H{static eventEmitter=new W;static caseList=[];static log(t,e){const{signal:s,message:n,payload:i,stack:r}=e,o=[n,y(t)?t.message:void 0].filter(Boolean);q.formatted.danger(s,...o,{error:t,payload:i,stack:r})}static get on(){return H.eventEmitter.on}static get off(){return H.eventEmitter.off}static get clear(){return H.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw H.create(t,e)}static capture(t,e){H.log(t,e),H.eventEmitter.emit(U.Capture,{error:t,config:e})}static forward(t,e){throw H.log(t,e),H.eventEmitter.emit(U.Capture,{error:t,config:e}),t}static case(t){H.caseList.push(t)}static parse(t){const e={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:s,parse:n}of H.caseList)if(s(t,e))return n(t,e);return!0===y(t)?{message:t.message,status:e.status,errors:e.errors,isExternal:e.isExternal}:{message:e.message,status:e.status,errors:e.errors,isExternal:e.isExternal}}}class K{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},n=await this.model.get(this.key),i=n&&JSON.parse(n)||e;return s&&q.formatted.info("get",this.key,i),i}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&q.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&q.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&q.formatted.info("has",this.key,s),!!s}}class Q{model;config;constructor(t,e){this.model=t,this.config=e}async all(){H.throw("Not implemented")}async clear(){H.throw("Not implemented")}create(t){const e={[t]:new K(t,this.model,this.config)};return Object.assign(this,e)}}export{H as ErrorHandler,U as ErrorHandlerEventName,W as EventEmitter,q as Log,Q as Storage,M as chunkList,x as compose,P as debounce,A as filterByKey,B as filterDuplicateByKey,F as filterEqualValues,I as filterNullableValues,J as forceList,L as getValueByKey,T as hasEqualValues,C as hasKey,u as isAnyObject,l as isArray,h as isArrayBuffer,O as isArrayEmpty,r as isBigint,a as isBoolean,b as isDate,y as isError,E as isFunction,g as isMap,o as isNaN,e as isNull,s as isNullable,i as isNumber,f as isObject,G as isObjectEmpty,v as isPromise,w as isProxy,D as isRegExp,m as isSet,n as isString,c as isSymbol,t as isUndefined,d as isWeakMap,p as isWeakSet,S as mapRecord,N as runCallback,j as throttle,k as wait};
1
+ const t=t=>void 0===t,e=t=>null===t,s=s=>t(s)||e(s),n=t=>"string"==typeof t,i=t=>"number"==typeof t,r=t=>"bigint"==typeof t,o=t=>Number.isNaN(t),a=t=>"boolean"==typeof t,c=t=>"symbol"==typeof t,u=t=>"object"==typeof t,f=t=>{const e=[l,h,g,m,d,p,b,y,D,v,E].some(e=>e(t));return!!t&&"object"==typeof t&&!e},l=t=>Array.isArray(t),h=t=>t instanceof ArrayBuffer,g=t=>t instanceof Map,m=t=>t instanceof Set,d=t=>t instanceof Map,p=t=>t instanceof Set,b=t=>t instanceof Date,y=t=>t instanceof Error,w=t=>t instanceof Proxy,D=t=>t instanceof RegExp,v=t=>t instanceof Promise,E=t=>t instanceof Function,k=t=>new Promise(e=>setTimeout(e,t));function x(t,e,n){const i=!f(t);return!s(n)&&{...e,...i?{[n]:t}:t}||!s(e)&&{...e,...t}||{...t}}function L(t,e,n){return s(t)?n:2===arguments.length?e[t]:e[t]??n}const S=(t,e)=>{const s=Object.entries(t);return Object.fromEntries(s.map(([t,s],n,i)=>[t,e(t,s,n,i)]))},N=(t,...e)=>{if(E(t))return t(...e)},P=(t,e)=>{let s;return(...n)=>{s&&clearTimeout(s),s=setTimeout(()=>N(t,...n),e)}},j=(t,e)=>{let s=!0;return(...n)=>{s&&(N(t,...n),s=!1),setTimeout(()=>s=!0,e)}};function G(t){for(const e in t)return!1;return!0}function O(t){return 0===t.length}function C(t,e){return!(!u(e)||!(t in e))}function T(t,e){return!!F(t,e).length}function A(t,e="isVisible"){return t.filter(t=>!C(e,t)||t[e])}function B(t,e){return t.reduce((t,s)=>t.some(t=>t[e]===s[e])?t:[...t,s],[])}function F(t,e){return t.filter(t=>e.includes(t))}function I(t){return t.filter(t=>!s(t))}function J(t){return l(t)?t:[t]}function M(t,e){const s=[];for(let n=0;n<t.length;n+=e)s.push(t.slice(n,n+e));return s}class V{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class W{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,e,s){const n=this.subscriptions[t];if(n){const{event:t,listenerList:i}=n;i.forEach(s=>N(s,Object.assign(t,e))),t.isDefaultPrevented||N(s)}else N(s)}on(t,e){const s=this.subscriptions[t];return s?s.listenerList.push(e):this.subscriptions[t]={event:new V,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:n,listenerList:i}=s;this.subscriptions[t]={event:n,listenerList:i.filter(t=>t!==e)},n.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const $=(t="?",...e)=>[`[${(t&&n(t)?t:"?").toUpperCase()}]`,...e.reduce((t,e,s,{length:n})=>{const i=s===n-1?[]:["|"];return t.push(e,...i),t},e.length?["-"]:[])];var z,R,U;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(z||(z={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(R||(R={}));class q{static formatted={info:(...t)=>q.info(...$(...t)),success:(...t)=>q.success(...$(...t)),warning:(...t)=>q.warning(...$(...t)),danger:(...t)=>q.danger(...$(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){q.#t(z.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...$(t,...s)))}static endGroup(){q.#t(z.EndGroup)}static info(...t){q.#t(z.Default,R.Info,...t)}static success(...t){q.#t(z.Default,R.Success,...t)}static warning(...t){q.#t(z.Default,R.Warning,...t)}static danger(...t){q.#t(z.Default,R.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(U||(U={}));class H{static eventEmitter=new W;static caseList=[];static log(t,e={signal:"unknown"}){const{signal:s,message:n,payload:i,stack:r}=e,o=[n,y(t)?t.message:void 0].filter(Boolean);q.formatted.danger(s,...o,{error:t,payload:i,stack:r})}static get on(){return H.eventEmitter.on}static get off(){return H.eventEmitter.off}static get clear(){return H.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw H.create(t,e)}static capture(t,e){H.log(t,e),H.eventEmitter.emit(U.Capture,{error:t,config:e})}static forward(t,e){throw H.log(t,e),H.eventEmitter.emit(U.Capture,{error:t,config:e}),t}static case(t){H.caseList.push(t)}static parse(t){const e={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:s,parse:n}of H.caseList)if(s(t,e))return n(t,e);return!0===y(t)?{message:t.message,status:e.status,errors:e.errors,isExternal:e.isExternal}:{message:e.message,status:e.status,errors:e.errors,isExternal:e.isExternal}}}class K{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},n=await this.model.get(this.key),i=n&&JSON.parse(n)||e;return s&&q.formatted.info("get",this.key,i),i}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&q.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&q.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&q.formatted.info("has",this.key,s),!!s}}class Q{model;config;constructor(t,e){this.model=t,this.config=e}async all(){H.throw("Not implemented")}async clear(){H.throw("Not implemented")}create(t){const e={[t]:new K(t,this.model,this.config)};return Object.assign(this,e)}}export{H as ErrorHandler,U as ErrorHandlerEventName,W as EventEmitter,q as Log,Q as Storage,M as chunkList,x as compose,P as debounce,A as filterByKey,B as filterDuplicateByKey,F as filterEqualValues,I as filterNullableValues,J as forceList,L as getValueByKey,T as hasEqualValues,C as hasKey,u as isAnyObject,l as isArray,h as isArrayBuffer,O as isArrayEmpty,r as isBigint,a as isBoolean,b as isDate,y as isError,E as isFunction,g as isMap,o as isNaN,e as isNull,s as isNullable,i as isNumber,f as isObject,G as isObjectEmpty,v as isPromise,w as isProxy,D as isRegExp,m as isSet,n as isString,c as isSymbol,t as isUndefined,d as isWeakMap,p as isWeakSet,S as mapRecord,N as runCallback,j as throttle,k as wait};
@@ -1 +1 @@
1
- "use strict";const t=t=>t instanceof Error,e=(t,...e)=>{if(t instanceof Function)return t(...e)};class s{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class i{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,s,i){const r=this.subscriptions[t];if(r){const{event:t,listenerList:n}=r;n.forEach(i=>e(i,Object.assign(t,s))),t.isDefaultPrevented||e(i)}else e(i)}on(t,e){const i=this.subscriptions[t];return i?i.listenerList.push(e):this.subscriptions[t]={event:new s,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:i,listenerList:r}=s;this.subscriptions[t]={event:i,listenerList:r.filter(t=>t!==e)},i.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const r=(t="?",...e)=>{const s=(t&&(i=t,"string"==typeof i)?t:"?").toUpperCase();var i;const r=e.reduce((t,e,s,{length:i})=>{const r=s===i-1?[]:["|"];return t.push(e,...r),t},e.length?["-"]:[]);return[`[${s}]`,...r]};var n,o,a;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(o||(o={}));class c{static formatted={info:(...t)=>c.info(...r(...t)),success:(...t)=>c.success(...r(...t)),warning:(...t)=>c.warning(...r(...t)),danger:(...t)=>c.danger(...r(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){c.#t(n.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...r(t,...s)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,o.Info,...t)}static success(...t){c.#t(n.Default,o.Success,...t)}static warning(...t){c.#t(n.Default,o.Warning,...t)}static danger(...t){c.#t(n.Default,o.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(a||(a={}));class u{static eventEmitter=new i;static caseList=[];static log(e,s){const{signal:i,message:r,payload:n,stack:o}=s,a=[r,t(e)?e.message:void 0].filter(Boolean);c.formatted.danger(i,...a,{error:e,payload:n,stack:o})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw u.create(t,e)}static capture(t,e){u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e})}static forward(t,e){throw u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e}),t}static case(t){u.caseList.push(t)}static parse(e){const s={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:i}of u.caseList)if(t(e,s))return i(e,s);return!0===t(e)?{message:e.message,status:s.status,errors:s.errors,isExternal:s.isExternal}:{message:s.message,status:s.status,errors:s.errors,isExternal:s.isExternal}}}class l{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},i=await this.model.get(this.key),r=i&&JSON.parse(i)||e;return s&&c.formatted.info("get",this.key,r),r}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&c.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&c.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&c.formatted.info("has",this.key,s),!!s}}exports.Storage=class{model;config;constructor(t,e){this.model=t,this.config=e}async all(){u.throw("Not implemented")}async clear(){u.throw("Not implemented")}create(t){const e={[t]:new l(t,this.model,this.config)};return Object.assign(this,e)}};
1
+ "use strict";const t=t=>t instanceof Error,e=(t,...e)=>{if(t instanceof Function)return t(...e)};class s{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class i{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,s,i){const r=this.subscriptions[t];if(r){const{event:t,listenerList:n}=r;n.forEach(i=>e(i,Object.assign(t,s))),t.isDefaultPrevented||e(i)}else e(i)}on(t,e){const i=this.subscriptions[t];return i?i.listenerList.push(e):this.subscriptions[t]={event:new s,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:i,listenerList:r}=s;this.subscriptions[t]={event:i,listenerList:r.filter(t=>t!==e)},i.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const r=(t="?",...e)=>{const s=(t&&(i=t,"string"==typeof i)?t:"?").toUpperCase();var i;const r=e.reduce((t,e,s,{length:i})=>{const r=s===i-1?[]:["|"];return t.push(e,...r),t},e.length?["-"]:[]);return[`[${s}]`,...r]};var n,o,a;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(o||(o={}));class c{static formatted={info:(...t)=>c.info(...r(...t)),success:(...t)=>c.success(...r(...t)),warning:(...t)=>c.warning(...r(...t)),danger:(...t)=>c.danger(...r(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){c.#t(n.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...r(t,...s)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,o.Info,...t)}static success(...t){c.#t(n.Default,o.Success,...t)}static warning(...t){c.#t(n.Default,o.Warning,...t)}static danger(...t){c.#t(n.Default,o.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(a||(a={}));class u{static eventEmitter=new i;static caseList=[];static log(e,s={signal:"unknown"}){const{signal:i,message:r,payload:n,stack:o}=s,a=[r,t(e)?e.message:void 0].filter(Boolean);c.formatted.danger(i,...a,{error:e,payload:n,stack:o})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw u.create(t,e)}static capture(t,e){u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e})}static forward(t,e){throw u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e}),t}static case(t){u.caseList.push(t)}static parse(e){const s={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:i}of u.caseList)if(t(e,s))return i(e,s);return!0===t(e)?{message:e.message,status:s.status,errors:s.errors,isExternal:s.isExternal}:{message:s.message,status:s.status,errors:s.errors,isExternal:s.isExternal}}}class l{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},i=await this.model.get(this.key),r=i&&JSON.parse(i)||e;return s&&c.formatted.info("get",this.key,r),r}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&c.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&c.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&c.formatted.info("has",this.key,s),!!s}}exports.Storage=class{model;config;constructor(t,e){this.model=t,this.config=e}async all(){u.throw("Not implemented")}async clear(){u.throw("Not implemented")}create(t){const e={[t]:new l(t,this.model,this.config)};return Object.assign(this,e)}};
@@ -1 +1 @@
1
- const t=t=>t instanceof Error,e=(t,...e)=>{if(t instanceof Function)return t(...e)};class s{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class i{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,s,i){const r=this.subscriptions[t];if(r){const{event:t,listenerList:n}=r;n.forEach(i=>e(i,Object.assign(t,s))),t.isDefaultPrevented||e(i)}else e(i)}on(t,e){const i=this.subscriptions[t];return i?i.listenerList.push(e):this.subscriptions[t]={event:new s,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:i,listenerList:r}=s;this.subscriptions[t]={event:i,listenerList:r.filter(t=>t!==e)},i.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const r=(t="?",...e)=>{const s=(t&&(i=t,"string"==typeof i)?t:"?").toUpperCase();var i;const r=e.reduce((t,e,s,{length:i})=>{const r=s===i-1?[]:["|"];return t.push(e,...r),t},e.length?["-"]:[]);return[`[${s}]`,...r]};var n,o,a;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(o||(o={}));class c{static formatted={info:(...t)=>c.info(...r(...t)),success:(...t)=>c.success(...r(...t)),warning:(...t)=>c.warning(...r(...t)),danger:(...t)=>c.danger(...r(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){c.#t(n.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...r(t,...s)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,o.Info,...t)}static success(...t){c.#t(n.Default,o.Success,...t)}static warning(...t){c.#t(n.Default,o.Warning,...t)}static danger(...t){c.#t(n.Default,o.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(a||(a={}));class u{static eventEmitter=new i;static caseList=[];static log(e,s){const{signal:i,message:r,payload:n,stack:o}=s,a=[r,t(e)?e.message:void 0].filter(Boolean);c.formatted.danger(i,...a,{error:e,payload:n,stack:o})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw u.create(t,e)}static capture(t,e){u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e})}static forward(t,e){throw u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e}),t}static case(t){u.caseList.push(t)}static parse(e){const s={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:i}of u.caseList)if(t(e,s))return i(e,s);return!0===t(e)?{message:e.message,status:s.status,errors:s.errors,isExternal:s.isExternal}:{message:s.message,status:s.status,errors:s.errors,isExternal:s.isExternal}}}class l{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},i=await this.model.get(this.key),r=i&&JSON.parse(i)||e;return s&&c.formatted.info("get",this.key,r),r}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&c.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&c.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&c.formatted.info("has",this.key,s),!!s}}class f{model;config;constructor(t,e){this.model=t,this.config=e}async all(){u.throw("Not implemented")}async clear(){u.throw("Not implemented")}create(t){const e={[t]:new l(t,this.model,this.config)};return Object.assign(this,e)}}export{f as Storage};
1
+ const t=t=>t instanceof Error,e=(t,...e)=>{if(t instanceof Function)return t(...e)};class s{isDefaultPrevented=!1;constructor(){this.preventDefault=this.preventDefault.bind(this),this.overrideDefault=this.overrideDefault.bind(this)}preventDefault(){this.isDefaultPrevented=!0}overrideDefault(){this.isDefaultPrevented=!1}}class i{subscriptions={};constructor(){this.emit=this.emit.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this),this.clear=this.clear.bind(this)}emit(t,s,i){const r=this.subscriptions[t];if(r){const{event:t,listenerList:n}=r;n.forEach(i=>e(i,Object.assign(t,s))),t.isDefaultPrevented||e(i)}else e(i)}on(t,e){const i=this.subscriptions[t];return i?i.listenerList.push(e):this.subscriptions[t]={event:new s,listenerList:[e]},()=>this.off(t,e)}off(t,e){const s=this.subscriptions[t];if(s){const{event:i,listenerList:r}=s;this.subscriptions[t]={event:i,listenerList:r.filter(t=>t!==e)},i.overrideDefault()}}clear(t){delete this.subscriptions[t]}}const r=(t="?",...e)=>{const s=(t&&(i=t,"string"==typeof i)?t:"?").toUpperCase();var i;const r=e.reduce((t,e,s,{length:i})=>{const r=s===i-1?[]:["|"];return t.push(e,...r),t},e.length?["-"]:[]);return[`[${s}]`,...r]};var n,o,a;!function(t){t.StartGroup="group",t.EndGroup="groupEnd",t.Default="log"}(n||(n={})),function(t){t.Info="%s",t.Success="%s",t.Warning="%s",t.Danger="%s"}(o||(o={}));class c{static formatted={info:(...t)=>c.info(...r(...t)),success:(...t)=>c.success(...r(...t)),warning:(...t)=>c.warning(...r(...t)),danger:(...t)=>c.danger(...r(...t))};static#t(t,...e){console[t](...e)}static startGroup(t,e,...s){c.#t(n.StartGroup,...((t,...e)=>["%c%s",t,...e])(`font-size: 16px;${e}`,...r(t,...s)))}static endGroup(){c.#t(n.EndGroup)}static info(...t){c.#t(n.Default,o.Info,...t)}static success(...t){c.#t(n.Default,o.Success,...t)}static warning(...t){c.#t(n.Default,o.Warning,...t)}static danger(...t){c.#t(n.Default,o.Danger,...t)}}!function(t){t.Capture="capture",t.Forward="forward"}(a||(a={}));class u{static eventEmitter=new i;static caseList=[];static log(e,s={signal:"unknown"}){const{signal:i,message:r,payload:n,stack:o}=s,a=[r,t(e)?e.message:void 0].filter(Boolean);c.formatted.danger(i,...a,{error:e,payload:n,stack:o})}static get on(){return u.eventEmitter.on}static get off(){return u.eventEmitter.off}static get clear(){return u.eventEmitter.clear}static create(t,e){return new Error(t,{cause:e})}static throw(t,e){throw u.create(t,e)}static capture(t,e){u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e})}static forward(t,e){throw u.log(t,e),u.eventEmitter.emit(a.Capture,{error:t,config:e}),t}static case(t){u.caseList.push(t)}static parse(e){const s={message:"Error!",status:0,errors:{},isExternal:!0};for(const{check:t,parse:i}of u.caseList)if(t(e,s))return i(e,s);return!0===t(e)?{message:e.message,status:s.status,errors:s.errors,isExternal:s.isExternal}:{message:s.message,status:s.status,errors:s.errors,isExternal:s.isExternal}}}class l{key;model;config;constructor(t,e,s){this.key=t,this.model=e,this.config=s}async get(t){const{defaultValue:e,withDebug:s}={...this.config,...t},i=await this.model.get(this.key),r=i&&JSON.parse(i)||e;return s&&c.formatted.info("get",this.key,r),r}async set(t,e){const{withDebug:s}={...this.config,...e};await this.model.set(this.key,JSON.stringify(t)),s&&c.formatted.info("set",this.key,t)}async delete(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});await this.model.delete(this.key),e&&c.formatted.info("delete",this.key,s)}async has(t){const{withDebug:e}={...this.config,...t},s=await this.get({...t,withDebug:!1});return e&&c.formatted.info("has",this.key,s),!!s}}class f{model;config;constructor(t,e){this.model=t,this.config=e}async all(){u.throw("Not implemented")}async clear(){u.throw("Not implemented")}create(t){const e={[t]:new l(t,this.model,this.config)};return Object.assign(this,e)}}export{f as Storage};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "private": false,
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "name": "@mediacubeco/base",
5
5
  "description": "Base by Mediacube developers",
6
6
  "license": "MIT",
@@ -17,9 +17,9 @@
17
17
  "eslint": "^9.39.1",
18
18
  "prettier": "^3.8.1",
19
19
  "typescript": "^5.9.3",
20
- "@mediacubeco/eslint-config": "1.0.0",
21
- "@mediacubeco/prettier-config": "1.0.0",
22
- "@mediacubeco/typescript-config": "1.0.0"
20
+ "@mediacubeco/eslint-config": "1.2.0",
21
+ "@mediacubeco/prettier-config": "1.2.0",
22
+ "@mediacubeco/typescript-config": "1.2.0"
23
23
  },
24
24
  "exports": {
25
25
  ".": {