w-orm-lowdb 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,37 @@
1
1
  # w-orm-lowdb
2
2
  An operator for lowdb in nodejs.
3
3
 
4
- ## 注意
5
- 同 process 內多個 WOrm 實例共用記憶體鎖、序列化同一個 JSON 檔的讀寫。不支援多個 process 操作。
6
-
7
4
  ![language](https://img.shields.io/badge/language-JavaScript-orange.svg)
8
- [![npm version](http://img.shields.io/npm/v/w-orm-lowdbvg?style=flat)](https://npmjs.org/package/w-orm-lolowdb
9
- [![license](https://img.shields.io/npm/l/w-orm-lowdbvg?style=flat)](https://npmjs.org/package/w-orm-lolowdb
10
- [![npm download](https://img.shields.io/npm/dt/w-orm-lowdbvg)](https://npmjs.org/package/w-orm-lolowdb
11
- [![npm download](https://img.shields.io/npm/dm/w-orm-lowdbvg)](https://npmjs.org/package/w-orm-lolowdb
12
- [![jsdelivr download](https://img.shields.io/jsdelivr/npm/hm/w-orm-lowdbvg)](https://www.jsdelivr.com/package/npm/w-orm-lolowdb
5
+ [![npm version](http://img.shields.io/npm/v/w-orm-lowdb.svg?style=flat)](https://npmjs.org/package/w-orm-lowdb
6
+ [![license](https://img.shields.io/npm/l/w-orm-lowdb.svg?style=flat)](https://npmjs.org/package/w-orm-lowdb
7
+ [![npm download](https://img.shields.io/npm/dt/w-orm-lowdb.svg)](https://npmjs.org/package/w-orm-lowdb
8
+ [![npm download](https://img.shields.io/npm/dm/w-orm-lowdb.svg)](https://npmjs.org/package/w-orm-lowdb
9
+ [![jsdelivr download](https://img.shields.io/jsdelivr/npm/hm/w-orm-lowdb.svg)](https://www.jsdelivr.com/package/npm/w-orm-lowdb
10
+
11
+ ## Keypoint
12
+
13
+ 本套件之寫入為「整檔讀出、記憶體修改、整檔寫回」,lowdb 本身無條件寫入亦無檔案鎖,故原子性須由套件自行提供,其適用範圍如下。
14
+
15
+ ### 跨行程併發不成立
16
+
17
+ 已確認跨行程併發不成立,因序列化佇列為 module 層之變數,僅同一行程內共享;不同行程各持一份而完全不互斥,lowdb 亦未使用任何檔案鎖。**多個行程操作同一資料庫檔案時,請自行確保同時只有一個寫入者。**
18
+
19
+ 失效之具體後果有二,兩者皆已實機重現:
20
+
21
+ 1. **整批遺失(lost update)**:兩行程各自持有寫入前之整檔快照,後寫者將自己的快照整檔覆蓋回去,前寫者於其間所寫入之數據**整筆消失**,非個別欄位失準。
22
+ 2. **寫檔拋錯而整批 reject**:lowdb 之寫檔委由 steno,其暫存檔名由資料庫檔名推導(`db.json` 對應 `.db.json.tmp`),故兩行程**共用同一個暫存檔**;一方完成 rename 後,另一方之 rename 即因來源已不存在而拋 `ENOENT`,該次操作整批 reject。
23
+
24
+ 實測依據(Windows 11、Node v24.19.0、lowdb 7、steno 4.0.2):兩個獨立行程對同一檔案各循序 `insert` 200 筆(共 400 筆),以同一時間點起跑,連續 3 輪皆有一方以 `ENOENT: no such file or directory, rename '....db.json.tmp' -> '...db.json'` 中止,最終資料表分別為 200、200、281 筆(遺失 200、200、119 筆),發生率 3/3。
25
+
26
+ **建議之迴避方式**:
27
+
28
+ - 單一寫入者:由單一行程負責全部寫入,其餘行程僅讀取。
29
+ - 呼叫端自備跨行程鎖,包覆每一次寫入呼叫。
30
+ - 確需多行程寫入者,改用具備跨行程原子性之後端,如 w-orm-mongodb 或 w-orm-postgresql。
31
+
32
+ ### 快取
33
+
34
+ `opt.useCache` 開啟時,`select` 與 `selectByPk` 之快取為行程內狀態:本行程之寫入會重設快取,他行程之寫入則不會,故縱使僅由他行程寫入亦可能讀到過期數據。該選項預設關閉,僅適用於單程序操作。
13
35
 
14
36
  ## Documentation
15
37
  To view documentation or get support, visit [docs](https://yuda-lyu.github.io/w-orm-lowdbOrm.html).
@@ -86,6 +108,9 @@ async function test() {
86
108
  wo.on('change', function(mode, data, res) {
87
109
  console.log('change', mode)
88
110
  })
111
+ wo.on('error', function(mode, data, err) {
112
+ console.log('error', mode, err)
113
+ })
89
114
 
90
115
  //delAll
91
116
  await wo.delAll()
@@ -105,6 +130,33 @@ async function test() {
105
130
  console.log('insert catch', msg)
106
131
  })
107
132
 
133
+ //insert by returnList, 回傳與輸入等長保序之逐筆結果, nInserted為1即該筆為新增
134
+ await wo.insert([{ id: 'id-peter' }, { id: 'id-new' }], { returnList: true })
135
+ .then(function(msg) {
136
+ console.log('insert(returnList) then', msg)
137
+ })
138
+ .catch(function(msg) {
139
+ console.log('insert(returnList) catch', msg)
140
+ })
141
+
142
+ //insertBulk, 全有全無, 任一筆主鍵已存在即整批reject且不寫入任何一筆
143
+ await wo.insertBulk([{ id: 'id-bulk1' }, { id: 'id-bulk2' }])
144
+ .then(function(msg) {
145
+ console.log('insertBulk then', msg)
146
+ })
147
+ .catch(function(msg) {
148
+ console.log('insertBulk catch', msg.toString())
149
+ })
150
+
151
+ //insertBulk by existed id
152
+ await wo.insertBulk([{ id: 'id-bulk3' }, { id: 'id-peter' }])
153
+ .then(function(msg) {
154
+ console.log('insertBulk(existed) then', msg)
155
+ })
156
+ .catch(function(msg) {
157
+ console.log('insertBulk(existed) catch', msg.toString())
158
+ })
159
+
108
160
  //save
109
161
  await wo.save(rsm, { autoInsert: false })
110
162
  .then(function(msg) {
@@ -114,6 +166,23 @@ async function test() {
114
166
  console.log('save catch', msg)
115
167
  })
116
168
 
169
+ //selectByPk
170
+ let sp = await wo.selectByPk('id-rosemary')
171
+ console.log('selectByPk', sp)
172
+
173
+ //selectByPk by non-existed id
174
+ let spn = await wo.selectByPk('id-non-existed')
175
+ console.log('selectByPk(non-existed)', spn)
176
+
177
+ //del by id-new, id-bulk1, id-bulk2
178
+ await wo.del([{ id: 'id-new' }, { id: 'id-bulk1' }, { id: 'id-bulk2' }])
179
+ .then(function(msg) {
180
+ console.log('del(clean) then', msg)
181
+ })
182
+ .catch(function(msg) {
183
+ console.log('del(clean) catch', msg)
184
+ })
185
+
117
186
  //select all
118
187
  let ss = await wo.select()
119
188
  console.log('select all', ss)
@@ -159,23 +228,55 @@ async function test() {
159
228
  console.log('del catch', msg)
160
229
  })
161
230
 
231
+ //del by invalid id, 未帶有效主鍵者為該筆ok為0並附err, 整批仍resolve
232
+ await wo.del([{ name: 'no-id' }])
233
+ .then(function(msg) {
234
+ console.log('del(invalid id) then', msg)
235
+ })
236
+ .catch(function(msg) {
237
+ console.log('del(invalid id) catch', msg)
238
+ })
239
+
240
+ //delAll by find
241
+ await wo.delAll({ value: { '$gte': 600 } })
242
+ .then(function(msg) {
243
+ console.log('delAll(find) then', msg)
244
+ })
245
+ .catch(function(msg) {
246
+ console.log('delAll(find) catch', msg)
247
+ })
248
+
162
249
  }
163
250
  test()
164
251
  // change delAll
165
252
  // delAll then { n: 2, nDeleted: 2, ok: 1 }
166
253
  // change insert
167
254
  // insert then { n: 3, nInserted: 3, ok: 1 }
255
+ // change insert
256
+ // insert(returnList) then [ { n: 1, nInserted: 0, ok: 1 }, { n: 1, nInserted: 1, ok: 1 } ]
257
+ // change insertBulk
258
+ // insertBulk then { n: 2, nInserted: 2, ok: 1 }
259
+ // error insertBulk can not insertBulk by existed id[id-peter]
260
+ // insertBulk(existed) catch Error: can not insertBulk by existed id[id-peter]
168
261
  // change save
169
262
  // save then [
170
- // { n: 1, nModified: 1, ok: 1 },
171
- // { n: 1, nModified: 1, ok: 1 },
172
- // { n: 0, nModified: 0, ok: 1 }
263
+ // { n: 1, nInserted: 0, nModified: 1, ok: 1 },
264
+ // { n: 1, nInserted: 0, nModified: 1, ok: 1 },
265
+ // { n: 0, nInserted: 0, nModified: 0, ok: 1 }
266
+ // ]
267
+ // selectByPk { id: 'id-rosemary', name: 'rosemary(modify)', value: 123.456 }
268
+ // selectByPk(non-existed) null
269
+ // change del
270
+ // del(clean) then [
271
+ // { n: 1, nDeleted: 1, ok: 1 },
272
+ // { n: 1, nDeleted: 1, ok: 1 },
273
+ // { n: 1, nDeleted: 1, ok: 1 }
173
274
  // ]
174
275
  // select all [
175
276
  // { id: 'id-peter', name: 'peter(modify)', value: 123 },
176
277
  // { id: 'id-rosemary', name: 'rosemary(modify)', value: 123.456 },
177
278
  // {
178
- // id: {random id},
279
+ // id: {auto gen id},
179
280
  // name: 'kettle',
180
281
  // value: 456
181
282
  // }
@@ -184,7 +285,7 @@ test()
184
285
  // select by $and, $gt, $lt [ { id: 'id-rosemary', name: 'rosemary(modify)', value: 123.456 } ]
185
286
  // select by $or, $gte, $lte [
186
287
  // {
187
- // id: {random id},
288
+ // id: {auto gen id},
188
289
  // name: 'kettle',
189
290
  // value: 456
190
291
  // }
@@ -196,13 +297,18 @@ test()
196
297
  // value: 123.456
197
298
  // },
198
299
  // {
199
- // id: {random id},
300
+ // id: {auto gen id},
200
301
  // name: 'kettle',
201
302
  // value: 456
202
303
  // }
203
304
  // ]
204
305
  // change save
205
- // save then [ { n: 1, nModified: 1, ok: 1 } ]
306
+ // save then [ { n: 1, nInserted: 0, nModified: 1, ok: 1 } ]
206
307
  // change del
207
308
  // del then [ { n: 1, nDeleted: 1, ok: 1 } ]
309
+ // error del can not delete by invalid id[]
310
+ // change del
311
+ // del(invalid id) then [ { n: 0, nDeleted: 0, ok: 0, err: 'can not delete by invalid id[]' } ]
312
+ // change delAll
313
+ // delAll(find) then { n: 1, nDeleted: 1, ok: 1 }
208
314
  ```
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * w-orm-lowdb v1.0.13
2
+ * w-orm-lowdb v1.0.15
3
3
  * (c) 2018-2021 yuda-lyu(semisphere)
4
4
  * Released under the MIT License.
5
5
  */
6
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("path"),require("events"),require("lowdb"),require("node:fs"),require("node:fs/promises"),require("node:path"),require("node:url"),require("mingo")):"function"==typeof define&&define.amd?define(["path","events","lowdb","node:fs","node:fs/promises","node:path","node:url","mingo"],e):(t="undefined"!=typeof globalThis?globalThis:t||self)["w-orm-lowdb"]=e(t.path$1,t.events,t.lowdb,null,t.promises,t.path,t.node_url,t.mingo)}(this,(function(t,e,r,n,o,i,u,a){"use strict";class c{#t;#e;#r=!1;#n=null;#o=null;#i=null;#u=null;#a(t){return this.#u=t,this.#i||=new Promise(((t,e)=>{this.#o=[t,e]})),new Promise(((t,e)=>{this.#i?.then(t).catch(e)}))}async#c(t){this.#r=!0;try{await o.writeFile(this.#e,t,"utf-8"),await async function(t,e,r){for(let n=0;n<e;n++)try{return await t()}catch(t){if(!(n<e-1))throw t;await new Promise((t=>setTimeout(t,r)))}}((async()=>{await o.rename(this.#e,this.#t)}),10,100),this.#n?.[0]()}catch(t){throw t instanceof Error&&this.#n?.[1](t),t}finally{if(this.#r=!1,this.#n=this.#o,this.#o=this.#i=null,null!==this.#u){const t=this.#u;this.#u=null,await this.write(t)}}}constructor(t){this.#t=t,this.#e=function(t){const e=t instanceof URL?u.fileURLToPath(t):t.toString();return i.join(i.dirname(e),`.${i.basename(e)}.tmp`)}(t)}async write(t){return this.#r?this.#a(t):this.#c(t)}}class f{#t;#f;constructor(t){this.#t=t,this.#f=new c(t)}async read(){let t;try{t=await o.readFile(this.#t,"utf-8")}catch(t){if("ENOENT"===t.code)return null;throw t}return t}write(t){return this.#f.write(t)}}class l{#l;#s;#p;constructor(t,e){let{parse:r,stringify:n}=e;this.#l=new f(t),this.#s=r,this.#p=n}async read(){const t=await this.#l.read();return null===t?null:this.#s(t)}write(t){return this.#l.write(this.#p(t))}}class s extends l{constructor(t){super(t,{parse:JSON.parse,stringify:t=>JSON.stringify(t,null,2)})}}var p=Array.isArray,v="object"==typeof global&&global&&global.Object===Object&&global,d="object"==typeof self&&self&&self.Object===Object&&self,h=v||d||Function("return this")(),y=h.Symbol,b=Object.prototype,j=b.hasOwnProperty,g=b.toString,_=y?y.toStringTag:void 0;var w=Object.prototype.toString;var m=y?y.toStringTag:void 0;function O(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":m&&m in Object(t)?function(t){var e=j.call(t,_),r=t[_];try{t[_]=void 0;var n=!0}catch(t){}var o=g.call(t);return n&&(e?t[_]=r:delete t[_]),o}(t):function(t){return w.call(t)}(t)}function A(t){return null!=t&&"object"==typeof t}function x(t){return"symbol"==typeof t||A(t)&&"[object Symbol]"==O(t)}var S=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,P=/^\w*$/;function k(t,e){if(p(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!x(t))||(P.test(t)||!S.test(t)||null!=e&&t in Object(e))}function z(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function F(t){if(!z(t))return!1;var e=O(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}var E,I=h["__core-js_shared__"],D=(E=/[^.]+$/.exec(I&&I.keys&&I.keys.IE_PROTO||""))?"Symbol(src)_1."+E:"";var N=Function.prototype.toString;function M(t){if(null!=t){try{return N.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var U=/^\[object .+?Constructor\]$/,$=Function.prototype,T=Object.prototype,B=$.toString,q=T.hasOwnProperty,L=RegExp("^"+B.call(q).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function R(t){return!(!z(t)||(e=t,D&&D in e))&&(F(t)?L:U).test(M(t));var e}function C(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return R(r)?r:void 0}var V=C(Object,"create");var W=Object.prototype.hasOwnProperty;var G=Object.prototype.hasOwnProperty;function J(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function Q(t,e){return t===e||t!=t&&e!=e}function H(t,e){for(var r=t.length;r--;)if(Q(t[r][0],e))return r;return-1}J.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},J.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},J.prototype.get=function(t){var e=this.__data__;if(V){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return W.call(e,t)?e[t]:void 0},J.prototype.has=function(t){var e=this.__data__;return V?void 0!==e[t]:G.call(e,t)},J.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=V&&void 0===e?"__lodash_hash_undefined__":e,this};var K=Array.prototype.splice;function X(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}X.prototype.clear=function(){this.__data__=[],this.size=0},X.prototype.delete=function(t){var e=this.__data__,r=H(e,t);return!(r<0)&&(r==e.length-1?e.pop():K.call(e,r,1),--this.size,!0)},X.prototype.get=function(t){var e=this.__data__,r=H(e,t);return r<0?void 0:e[r][1]},X.prototype.has=function(t){return H(this.__data__,t)>-1},X.prototype.set=function(t,e){var r=this.__data__,n=H(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var Y=C(h,"Map");function Z(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function tt(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}tt.prototype.clear=function(){this.size=0,this.__data__={hash:new J,map:new(Y||X),string:new J}},tt.prototype.delete=function(t){var e=Z(this,t).delete(t);return this.size-=e?1:0,e},tt.prototype.get=function(t){return Z(this,t).get(t)},tt.prototype.has=function(t){return Z(this,t).has(t)},tt.prototype.set=function(t,e){var r=Z(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function et(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var u=t.apply(this,n);return r.cache=i.set(o,u)||i,u};return r.cache=new(et.Cache||tt),r}et.Cache=tt;var rt,nt,ot,it=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ut=/\\(\\)?/g,at=(rt=function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(it,(function(t,r,n,o){e.push(n?o.replace(ut,"$1"):r||t)})),e},nt=et(rt,(function(t){return 500===ot.size&&ot.clear(),t})),ot=nt.cache,nt),ct=at;function ft(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o}var lt=y?y.prototype:void 0,st=lt?lt.toString:void 0;function pt(t){if("string"==typeof t)return t;if(p(t))return ft(t,pt)+"";if(x(t))return st?st.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function vt(t){return null==t?"":pt(t)}function dt(t,e){return p(t)?t:k(t,e)?[t]:ct(vt(t))}function ht(t){if("string"==typeof t||x(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function yt(t,e){for(var r=0,n=(e=dt(e,t)).length;null!=t&&r<n;)t=t[ht(e[r++])];return r&&r==n?t:void 0}function bt(t,e,r){var n=null==t?void 0:yt(t,e);return void 0===n?r:n}function jt(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t}var gt,_t=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),u=i.length;u--;){var a=i[gt?u:++n];if(!1===e(o[a],a,o))break}return t};function wt(t){return A(t)&&"[object Arguments]"==O(t)}var mt=Object.prototype,Ot=mt.hasOwnProperty,At=mt.propertyIsEnumerable,xt=wt(function(){return arguments}())?wt:function(t){return A(t)&&Ot.call(t,"callee")&&!At.call(t,"callee")},St=xt;var Pt="object"==typeof exports&&exports&&!exports.nodeType&&exports,kt=Pt&&"object"==typeof module&&module&&!module.nodeType&&module,zt=kt&&kt.exports===Pt?h.Buffer:void 0,Ft=(zt?zt.isBuffer:void 0)||function(){return!1},Et=/^(?:0|[1-9]\d*)$/;function It(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&Et.test(t))&&t>-1&&t%1==0&&t<e}function Dt(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}var Nt={};function Mt(t){return function(e){return t(e)}}Nt["[object Float32Array]"]=Nt["[object Float64Array]"]=Nt["[object Int8Array]"]=Nt["[object Int16Array]"]=Nt["[object Int32Array]"]=Nt["[object Uint8Array]"]=Nt["[object Uint8ClampedArray]"]=Nt["[object Uint16Array]"]=Nt["[object Uint32Array]"]=!0,Nt["[object Arguments]"]=Nt["[object Array]"]=Nt["[object ArrayBuffer]"]=Nt["[object Boolean]"]=Nt["[object DataView]"]=Nt["[object Date]"]=Nt["[object Error]"]=Nt["[object Function]"]=Nt["[object Map]"]=Nt["[object Number]"]=Nt["[object Object]"]=Nt["[object RegExp]"]=Nt["[object Set]"]=Nt["[object String]"]=Nt["[object WeakMap]"]=!1;var Ut="object"==typeof exports&&exports&&!exports.nodeType&&exports,$t=Ut&&"object"==typeof module&&module&&!module.nodeType&&module,Tt=$t&&$t.exports===Ut&&v.process,Bt=function(){try{var t=$t&&$t.require&&$t.require("util").types;return t||Tt&&Tt.binding&&Tt.binding("util")}catch(t){}}(),qt=Bt&&Bt.isTypedArray,Lt=qt?Mt(qt):function(t){return A(t)&&Dt(t.length)&&!!Nt[O(t)]},Rt=Object.prototype.hasOwnProperty;function Ct(t,e){var r=p(t),n=!r&&St(t),o=!r&&!n&&Ft(t),i=!r&&!n&&!o&&Lt(t),u=r||n||o||i,a=u?function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}(t.length,String):[],c=a.length;for(var f in t)!e&&!Rt.call(t,f)||u&&("length"==f||o&&("offset"==f||"parent"==f)||i&&("buffer"==f||"byteLength"==f||"byteOffset"==f)||It(f,c))||a.push(f);return a}var Vt=Object.prototype;function Wt(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Vt)}function Gt(t,e){return function(r){return t(e(r))}}var Jt=Gt(Object.keys,Object),Qt=Object.prototype.hasOwnProperty;function Ht(t){if(!Wt(t))return Jt(t);var e=[];for(var r in Object(t))Qt.call(t,r)&&"constructor"!=r&&e.push(r);return e}function Kt(t){return null!=t&&Dt(t.length)&&!F(t)}function Xt(t){return Kt(t)?Ct(t):Ht(t)}var Yt=function(t,e){return function(r,n){if(null==r)return r;if(!Kt(r))return t(r,n);for(var o=r.length,i=e?o:-1,u=Object(r);(e?i--:++i<o)&&!1!==n(u[i],i,u););return r}}((function(t,e){return t&&_t(t,e,Xt)})),Zt=Yt;function te(t){return t}function ee(t,e){var r;return(p(t)?jt:Zt)(t,"function"==typeof(r=e)?r:te)}function re(t){var e=this.__data__=new X(t);this.size=e.size}re.prototype.clear=function(){this.__data__=new X,this.size=0},re.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},re.prototype.get=function(t){return this.__data__.get(t)},re.prototype.has=function(t){return this.__data__.has(t)},re.prototype.set=function(t,e){var r=this.__data__;if(r instanceof X){var n=r.__data__;if(!Y||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new tt(n)}return r.set(t,e),this.size=r.size,this};function ne(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new tt;++e<r;)this.add(t[e])}function oe(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}function ie(t,e){return t.has(e)}ne.prototype.add=ne.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},ne.prototype.has=function(t){return this.__data__.has(t)};function ue(t,e,r,n,o,i){var u=1&r,a=t.length,c=e.length;if(a!=c&&!(u&&c>a))return!1;var f=i.get(t),l=i.get(e);if(f&&l)return f==e&&l==t;var s=-1,p=!0,v=2&r?new ne:void 0;for(i.set(t,e),i.set(e,t);++s<a;){var d=t[s],h=e[s];if(n)var y=u?n(h,d,s,e,t,i):n(d,h,s,t,e,i);if(void 0!==y){if(y)continue;p=!1;break}if(v){if(!oe(e,(function(t,e){if(!ie(v,e)&&(d===t||o(d,t,r,n,i)))return v.push(e)}))){p=!1;break}}else if(d!==h&&!o(d,h,r,n,i)){p=!1;break}}return i.delete(t),i.delete(e),p}var ae=h.Uint8Array;function ce(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}function fe(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}var le=y?y.prototype:void 0,se=le?le.valueOf:void 0;function pe(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}function ve(t,e,r){var n=e(t);return p(t)?n:pe(n,r(t))}function de(){return[]}var he=Object.prototype.propertyIsEnumerable,ye=Object.getOwnPropertySymbols,be=ye?function(t){return null==t?[]:(t=Object(t),function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var u=t[r];e(u,r,t)&&(i[o++]=u)}return i}(ye(t),(function(e){return he.call(t,e)})))}:de,je=be;function ge(t){return ve(t,Xt,je)}var _e=Object.prototype.hasOwnProperty;var we=C(h,"DataView"),me=C(h,"Promise"),Oe=C(h,"Set"),Ae=C(h,"WeakMap"),xe="[object Map]",Se="[object Promise]",Pe="[object Set]",ke="[object WeakMap]",ze="[object DataView]",Fe=M(we),Ee=M(Y),Ie=M(me),De=M(Oe),Ne=M(Ae),Me=O;(we&&Me(new we(new ArrayBuffer(1)))!=ze||Y&&Me(new Y)!=xe||me&&Me(me.resolve())!=Se||Oe&&Me(new Oe)!=Pe||Ae&&Me(new Ae)!=ke)&&(Me=function(t){var e=O(t),r="[object Object]"==e?t.constructor:void 0,n=r?M(r):"";if(n)switch(n){case Fe:return ze;case Ee:return xe;case Ie:return Se;case De:return Pe;case Ne:return ke}return e});var Ue=Me,$e="[object Arguments]",Te="[object Array]",Be="[object Object]",qe=Object.prototype.hasOwnProperty;function Le(t,e,r,n,o,i){var u=p(t),a=p(e),c=u?Te:Ue(t),f=a?Te:Ue(e),l=(c=c==$e?Be:c)==Be,s=(f=f==$e?Be:f)==Be,v=c==f;if(v&&Ft(t)){if(!Ft(e))return!1;u=!0,l=!1}if(v&&!l)return i||(i=new re),u||Lt(t)?ue(t,e,r,n,o,i):function(t,e,r,n,o,i,u){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new ae(t),new ae(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Q(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var a=ce;case"[object Set]":var c=1&n;if(a||(a=fe),t.size!=e.size&&!c)return!1;var f=u.get(t);if(f)return f==e;n|=2,u.set(t,e);var l=ue(a(t),a(e),n,o,i,u);return u.delete(t),l;case"[object Symbol]":if(se)return se.call(t)==se.call(e)}return!1}(t,e,c,r,n,o,i);if(!(1&r)){var d=l&&qe.call(t,"__wrapped__"),h=s&&qe.call(e,"__wrapped__");if(d||h){var y=d?t.value():t,b=h?e.value():e;return i||(i=new re),o(y,b,r,n,i)}}return!!v&&(i||(i=new re),function(t,e,r,n,o,i){var u=1&r,a=ge(t),c=a.length;if(c!=ge(e).length&&!u)return!1;for(var f=c;f--;){var l=a[f];if(!(u?l in e:_e.call(e,l)))return!1}var s=i.get(t),p=i.get(e);if(s&&p)return s==e&&p==t;var v=!0;i.set(t,e),i.set(e,t);for(var d=u;++f<c;){var h=t[l=a[f]],y=e[l];if(n)var b=u?n(y,h,l,e,t,i):n(h,y,l,t,e,i);if(!(void 0===b?h===y||o(h,y,r,n,i):b)){v=!1;break}d||(d="constructor"==l)}if(v&&!d){var j=t.constructor,g=e.constructor;j==g||!("constructor"in t)||!("constructor"in e)||"function"==typeof j&&j instanceof j&&"function"==typeof g&&g instanceof g||(v=!1)}return i.delete(t),i.delete(e),v}(t,e,r,n,o,i))}function Re(t,e,r,n,o){return t===e||(null==t||null==e||!A(t)&&!A(e)?t!=t&&e!=e:Le(t,e,r,n,Re,o))}function Ce(t){return t==t&&!z(t)}function Ve(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}function We(t){var e=function(t){for(var e=Xt(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,Ce(o)]}return e}(t);return 1==e.length&&e[0][2]?Ve(e[0][0],e[0][1]):function(r){return r===t||function(t,e,r,n){var o=r.length,i=o,u=!n;if(null==t)return!i;for(t=Object(t);o--;){var a=r[o];if(u&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++o<i;){var c=(a=r[o])[0],f=t[c],l=a[1];if(u&&a[2]){if(void 0===f&&!(c in t))return!1}else{var s=new re;if(n)var p=n(f,l,c,t,e,s);if(!(void 0===p?Re(l,f,3,n,s):p))return!1}}return!0}(r,t,e)}}function Ge(t,e){return null!=t&&e in Object(t)}function Je(t,e){return null!=t&&function(t,e,r){for(var n=-1,o=(e=dt(e,t)).length,i=!1;++n<o;){var u=ht(e[n]);if(!(i=null!=t&&r(t,u)))break;t=t[u]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&Dt(o)&&It(u,o)&&(p(t)||St(t))}(t,e,Ge)}function Qe(t){return function(e){return null==e?void 0:e[t]}}function He(t){return k(t)?Qe(ht(t)):function(t){return function(e){return yt(e,t)}}(t)}function Ke(t){return"function"==typeof t?t:null==t?te:"object"==typeof t?p(t)?function(t,e){return k(t)&&Ce(e)?Ve(ht(t),e):function(r){var n=bt(r,t);return void 0===n&&n===e?Je(r,t):Re(e,n,3)}}(t[0],t[1]):We(t):He(t)}function Xe(t,e){var r=-1,n=Kt(t)?Array(t.length):[];return Zt(t,(function(t,o,i){n[++r]=e(t,o,i)})),n}function Ye(t,e){return(p(t)?ft:Xe)(t,Ke(e))}var Ze=function(){try{var t=C(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),tr=Ze;function er(t,e,r){"__proto__"==e&&tr?tr(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}function rr(t,e,r){(void 0!==r&&!Q(t[e],r)||void 0===r&&!(e in t))&&er(t,e,r)}var nr="object"==typeof exports&&exports&&!exports.nodeType&&exports,or=nr&&"object"==typeof module&&module&&!module.nodeType&&module,ir=or&&or.exports===nr?h.Buffer:void 0,ur=ir?ir.allocUnsafe:void 0;function ar(t,e){if(e)return t.slice();var r=t.length,n=ur?ur(r):new t.constructor(r);return t.copy(n),n}function cr(t){var e=new t.constructor(t.byteLength);return new ae(e).set(new ae(t)),e}function fr(t,e){var r=e?cr(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function lr(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}var sr=Object.create,pr=function(){function t(){}return function(e){if(!z(e))return{};if(sr)return sr(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),vr=pr,dr=Gt(Object.getPrototypeOf,Object);function hr(t){return"function"!=typeof t.constructor||Wt(t)?{}:vr(dr(t))}var yr=Function.prototype,br=Object.prototype,jr=yr.toString,gr=br.hasOwnProperty,_r=jr.call(Object);function wr(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var mr=Object.prototype.hasOwnProperty;function Or(t,e,r){var n=t[e];mr.call(t,e)&&Q(n,r)&&(void 0!==r||e in t)||er(t,e,r)}function Ar(t,e,r,n){var o=!r;r||(r={});for(var i=-1,u=e.length;++i<u;){var a=e[i],c=n?n(r[a],t[a],a,r,t):void 0;void 0===c&&(c=t[a]),o?er(r,a,c):Or(r,a,c)}return r}var xr=Object.prototype.hasOwnProperty;function Sr(t){if(!z(t))return function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}(t);var e=Wt(t),r=[];for(var n in t)("constructor"!=n||!e&&xr.call(t,n))&&r.push(n);return r}function Pr(t){return Kt(t)?Ct(t,!0):Sr(t)}function kr(t,e,r,n,o,i,u){var a=wr(t,r),c=wr(e,r),f=u.get(c);if(f)rr(t,r,f);else{var l,s=i?i(a,c,r+"",t,e,u):void 0,v=void 0===s;if(v){var d=p(c),h=!d&&Ft(c),y=!d&&!h&&Lt(c);s=c,d||h||y?p(a)?s=a:A(l=a)&&Kt(l)?s=lr(a):h?(v=!1,s=ar(c,!0)):y?(v=!1,s=fr(c,!0)):s=[]:function(t){if(!A(t)||"[object Object]"!=O(t))return!1;var e=dr(t);if(null===e)return!0;var r=gr.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&jr.call(r)==_r}(c)||St(c)?(s=a,St(a)?s=function(t){return Ar(t,Pr(t))}(a):z(a)&&!F(a)||(s=hr(c))):v=!1}v&&(u.set(c,s),o(s,c,n,i,u),u.delete(c)),rr(t,r,s)}}function zr(t,e,r,n,o){t!==e&&_t(e,(function(i,u){if(o||(o=new re),z(i))kr(t,e,u,r,zr,n,o);else{var a=n?n(wr(t,u),i,u+"",t,e,o):void 0;void 0===a&&(a=i),rr(t,u,a)}}),Pr)}var Fr=Math.max;function Er(t,e,r){return e=Fr(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=Fr(n.length-e,0),u=Array(i);++o<i;)u[o]=n[e+o];o=-1;for(var a=Array(e+1);++o<e;)a[o]=n[o];return a[e]=r(u),function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}(t,this,a)}}var Ir=tr?function(t,e){return tr(t,"toString",{configurable:!0,enumerable:!1,value:(r=e,function(){return r}),writable:!0});var r}:te,Dr=Ir,Nr=Date.now;var Mr=function(t){var e=0,r=0;return function(){var n=Nr(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(Dr),Ur=Mr;var $r,Tr=($r=function(t,e,r){zr(t,e,r)},function(t,e){return Ur(Er(t,e,te),t+"")}((function(t,e){var r=-1,n=e.length,o=n>1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=$r.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!z(r))return!1;var n=typeof e;return!!("number"==n?Kt(r)&&It(e,r.length):"string"==n&&e in r)&&Q(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r<n;){var u=e[r];u&&$r(t,u,r,o)}return t}))),Br=Tr;var qr=Qe("length"),Lr=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var Rr="\\ud800-\\udfff",Cr="["+Rr+"]",Vr="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Wr="\\ud83c[\\udffb-\\udfff]",Gr="[^"+Rr+"]",Jr="(?:\\ud83c[\\udde6-\\uddff]){2}",Qr="[\\ud800-\\udbff][\\udc00-\\udfff]",Hr="(?:"+Vr+"|"+Wr+")"+"?",Kr="[\\ufe0e\\ufe0f]?",Xr=Kr+Hr+("(?:\\u200d(?:"+[Gr,Jr,Qr].join("|")+")"+Kr+Hr+")*"),Yr="(?:"+[Gr+Vr+"?",Vr,Jr,Qr,Cr].join("|")+")",Zr=RegExp(Wr+"(?="+Wr+")|"+Yr+Xr,"g");function tn(t){return function(t){return Lr.test(t)}(t)?function(t){for(var e=Zr.lastIndex=0;Zr.test(t);)++e;return e}(t):qr(t)}function en(t){if(null==t)return 0;if(Kt(t))return"string"==typeof(e=t)||!p(e)&&A(e)&&"[object String]"==O(e)?tn(t):t.length;var e,r=Ue(t);return"[object Map]"==r||"[object Set]"==r?t.size:Ht(t).length}var rn=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)pe(e,je(t)),t=dr(t);return e}:de,nn=rn;function on(t){return ve(t,Pr,nn)}var un=Object.prototype.hasOwnProperty;var an=/\w*$/;var cn=y?y.prototype:void 0,fn=cn?cn.valueOf:void 0;function ln(t,e,r){var n,o=t.constructor;switch(e){case"[object ArrayBuffer]":return cr(t);case"[object Boolean]":case"[object Date]":return new o(+t);case"[object DataView]":return function(t,e){var r=e?cr(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return fr(t,r);case"[object Map]":case"[object Set]":return new o;case"[object Number]":case"[object String]":return new o(t);case"[object RegExp]":return function(t){var e=new t.constructor(t.source,an.exec(t));return e.lastIndex=t.lastIndex,e}(t);case"[object Symbol]":return n=t,fn?Object(fn.call(n)):{}}}var sn=Bt&&Bt.isMap,pn=sn?Mt(sn):function(t){return A(t)&&"[object Map]"==Ue(t)};var vn=Bt&&Bt.isSet,dn=vn?Mt(vn):function(t){return A(t)&&"[object Set]"==Ue(t)},hn="[object Arguments]",yn="[object Function]",bn="[object Object]",jn={};function gn(t,e,r,n,o,i){var u,a=1&e,c=2&e,f=4&e;if(r&&(u=o?r(t,n,o,i):r(t)),void 0!==u)return u;if(!z(t))return t;var l=p(t);if(l){if(u=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&un.call(t,"index")&&(r.index=t.index,r.input=t.input),r}(t),!a)return lr(t,u)}else{var s=Ue(t),v=s==yn||"[object GeneratorFunction]"==s;if(Ft(t))return ar(t,a);if(s==bn||s==hn||v&&!o){if(u=c||v?{}:hr(t),!a)return c?function(t,e){return Ar(t,nn(t),e)}(t,function(t,e){return t&&Ar(e,Pr(e),t)}(u,t)):function(t,e){return Ar(t,je(t),e)}(t,function(t,e){return t&&Ar(e,Xt(e),t)}(u,t))}else{if(!jn[s])return o?t:{};u=ln(t,s,a)}}i||(i=new re);var d=i.get(t);if(d)return d;i.set(t,u),dn(t)?t.forEach((function(n){u.add(gn(n,e,r,n,t,i))})):pn(t)&&t.forEach((function(n,o){u.set(o,gn(n,e,r,o,t,i))}));var h=l?void 0:(f?c?on:ge:c?Pr:Xt)(t);return jt(h||t,(function(n,o){h&&(n=t[o=n]),Or(u,o,gn(n,e,r,o,t,i))})),u}jn[hn]=jn["[object Array]"]=jn["[object ArrayBuffer]"]=jn["[object DataView]"]=jn["[object Boolean]"]=jn["[object Date]"]=jn["[object Float32Array]"]=jn["[object Float64Array]"]=jn["[object Int8Array]"]=jn["[object Int16Array]"]=jn["[object Int32Array]"]=jn["[object Map]"]=jn["[object Number]"]=jn[bn]=jn["[object RegExp]"]=jn["[object Set]"]=jn["[object String]"]=jn["[object Symbol]"]=jn["[object Uint8Array]"]=jn["[object Uint8ClampedArray]"]=jn["[object Uint16Array]"]=jn["[object Uint32Array]"]=!0,jn["[object Error]"]=jn[yn]=jn["[object WeakMap]"]=!1;function _n(t){return gn(t,5)}var wn=/\s/;var mn=/^\s+/;function On(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&wn.test(t.charAt(e)););return e}(t)+1).replace(mn,""):t}var An=/^[-+]0x[0-9a-f]+$/i,xn=/^0b[01]+$/i,Sn=/^0o[0-7]+$/i,Pn=parseInt;function kn(t){if("number"==typeof t)return t;if(x(t))return NaN;if(z(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=z(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=On(t);var r=xn.test(t);return r||Sn.test(t)?Pn(t.slice(2),r?2:8):An.test(t)?NaN:+t}var zn=1/0;function Fn(t){return t?(t=kn(t))===zn||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function En(t){var e=Fn(t),r=e%1;return e==e?r?e-r:e:0}function In(t){return"[object String]"===Object.prototype.toString.call(t)}function Dn(t){return!(!In(t)||""===t)}function Nn(t){return t!=t}function Mn(t){let e=!1;if(Dn(t))e=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(Nn(t))return!1;e=!0}return e}function Un(t){if(!Mn(t))return 0;return Fn(t)}function $n(t){return!!Mn(t)&&(t=Un(t),"number"==typeof(e=t)&&e==En(e));var e}var Tn=h.isFinite,Bn=Math.min;var qn=function(t){var e=Math[t];return function(t,r){if(t=kn(t),(r=null==r?0:Bn(En(r),292))&&Tn(t)){var n=(vt(t)+"e").split("e");return+((n=(vt(e(n[0]+"e"+(+n[1]+r)))+"e").split("e"))[0]+"e"+(+n[1]-r))}return e(t)}}("round"),Ln=qn;function Rn(t){if(!Mn(t))return 0;t=Un(t);let e=Ln(t);return"0"===String(e)?0:e}function Cn(t){if(!$n(t))return!1;return Rn(t)>0}let Vn="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),Wn=Vn.length;function Gn(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:32,e=[];t=Cn(t)?Rn(t):32;for(let r=0;r<t;r++)e[r]=Vn[0|Math.random()*Wn];return e.join("")}function Jn(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i}function Qn(){let t,e,r=new Promise((function(){t=arguments[0],e=arguments[1]}));return r.resolve=t,r.reject=e,r}function Hn(t){return"[object Array]"===Object.prototype.toString.call(t)}function Kn(t){return"[object Object]"===Object.prototype.toString.call(t)}function Xn(t){let e=Object.prototype.toString.call(t);return"[object Function]"===e||"[object AsyncFunction]"===e}function Yn(t,e){let r=Qn();if(!Hn(t)&&!Kn(t))return r.reject("rs is not an array or object"),r;let n=!1;if(Kn(t)){n=!0;let e=[];ee(t,((t,r)=>{e.push({k:r,v:t})})),t=e}Xn(e)||(e=function(t){return t});let o=-1,i=[];return t.reduce((function(t,r){return t.then((function(t){i.push(t),o+=1;let u=o,a=r;return n&&(u=r.k,a=r.v),Xn(e)?e(a,u):a}))}),Promise.resolve()).then((function(t){var e,n,o,u;i.push(t),u=null==(e=i)?0:e.length,i=u?Jn(e,(n=o||void 0===n?1:En(n))<0?0:n,u):[],r.resolve(i)})).catch((function(t){r.reject(t)})),r}function Zn(t){return!0===(e=t)||!1===e||A(e)&&"[object Boolean]"==O(e);var e}function to(t){if(Kn(t)){for(let e in t)return!0;return!1}return!1}function eo(t){return!!function(t){return"[object Undefined]"===Object.prototype.toString.call(t)}(t)||(!!function(t){return"[object Null]"===Object.prototype.toString.call(t)}(t)||(!!function(t){if(Kn(t)){for(let e in t)return!1;return!0}return!1}(t)||(!!function(t){return!(!In(t)||""!==t)}(t)||(!!function(t){return!!Hn(t)&&0===t.length}(t)||!!Nn(t)))))}function ro(t){return!!Hn(t)&&(0!==t.length&&(1!==t.length||!eo(t[0])))}function no(t,e){return!!Kn(t)&&(!(!Dn(e)&&!Mn(e))&&e in t)}var oo=Object.prototype.hasOwnProperty;function io(t,e){var r=-1,n=(e=dt(e,t)).length;if(!n)return!0;for(;++r<n;){var o=ht(e[r]);if("__proto__"===o&&!oo.call(t,"__proto__"))return!1;if(("constructor"===o||"prototype"===o)&&r<n-1)return!1}var i=function(t,e){return e.length<2?t:yt(t,Jn(e,0,-1))}(t,e);return null==i||delete i[ht(function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}(e))]}var uo=Array.prototype.splice;function ao(t,e){if(t!==e){var r=void 0!==t,n=null===t,o=t==t,i=x(t),u=void 0!==e,a=null===e,c=e==e,f=x(e);if(!a&&!f&&!i&&t>e||i&&u&&c&&!a&&!f||n&&u&&c||!r&&c||!o)return 1;if(!n&&!i&&!f&&t<e||f&&r&&o&&!n&&!i||a&&r&&o||!u&&o||!c)return-1}return 0}var co=y?y.isConcatSpreadable:void 0;function fo(t){return p(t)||St(t)||!!(co&&t&&t[co])}function lo(t,e,r,n,o){var i=-1,u=t.length;for(r||(r=fo),o||(o=[]);++i<u;){var a=t[i];e>0&&r(a)?e>1?lo(a,e-1,r,n,o):pe(o,a):n||(o[o.length]=a)}return o}function so(t){return(null==t?0:t.length)?lo(t,1):[]}var po=function(t){return Ur(Er(t,void 0,so),t+"")}((function(t,e){var r=null==t?0:t.length,n=function(t,e){for(var r=-1,n=e.length,o=Array(n),i=null==t;++r<n;)o[r]=i?void 0:bt(t,e[r]);return o}(t,e);return function(t,e){for(var r=t?e.length:0,n=r-1;r--;){var o=e[r];if(r==n||o!==i){var i=o;It(o)?uo.call(t,o,1):io(t,o)}}}(t,ft(e,(function(t){return It(t,r)?+t:t})).sort(ao)),n})),vo=po;function ho(t,e){if(!ro(t))return[];var r;if($n(r=e)&&Rn(r)>=0&&(e=[e]),!ro(e))return t;e=Ye(e,(t=>Rn(t)));let n=_n(t);return vo(n,e),n}async function yo(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,n=Qn();if(!Xn(t))return n.reject("waitfunction需輸入函數f"),n;let o=async()=>{let e=t();return function(t){let e,r=Object.prototype.toString.call(t);if(e="[object Promise]"===r,e)return!0;if("[object Function]"!==r)return!1;try{e="function"!=typeof t.subscribe&&"function"==typeof t.then}catch(t){}return e}(e)&&(e=await e),e};if(r=await o(),!0===r)return n.resolve(),n;let i=bt(e,"attemptNum",null);Cn(i)||(i=200);let u=bt(e,"timeInterval",null);Cn(u)||(u=1e3);let a=0,c=setInterval((async()=>{a+=1,r=await o(),!0===r&&(clearInterval(c),n.resolve()),a>i&&(clearInterval(c),n.reject(`exceeded attemptNum[${i}]`))}),u);return n}let bo={};return function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=null,i=bt(n,"url");Dn(i)||(i="./db.json");let u=bt(n,"db");Dn(u)||(u="worm");let c=bt(n,"cl");Dn(c)||(c="test");let f=bt(n,"useCache");Zn(f)||(f=!1);let l=`${u}:${c}`,p=new s(i),v=new r.Low(p,{}),d=new e.EventEmitter,h=t.resolve(i);async function y(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=!1,r=null;try{let e=await(async()=>{if(f&&Hn(o))return _n(o);await v.read(),no(v.data,l)||(v.data[l]=[]);let t=_n(v.data[l]);return f?(o=t,_n(t)):t})();if(to(t)){r=new a.Query(t).find(e).all()}else r=e}catch(t){e=!0,r=t}return e?Promise.reject(r):r}async function b(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=!1;if(!to(t)&&!ro(t))return[];t=_n(t);let n=bt(e,"autoInsert",!0),i=null;try{Hn(t)||(t=[t]),t=Ye(t,(function(t){return Dn(t.id)||(t.id=Gn()),t})),await v.read(),no(v.data,l)||(v.data[l]=[]);let e={};ee(v.data[l],((t,r)=>{e[t.id]={k:r,v:t}}));let r=!1;i=await Yn(t,(async t=>{let o=null,i=bt(e,t.id,null),u=to(i);var a,c;if(u&&(a=t,c=i.v,Re(a,c)||(v.data[l][i.k]=Br(v.data[l][i.k],t),o={update:!0},r=!0)),o=to(o)?{n:1,nModified:1,ok:1}:{n:0,nModified:0,ok:1},n&&0===o.n&&!u){let n=en(v.data[l]);v.data[l].push(t),e[t.id]={k:n,v:v.data[l][n]},r=!0,o={n:1,nInserted:1,ok:1}}return o})),r&&await v.write()}catch(t){r=!0,i=t}if(o=null,!r)try{d.emit("change","save",t,i)}catch(t){console.log(t)}return r?Promise.reject(i):i}return no(bo,h)||(bo[h]=!1),d.select=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return bo[h]&&await yo((()=>!bo[h])),bo[h]=!0,await y(t).finally((()=>{bo[h]=!1}))},d.insert=async function(t){return bo[h]&&await yo((()=>!bo[h])),bo[h]=!0,await async function(t){let e=!1;if(!to(t)&&!ro(t))return{n:0,nInserted:0,ok:1};t=_n(t);let r=null;try{Hn(t)||(t=[t]),t=Ye(t,(function(t){return Dn(t.id)||(t.id=Gn()),t})),await v.read(),no(v.data,l)||(v.data[l]=[]);let e={};ee(v.data[l],((t,r)=>{e[t.id]={k:r,v:t}}));let n=en(t),o=0,i=!1;ee(t,(t=>{no(e,t.id)||(v.data[l].push(t),o++,i=!0)})),i&&await v.write(),r={n:n,nInserted:o,ok:1}}catch(t){e=!0,r=t}if(o=null,!e)try{d.emit("change","insert",t,r)}catch(t){console.log(t)}return e?Promise.reject(r):r}(t).finally((()=>{bo[h]=!1}))},d.save=async function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return bo[h]&&await yo((()=>!bo[h])),bo[h]=!0,await b(t,e).finally((()=>{bo[h]=!1}))},d.del=async function(t){return bo[h]&&await yo((()=>!bo[h])),bo[h]=!0,await async function(t){let e=!1;if(!to(t)&&!ro(t))return[];t=_n(t);let r=null;try{Hn(t)||(t=[t]),await v.read(),no(v.data,l)||(v.data[l]=[]);let e={};ee(v.data[l],((t,r)=>{e[t.id]={k:r,v:t}}));let n=[],o=!1;r=await Yn(t,(async t=>{let r=null,i=bt(t,"id","");if(Dn(i)){let t=bt(e,i,null);to(t)?(n.push(t.k),o=!0,r={n:1,nDeleted:1,ok:1}):r={n:1,nDeleted:0,ok:1}}else r={n:1,nDeleted:0,ok:0};return r})),o&&(v.data[l]=ho(v.data[l],n)),o&&await v.write()}catch(t){e=!0,r=t}if(o=null,!e)try{d.emit("change","del",t,r)}catch(t){console.log(t)}return e?Promise.reject(r):r}(t).finally((()=>{bo[h]=!1}))},d.delAll=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return bo[h]&&await yo((()=>!bo[h])),bo[h]=!0,await async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=!1,r=null;try{await v.read(),no(v.data,l)||(v.data[l]=[]);let e=en(v.data[l]),n=0,o=!1;if(to(t)){let r=new a.Query(t).find(v.data[l]).all();if(n=en(r),0===n);else if(e===n)v.data[l]=[],o=!0;else{let t={};ee(r,((e,r)=>{t[e.id]={k:r,v:e}}));let e=[];ee(v.data[l],((r,n)=>{no(t,r.id)||e.push(r)})),v.data[l]=e,o=!0}}else n=e,v.data[l]=[],o=!0;o&&await v.write(),r={n:e,nDeleted:n,ok:1}}catch(t){e=!0,r=t}if(o=null,!e)try{d.emit("change","delAll",null,r)}catch(t){console.log(t)}return e?Promise.reject(r):r}(t).finally((()=>{bo[h]=!1}))},d}}));
6
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("path"),require("lowdb"),require("node:fs"),require("node:fs/promises"),require("node:path"),require("node:url"),require("mingo")):"function"==typeof define&&define.amd?define(["path","lowdb","node:fs","node:fs/promises","node:path","node:url","mingo"],e):(t="undefined"!=typeof globalThis?globalThis:t||self)["w-orm-lowdb"]=e(t.path,t.lowdb,null,t.promises,t.path,t.node_url,t.mingo)}(this,(function(t,e,n,r,o,i,u){"use strict";class c{#t;#e;#n=!1;#r=null;#o=null;#i=null;#u=null;#c(t){return this.#u=t,this.#i||=new Promise(((t,e)=>{this.#o=[t,e]})),new Promise(((t,e)=>{this.#i?.then(t).catch(e)}))}async#a(t){this.#n=!0;try{await r.writeFile(this.#e,t,"utf-8"),await async function(t,e,n){for(let r=0;r<e;r++)try{return await t()}catch(t){if(!(r<e-1))throw t;await new Promise((t=>setTimeout(t,n)))}}((async()=>{await r.rename(this.#e,this.#t)}),10,100),this.#r?.[0]()}catch(t){throw t instanceof Error&&this.#r?.[1](t),t}finally{if(this.#n=!1,this.#r=this.#o,this.#o=this.#i=null,null!==this.#u){const t=this.#u;this.#u=null,await this.write(t)}}}constructor(t){this.#t=t,this.#e=function(t){const e=t instanceof URL?i.fileURLToPath(t):t.toString();return o.join(o.dirname(e),`.${o.basename(e)}.tmp`)}(t)}async write(t){return this.#n?this.#c(t):this.#a(t)}}class a{#t;#f;constructor(t){this.#t=t,this.#f=new c(t)}async read(){let t;try{t=await r.readFile(this.#t,"utf-8")}catch(t){if("ENOENT"===t.code)return null;throw t}return t}write(t){return this.#f.write(t)}}class f{#s;#l;#p;constructor(t,e){let{parse:n,stringify:r}=e;this.#s=new a(t),this.#l=n,this.#p=r}async read(){const t=await this.#s.read();return null===t?null:this.#l(t)}write(t){return this.#s.write(this.#p(t))}}class s extends f{constructor(t){super(t,{parse:JSON.parse,stringify:t=>JSON.stringify(t,null,2)})}}var l=Array.isArray,p="object"==typeof global&&global&&global.Object===Object&&global,v="object"==typeof self&&self&&self.Object===Object&&self,h=p||v||Function("return this")(),y=h.Symbol,d=Object.prototype,b=d.hasOwnProperty,j=d.toString,g=y?y.toStringTag:void 0;var _=Object.prototype.toString;var w=y?y.toStringTag:void 0;function m(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":w&&w in Object(t)?function(t){var e=b.call(t,g),n=t[g];try{t[g]=void 0;var r=!0}catch(t){}var o=j.call(t);return r&&(e?t[g]=n:delete t[g]),o}(t):function(t){return _.call(t)}(t)}function O(t){return null!=t&&"object"==typeof t}function x(t){return"symbol"==typeof t||O(t)&&"[object Symbol]"==m(t)}var A=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,k=/^\w*$/;function P(t,e){if(l(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!x(t))||(k.test(t)||!A.test(t)||null!=e&&t in Object(e))}function S(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function E(t){if(!S(t))return!1;var e=m(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}var I,z=h["__core-js_shared__"],D=(I=/[^.]+$/.exec(z&&z.keys&&z.keys.IE_PROTO||""))?"Symbol(src)_1."+I:"";var F=Function.prototype.toString;function $(t){if(null!=t){try{return F.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var U=/^\[object .+?Constructor\]$/,B=Function.prototype,M=Object.prototype,N=B.toString,L=M.hasOwnProperty,T=RegExp("^"+N.call(L).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function q(t){return!(!S(t)||(e=t,D&&D in e))&&(E(t)?T:U).test($(t));var e}function C(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return q(n)?n:void 0}var R=C(Object,"create");var V=Object.prototype.hasOwnProperty;var G=Object.prototype.hasOwnProperty;function W(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function J(t,e){return t===e||t!=t&&e!=e}function Q(t,e){for(var n=t.length;n--;)if(J(t[n][0],e))return n;return-1}W.prototype.clear=function(){this.__data__=R?R(null):{},this.size=0},W.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},W.prototype.get=function(t){var e=this.__data__;if(R){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return V.call(e,t)?e[t]:void 0},W.prototype.has=function(t){var e=this.__data__;return R?void 0!==e[t]:G.call(e,t)},W.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=R&&void 0===e?"__lodash_hash_undefined__":e,this};var H=Array.prototype.splice;function K(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}K.prototype.clear=function(){this.__data__=[],this.size=0},K.prototype.delete=function(t){var e=this.__data__,n=Q(e,t);return!(n<0)&&(n==e.length-1?e.pop():H.call(e,n,1),--this.size,!0)},K.prototype.get=function(t){var e=this.__data__,n=Q(e,t);return n<0?void 0:e[n][1]},K.prototype.has=function(t){return Q(this.__data__,t)>-1},K.prototype.set=function(t,e){var n=this.__data__,r=Q(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this};var X=C(h,"Map");function Y(t,e){var n,r,o=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof e?"string":"hash"]:o.map}function Z(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Z.prototype.clear=function(){this.size=0,this.__data__={hash:new W,map:new(X||K),string:new W}},Z.prototype.delete=function(t){var e=Y(this,t).delete(t);return this.size-=e?1:0,e},Z.prototype.get=function(t){return Y(this,t).get(t)},Z.prototype.has=function(t){return Y(this,t).has(t)},Z.prototype.set=function(t,e){var n=Y(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};function tt(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=e?e.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var u=t.apply(this,r);return n.cache=i.set(o,u)||i,u};return n.cache=new(tt.Cache||Z),n}tt.Cache=Z;var et,nt,rt,ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,it=/\\(\\)?/g,ut=(et=function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(ot,(function(t,n,r,o){e.push(r?o.replace(it,"$1"):n||t)})),e},nt=tt(et,(function(t){return 500===rt.size&&rt.clear(),t})),rt=nt.cache,nt),ct=ut;function at(t,e){for(var n=-1,r=null==t?0:t.length,o=Array(r);++n<r;)o[n]=e(t[n],n,t);return o}var ft=y?y.prototype:void 0,st=ft?ft.toString:void 0;function lt(t){if("string"==typeof t)return t;if(l(t))return at(t,lt)+"";if(x(t))return st?st.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function pt(t,e){return l(t)?t:P(t,e)?[t]:ct(function(t){return null==t?"":lt(t)}(t))}function vt(t){if("string"==typeof t||x(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ht(t,e){for(var n=0,r=(e=pt(e,t)).length;null!=t&&n<r;)t=t[vt(e[n++])];return n&&n==r?t:void 0}function yt(t,e,n){var r=null==t?void 0:ht(t,e);return void 0===r?n:r}function dt(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}var bt,jt=function(t,e,n){for(var r=-1,o=Object(t),i=n(t),u=i.length;u--;){var c=i[bt?u:++r];if(!1===e(o[c],c,o))break}return t};function gt(t){return O(t)&&"[object Arguments]"==m(t)}var _t=Object.prototype,wt=_t.hasOwnProperty,mt=_t.propertyIsEnumerable,Ot=gt(function(){return arguments}())?gt:function(t){return O(t)&&wt.call(t,"callee")&&!mt.call(t,"callee")},xt=Ot;var At="object"==typeof exports&&exports&&!exports.nodeType&&exports,kt=At&&"object"==typeof module&&module&&!module.nodeType&&module,Pt=kt&&kt.exports===At?h.Buffer:void 0,St=(Pt?Pt.isBuffer:void 0)||function(){return!1},Et=/^(?:0|[1-9]\d*)$/;function It(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&Et.test(t))&&t>-1&&t%1==0&&t<e}function zt(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}var Dt={};function Ft(t){return function(e){return t(e)}}Dt["[object Float32Array]"]=Dt["[object Float64Array]"]=Dt["[object Int8Array]"]=Dt["[object Int16Array]"]=Dt["[object Int32Array]"]=Dt["[object Uint8Array]"]=Dt["[object Uint8ClampedArray]"]=Dt["[object Uint16Array]"]=Dt["[object Uint32Array]"]=!0,Dt["[object Arguments]"]=Dt["[object Array]"]=Dt["[object ArrayBuffer]"]=Dt["[object Boolean]"]=Dt["[object DataView]"]=Dt["[object Date]"]=Dt["[object Error]"]=Dt["[object Function]"]=Dt["[object Map]"]=Dt["[object Number]"]=Dt["[object Object]"]=Dt["[object RegExp]"]=Dt["[object Set]"]=Dt["[object String]"]=Dt["[object WeakMap]"]=!1;var $t="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ut=$t&&"object"==typeof module&&module&&!module.nodeType&&module,Bt=Ut&&Ut.exports===$t&&p.process,Mt=function(){try{var t=Ut&&Ut.require&&Ut.require("util").types;return t||Bt&&Bt.binding&&Bt.binding("util")}catch(t){}}(),Nt=Mt&&Mt.isTypedArray,Lt=Nt?Ft(Nt):function(t){return O(t)&&zt(t.length)&&!!Dt[m(t)]},Tt=Object.prototype.hasOwnProperty;function qt(t,e){var n=l(t),r=!n&&xt(t),o=!n&&!r&&St(t),i=!n&&!r&&!o&&Lt(t),u=n||r||o||i,c=u?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],a=c.length;for(var f in t)!e&&!Tt.call(t,f)||u&&("length"==f||o&&("offset"==f||"parent"==f)||i&&("buffer"==f||"byteLength"==f||"byteOffset"==f)||It(f,a))||c.push(f);return c}var Ct=Object.prototype;function Rt(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ct)}function Vt(t,e){return function(n){return t(e(n))}}var Gt=Vt(Object.keys,Object),Wt=Object.prototype.hasOwnProperty;function Jt(t){if(!Rt(t))return Gt(t);var e=[];for(var n in Object(t))Wt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Qt(t){return null!=t&&zt(t.length)&&!E(t)}function Ht(t){return Qt(t)?qt(t):Jt(t)}var Kt=function(t,e){return function(n,r){if(null==n)return n;if(!Qt(n))return t(n,r);for(var o=n.length,i=e?o:-1,u=Object(n);(e?i--:++i<o)&&!1!==r(u[i],i,u););return n}}((function(t,e){return t&&jt(t,e,Ht)})),Xt=Kt;function Yt(t){return t}function Zt(t,e){var n;return(l(t)?dt:Xt)(t,"function"==typeof(n=e)?n:Yt)}function te(t){var e=this.__data__=new K(t);this.size=e.size}te.prototype.clear=function(){this.__data__=new K,this.size=0},te.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},te.prototype.get=function(t){return this.__data__.get(t)},te.prototype.has=function(t){return this.__data__.has(t)},te.prototype.set=function(t,e){var n=this.__data__;if(n instanceof K){var r=n.__data__;if(!X||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Z(r)}return n.set(t,e),this.size=n.size,this};function ee(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Z;++e<n;)this.add(t[e])}function ne(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function re(t,e){return t.has(e)}ee.prototype.add=ee.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},ee.prototype.has=function(t){return this.__data__.has(t)};function oe(t,e,n,r,o,i){var u=1&n,c=t.length,a=e.length;if(c!=a&&!(u&&a>c))return!1;var f=i.get(t),s=i.get(e);if(f&&s)return f==e&&s==t;var l=-1,p=!0,v=2&n?new ee:void 0;for(i.set(t,e),i.set(e,t);++l<c;){var h=t[l],y=e[l];if(r)var d=u?r(y,h,l,e,t,i):r(h,y,l,t,e,i);if(void 0!==d){if(d)continue;p=!1;break}if(v){if(!ne(e,(function(t,e){if(!re(v,e)&&(h===t||o(h,t,n,r,i)))return v.push(e)}))){p=!1;break}}else if(h!==y&&!o(h,y,n,r,i)){p=!1;break}}return i.delete(t),i.delete(e),p}var ie=h.Uint8Array;function ue(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function ce(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}var ae=y?y.prototype:void 0,fe=ae?ae.valueOf:void 0;function se(t,e){for(var n=-1,r=e.length,o=t.length;++n<r;)t[o+n]=e[n];return t}function le(t,e,n){var r=e(t);return l(t)?r:se(r,n(t))}function pe(t,e){for(var n=-1,r=null==t?0:t.length,o=0,i=[];++n<r;){var u=t[n];e(u,n,t)&&(i[o++]=u)}return i}function ve(){return[]}var he=Object.prototype.propertyIsEnumerable,ye=Object.getOwnPropertySymbols,de=ye?function(t){return null==t?[]:(t=Object(t),pe(ye(t),(function(e){return he.call(t,e)})))}:ve;function be(t){return le(t,Ht,de)}var je=Object.prototype.hasOwnProperty;var ge=C(h,"DataView"),_e=C(h,"Promise"),we=C(h,"Set"),me=C(h,"WeakMap"),Oe="[object Map]",xe="[object Promise]",Ae="[object Set]",ke="[object WeakMap]",Pe="[object DataView]",Se=$(ge),Ee=$(X),Ie=$(_e),ze=$(we),De=$(me),Fe=m;(ge&&Fe(new ge(new ArrayBuffer(1)))!=Pe||X&&Fe(new X)!=Oe||_e&&Fe(_e.resolve())!=xe||we&&Fe(new we)!=Ae||me&&Fe(new me)!=ke)&&(Fe=function(t){var e=m(t),n="[object Object]"==e?t.constructor:void 0,r=n?$(n):"";if(r)switch(r){case Se:return Pe;case Ee:return Oe;case Ie:return xe;case ze:return Ae;case De:return ke}return e});var $e=Fe,Ue="[object Arguments]",Be="[object Array]",Me="[object Object]",Ne=Object.prototype.hasOwnProperty;function Le(t,e,n,r,o,i){var u=l(t),c=l(e),a=u?Be:$e(t),f=c?Be:$e(e),s=(a=a==Ue?Me:a)==Me,p=(f=f==Ue?Me:f)==Me,v=a==f;if(v&&St(t)){if(!St(e))return!1;u=!0,s=!1}if(v&&!s)return i||(i=new te),u||Lt(t)?oe(t,e,n,r,o,i):function(t,e,n,r,o,i,u){switch(n){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new ie(t),new ie(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return J(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var c=ue;case"[object Set]":var a=1&r;if(c||(c=ce),t.size!=e.size&&!a)return!1;var f=u.get(t);if(f)return f==e;r|=2,u.set(t,e);var s=oe(c(t),c(e),r,o,i,u);return u.delete(t),s;case"[object Symbol]":if(fe)return fe.call(t)==fe.call(e)}return!1}(t,e,a,n,r,o,i);if(!(1&n)){var h=s&&Ne.call(t,"__wrapped__"),y=p&&Ne.call(e,"__wrapped__");if(h||y){var d=h?t.value():t,b=y?e.value():e;return i||(i=new te),o(d,b,n,r,i)}}return!!v&&(i||(i=new te),function(t,e,n,r,o,i){var u=1&n,c=be(t),a=c.length;if(a!=be(e).length&&!u)return!1;for(var f=a;f--;){var s=c[f];if(!(u?s in e:je.call(e,s)))return!1}var l=i.get(t),p=i.get(e);if(l&&p)return l==e&&p==t;var v=!0;i.set(t,e),i.set(e,t);for(var h=u;++f<a;){var y=t[s=c[f]],d=e[s];if(r)var b=u?r(d,y,s,e,t,i):r(y,d,s,t,e,i);if(!(void 0===b?y===d||o(y,d,n,r,i):b)){v=!1;break}h||(h="constructor"==s)}if(v&&!h){var j=t.constructor,g=e.constructor;j==g||!("constructor"in t)||!("constructor"in e)||"function"==typeof j&&j instanceof j&&"function"==typeof g&&g instanceof g||(v=!1)}return i.delete(t),i.delete(e),v}(t,e,n,r,o,i))}function Te(t,e,n,r,o){return t===e||(null==t||null==e||!O(t)&&!O(e)?t!=t&&e!=e:Le(t,e,n,r,Te,o))}function qe(t){return t==t&&!S(t)}function Ce(t,e){return function(n){return null!=n&&(n[t]===e&&(void 0!==e||t in Object(n)))}}function Re(t){var e=function(t){for(var e=Ht(t),n=e.length;n--;){var r=e[n],o=t[r];e[n]=[r,o,qe(o)]}return e}(t);return 1==e.length&&e[0][2]?Ce(e[0][0],e[0][1]):function(n){return n===t||function(t,e,n,r){var o=n.length,i=o,u=!r;if(null==t)return!i;for(t=Object(t);o--;){var c=n[o];if(u&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++o<i;){var a=(c=n[o])[0],f=t[a],s=c[1];if(u&&c[2]){if(void 0===f&&!(a in t))return!1}else{var l=new te;if(r)var p=r(f,s,a,t,e,l);if(!(void 0===p?Te(s,f,3,r,l):p))return!1}}return!0}(n,t,e)}}function Ve(t,e){return null!=t&&e in Object(t)}function Ge(t,e){return null!=t&&function(t,e,n){for(var r=-1,o=(e=pt(e,t)).length,i=!1;++r<o;){var u=vt(e[r]);if(!(i=null!=t&&n(t,u)))break;t=t[u]}return i||++r!=o?i:!!(o=null==t?0:t.length)&&zt(o)&&It(u,o)&&(l(t)||xt(t))}(t,e,Ve)}function We(t){return function(e){return null==e?void 0:e[t]}}function Je(t){return P(t)?We(vt(t)):function(t){return function(e){return ht(e,t)}}(t)}function Qe(t){return"function"==typeof t?t:null==t?Yt:"object"==typeof t?l(t)?function(t,e){return P(t)&&qe(e)?Ce(vt(t),e):function(n){var r=yt(n,t);return void 0===r&&r===e?Ge(n,t):Te(e,r,3)}}(t[0],t[1]):Re(t):Je(t)}function He(t,e){var n=-1,r=Qt(t)?Array(t.length):[];return Xt(t,(function(t,o,i){r[++n]=e(t,o,i)})),r}function Ke(t,e){return(l(t)?at:He)(t,Qe(e))}function Xe(t,e){var n=[];return Xt(t,(function(t,r,o){e(t,r,o)&&n.push(t)})),n}function Ye(t,e){return(l(t)?pe:Xe)(t,Qe(e))}var Ze=function(){try{var t=C(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),tn=Ze;function en(t,e,n){"__proto__"==e&&tn?tn(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function nn(t,e,n){(void 0!==n&&!J(t[e],n)||void 0===n&&!(e in t))&&en(t,e,n)}var rn="object"==typeof exports&&exports&&!exports.nodeType&&exports,on=rn&&"object"==typeof module&&module&&!module.nodeType&&module,un=on&&on.exports===rn?h.Buffer:void 0,cn=un?un.allocUnsafe:void 0;function an(t,e){if(e)return t.slice();var n=t.length,r=cn?cn(n):new t.constructor(n);return t.copy(r),r}function fn(t){var e=new t.constructor(t.byteLength);return new ie(e).set(new ie(t)),e}function sn(t,e){var n=e?fn(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function ln(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}var pn=Object.create,vn=function(){function t(){}return function(e){if(!S(e))return{};if(pn)return pn(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}(),hn=vn,yn=Vt(Object.getPrototypeOf,Object);function dn(t){return"function"!=typeof t.constructor||Rt(t)?{}:hn(yn(t))}var bn=Function.prototype,jn=Object.prototype,gn=bn.toString,_n=jn.hasOwnProperty,wn=gn.call(Object);function mn(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var On=Object.prototype.hasOwnProperty;function xn(t,e,n){var r=t[e];On.call(t,e)&&J(r,n)&&(void 0!==n||e in t)||en(t,e,n)}function An(t,e,n,r){var o=!n;n||(n={});for(var i=-1,u=e.length;++i<u;){var c=e[i],a=r?r(n[c],t[c],c,n,t):void 0;void 0===a&&(a=t[c]),o?en(n,c,a):xn(n,c,a)}return n}var kn=Object.prototype.hasOwnProperty;function Pn(t){if(!S(t))return function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e=Rt(t),n=[];for(var r in t)("constructor"!=r||!e&&kn.call(t,r))&&n.push(r);return n}function Sn(t){return Qt(t)?qt(t,!0):Pn(t)}function En(t,e,n,r,o,i,u){var c=mn(t,n),a=mn(e,n),f=u.get(a);if(f)nn(t,n,f);else{var s,p=i?i(c,a,n+"",t,e,u):void 0,v=void 0===p;if(v){var h=l(a),y=!h&&St(a),d=!h&&!y&&Lt(a);p=a,h||y||d?l(c)?p=c:O(s=c)&&Qt(s)?p=ln(c):y?(v=!1,p=an(a,!0)):d?(v=!1,p=sn(a,!0)):p=[]:function(t){if(!O(t)||"[object Object]"!=m(t))return!1;var e=yn(t);if(null===e)return!0;var n=_n.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&gn.call(n)==wn}(a)||xt(a)?(p=c,xt(c)?p=function(t){return An(t,Sn(t))}(c):S(c)&&!E(c)||(p=dn(a))):v=!1}v&&(u.set(a,p),o(p,a,r,i,u),u.delete(a)),nn(t,n,p)}}function In(t,e,n,r,o){t!==e&&jt(e,(function(i,u){if(o||(o=new te),S(i))En(t,e,u,n,In,r,o);else{var c=r?r(mn(t,u),i,u+"",t,e,o):void 0;void 0===c&&(c=i),nn(t,u,c)}}),Sn)}var zn=Math.max;var Dn=tn?function(t,e){return tn(t,"toString",{configurable:!0,enumerable:!1,value:(n=e,function(){return n}),writable:!0});var n}:Yt,Fn=Dn,$n=Date.now;var Un=function(t){var e=0,n=0;return function(){var r=$n(),o=16-(r-n);if(n=r,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(Fn),Bn=Un;function Mn(t,e){return Bn(function(t,e,n){return e=zn(void 0===e?t.length-1:e,0),function(){for(var r=arguments,o=-1,i=zn(r.length-e,0),u=Array(i);++o<i;)u[o]=r[e+o];o=-1;for(var c=Array(e+1);++o<e;)c[o]=r[o];return c[e]=n(u),function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}(t,this,c)}}(t,e,Yt),t+"")}var Nn,Ln=(Nn=function(t,e,n){In(t,e,n)},Mn((function(t,e){var n=-1,r=e.length,o=r>1?e[r-1]:void 0,i=r>2?e[2]:void 0;for(o=Nn.length>3&&"function"==typeof o?(r--,o):void 0,i&&function(t,e,n){if(!S(n))return!1;var r=typeof e;return!!("number"==r?Qt(n)&&It(e,n.length):"string"==r&&e in n)&&J(n[e],t)}(e[0],e[1],i)&&(o=r<3?void 0:o,r=1),t=Object(t);++n<r;){var u=e[n];u&&Nn(t,u,n,o)}return t})));var Tn=We("length"),qn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var Cn="\\ud800-\\udfff",Rn="["+Cn+"]",Vn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Gn="\\ud83c[\\udffb-\\udfff]",Wn="[^"+Cn+"]",Jn="(?:\\ud83c[\\udde6-\\uddff]){2}",Qn="[\\ud800-\\udbff][\\udc00-\\udfff]",Hn="(?:"+Vn+"|"+Gn+")"+"?",Kn="[\\ufe0e\\ufe0f]?",Xn=Kn+Hn+("(?:\\u200d(?:"+[Wn,Jn,Qn].join("|")+")"+Kn+Hn+")*"),Yn="(?:"+[Wn+Vn+"?",Vn,Jn,Qn,Rn].join("|")+")",Zn=RegExp(Gn+"(?="+Gn+")|"+Yn+Xn,"g");function tr(t){return function(t){return qn.test(t)}(t)?function(t){for(var e=Zn.lastIndex=0;Zn.test(t);)++e;return e}(t):Tn(t)}function er(t){if(null==t)return 0;if(Qt(t))return"string"==typeof(e=t)||!l(e)&&O(e)&&"[object String]"==m(e)?tr(t):t.length;var e,n=$e(t);return"[object Map]"==n||"[object Set]"==n?t.size:Jt(t).length}var nr=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)se(e,de(t)),t=yn(t);return e}:ve,rr=nr;function or(t){return le(t,Sn,rr)}var ir=Object.prototype.hasOwnProperty;var ur=/\w*$/;var cr=y?y.prototype:void 0,ar=cr?cr.valueOf:void 0;function fr(t,e,n){var r,o=t.constructor;switch(e){case"[object ArrayBuffer]":return fn(t);case"[object Boolean]":case"[object Date]":return new o(+t);case"[object DataView]":return function(t,e){var n=e?fn(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return sn(t,n);case"[object Map]":case"[object Set]":return new o;case"[object Number]":case"[object String]":return new o(t);case"[object RegExp]":return function(t){var e=new t.constructor(t.source,ur.exec(t));return e.lastIndex=t.lastIndex,e}(t);case"[object Symbol]":return r=t,ar?Object(ar.call(r)):{}}}var sr=Mt&&Mt.isMap,lr=sr?Ft(sr):function(t){return O(t)&&"[object Map]"==$e(t)};var pr=Mt&&Mt.isSet,vr=pr?Ft(pr):function(t){return O(t)&&"[object Set]"==$e(t)},hr="[object Arguments]",yr="[object Function]",dr="[object Object]",br={};function jr(t,e,n,r,o,i){var u,c=1&e,a=2&e,f=4&e;if(n&&(u=o?n(t,r,o,i):n(t)),void 0!==u)return u;if(!S(t))return t;var s=l(t);if(s){if(u=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&ir.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!c)return ln(t,u)}else{var p=$e(t),v=p==yr||"[object GeneratorFunction]"==p;if(St(t))return an(t,c);if(p==dr||p==hr||v&&!o){if(u=a||v?{}:dn(t),!c)return a?function(t,e){return An(t,rr(t),e)}(t,function(t,e){return t&&An(e,Sn(e),t)}(u,t)):function(t,e){return An(t,de(t),e)}(t,function(t,e){return t&&An(e,Ht(e),t)}(u,t))}else{if(!br[p])return o?t:{};u=fr(t,p,c)}}i||(i=new te);var h=i.get(t);if(h)return h;i.set(t,u),vr(t)?t.forEach((function(r){u.add(jr(r,e,n,r,t,i))})):lr(t)&&t.forEach((function(r,o){u.set(o,jr(r,e,n,o,t,i))}));var y=s?void 0:(f?a?or:be:a?Sn:Ht)(t);return dt(y||t,(function(r,o){y&&(r=t[o=r]),xn(u,o,jr(r,e,n,o,t,i))})),u}br[hr]=br["[object Array]"]=br["[object ArrayBuffer]"]=br["[object DataView]"]=br["[object Boolean]"]=br["[object Date]"]=br["[object Float32Array]"]=br["[object Float64Array]"]=br["[object Int8Array]"]=br["[object Int16Array]"]=br["[object Int32Array]"]=br["[object Map]"]=br["[object Number]"]=br[dr]=br["[object RegExp]"]=br["[object Set]"]=br["[object String]"]=br["[object Symbol]"]=br["[object Uint8Array]"]=br["[object Uint8ClampedArray]"]=br["[object Uint16Array]"]=br["[object Uint32Array]"]=!0,br["[object Error]"]=br[yr]=br["[object WeakMap]"]=!1;function gr(t){return jr(t,5)}function _r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var wr={exports:{}};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function o(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function i(t,e,r,i,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,i||t,u),a=n?n+e:e;return t._events[a]?t._events[a].fn?t._events[a]=[t._events[a],c]:t._events[a].push(c):(t._events[a]=c,t._eventsCount++),t}function u(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function c(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),c.prototype.eventNames=function(){var t,r,o=[];if(0===this._eventsCount)return o;for(r in t=this._events)e.call(t,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(t)):o},c.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,i=r.length,u=new Array(i);o<i;o++)u[o]=r[o].fn;return u},c.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},c.prototype.emit=function(t,e,r,o,i,u){var c=n?n+t:t;if(!this._events[c])return!1;var a,f,s=this._events[c],l=arguments.length;if(s.fn){switch(s.once&&this.removeListener(t,s.fn,void 0,!0),l){case 1:return s.fn.call(s.context),!0;case 2:return s.fn.call(s.context,e),!0;case 3:return s.fn.call(s.context,e,r),!0;case 4:return s.fn.call(s.context,e,r,o),!0;case 5:return s.fn.call(s.context,e,r,o,i),!0;case 6:return s.fn.call(s.context,e,r,o,i,u),!0}for(f=1,a=new Array(l-1);f<l;f++)a[f-1]=arguments[f];s.fn.apply(s.context,a)}else{var p,v=s.length;for(f=0;f<v;f++)switch(s[f].once&&this.removeListener(t,s[f].fn,void 0,!0),l){case 1:s[f].fn.call(s[f].context);break;case 2:s[f].fn.call(s[f].context,e);break;case 3:s[f].fn.call(s[f].context,e,r);break;case 4:s[f].fn.call(s[f].context,e,r,o);break;default:if(!a)for(p=1,a=new Array(l-1);p<l;p++)a[p-1]=arguments[p];s[f].fn.apply(s[f].context,a)}}return!0},c.prototype.on=function(t,e,n){return i(this,t,e,n,!1)},c.prototype.once=function(t,e,n){return i(this,t,e,n,!0)},c.prototype.removeListener=function(t,e,r,o){var i=n?n+t:t;if(!this._events[i])return this;if(!e)return u(this,i),this;var c=this._events[i];if(c.fn)c.fn!==e||o&&!c.once||r&&c.context!==r||u(this,i);else{for(var a=0,f=[],s=c.length;a<s;a++)(c[a].fn!==e||o&&!c[a].once||r&&c[a].context!==r)&&f.push(c[a]);f.length?this._events[i]=1===f.length?f[0]:f:u(this,i)}return this},c.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&u(this,e)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=n,c.EventEmitter=c,t.exports=c}(wr);var mr=_r(wr.exports);const Or=[];for(let t=0;t<256;++t)Or.push((t+256).toString(16).slice(1));const xr=new Uint8Array(16);function Ar(){return crypto.getRandomValues(xr)}const kr={};function Pr(t,e,n){let r;if(t)r=Sr(t.random??t.rng?.()??Ar(),t.msecs,t.seq,e,n);else{const t=Date.now(),o=Ar();!function(t,e,n){t.msecs??=-1/0,t.seq??=0,e>t.msecs?(t.seq=n[6]<<23|n[7]<<16|n[8]<<8|n[9],t.msecs=e):(t.seq=t.seq+1|0,0===t.seq&&t.msecs++)}(kr,t,o),r=Sr(o,kr.msecs,kr.seq,e,n)}return e??function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(Or[t[e+0]]+Or[t[e+1]]+Or[t[e+2]]+Or[t[e+3]]+"-"+Or[t[e+4]]+Or[t[e+5]]+"-"+Or[t[e+6]]+Or[t[e+7]]+"-"+Or[t[e+8]]+Or[t[e+9]]+"-"+Or[t[e+10]]+Or[t[e+11]]+Or[t[e+12]]+Or[t[e+13]]+Or[t[e+14]]+Or[t[e+15]]).toLowerCase()}(r)}function Sr(t,e,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(t.length<16)throw new Error("Random bytes length must be >= 16");if(r){if(o<0||o+16>r.length)throw new RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`)}else r=new Uint8Array(16),o=0;return e??=Date.now(),n??=127*t[6]<<24|t[7]<<16|t[8]<<8|t[9],r[o++]=e/1099511627776&255,r[o++]=e/4294967296&255,r[o++]=e/16777216&255,r[o++]=e/65536&255,r[o++]=e/256&255,r[o++]=255&e,r[o++]=112|n>>>28&15,r[o++]=n>>>20&255,r[o++]=128|n>>>14&63,r[o++]=n>>>6&255,r[o++]=n<<2&255|3&t[10],r[o++]=t[11],r[o++]=t[12],r[o++]=t[13],r[o++]=t[14],r[o++]=t[15],r}var Er=/\s/;var Ir=/^\s+/;function zr(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&Er.test(t.charAt(e)););return e}(t)+1).replace(Ir,""):t}var Dr=/^[-+]0x[0-9a-f]+$/i,Fr=/^0b[01]+$/i,$r=/^0o[0-7]+$/i,Ur=parseInt;var Br=1/0;function Mr(t){return t?(t=function(t){if("number"==typeof t)return t;if(x(t))return NaN;if(S(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=S(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=zr(t);var n=Fr.test(t);return n||$r.test(t)?Ur(t.slice(2),n?2:8):Dr.test(t)?NaN:+t}(t))===Br||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function Nr(t,e,n){var r=null==t?0:t.length;return r?(e=n||void 0===e?1:function(t){var e=Mr(t),n=e%1;return e==e?n?e-n:e:0}(e),function(t,e,n){var r=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var i=Array(o);++r<o;)i[r]=t[r+e];return i}(t,e<0?0:e,r)):[]}function Lr(t){return"[object Array]"===Object.prototype.toString.call(t)}function Tr(t){return"[object Object]"===Object.prototype.toString.call(t)}function qr(t){let e=Object.prototype.toString.call(t);return"[object Function]"===e||"[object AsyncFunction]"===e}function Cr(t,e){let n=function(){let t,e,n=new Promise((function(){t=arguments[0],e=arguments[1]}));return n.resolve=t,n.reject=e,n}();if(!Lr(t)&&!Tr(t))return n.reject("rs is not an array or object"),n;let r=!1;if(Tr(t)){r=!0;let e=[];Zt(t,((t,n)=>{e.push({k:n,v:t})})),t=e}qr(e)||(e=function(t){return t});let o=-1,i=[];return t.reduce((function(t,n){return t.then((function(t){i.push(t),o+=1;let u=o,c=n;return r&&(u=n.k,c=n.v),qr(e)?e(c,u):c}))}),Promise.resolve()).then((function(t){i.push(t),i=Nr(i),n.resolve(i)})).catch((function(t){n.reject(t)})),n}function Rr(t){return!0===(e=t)||!1===e||O(e)&&"[object Boolean]"==m(e);var e}function Vr(t){return"[object String]"===Object.prototype.toString.call(t)}function Gr(t){return!(!Vr(t)||""===t)}function Wr(t){if(Tr(t)){for(let e in t)return!0;return!1}return!1}function Jr(t){return t!=t}function Qr(t){return!!function(t){return"[object Undefined]"===Object.prototype.toString.call(t)}(t)||(!!function(t){return"[object Null]"===Object.prototype.toString.call(t)}(t)||(!!function(t){if(Tr(t)){for(let e in t)return!1;return!0}return!1}(t)||(!!function(t){return!(!Vr(t)||""!==t)}(t)||(!!function(t){return!!Lr(t)&&0===t.length}(t)||!!Jr(t)))))}function Hr(t){return!!Lr(t)&&(0!==t.length&&(1!==t.length||!Qr(t[0])))}function Kr(t){let e=!1;if(Gr(t))e=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(Jr(t))return!1;e=!0}return e}function Xr(t,e){return!!Tr(t)&&(!(!Gr(e)&&!Kr(e))&&e in t)}let Yr={};return function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=null,o=yt(n,"url");Gr(o)||(o="./db.json");let i=yt(n,"db");Gr(i)||(i="worm");let c=yt(n,"cl");Gr(c)||(c="test");let a=yt(n,"useCache");Rr(a)||(a=!1);let f=yt(n,"autoGenPk");Rr(f)||(f=!0);let l=`${i}:${c}`,p=new s(o),v=new e.Low(p,{}),h=new mr,y=t.resolve(o);Xr(Yr,y)||(Yr[y]=Promise.resolve());let d=t=>{let e=Yr[y].then((()=>t()));return Yr[y]=e.catch((()=>{})),e},b=(t,e,n)=>{try{h.emit("change",t,e,n)}catch(t){console.log(t)}},j=(t,e,n)=>{try{h.emit("error",t,e,g(n))}catch(t){console.log(t)}},g=t=>{let e=yt(t,"message");return Gr(e)?e:String(t)},_=(t,e)=>f?Ke(t,(function(t){return Gr(t.id)||(t.id=Pr()),t})):(Zt(t,(function(t,n){if(!Gr(yt(t,"id")))throw new Error(`can not ${e} by data[${n}] without valid id when autoGenPk is false`)})),t),w=async()=>(await v.read(),Xr(v.data,l)||(v.data[l]=[]),v.data[l]),m=async(t,e)=>{v.data[l]=e;try{await v.write()}catch(e){throw v.data[l]=t,e}},O=t=>{let e={};return Zt(t,((t,n)=>{let r=yt(t,"id");Gr(r)&&(e[r]={k:n,v:t})})),e},x=async()=>{if(a&&Lr(r))return gr(r);let t=await w();return t=gr(t),a?(r=t,gr(t)):t};async function A(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!1;if(!Wr(t)&&!Hr(t))return[];t=gr(t);let o=yt(e,"autoInsert",!0),i=null;try{Lr(t)||(t=[t]),t=_(t,"save");let e=await w(),n=[...e],r=O(n),u=!1;i=await Cr(t,(async t=>{let e=null;try{let i=yt(r,t.id,null);if(Wr(i)){let o=i.v,c=Ln({},o,t);Te(c,o)?e={n:1,nInserted:0,nModified:0,ok:1}:(n[i.k]=c,r[t.id]={k:i.k,v:c},u=!0,e={n:1,nInserted:0,nModified:1,ok:1})}else if(o){let o=er(n);n.push(t),r[t.id]={k:o,v:t},u=!0,e={n:1,nInserted:1,nModified:0,ok:1}}else e={n:0,nInserted:0,nModified:0,ok:1}}catch(t){e={n:1,nInserted:0,nModified:0,ok:0,err:g(t)}}return e})),u&&await m(e,n)}catch(t){n=!0,i=t}return r=null,n||(Zt(i,((e,n)=>{0===yt(e,"ok")&&j("save",[yt(t,n)],yt(e,"err"))})),Zt(i,((e,n)=>{1===yt(e,"nInserted")&&b("insert",[yt(t,n)],e)})),b("save",t,i)),n?(j("save",t,i),Promise.reject(i)):i}return h.select=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return d((()=>async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=!1,n=null;try{let r=await x();n=Wr(t)?new u.Query(t).find(r).all():r,Lr(n)||(e=!0,n=new Error(`can not select by find[${JSON.stringify(t)}]`))}catch(t){e=!0,n=t}return e?(j("select",null,n),Promise.reject(n)):n}(t)))},h.selectByPk=async function(t){return d((()=>async function(t){let e=!1,n=null;try{if(!Gr(t))return null;let e=await x(),r=yt(O(e),t,null);n=Wr(r)?r.v:null}catch(t){e=!0,n=t}return e?(j("selectByPk",null,n),Promise.reject(n)):n}(t)))},h.insert=async function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return d((()=>async function(t){let e=!1,n=yt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},"returnList");if(Rr(n)||(n=!1),!Wr(t)&&!Hr(t))return n?[]:{n:0,nInserted:0,ok:1};t=gr(t);let o=null;try{Lr(t)||(t=[t]),t=_(t,"insert");let e=await w(),r=O(e),i=er(t),u=[],c=[];Zt(t,(t=>{Xr(r,t.id)?u.push(!1):(c.push(t),r[t.id]={k:-1,v:t},u.push(!0))})),er(c)>0&&await m(e,[...e,...c]),o=n?Ke(u,(function(t){return{n:1,nInserted:t?1:0,ok:1}})):{n:i,nInserted:er(c),ok:1}}catch(t){e=!0,o=t}return r=null,e||b("insert",t,o),e?(j("insert",t,o),Promise.reject(o)):o}(t,e)))},h.insertBulk=async function(t){return d((()=>async function(t){let e=!1;if(!Wr(t)&&!Hr(t))return{n:0,nInserted:0,ok:1};t=gr(t);let n=null;try{Lr(t)||(t=[t]),t=_(t,"insertBulk");let e=await w(),r=O(e),o=er(t),i=null;if(Zt(t,(t=>{if(Xr(r,t.id))return i=t.id,!1;r[t.id]={k:-1,v:t}})),null!==i)throw new Error(`can not insertBulk by existed id[${i}]`);await m(e,[...e,...t]),n={n:o,nInserted:o,ok:1}}catch(t){e=!0,n=t}return r=null,e||b("insertBulk",t,n),e?(j("insertBulk",t,n),Promise.reject(n)):n}(t)))},h.save=async function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return d((()=>A(t,e)))},h.del=async function(t){return d((()=>async function(t){let e=!1;if(!Wr(t)&&!Hr(t))return[];t=gr(t);let n=null;try{Lr(t)||(t=[t]);let e=await w(),r=O(e),o={},i=!1;if(n=await Cr(t,(async t=>{let e=null;try{let n=yt(t,"id","");if(Gr(n)){let t=yt(r,n,null);Wr(t)?(o[t.k]=!0,delete r[n],i=!0,e={n:1,nDeleted:1,ok:1}):e={n:0,nDeleted:0,ok:1}}else e={n:0,nDeleted:0,ok:0,err:`can not delete by invalid id[${n}]`}}catch(t){e={n:1,nDeleted:0,ok:0,err:g(t)}}return e})),i){let t=Ye(e,((t,e)=>!Xr(o,e)));await m(e,t)}}catch(t){e=!0,n=t}return r=null,e||(Zt(n,((e,n)=>{0===yt(e,"ok")&&j("del",[yt(t,n)],yt(e,"err"))})),b("del",t,n)),e?(j("del",t,n),Promise.reject(n)):n}(t)))},h.delAll=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return d((()=>async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=!1,n=null;try{let e=await w(),r=er(e),o=0,i=null;if(Wr(t)){let n=new u.Query(t);i=Ye(e,(t=>!n.test(t))),o=r-er(i)}else o=r,i=[];o>0&&await m(e,i),n={n:o,nDeleted:o,ok:1}}catch(t){e=!0,n=t}return r=null,e||b("delAll",null,n),e?(j("delAll",null,n),Promise.reject(n)):n}(t)))},h}}));
7
7
  //# sourceMappingURL=w-orm-lowdb.umd.js.map