@recats/cdeebee 2.3.7 → 3.0.0-beta.4

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,3 +0,0 @@
1
- (function(T,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(T=typeof globalThis<"u"?globalThis:T||self,d(T.cdeebee={}))})(this,function(T){"use strict";function d(e){return e!=null&&typeof e=="object"&&e["@@functional/placeholder"]===!0}function S(e){return function t(r){return arguments.length===0||d(r)?t:e.apply(this,arguments)}}function B(e){return function t(r,n){switch(arguments.length){case 0:return t;case 1:return d(r)?t:S(function(s){return e(r,s)});default:return d(r)&&d(n)?t:d(r)?S(function(s){return e(s,n)}):d(n)?S(function(s){return e(r,s)}):e(r,n)}}}function H(e){return function t(r,n,s){switch(arguments.length){case 0:return t;case 1:return d(r)?t:B(function(i,l){return e(r,i,l)});case 2:return d(r)&&d(n)?t:d(r)?B(function(i,l){return e(i,n,l)}):d(n)?B(function(i,l){return e(r,i,l)}):S(function(i){return e(r,n,i)});default:return d(r)&&d(n)&&d(s)?t:d(r)&&d(n)?B(function(i,l){return e(i,l,s)}):d(r)&&d(s)?B(function(i,l){return e(i,n,l)}):d(n)&&d(s)?B(function(i,l){return e(r,i,l)}):d(r)?S(function(i){return e(i,n,s)}):d(n)?S(function(i){return e(r,i,s)}):d(s)?S(function(i){return e(r,n,i)}):e(r,n,s)}}}const J=Array.isArray||function(t){return t!=null&&t.length>=0&&Object.prototype.toString.call(t)==="[object Array]"};function k(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function ce(e){return Object.prototype.toString.call(e)==="[object Object]"}const G=Number.isInteger||function(t){return t<<0===t};function we(e,t,r){if(G(e)&&J(r)){var n=[].concat(r);return n[e]=t,n}var s={};for(var i in r)s[i]=r[i];return s[e]=t,s}var Oe=S(function(t){return t==null}),I=H(function e(t,r,n){if(t.length===0)return r;var s=t[0];if(t.length>1){var i=!Oe(n)&&k(s,n)&&typeof n[s]=="object"?n[s]:G(t[1])?[]:{};r=e(Array.prototype.slice.call(t,1),r,i)}return we(s,r,n)}),De=H(function(t,r,n){return I([t],r,n)}),Be=H(function(t,r,n){var s=Array.prototype.slice.call(n,0);return s.splice(t,r),s});function Pe(e,t){if(t==null)return t;if(G(e)&&J(t))return Be(e,1,t);var r={};for(var n in t)r[n]=t[n];return delete r[e],r}function Se(e,t){if(G(e)&&J(t))return[].concat(t);var r={};for(var n in t)r[n]=t[n];return r}var Ce=B(function e(t,r){if(r==null)return r;switch(t.length){case 0:return r;case 1:return Pe(t[0],r);default:var n=t[0],s=Array.prototype.slice.call(t,1);return r[n]==null?Se(n,r):De(n,e(s,r[n]),r)}}),le=B(function(t,r){return Ce([t],r)}),Ie=H(function(t,r,n){var s={},i;r=r||{},n=n||{};for(i in r)k(i,r)&&(s[i]=k(i,n)?t(i,r[i],n[i]):r[i]);for(i in n)k(i,n)&&!k(i,s)&&(s[i]=n[i]);return s}),Ne=H(function e(t,r,n){return Ie(function(s,i,l){return ce(i)&&ce(l)?e(t,i,l):t(s,i,l)},r,n)}),Y=B(function(t,r){return Ne(function(n,s,i){return i},t,r)}),Z=B(function(t,r){for(var n={},s={},i=0,l=t.length;i<l;)s[t[i]]=1,i+=1;for(var m in r)s.hasOwnProperty(m)||(n[m]=r[m]);return n}),y=(e=>(e.CDEEBEE_REQUESTMANAGER_SHIFT="@@cdeebee/REQUESTMANAGER_SHIFT",e.CDEEBEE_REQUESTMANAGER_SET="@@cdeebee/REQUESTMANAGER_SET",e.CDEEBEE_ERRORHANDLER_SET="@@cdeebee/ERRORHANDLER_SET",e.CDEEBEE_ENTITY_CHANGE_FIELD="@@cdeebee/ENTITY_CHANGE_FIELD",e.CDEEBEE_ENTITY_UNSAFE_UPDATE_STORE="@@cdeebee/ENTITY_UNSAFE_UPDATE_STORE",e.CDEEBEE_RESET_ENTITY="@@cdeebee/RESET_ENTITY",e.CDEEBEE_SET_ENTITY="@@cdeebee/SET_ENTITY",e.CDEEBEEE_UPDATE="@@cdeebee/UPDATE",e.CDEEBEEE_DROP="@@cdeebee/DROP",e.CDEEBEEE_DROP_PATH="@@cdeebee/DROP_PATH",e.CDEEBEE_INTERNAL_ERROR="@@cdeebee/INTERNAL_ERROR",e.CDEEBEE_REQUEST_ABORTED="@@cdeebee/REQUEST_ABORTED",e.CDEEBEEE_DROP_REQUEST_BY_API_URL="@@cdeebee/DROP_REQUEST_BY_API_URL",e.CDEEBEEE_DROP_ERROR_BY_API_URL="@@cdeebee/DROP_ERROR_BY_API_URL",e.CHANGE_ROUTE="@@router/LOCATION_CHANGE",e))(y||{}),C=(e=>(e.NEW="NEW",e.EDITING="EDITING",e.NORMAL="NORMAL",e))(C||{}),ee=(e=>(e.merge="merge",e.replace="replace",e))(ee||{});const fe=e=>Z(["__entity","__state"],e),Ee=e=>e.filter(t=>t.requestCancel?(ye(t),!1):!0),ye=e=>{e.controller&&e.controller.abort instanceof Function&&e.controller.abort()},Ue=(e,t)=>{if(!t||e.length===0)return!1;const r=t instanceof Array?t:[t],n=e.map(s=>s.api);for(let s=0;s<r.length;s+=1)if(n.includes(r[s]))return!0;return!1},Le=e=>Object.prototype.hasOwnProperty.call(e,"__entity")?e.__entity:e,K=e=>{var r;const t=((r=e==null?void 0:e.__entity)==null?void 0:r.__state)||(e==null?void 0:e.__state);return t||C.NORMAL},qe=e=>(e.__state=C.NEW,e),je=e=>K(e)===C.NORMAL?(console.warn("commit works only in editing and new states"),e):fe(e),de=e=>K(e)===C.NORMAL?(console.warn("reset works only in editing and new states"),e):fe(e),he=(e,t,r)=>{const n=e[t];if(K(n[r])===C.EDITING)return e;const i=I([t,r,"__entity"],n[r],e);return I([t,r,"__entity","__state"],C.EDITING,i)},pe=(e,t,r)=>{const n=r||[];let s=e;for(let i=0;i<t.length;i++){const l=t[i];s=I([...n,...l.key],l.value,s)}return s},_e=({response:{responseStatus:e,...t},cdeebee:r,mergeListStrategy:n,primaryKey:s})=>{const i=Object.keys(t);for(const l of i){const m={};if(t[l]instanceof Object&&Object.prototype.hasOwnProperty.call(t[l],s)){for(const R of t[l].data)m[R[t[l][s]]]=R;n[l]===ee.replace?t[l]=m:t[l]=Y(r[l],m)}else(t[l]===null||t[l]===void 0||typeof t[l]=="string")&&(t=Z([l],t))}return t},He=Object.freeze(Object.defineProperty({__proto__:null,batchingUpdate:pe,checkNetworkActivity:Ue,commitEntity:je,defaultNormalize:_e,dropRequestFromArray:Ee,editEntity:he,getEntityState:K,getSubEntity:Le,insertEntity:qe,requestCancel:ye,resetEntity:de},Symbol.toStringTag,{value:"Module"})),be={},ke=(e=be,t)=>{const{type:r,payload:n}=t;switch(r){case y.CDEEBEEE_UPDATE:return{...e,...n.response};case y.CDEEBEE_ENTITY_CHANGE_FIELD:{const s=he(e,n.entityList,n.entityID);return pe(s,n.valueList,[n.entityList,n.entityID,"__entity"])}case y.CDEEBEE_ENTITY_UNSAFE_UPDATE_STORE:return I([n.entityList,n.entityID],n.value,e);case y.CDEEBEE_SET_ENTITY:return I([n.entityList,n.entityID],n.entity,e);case y.CDEEBEE_RESET_ENTITY:{const s=e[n.entityList];return I([n.entityList,n.entityID],de(s[n.entityID]),e)}case y.CDEEBEEE_DROP:return be;case y.CDEEBEEE_DROP_PATH:return Z(n.path,e);default:return e}},ve={activeRequest:[],requestByApiUrl:{},errorHandler:{}},xe=(e=ve,t)=>{const{type:r,payload:n}=t;switch(r){case y.CDEEBEE_REQUESTMANAGER_SET:return{...e,activeRequest:[...e.activeRequest,n]};case y.CDEEBEE_REQUESTMANAGER_SHIFT:case y.CDEEBEE_REQUEST_ABORTED:return{...e,activeRequest:e.activeRequest.filter(s=>s.requestID!==n.requestID)};case y.CDEEBEEE_UPDATE:return{...e,requestByApiUrl:{...e.requestByApiUrl,[n.api]:n.cleanResponse}};case y.CDEEBEEE_DROP_REQUEST_BY_API_URL:return{...e,requestByApiUrl:le(n.api,e.requestByApiUrl)};case y.CDEEBEEE_DROP_ERROR_BY_API_URL:return{...e,errorHandler:le(n.api,e.errorHandler)};case y.CDEEBEE_ERRORHANDLER_SET:return{...e,errorHandler:{...e.errorHandler,[n.api]:n.cleanResponse}};case y.CDEEBEE_INTERNAL_ERROR:return{...e,activeRequest:[],requestByApiUrl:{}};case y.CHANGE_ROUTE:return{...ve,activeRequest:Ee(e.activeRequest)};default:return e}};var Fe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},me={},Ae;function Me(){return Ae||(Ae=1,function(e){e()}(function(){function e(o,a){(a==null||a>o.length)&&(a=o.length);for(var u=0,c=Array(a);u<a;u++)c[u]=o[u];return c}function t(o){if(o===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return o}function r(o,a,u){return a=R(a),F(o,g()?Reflect.construct(a,[],R(o).constructor):a.apply(o,u))}function n(o,a){if(!(o instanceof a))throw new TypeError("Cannot call a class as a function")}function s(o,a){for(var u=0;u<a.length;u++){var c=a[u];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(o,se(c.key),c)}}function i(o,a,u){return a&&s(o.prototype,a),u&&s(o,u),Object.defineProperty(o,"prototype",{writable:!1}),o}function l(o,a){var u=typeof Symbol<"u"&&o[Symbol.iterator]||o["@@iterator"];if(!u){if(Array.isArray(o)||(u=$(o))||a){u&&(o=u);var c=0,E=function(){};return{s:E,n:function(){return c>=o.length?{done:!0}:{done:!1,value:o[c++]}},e:function(f){throw f},f:E}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
2
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var _,w=!0,b=!1;return{s:function(){u=u.call(o)},n:function(){var f=u.next();return w=f.done,f},e:function(f){b=!0,_=f},f:function(){try{w||u.return==null||u.return()}finally{if(b)throw _}}}}function m(){return m=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(o,a,u){var c=Q(o,a);if(c){var E=Object.getOwnPropertyDescriptor(c,a);return E.get?E.get.call(arguments.length<3?o:u):E.value}},m.apply(null,arguments)}function R(o){return R=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(a){return a.__proto__||Object.getPrototypeOf(a)},R(o)}function h(o,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function");o.prototype=Object.create(a&&a.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),Object.defineProperty(o,"prototype",{writable:!1}),a&&L(o,a)}function g(){try{var o=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(g=function(){return!!o})()}function F(o,a){if(a&&(typeof a=="object"||typeof a=="function"))return a;if(a!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return t(o)}function L(o,a){return L=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(u,c){return u.__proto__=c,u},L(o,a)}function Q(o,a){for(;!{}.hasOwnProperty.call(o,a)&&(o=R(o))!==null;);return o}function ie(o,a,u,c){var E=m(R(o.prototype),a,u);return typeof E=="function"?function(_){return E.apply(u,_)}:E}function z(o,a){if(typeof o!="object"||!o)return o;var u=o[Symbol.toPrimitive];if(u!==void 0){var c=u.call(o,a);if(typeof c!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(o)}function se(o){var a=z(o,"string");return typeof a=="symbol"?a:a+""}function $(o,a){if(o){if(typeof o=="string")return e(o,a);var u={}.toString.call(o).slice(8,-1);return u==="Object"&&o.constructor&&(u=o.constructor.name),u==="Map"||u==="Set"?Array.from(o):u==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u)?e(o,a):void 0}}function ae(o){var a;try{a=new Event("abort")}catch{typeof document<"u"?document.createEvent?(a=document.createEvent("Event"),a.initEvent("abort",!1,!1)):(a=document.createEventObject(),a.type="abort"):a={type:"abort",bubbles:!1,cancelable:!1}}return a.reason=o,a}function ue(o){if(o===void 0)if(typeof document>"u")o=new Error("This operation was aborted"),o.name="AbortError";else try{o=new DOMException("signal is aborted without reason"),Object.defineProperty(o,"name",{value:"AbortError"})}catch{o=new Error("This operation was aborted"),o.name="AbortError"}return o}var W=function(){function o(){n(this,o),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return i(o,[{key:"addEventListener",value:function(u,c,E){u in this.listeners||(this.listeners[u]=[]),this.listeners[u].push({callback:c,options:E})}},{key:"removeEventListener",value:function(u,c){if(u in this.listeners){for(var E=this.listeners[u],_=0,w=E.length;_<w;_++)if(E[_].callback===c){E.splice(_,1);return}}}},{key:"dispatchEvent",value:function(u){var c=this;if(u.type in this.listeners){for(var E=this.listeners[u.type],_=E.slice(),w=function(){var D=_[b];try{D.callback.call(c,u)}catch(X){Promise.resolve().then(function(){throw X})}D.options&&D.options.once&&c.removeEventListener(u.type,D.callback)},b=0,f=_.length;b<f;b++)w();return!u.defaultPrevented}}}])}(),M=function(o){function a(){var u;return n(this,a),u=r(this,a),u.listeners||W.call(u),Object.defineProperty(u,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(u,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(u,"reason",{value:void 0,writable:!0,configurable:!0}),u}return h(a,o),i(a,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(c){c.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,c)),ie(a,"dispatchEvent",this)([c])}},{key:"throwIfAborted",value:function(){var c=this.aborted,E=this.reason,_=E===void 0?"Aborted":E;if(c)throw _}}],[{key:"timeout",value:function(c){var E=new q;return setTimeout(function(){return E.abort(new DOMException("This signal is timeout in ".concat(c,"ms"),"TimeoutError"))},c),E.signal}},{key:"any",value:function(c){var E=new q;function _(){E.abort(this.reason),w()}function w(){var D=l(c),X;try{for(D.s();!(X=D.n()).done;){var lt=X.value;lt.removeEventListener("abort",_)}}catch(ft){D.e(ft)}finally{D.f()}}var b=l(c),f;try{for(b.s();!(f=b.n()).done;){var V=f.value;if(V.aborted){E.abort(V.reason);break}else V.addEventListener("abort",_)}}catch(D){b.e(D)}finally{b.f()}return E.signal}}])}(W),q=function(){function o(){n(this,o),Object.defineProperty(this,"signal",{value:new M,writable:!0,configurable:!0})}return i(o,[{key:"abort",value:function(u){var c=ue(u),E=ae(c);this.signal.reason=c,this.signal.dispatchEvent(E)}},{key:"toString",value:function(){return"[object AbortController]"}}])}();typeof Symbol<"u"&&Symbol.toStringTag&&(q.prototype[Symbol.toStringTag]="AbortController",M.prototype[Symbol.toStringTag]="AbortSignal");function O(o){return o.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof o.Request=="function"&&!o.Request.prototype.hasOwnProperty("signal")||!o.AbortController}(function(o){O(o)&&(o.AbortController=q,o.AbortSignal=M)})(typeof self<"u"?self:Fe)})),me}Me();var v=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof global<"u"&&global||{},A={searchParams:"URLSearchParams"in v,iterable:"Symbol"in v&&"iterator"in Symbol,blob:"FileReader"in v&&"Blob"in v&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in v,arrayBuffer:"ArrayBuffer"in v};function Ge(e){return e&&DataView.prototype.isPrototypeOf(e)}if(A.arrayBuffer)var Ye=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Ke=ArrayBuffer.isView||function(e){return e&&Ye.indexOf(Object.prototype.toString.call(e))>-1};function j(e){if(typeof e!="string"&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||e==="")throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function te(e){return typeof e!="string"&&(e=String(e)),e}function re(e){var t={next:function(){var r=e.shift();return{done:r===void 0,value:r}}};return A.iterable&&(t[Symbol.iterator]=function(){return t}),t}function p(e){this.map={},e instanceof p?e.forEach(function(t,r){this.append(r,t)},this):Array.isArray(e)?e.forEach(function(t){if(t.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+t.length);this.append(t[0],t[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}p.prototype.append=function(e,t){e=j(e),t=te(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},p.prototype.delete=function(e){delete this.map[j(e)]},p.prototype.get=function(e){return e=j(e),this.has(e)?this.map[e]:null},p.prototype.has=function(e){return this.map.hasOwnProperty(j(e))},p.prototype.set=function(e,t){this.map[j(e)]=te(t)},p.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},p.prototype.keys=function(){var e=[];return this.forEach(function(t,r){e.push(r)}),re(e)},p.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),re(e)},p.prototype.entries=function(){var e=[];return this.forEach(function(t,r){e.push([r,t])}),re(e)},A.iterable&&(p.prototype[Symbol.iterator]=p.prototype.entries);function ne(e){if(!e._noBody){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}}function Re(e){return new Promise(function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}})}function Qe(e){var t=new FileReader,r=Re(t);return t.readAsArrayBuffer(e),r}function ze(e){var t=new FileReader,r=Re(t),n=/charset=([A-Za-z0-9_-]+)/.exec(e.type),s=n?n[1]:"utf-8";return t.readAsText(e,s),r}function $e(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join("")}function Te(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function ge(){return this.bodyUsed=!1,this._initBody=function(e){this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?typeof e=="string"?this._bodyText=e:A.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:A.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:A.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():A.arrayBuffer&&A.blob&&Ge(e)?(this._bodyArrayBuffer=Te(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):A.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||Ke(e))?this._bodyArrayBuffer=Te(e):this._bodyText=e=Object.prototype.toString.call(e):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof e=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):A.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},A.blob&&(this.blob=function(){var e=ne(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=ne(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(A.blob)return this.blob().then(Qe);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var e=ne(this);if(e)return e;if(this._bodyBlob)return ze(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve($e(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},A.formData&&(this.formData=function(){return this.text().then(Xe)}),this.json=function(){return this.text().then(JSON.parse)},this}var We=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function Ve(e){var t=e.toUpperCase();return We.indexOf(t)>-1?t:e}function N(e,t){if(!(this instanceof N))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t=t||{};var r=t.body;if(e instanceof N){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new p(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,!r&&e._bodyInit!=null&&(r=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",(t.headers||!this.headers)&&(this.headers=new p(t.headers)),this.method=Ve(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal||function(){if("AbortController"in v){var i=new AbortController;return i.signal}}(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&r)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(r),(this.method==="GET"||this.method==="HEAD")&&(t.cache==="no-store"||t.cache==="no-cache")){var n=/([?&])_=[^&]*/;if(n.test(this.url))this.url=this.url.replace(n,"$1_="+new Date().getTime());else{var s=/\?/;this.url+=(s.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}N.prototype.clone=function(){return new N(this,{body:this._bodyInit})};function Xe(e){var t=new FormData;return e.trim().split("&").forEach(function(r){if(r){var n=r.split("="),s=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(s),decodeURIComponent(i))}}),t}function Je(e){var t=new p,r=e.replace(/\r?\n[\t ]+/g," ");return r.split("\r").map(function(n){return n.indexOf(`
3
- `)===0?n.substr(1,n.length):n}).forEach(function(n){var s=n.split(":"),i=s.shift().trim();if(i){var l=s.join(":").trim();try{t.append(i,l)}catch(m){console.warn("Response "+m.message)}}}),t}ge.call(N.prototype);function P(e,t){if(!(this instanceof P))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(t||(t={}),this.type="default",this.status=t.status===void 0?200:t.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText===void 0?"":""+t.statusText,this.headers=new p(t.headers),this.url=t.url||"",this._initBody(e)}ge.call(P.prototype),P.prototype.clone=function(){return new P(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},P.error=function(){var e=new P(null,{status:200,statusText:""});return e.ok=!1,e.status=0,e.type="error",e};var Ze=[301,302,303,307,308];P.redirect=function(e,t){if(Ze.indexOf(t)===-1)throw new RangeError("Invalid status code");return new P(null,{status:t,headers:{location:e}})};var U=v.DOMException;try{new U}catch{U=function(t,r){this.message=t,this.name=r;var n=Error(t);this.stack=n.stack},U.prototype=Object.create(Error.prototype),U.prototype.constructor=U}function oe(e,t){return new Promise(function(r,n){var s=new N(e,t);if(s.signal&&s.signal.aborted)return n(new U("Aborted","AbortError"));var i=new XMLHttpRequest;function l(){i.abort()}i.onload=function(){var h={statusText:i.statusText,headers:Je(i.getAllResponseHeaders()||"")};s.url.indexOf("file://")===0&&(i.status<200||i.status>599)?h.status=200:h.status=i.status,h.url="responseURL"in i?i.responseURL:h.headers.get("X-Request-URL");var g="response"in i?i.response:i.responseText;setTimeout(function(){r(new P(g,h))},0)},i.onerror=function(){setTimeout(function(){n(new TypeError("Network request failed"))},0)},i.ontimeout=function(){setTimeout(function(){n(new TypeError("Network request timed out"))},0)},i.onabort=function(){setTimeout(function(){n(new U("Aborted","AbortError"))},0)};function m(h){try{return h===""&&v.location.href?v.location.href:h}catch{return h}}if(i.open(s.method,m(s.url),!0),s.credentials==="include"?i.withCredentials=!0:s.credentials==="omit"&&(i.withCredentials=!1),"responseType"in i&&(A.blob?i.responseType="blob":A.arrayBuffer&&(i.responseType="arraybuffer")),t&&typeof t.headers=="object"&&!(t.headers instanceof p||v.Headers&&t.headers instanceof v.Headers)){var R=[];Object.getOwnPropertyNames(t.headers).forEach(function(h){R.push(j(h)),i.setRequestHeader(h,te(t.headers[h]))}),s.headers.forEach(function(h,g){R.indexOf(g)===-1&&i.setRequestHeader(g,h)})}else s.headers.forEach(function(h,g){i.setRequestHeader(g,h)});s.signal&&(s.signal.addEventListener("abort",l),i.onreadystatechange=function(){i.readyState===4&&s.signal.removeEventListener("abort",l)}),i.send(typeof s._bodyInit>"u"?null:s._bodyInit)})}oe.polyfill=!0,v.fetch||(v.fetch=oe,v.Headers=p,v.Request=N,v.Response=P);let x={};const et=typeof window<"u"?"signal"in new Request("")?window.fetch:oe:fetch;class tt{constructor(t,r){this.send=n=>async(s,i)=>{var a,u;const{api:l,preUpdate:m,postUpdate:R,preError:h,postError:g,data:F,files:L,requestCancel:Q=!0,updateStore:ie=!0,fileKey:z=this.options.fileKey,primaryKey:se=this.options.primaryKey,bodyKey:$=this.options.bodyKey,method:ae=this.options.method,normalize:ue=this.options.normalize,mergeListStrategy:W=this.options.mergeListStrategy,headers:M=this.options.headers,responseKeyCode:q=this.options.responseKeyCode}=Y(this.requestObject,n),O=Math.random().toString(36).substr(2),o=new Date;try{let c=JSON.stringify({...F,requestID:O});const E=new AbortController,{signal:_}=E;if(s({type:y.CDEEBEE_REQUESTMANAGER_SET,payload:{requestID:O,api:l,controller:E,data:F,requestCancel:Q,requestStartTime:o,requestEndTime:void 0}}),L){const b=new FormData;for(let f=0;f<L.length;f+=1)z&&b.append(z,L[f]);$&&b.append($,c),c=b}const w=await(await et(l,{method:ae,signal:_,headers:{"ui-request-id":O,...M},body:c})).json();if(w)for(x=Object.assign({[O]:{requestID:O,response:w,requestApi:l,requestStartTime:o,preUpdate:m,postUpdate:R,normalize:ue,preError:h,postError:g,mergeListStrategy:W,updateStore:ie,data:F,requestCancel:Q,controller:E}},x);x[(u=(a=i().requestManager.activeRequest)==null?void 0:a[0])==null?void 0:u.requestID];){const b=i().requestManager.activeRequest[0].requestID,f=x[b];q&&f.response[q]===0?(f.preUpdate&&f.preUpdate(f.response),f.updateStore&&s({type:y.CDEEBEEE_UPDATE,payload:{response:f.normalize instanceof Function&&f.normalize({response:f.response,cdeebee:i().cdeebee,mergeListStrategy:f.mergeListStrategy,primaryKey:se}),cleanResponse:f.response,api:f.requestApi,mergeListStrategy:f.mergeListStrategy}}),f.postUpdate&&f.postUpdate(f.response)):(f.preError&&f.preError(f.response),s({type:y.CDEEBEE_ERRORHANDLER_SET,payload:{api:f.requestApi,cleanResponse:f.response}}),f.postError&&f.postError(w)),s({type:y.CDEEBEE_REQUESTMANAGER_SHIFT,payload:{requestID:f.requestID,api:f.requestApi,controller:f.controller,data:f.data,requestCancel:f.requestCancel,requestStartTime:f.requestStartTime,requestEndTime:new Date}}),delete x[b]}}catch(c){if(c.name==="AbortError")s({type:y.CDEEBEE_REQUEST_ABORTED,payload:{requestID:O,api:l}});else{const E=new Date;s({type:y.CDEEBEE_INTERNAL_ERROR,payload:{requestStartTime:o,requestEndTime:E,requestID:O,api:l}}),console.warn("@@makeRequest-error",c),console.warn("@@makeRequest-object",Y(this.requestObject,n)),console.warn("@@makeRequest-info",{requestStartTime:o,requestEndTime:E,requestID:O}),Object.prototype.hasOwnProperty.call(this.options,"globalErrorHandler")&&this.options.globalErrorHandler instanceof Function&&this.options.globalErrorHandler(c,Y(this.requestObject,n),{requestStartTime:o,requestEndTime:E,requestID:O})(s,i)}}},this.requestObject=t,this.options={fileKey:"files",bodyKey:"body",method:"POST",normalize:_e,responseKeyCode:"responseStatus",headers:{"content-type":"application/json"},...r}}}function rt(e,t,r){return n=>{n({type:y.CDEEBEE_ENTITY_UNSAFE_UPDATE_STORE,payload:{entityList:e,entityID:t,value:r}})}}function nt(e,t,r){return n=>{n({type:y.CDEEBEE_ENTITY_CHANGE_FIELD,payload:{entityList:e,entityID:t,valueList:r}})}}function ot(e,t,r){return n=>{n({type:y.CDEEBEE_SET_ENTITY,payload:{entityList:e,entityID:t,entity:r}})}}function it(e,t){return r=>{r({type:y.CDEEBEE_RESET_ENTITY,payload:{entityList:e,entityID:t}})}}function st(e){return t=>t({type:y.CDEEBEEE_DROP_PATH,payload:{path:e}})}function at(e){return t=>t({type:y.CDEEBEEE_DROP_REQUEST_BY_API_URL,payload:{api:e}})}function ut(e){return t=>t({type:y.CDEEBEEE_DROP_ERROR_BY_API_URL,payload:{api:e}})}const ct=Object.freeze(Object.defineProperty({__proto__:null,commitEntity:ot,dropCdeebeePath:st,dropErrorsByApiUrl:ut,dropRequestByApiUrl:at,resetEntity:it,setKeyValue:nt,unsafe_updateStore:rt},Symbol.toStringTag,{value:"Module"}));T.CdeebeeRequest=tt,T.cdeebee=ke,T.cdeebeeActions=ct,T.cdeebeeEntityState=C,T.cdeebeeHelpers=He,T.cdeebeeMergeStrategy=ee,T.cdeebeeTypes=y,T.requestManager=xe,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
@@ -1,210 +0,0 @@
1
- import { Dispatch } from 'redux';
2
- export declare enum cdeebeeTypes {
3
- CDEEBEE_REQUESTMANAGER_SHIFT = "@@cdeebee/REQUESTMANAGER_SHIFT",
4
- CDEEBEE_REQUESTMANAGER_SET = "@@cdeebee/REQUESTMANAGER_SET",
5
- CDEEBEE_ERRORHANDLER_SET = "@@cdeebee/ERRORHANDLER_SET",
6
- CDEEBEE_ENTITY_CHANGE_FIELD = "@@cdeebee/ENTITY_CHANGE_FIELD",
7
- CDEEBEE_ENTITY_UNSAFE_UPDATE_STORE = "@@cdeebee/ENTITY_UNSAFE_UPDATE_STORE",
8
- CDEEBEE_RESET_ENTITY = "@@cdeebee/RESET_ENTITY",
9
- CDEEBEE_SET_ENTITY = "@@cdeebee/SET_ENTITY",
10
- CDEEBEEE_UPDATE = "@@cdeebee/UPDATE",
11
- CDEEBEEE_DROP = "@@cdeebee/DROP",
12
- CDEEBEEE_DROP_PATH = "@@cdeebee/DROP_PATH",
13
- CDEEBEE_INTERNAL_ERROR = "@@cdeebee/INTERNAL_ERROR",
14
- CDEEBEE_REQUEST_ABORTED = "@@cdeebee/REQUEST_ABORTED",
15
- CDEEBEEE_DROP_REQUEST_BY_API_URL = "@@cdeebee/DROP_REQUEST_BY_API_URL",
16
- CDEEBEEE_DROP_ERROR_BY_API_URL = "@@cdeebee/DROP_ERROR_BY_API_URL",
17
- CHANGE_ROUTE = "@@router/LOCATION_CHANGE"
18
- }
19
- export declare enum cdeebeeEntityState {
20
- NEW = "NEW",
21
- EDITING = "EDITING",
22
- NORMAL = "NORMAL"
23
- }
24
- export declare enum cdeebeeMergeStrategy {
25
- merge = "merge",
26
- replace = "replace"
27
- }
28
- export type IDefaultOption = {
29
- headers?: object;
30
- files?: File[];
31
- fileKey?: string;
32
- bodyKey?: string;
33
- primaryKey: string;
34
- responseKeyCode?: string;
35
- requestCancel?: boolean;
36
- updateStore?: boolean;
37
- mergeListStrategy?: {
38
- [key: string]: cdeebeeMergeStrategy;
39
- };
40
- normalize?: (t: any) => void;
41
- method?: 'POST' | 'GET' | 'PUT' | 'DELETE';
42
- globalErrorHandler?: (error: object, request: object, meta: {
43
- requestStartTime: Date;
44
- requestEndTime: Date;
45
- requestID: string;
46
- }) => (dispatch: Dispatch, getState: () => object) => void;
47
- };
48
- interface ResponseCallbacks<R> {
49
- normalize?: (t: any) => void;
50
- preUpdate?: (payload: R) => void;
51
- postUpdate?: (payload: R) => void;
52
- preError?: (payload: R) => void;
53
- postError?: (payload: R) => void;
54
- }
55
- export interface IRequestOptions<T, R> extends Omit<IDefaultOption, 'primaryKey'>, ResponseCallbacks<R> {
56
- api: string;
57
- primaryKey?: string;
58
- data?: T;
59
- }
60
- export interface IResponsePropObject<R> extends ResponseCallbacks<R> {
61
- requestID: string;
62
- controller: AbortController;
63
- updateStore: boolean;
64
- data: object;
65
- requestCancel: boolean;
66
- requestApi: string;
67
- response: R;
68
- requestStartTime?: Date;
69
- mergeListStrategy?: {
70
- [key: string]: cdeebeeMergeStrategy;
71
- };
72
- }
73
- export interface IEntity {
74
- __entity?: {
75
- __state: cdeebeeEntityState;
76
- };
77
- }
78
- export type cdeebeeValueList = {
79
- key: (string | number)[];
80
- value: any;
81
- };
82
- export type cdeebeActiveRequest = {
83
- api: string;
84
- requestCancel: object;
85
- controller: {
86
- abort: () => void;
87
- };
88
- data: unknown;
89
- requestEndTime: Date;
90
- requestStartTime: Date;
91
- requestID: string;
92
- };
93
- export type EntityID = string | number;
94
- export interface cdeebeeIActions {
95
- dropRequestByApiUrl: (api: string) => void;
96
- dropErrorsByApiUrl: (api: string) => void;
97
- dropCdeebeePath: (path: (string | number)[]) => void;
98
- setKeyValue: (entityList: string, entityID: EntityID, valueList: cdeebeeValueList[]) => void;
99
- unsafe_updateStore: (entityList: string, entityID: EntityID, value: any) => void;
100
- commitEntity: (entityList: string, entityID: EntityID, entity: object) => void;
101
- resetEntity: (entityList: string, entityID: EntityID) => void;
102
- }
103
- export type ActionCreator<A> = (...args: any[]) => A;
104
- export declare class CdeebeeRequest {
105
- requestObject: any;
106
- constructor(defaultRequest: object, options: {
107
- fileKey?: string;
108
- bodyKey?: string;
109
- method?: string;
110
- primaryKey?: string;
111
- normalize?: (data: object) => object;
112
- mergeListStrategy?: {
113
- [key: string]: cdeebeeMergeStrategy;
114
- };
115
- responseKeyCode?: string;
116
- header?: object;
117
- });
118
- }
119
- export interface CDEEBEERequestManager {
120
- readonly type: cdeebeeTypes.CDEEBEE_REQUESTMANAGER_SET;
121
- readonly payload: object;
122
- }
123
- export interface CDEEBEERequestShift {
124
- readonly type: cdeebeeTypes.CDEEBEE_REQUESTMANAGER_SHIFT;
125
- readonly payload?: any;
126
- }
127
- export interface CDEEBEEUpdate {
128
- readonly type: cdeebeeTypes.CDEEBEEE_UPDATE;
129
- readonly payload: {
130
- api: string;
131
- cleanResponse: object;
132
- };
133
- }
134
- export interface CDEEBEEErrorSet {
135
- readonly type: cdeebeeTypes.CDEEBEE_ERRORHANDLER_SET;
136
- readonly payload: {
137
- api: string;
138
- cleanResponse: object;
139
- };
140
- }
141
- export interface CDEEBEEChangeRoute {
142
- readonly type?: any;
143
- readonly payload?: any;
144
- }
145
- export type IRequestAction = CDEEBEERequestManager | CDEEBEERequestShift | CDEEBEEUpdate | CDEEBEEErrorSet | CDEEBEEChangeRoute;
146
- export interface IRequestState {
147
- activeRequest: cdeebeActiveRequest[];
148
- requestByApiUrl: object;
149
- errorHandler: object;
150
- }
151
- export interface CDEEBEEUpadte {
152
- readonly type: cdeebeeTypes.CDEEBEEE_UPDATE;
153
- readonly payload: {
154
- response: object;
155
- };
156
- }
157
- export interface CDEEBEEChangeField {
158
- readonly type: cdeebeeTypes.CDEEBEE_ENTITY_CHANGE_FIELD;
159
- readonly payload: {
160
- valueList: cdeebeeValueList[];
161
- entityList: string;
162
- entityID: number | string;
163
- };
164
- }
165
- export interface CDEEBEESetEntity {
166
- readonly type: cdeebeeTypes.CDEEBEE_SET_ENTITY;
167
- readonly payload: {
168
- entityList: string;
169
- entityID: number | string;
170
- entity: any;
171
- };
172
- }
173
- export interface CDEEBEEUnsafeUpdateStore {
174
- readonly type: cdeebeeTypes.CDEEBEE_ENTITY_UNSAFE_UPDATE_STORE;
175
- readonly payload: {
176
- entityList: string;
177
- entityID: number | string;
178
- value: any;
179
- };
180
- }
181
- export interface CDEEBEEResetEntity {
182
- readonly type: cdeebeeTypes.CDEEBEE_RESET_ENTITY;
183
- readonly payload: {
184
- entityList: string;
185
- entityID: number | string;
186
- };
187
- }
188
- export interface CDEEBEEDrop {
189
- readonly type: cdeebeeTypes.CDEEBEEE_DROP;
190
- readonly payload?: any;
191
- }
192
- export interface CDEEBEEDropPath {
193
- readonly type: cdeebeeTypes.CDEEBEEE_DROP_PATH;
194
- readonly payload: {
195
- path: (string | number)[];
196
- };
197
- }
198
- export type ICdeebee = CDEEBEEUpadte | CDEEBEEChangeField | CDEEBEESetEntity | CDEEBEEResetEntity | CDEEBEEDrop | CDEEBEEDropPath | CDEEBEEUnsafeUpdateStore;
199
- export interface IDefaultNormalize {
200
- response: {
201
- responseStatus: string;
202
- [params: string]: any;
203
- };
204
- cdeebee: object;
205
- primaryKey: string;
206
- mergeListStrategy: {
207
- [key: string]: cdeebeeMergeStrategy;
208
- };
209
- }
210
- export {};
package/dist/helpers.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { cdeebeActiveRequest, cdeebeeEntityState, cdeebeeValueList, IDefaultNormalize, IEntity } from './definition';
2
- export declare const dropRequestFromArray: (activeRequest: cdeebeActiveRequest[]) => cdeebeActiveRequest[];
3
- export declare const requestCancel: (request: cdeebeActiveRequest) => void;
4
- export declare const checkNetworkActivity: (activeRequest: cdeebeActiveRequest[], apiUrl: string | string[]) => boolean;
5
- export declare const getSubEntity: <T>(entity: T & IEntity) => {
6
- __state: cdeebeeEntityState;
7
- } | (T & IEntity);
8
- export declare const getEntityState: <T>(entity: T & IEntity) => cdeebeeEntityState;
9
- export declare const insertEntity: (entity: {
10
- __state: string;
11
- }) => {
12
- __state: string;
13
- };
14
- export declare const commitEntity: <T>(entity: T & IEntity) => T;
15
- export declare const resetEntity: <T>(entity: T & IEntity) => T;
16
- export declare const editEntity: (store: IEntity & {
17
- [key: string]: any;
18
- }, list: string, id: number | string) => IEntity & {
19
- [key: string]: any;
20
- };
21
- export declare const batchingUpdate: (state: object, valueList: cdeebeeValueList[], prePath?: (string | number)[]) => object;
22
- export declare const defaultNormalize: (d: IDefaultNormalize) => object;
package/dist/reducer.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import { ICdeebee, IRequestAction, IRequestState } from './definition';
2
- export declare const INITIAL_STORAGE: any;
3
- export declare const cdeebee: (state: any | undefined, action: ICdeebee) => any;
4
- export declare const requestManager: (state: IRequestState | undefined, action: IRequestAction) => {
5
- activeRequest: any[];
6
- requestByApiUrl: object;
7
- errorHandler: object;
8
- };
package/dist/request.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import { Dispatch } from 'redux';
2
- import { IDefaultOption, IRequestOptions } from './definition';
3
- export default class requestManager {
4
- requestObject: object;
5
- private options;
6
- constructor(requestObject: object, options: IDefaultOption);
7
- send: <T, R>(rq: IRequestOptions<T, R>) => (dispatch: Dispatch, getState: () => any) => Promise<void>;
8
- }