{"version":3,"sources":["../src/runtime-flags.ts","../src/func.ts","../src/number.ts","../src/delay.ts","../src/promise.ts","../src/string.ts","../src/set.ts","../src/map.ts","../src/regexp.ts","../src/array.ts","../src/object.ts","../src/object-id.ts","../src/buffer.ts","../src/date.ts","../src/general.ts","../src/defaults.ts"],"names":[],"mappings":";;;;;AAGO,IAAM,SAAA,GAAqB,OAAO,MAAA,KAAW;AAK7C,IAAM,WAAA,GAAuB,OAAO,QAAA,KAAa;;;ACcjD,SAAS,wBAAA,CACd,WACG,IAAA,EAC6B;AAChC,EAAA,OAAO,OAAO,MAAA,KAAW,UAAA,GAAa,MAAA,CAAO,GAAG,IAAI,CAAA,GAAK,MAAA;AAC3D;AAOA,wBAAA,CAAyB,KAAA,GAAQ,SAAS,KAAA,CAAA,GACrC,IAAA,EACwE;AAC3E,EAAA,OAAO,CAAC,MAAA,KAAW,wBAAA,CAAyB,MAAA,EAAQ,GAAG,IAAI,CAAA;AAC7D,CAAA;;;AChCO,SAAS,MAAM,KAAA,EAAgC;AACpD,EAAA,OAAO,OAAO,UAAU,QAAA,GAAW,IAAA,CAAK,MAAM,KAAK,CAAA,GAAI,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA;AAC3E;AAQO,SAAS,QAAQ,KAAA,EAAgC;AACtD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,WAAW,KAAK,CAAA;AAC7D;AAQO,SAAS,SAAS,MAAA,EAAqB;AAC5C,EAAA,OAAO,OAAO,MAAA,KAAW,QAAA,GAAW,MAAA,GAAS,OAAO,MAAM,CAAA;AAC5D;;;ACvBO,SAAS,MAAM,YAAA,EAAqC;AACzD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,YAAY,CAAC,CAAA;AACnE;;;ACDO,SAAS,UAAmB,GAAA,EAA6B;AAC9D,EAAA,OACE,CAAC,CAAC,GAAA,KACD,OAAO,GAAA,KAAQ,QAAA,IAAY,OAAO,GAAA,KAAQ,UAAA,CAAA,IAC3C,OAAO,GAAA,CAAI,IAAA,KAAS,UAAA;AAExB;;;ACXO,SAAS,SAAS,MAAA,EAAmC;AAC1D,EAAA,OAAO,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,YAAkB,MAAA;AACzD;AAGO,SAAS,iBAAiB,MAAA,EAAgC;AAC/D,EAAA,OAAO,MAAA,IAAU,OAAO,EAAA,GAAK,MAAA;AAC/B;AAEA,IAAM,oBAAA,GAAuB,QAAA;AAG7B,IAAM,mBAAA,GAAsB,IAAA;AAE5B,IAAM,eAAA,GAAkB,SAAA;AAQjB,IAAM,WAAA,GAAc,CAAC,MAAA,KAC1B,gBAAA,CAAiB,MAAM,CAAA,CAAE,OAAA,CAAQ,iBAAiB,EAAE;AAU/C,SAAS,YAAY,MAAA,EAAmC;AAC7D,EAAA,OAAO,gBAAA,CAAiB,MAAM,CAAA,CAC3B,OAAA;AAAA,IAAQ,oBAAA;AAAA,IAAsB,CAAC,YAC9B,MAAA,CAAO,YAAA,CAAa,QAAQ,UAAA,CAAW,CAAC,IAAI,KAAM;AAAA,GACpD,CACC,OAAA,CAAQ,mBAAA,EAAqB,GAAG,CAAA;AACrC;AAOO,SAAS,cAAc,MAAA,EAAmC;AAC/D,EAAA,OAAO,gBAAA,CAAiB,MAAM,CAAA,CAAE,OAAA,CAAQ,UAAA,EAAY,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,CAAC,CAAC,CAAA;AACxE;AAUO,SAAS,WAA6B,GAAA,EAAuB;AAClE,EAAA,OAAQ,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,MAAM,CAAC,CAAA;AACnD;AAUO,SAAS,aAA+B,GAAA,EAAyB;AACtE,EAAA,OAAQ,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,MAAM,CAAC,CAAA;AACnD;AAEA,IAAM,eAAA,GAAkB,iBAAA;AAQjB,SAAS,UAAU,GAAA,EAAqB;AAC7C,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,eAAe,CAAA;AAEvC,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,CAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,CAAA,CAAE,MAAM,CAAA,EAAG,QAAQ,CAAA;AAC/D;AAEA,IAAM,sCAAA,GAAyC,gBAAA;AAWxC,SAAS,WAAA,CACd,KACA,sBAAA,EACQ;AACR,EAAA,IAAI,CAAC,sBAAA,EAAwB;AAC3B,IAAA,GAAA,GAAM,GAAA,CAAI,OAAA,CAAQ,sCAAA,EAAwC,EAAE,CAAA;AAAA,EAC9D;AAEA,EAAA,MAAM,MAAA,GAAS,UAAU,GAAG,CAAA;AAE5B,EAAA,IAAI,WAAW,CAAA,EAAG;AAChB,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAQ,IAAI,MAAA,CAAO,CAAA,QAAA,EAAW,MAAM,KAAK,IAAI,CAAA;AAEnD,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAC9B;AAQO,SAAS,YAAY,GAAA,EAAqB;AAC/C,EAAA,OAAO,GAAA,CACJ,WAAA,EAAY,CACZ,OAAA,CAAQ,gBAAA,EAAkB,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,WAAA,EAAa,CAAA;AAC5D;AAQO,SAAS,YAAY,GAAA,EAAqB;AAC/C,EAAA,OACE,GAAA,CAEG,QAAQ,oBAAA,EAAsB,OAAO,EAErC,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA,CAEtB,WAAA,EAAY;AAEnB;;;ACvJA,IAAM,OAAA,GAAU,OAAO,GAAA,KAAQ,WAAA;AAOxB,SAAS,MAAS,MAAA,EAAmC;AAC1D,EAAA,OAAO,WAAW,MAAA,YAAkB,GAAA;AACtC;;;ACTA,IAAM,OAAA,GAAU,OAAO,GAAA,KAAQ,WAAA;AAOxB,SAAS,MAAY,MAAA,EAAsC;AAChE,EAAA,OAAO,WAAW,MAAA,YAAkB,GAAA;AACtC;;;ACRO,SAAS,aAAa,GAAA,EAAqB;AAChD,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,2BAAA,EAA6B,MAAM,CAAA;AACxD;;;ACKO,SAAS,sBAAyB,MAAA,EAAgC;AACvE,EAAA,MAAM,UAAe,EAAC;AACtB,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAC1B,IAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA,EACrB,CAAA,MAAO;AACL,IAAA,KAAA,MAAW,OAAO,MAAA,EAAQ;AACxB,MAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,qBAAA,CAAsB,GAAG,CAAC,CAAA;AAAA,IAC5C;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAUO,SAAS,WAAA,CAAe,OAAY,KAAA,EAAU;AACnD,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AACjC,EAAA,IAAI,UAAU,EAAA,EAAI;AAChB,IAAA,KAAA,CAAM,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,EACvB;AACF;AASO,SAAS,KAAA,CAAM,MAAA,EAAgB,MAAA,GAAS,CAAA,EAAa;AAC1D,EAAA,OAAO,KAAA,CAAM,KAAK,KAAA,CAAM,MAAM,GAAG,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,MAAM,CAAA;AACvD;AAQO,SAAS,YAAe,KAAA,EAAiB;AAC9C,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAI,GAAA,CAAI,KAAK,CAAC,CAAA;AAClC;;;ACrCO,SAAS,cACd,KAAA,EACuC;AACvC,EAAA,OAAO,KAAA,IAAS,IAAA;AAClB;AAiBO,SAAS,gBAEd,KAAA,EAA4B;AAC5B,EAAA,OAAO,CAAC,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA;AACrC;AAkBO,SAAS,SAEd,KAAA,EAA4B;AAC5B,EAAA,OAAO,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,KAAM,iBAAA;AACnD;AAgBO,SAAS,cAEd,KAAA,EAA4B;AAC5B,EAAA,IAAI,CAAC,QAAA,CAAS,KAAK,CAAA,EAAG,OAAO,KAAA;AAG7B,EAAA,MAAM,OAAO,KAAA,CAAM,WAAA;AACnB,EAAA,IAAI,KAAA,CAAM,WAAA,KAAgB,MAAA,EAAW,OAAO,IAAA;AAG5C,EAAA,MAAM,OAAO,IAAA,CAAK,SAAA;AAClB,EAAA,IAAI,QAAA,CAAS,IAAI,CAAA,KAAM,KAAA,EAAO,OAAO,KAAA;AAIrC,EAAA,IAAI,IAAA,CAAK,cAAA,CAAe,eAAe,CAAA,KAAM,KAAA,EAAO;AAClD,IAAA,OAAO,KAAA;AAAA,EACT;AAGA,EAAA,OAAO,IAAA;AACT;AAGO,SAAS,cAAA,CAAe,GAAQ,CAAA,EAAiB;AACtD,EAAA,IAAI,CAAA,KAAM,GAAG,OAAO,IAAA;AAEpB,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAC5B,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAC5B,EAAA,IAAI,CAAA;AAEJ,EAAA,IAAI,QAAQ,IAAA,EAAM;AAEhB,IAAA,IAAI,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,MAAA,EAAQ,OAAO,KAAA;AACjC,IAAA,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,MAAA,EAAQ,CAAA,EAAA;AACxB,MAAA,IAAI,CAAC,eAAe,CAAA,CAAE,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA,EAAG,OAAO,KAAA;AAC1C,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,IAAI,IAAA,IAAQ,MAAM,OAAO,KAAA;AAEzB,EAAA,IAAI,KAAK,CAAA,IAAK,OAAO,MAAM,QAAA,IAAY,OAAO,MAAM,QAAA,EAAU;AAC5D,IAAA,MAAM,QAAQ,CAAA,YAAa,IAAA;AAC3B,IAAA,MAAM,QAAQ,CAAA,YAAa,IAAA;AAE3B,IAAA,IAAI,SAAS,KAAA,EAAO,OAAO,EAAE,OAAA,EAAQ,IAAK,EAAE,OAAA,EAAQ;AAEpD,IAAA,IAAI,KAAA,IAAS,OAAO,OAAO,KAAA;AAE3B,IAAA,MAAM,UAAU,CAAA,YAAa,MAAA;AAC7B,IAAA,MAAM,UAAU,CAAA,YAAa,MAAA;AAE7B,IAAA,IAAI,WAAW,OAAA,EAAS,OAAO,EAAE,QAAA,EAAS,IAAK,EAAE,QAAA,EAAS;AAE1D,IAAA,IAAI,OAAA,IAAW,SAAS,OAAO,KAAA;AAE/B,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA;AAG1B,IAAA,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,EAAQ,CAAA,EAAA;AAC3B,MAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,GAAG,IAAA,CAAK,CAAC,CAAC,CAAA,EAAG,OAAO,KAAA;AAEhE,IAAA,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,EAAQ,CAAA,EAAA;AAC3B,MAAA,IAAI,CAAC,cAAA,CAAe,CAAA,CAAE,IAAA,CAAK,CAAC,CAAC,CAAA,EAAG,CAAA,CAAE,IAAA,CAAK,CAAC,CAAC,CAAC,GAAG,OAAO,KAAA;AAEtD,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,KAAK,CAAA,IAAK,OAAO,MAAM,UAAA,IAAc,OAAO,MAAM,UAAA,EAAY;AAChE,IAAA,OAAO,CAAA,CAAE,QAAA,EAAS,KAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EACrC;AAEA,EAAA,OAAO,KAAA;AACT;AAKO,SAAS,iBAA0B,MAAA,EAAqC;AAC7E,EAAA,OACE,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,IACnB,MAAA,IACC,OAAO,MAAA,KAAW,QAAA,IAClB,MAAA,CAAO,WAAA,CAAY,IAAA,KAAS,QAAA,IAC9B,KAAA;AAEJ;AAMO,SAAS,aAAA,CAAiB,CAAA,GAAO,EAAC,EAAQ,CAAA,EAAoB;AAEnE,EAAA,IAAI,CAAC,CAAA,IAAK,CAAC,CAAA,SAAU,CAAA,KAAM,CAAA;AAC3B,EAAA,IAAI,CAAC,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,KAAA;AACzB,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,CAAQ,CAAA;AAClC,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA;AAC3B,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,KAAA,CAAM,MAAA,EAAQ;AACjC,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA,CAAM,KAAA,CAAM,CAAC,GAAA,KAAQ;AAC1B,IAAA,MAAM,IAAA,GAAQ,EAAU,GAAG,CAAA;AAC3B,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,CAAA;AAElB,IAAA,IAAI,IAAA,IAAQ,IAAA,IAAQ,IAAA,IAAQ,IAAA,SAAa,IAAA,KAAS,IAAA;AAElD,IAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,SAAS,QAAA,EAAU;AACxD,MAAA,OAAO,aAAA,CAAc,MAAM,IAAI,CAAA;AAAA,IACjC;AACA,IAAA,OAAO,MAAA,CAAO,IAAI,CAAA,KAAM,MAAA,CAAO,IAAI,CAAA;AAAA,EACrC,CAAC,CAAA;AACH;AAEO,SAAS,eAAA,CACd,MACA,EAAA,EACc;AACd,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,KAAU,EAAA,CAAG,GAAA,EAAK,KAAK,CAAC,CAAC,CAAA;AAChE,EAAA,OAAO,MAAA,CAAO,YAAY,OAAO,CAAA;AACnC;AAEA,eAAA,CAAgB,QACd,CAAO,IAAA;AAAA;AAAA,EAEP,CACE,EAAA,KAEA,eAAA,CAAgB,IAAA,EAAM,EAAE;AAAA,CAAA;AASrB,SAAS,WAAA,CACd,GAAA,EACA,IAAA,GAAO,KAAA,EACJ;AACH,EAAA,OAAO,OAAO,IAAA,CAAK,GAAG,EAAE,MAAA,CAAO,CAAC,QAAQ,GAAA,KAAQ;AAC9C,IAAA,IAAI,KAAA,GAAa,IAAI,GAAG,CAAA;AACxB,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,IAAI,IAAA,IAAQ,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AAC9C,QAAA,KAAA,GAAQ,WAAA,CAAY,OAAO,IAAI,CAAA;AAAA,MACjC;AACA,MAAC,MAAA,CAAe,GAAG,CAAA,GAAI,KAAA;AAAA,IACzB;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACP;AAEO,SAAS,kBAAA,CAGd,OAAY,GAAA,EAAyB;AACrC,EAAA,OAAO,KAAA,CAAM,MAAA;AAAA,IACX,CAAC,MAAM,OAAA,KAAY;AACjB,MAAA,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAC,CAAA,GAAI,OAAA;AACrB,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAC,GACH;AACF;AAUO,SAAS,cAAA,CAGd,GAAA,EAAQ,KAAA,EAAY,iBAAA,EAAyC;AAC7D,EAAA,MAAM,UAAU,EAAC;AACjB,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,MAAM,KAAA,GAAQ,IAAI,IAAI,CAAA;AACtB,IAAA,IAAI,iBAAA,IAAqB,UAAU,MAAA,EAAW;AAC5C,MAAA,OAAA,CAAQ,IAAI,CAAA,GAAI,KAAA;AAAA,IAClB;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAUO,SAAS,cAAA,CAGd,GAAA,EAAQ,KAAA,EAAY,gBAAA,EAAwC;AAC5D,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,GAAG;AAAA,GACL;AACA,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,OAAQ,QAAgB,IAAI,CAAA;AAAA,EAC9B;AACA,EAAA,OAAO,gBAAA,GAAmB,WAAA,CAAY,OAAO,CAAA,GAAI,OAAA;AACnD;AAWO,SAAS,KAAA,CACd,MACA,KAAA,EACa;AACb,EAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,IAAA,EAAM;AAAA,IAC5B,GAAA,EAAK,CAAC,OAAA,EAAS,WAAA,EAAa,QAAA,KAAa;AACvC,MAAA,MAAM,SAAS,OAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,WAAW,IAAI,KAAA,GAAQ,OAAA;AACzD,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,WAAA,EAAa,QAAQ,CAAA;AAAA,IAClD,CAAA;AAAA,IACA,GAAA,EAAK,CAAC,OAAA,EAAS,WAAA,EAAa,UAAU,QAAA,KAAa;AACjD,MAAA,MAAM,SAAS,OAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,WAAW,IAAI,KAAA,GAAQ,OAAA;AACzD,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,WAAA,EAAa,UAAU,QAAQ,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,GAAA,EAAK,CAAC,MAAA,EAAQ,WAAA,KACZ,OAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,WAAW,CAAA,IAAK,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,WAAW,CAAA;AAAA,IACpE,OAAA,EAAS,CAAC,MAAA,KACR,WAAA,CAAY,CAAC,GAAG,OAAA,CAAQ,OAAA,CAAQ,MAAM,GAAG,GAAG,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAC,CAAC,CAAA;AAAA,IACrE,wBAAA,EAA0B,CAAC,MAAA,EAAQ,WAAA,KACjC,OAAA,CAAQ,wBAAA,CAAyB,KAAA,EAAO,WAAW,CAAA,IACnD,OAAA,CAAQ,wBAAA,CAAyB,IAAA,EAAM,WAAW;AAAA,GACrD,CAAA;AACD,EAAA,OAAO,KAAA;AACT;AAsBO,SAAS,MAAA,CACd,SACG,MAAA,EACW;AACd,EAAA,MAAM,UAAU,CAAC,IAAA,EAAM,GAAG,MAAM,EAAE,OAAA,EAAQ;AAC1C,EAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,IAAA,EAAM;AAAA,IAC5B,GAAA,EAAK,CAAC,OAAA,EAAS,WAAA,EAAa,QAAA,KAAa;AACvC,MAAA,MAAM,MAAA,GACJ,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,QAAQ,GAAA,CAAI,CAAA,EAAG,WAAW,CAAC,CAAA,IAAK,OAAA;AACtD,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,WAAA,EAAa,QAAQ,CAAA;AAAA,IAClD,CAAA;AAAA,IACA,GAAA,EAAK,CAAC,OAAA,EAAS,WAAA,EAAa,UAAU,QAAA,KAAa;AACjD,MAAA,MAAM,MAAA,GACJ,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,QAAQ,GAAA,CAAI,CAAA,EAAG,WAAW,CAAC,CAAA,IAAK,OAAA;AACtD,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,WAAA,EAAa,UAAU,QAAQ,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,GAAA,EAAK,CAAC,OAAA,EAAS,WAAA,KACb,OAAA,CAAQ,IAAA,CAAK,CAAC,MAAA,KAAW,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,WAAW,CAAC,CAAA;AAAA,IAC3D,OAAA,EAAS,CAAC,OAAA,KACR,WAAA,CAAY,QAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,OAAA,CAAQ,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAE,MAAM,CAAA;AAAA,IACrE,wBAAA,EAA0B,CAAC,OAAA,EAAS,WAAA,KAAgB;AAClD,MAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,QAAA,MAAM,aAAa,OAAA,CAAQ,wBAAA;AAAA,UACzB,MAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,IAAI,YAAY,OAAO,UAAA;AAAA,MACzB;AAAA,IACF;AAAA,GACD,CAAA;AACD,EAAA,OAAO,KAAA;AACT;;;ACnXA,IAAI,UAAA,GAAa,CAAA;AAEjB,IAAM,aAAa,MAAc;AAC/B,EAAA,UAAA,EAAA;AACA,EAAA,IAAI,UAAA,GAAa,OAAO,gBAAA,EAAkB;AACxC,IAAA,UAAA,GAAa,CAAA;AAAA,EACf;AACA,EAAA,OAAO,UAAA;AACT,CAAA;AAEA,IAAM,MAAA,uBAAa,OAAA,EAAyB;AAarC,SAAS,iBAAA,CACd,KACA,UAAA,EACuD;AACvD,EAAA,IAAI,UAAA,IAAc,CAAC,SAAA,EAAW,OAAO,MAAA;AAErC,EAAA,IAAI,EAAA,GAAK,MAAA,CAAO,GAAA,CAAI,GAAG,CAAA;AACvB,EAAA,IAAI,OAAO,MAAA,EAAW;AACpB,IAAA,EAAA,GAAK,UAAA,EAAW;AAChB,IAAA,MAAA,CAAO,GAAA,CAAI,KAAK,EAAE,CAAA;AAAA,EACpB;AACA,EAAA,OAAO,EAAA;AACT;;;ACpCA,IAAM,UAAA,GAAa,OAAO,MAAA,KAAW,WAAA;AAGrC,IAAM,gBAAA,GAAmB,OAAO,WAAA,KAAgB,WAAA;AAOzC,SAAS,SAAS,MAAA,EAAmC;AAC1D,EAAA,OAAO,cAAc,MAAA,YAAkB,MAAA;AACzC;AAOO,SAAS,kBAAkB,MAAA,EAA4C;AAC5E,EAAA,OAAO,gBAAA,IAAoB,WAAA,CAAY,MAAA,CAAO,MAAM,CAAA;AACtD;AAOO,SAAS,WAAW,GAAA,EAAuC;AAChE,EAAA,IAAI,QAAA,CAAS,GAAG,CAAA,EAAG;AACjB,IAAA,OAAO,MAAA,CAAO,KAAK,GAA6B,CAAA;AAAA,EAClD;AACA,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,EAAG,GAAA,CAAI,UAAA,EAAY,GAAA,CAAI,UAAU,CAAA;AACxE;;;ACxBO,SAAS,wBAAwB,MAAA,EAAoB;AAC1D,EAAA,IAAI,OAAO,MAAA,KAAW,QAAA,EAAU,OAAO,MAAA;AACvC,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,MAAA,GAAS,IAAI,KAAK,MAAM,CAAA;AAAA,EAC1B;AACA,EAAA,OAAO,OAAO,OAAA,EAAQ;AACxB;AAOO,SAAS,OAAO,MAAA,EAAsC;AAC3D,EAAA,OAAO,MAAA,YAAkB,IAAA,GAAO,MAAA,GAAS,IAAI,KAAK,MAAM,CAAA;AAC1D;AAKO,IAAM,qBAAA,GAAwB;AAAA,EACnC,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;AAQO,IAAM,mBAAA,GACX;AA0CK,SAAS,eAAe,MAAA,EAA6C;AAC1E,EAAA,IAAI,MAAA,GAAsC,IAAA;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,KAAA,CAAM,mBAAmB,CAAA;AAChD,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,IAAA,GAAO,QAAQ,CAAC,CAAA;AACtB,IAAA,MAAM,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,IAAA,MAAM,IAAA,GAAO,QAAQ,CAAC,CAAA;AACtB,IAAA,MAAM,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,IAAA,MAAM,OAAA,GAAU,QAAQ,CAAC,CAAA;AACzB,IAAA,IAAI,SAAS,OAAA,EAAS;AACpB,MAAA,MAAA,GAAS;AAAA,QACP,SAAA,EAAW,gBAAA;AAAA,QACX,IAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,WAAW,IAAA,EAAM;AACf,MAAA,MAAA,GAAS;AAAA,QACP,SAAA,EAAW,MAAA;AAAA,QACX,IAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAA,MAAA,IAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,MAAA,GAAS;AAAA,QACP,SAAA,EAAW,OAAA;AAAA,QACX,IAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;;;ACpHO,SAAS,QAAQ,KAAA,EAAqB;AAC3C,EAAA,IAAI,OAAO,KAAA,KAAU,UAAA,EAAY,OAAO,KAAA;AACxC,EAAA,OAAO,KAAA,IAAS,IAAA,IAAQ,KAAA,KAAU,KAAA,IAAS,MAAM,MAAA,KAAW,CAAA;AAC9D;AAmBO,SAAS,aAAA,CAAiB,MAAW,YAAA,EAA+B;AACzE,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAG,CAAA,EAAG;AACjB,MAAA,OAAO,GAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,YAAA;AACT;;;ACbO,IAAM,qCAAA,GAAwC,MAAA;AAAA,EACnD;AACF;AAEA,SAAS,wBACP,MAAA,EACuC;AACvC,EAAA,IAAI,CAAC,UAAU,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,IAAK,OAAO,WAAW,QAAA,EAAU;AAClE,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,qBAAA,CAAsB,MAAM,CAAA;AACnD,EAAA,IAAI,QAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,KAAM,qCAAqC,CAAA,EAAG;AACpE,IAAA,OAAQ,OAAe,qCAAqC,CAAA;AAAA,EAC9D;AACF;AAEO,SAAS,mCACd,MAAA,EACA;AACA,EAAA,OAAO;AAAA,IACL,CAAC,qCAAqC,GAAG;AAAA,GAC3C;AACF;AAEO,SAAS,aAAA,CAAiB,MAAS,MAAA,EAA8B;AACtE,EAAA,MAAM,oBAAA,GAAuB,wBAAwB,MAAM,CAAA;AAC3D,EAAA,IAAI,oBAAA,EAAsB;AACxB,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,IAAW,CAAA;AACxC,IAAA,MAAM,UAAe,EAAC;AACtB,IAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACxB,MAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,oBAAA;AAAA,IACjB,CAAC,CAAA;AACD,IAAA,OAAO,aAAA,CAAc,MAAM,OAAc,CAAA;AAAA,EAC3C;AAEA,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAC/B,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,MAAM,MAAA,GAAU,OAAe,GAAG,CAAA;AAClC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AACA,IAAA,IAAI,OAAO,WAAW,UAAA,EAAY;AAChC,MAAA,IAAI,IAAA,CAAK,GAAG,CAAA,KAAM,MAAA,EAAW;AAC3B,QAAA,IAAA,CAAK,GAAG,IAAI,MAAA,EAAO;AAAA,MACrB;AAAA,IACF,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAChC,MAAA,MAAM,UAAA,GAAa,OAAO,CAAC,CAAA;AAC3B,MAAA,IAAI,CAAC,IAAA,CAAK,GAAG,CAAA,IAAK,CAAC,MAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,EAAG;AAC3C,QAAA,IAAA,CAAK,GAAG,IAAI,EAAC;AAAA,MACf;AAEA,MAAA,MAAM,MAAA,GAAS,KAAK,GAAG,CAAA;AAEvB,MAAA,IAAI,OAAO,UAAA,KAAe,UAAA,IAAc,CAAC,OAAO,MAAA,EAAQ;AACtD,QAAA,MAAA,CAAO,IAAA,CAAK,GAAG,UAAA,EAAY,CAAA;AAAA,MAC7B;AAEA,MAAA,IAAI,OAAO,eAAe,QAAA,EAAU;AAClC,QAAA,MAAM,UAAA,GAAc,OAAe,CAAC,CAAA;AAGpC,QAAA,MAAM,WAAkB,EAAC;AACzB,QAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACtB,UAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAA,EAAU;AACnC,YAAA,IAAI,UAAA,EAAY;AACd,cAAA,GAAA,GAAM,WAAW,GAAG,CAAA;AACpB,cAAA,IAAI,QAAQ,MAAA,EAAW;AACrB,gBAAA;AAAA,cACF;AAAA,YACF,CAAA,MAAO;AACL,cAAA;AAAA,YACF;AAAA,UACF;AACA,UAAA,QAAA,CAAS,IAAA,CAAK,aAAA,CAAc,GAAA,EAAK,UAAU,CAAC,CAAA;AAAA,QAC9C,CAAC,CAAA;AACD,QAAA,IAAA,CAAK,GAAG,CAAA,GAAI,QAAA;AAAA,MACd;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,GAAG,CAAC,CAAA,EAAG;AAC/B,QAAA,IAAA,CAAK,GAAG,IAAI,EAAC;AAAA,MACf;AACA,MAAA,IAAA,CAAK,GAAG,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,GAAG,GAAG,MAAa,CAAA;AAAA,IACpD;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT","file":"helpers.mjs","sourcesContent":["/**\n * A {@link Window} instance exists globally at runtime\n */\nexport const IN_WINDOW: boolean = typeof window !== 'undefined';\n\n/**\n * A {@link Document} instance exists globally at runtime\n */\nexport const IN_DOCUMENT: boolean = typeof document !== 'undefined';\n","/* eslint-disable @typescript-eslint/ban-types */\n\n/**\n * If the specified type is a function, the function type is returned; otherwise, the function type with the specified return type is returned.\n */\nexport type NormalizeFuncType<T> = T extends (...args: any) => any\n  ? T\n  : () => T;\n\n/**\n * Value types that can be replaced with functions\n */\nexport type FunctionableValue<T, ARGS extends any[]> = T extends Function\n  ? never\n  : T | ((...args: ARGS) => T);\n\n/**\n * Resolve functions and replaceable values as values\n * @param source - Value types that can be replaced with functions\n * @param args - List of arguments required by the function\n * @returns Resolved Value\n */\nexport function resolveFunctionableValue<T, ARGS extends any[]>(\n  source: FunctionableValue<T, ARGS>,\n  ...args: ARGS\n): T extends Function ? never : T {\n  return typeof source === 'function' ? source(...args) : (source as any);\n}\n\n/**\n * Generate a resolver function to resolve values that can be replaced with functions\n * @param args - List of arguments required by the function\n * @returns Resolver function\n */\nresolveFunctionableValue.build = function build<ARGS extends any[]>(\n  ...args: ARGS\n): <T>(source: FunctionableValue<T, ARGS>) => T extends Function ? never : T {\n  return (source) => resolveFunctionableValue(source, ...args);\n};\n","/**\n * Returns an integer of the given value\n *\n * @param value - Numbers or their strings\n * @returns Integer\n */\nexport function toInt(value: string | number): number {\n  return typeof value === 'number' ? Math.trunc(value) : parseInt(value, 10);\n}\n\n/**\n * Returns a floating-point value of the given value\n *\n * @param value - Numbers or their strings\n * @returns floating-point value\n */\nexport function toFloat(value: string | number): number {\n  return typeof value === 'number' ? value : parseFloat(value);\n}\n\n/**\n * Returns the specified value normalized to number\n *\n * @param value - Numbers or their strings\n * @returns number\n */\nexport function toNumber(source: any): number {\n  return typeof source === 'number' ? source : Number(source);\n}\n","/**\n * Obtains a Promise instance that will be resolved after the specified time\n * @param milliseconds - Delay time(millisecond)\n * @returns Promise Instance\n */\nexport function delay(milliseconds: number): Promise<void> {\n  return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n","/**\n * Verify that the specified value is an object compatible with Promise\n *\n * @param source - Value to be tested\n * @returns `true` if compatible with Promise\n */\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n  return (\n    !!obj &&\n    (typeof obj === 'object' || typeof obj === 'function') &&\n    typeof obj.then === 'function'\n  );\n}\n","/** Checks if value is string */\nexport function isString(source: unknown): source is string {\n  return typeof source === 'string' || source instanceof String;\n}\n\n/** Escapes empty-like values (`null`, `undefined`) to empty string */\nexport function nilToEmptyString(source?: string | null): string {\n  return source == null ? '' : source;\n}\n\nconst FULL_WIDTH_SYMBOL_RE = /[！-～]/g;\n\n// eslint-disable-next-line no-irregular-whitespace\nconst FULL_WIDTH_SPACE_RE = /　/g;\n\nconst REMOVE_SPACE_RE = /[\\s\\t]/g;\n\n/**\n * Remove all spaces and tab characters\n *\n * @param source - String to be converted\n * @returns A string with spaces removed.\n */\nexport const removeSpace = (source: string | null | undefined): string =>\n  nilToEmptyString(source).replace(REMOVE_SPACE_RE, '');\n\n/**\n * Convert string to lowercase\n *\n * The target includes full-width alphanumeric characters, symbols, and whitespace characters.\n *\n * @param source - String to be converted\n * @returns Converted string\n */\nexport function toHalfWidth(source: string | null | undefined) {\n  return nilToEmptyString(source)\n    .replace(FULL_WIDTH_SYMBOL_RE, (_source) =>\n      String.fromCharCode(_source.charCodeAt(0) - 0xfee0),\n    )\n    .replace(FULL_WIDTH_SPACE_RE, ' ');\n}\n\n/**\n * Convert all consecutive spaces to single space\n * @param source - String to be converted\n * @returns Converted string\n */\nexport function toSingleSpace(source: string | null | undefined) {\n  return nilToEmptyString(source).replace(/([\\s]+)/g, (m) => m.charAt(0));\n}\n\n/**\n * Obtains a string with the first letter of the specified string capitalized\n *\n * - `\"helloWorld\"` -&gt; `\"HelloWorld\"`\n *\n * @param str - String of conversion source\n * @returns String with first letter converted to uppercase\n */\nexport function capitalize<T extends string>(str: T): Capitalize<T> {\n  return (str.charAt(0).toUpperCase() + str.slice(1)) as Capitalize<T>;\n}\n\n/**\n * Obtains a string with the first letter of the specified string in lowercase.\n *\n * - `\"HelloWorld\"` -&gt; `\"helloWorld\"`\n *\n * @param str - String of conversion source\n * @returns String with first letter converted to lowercase\n */\nexport function uncapitalize<T extends string>(str: T): Uncapitalize<T> {\n  return (str.charAt(0).toLowerCase() + str.slice(1)) as Uncapitalize<T>;\n}\n\nconst INDENT_MATCH_RE = /^[ \\t]*(?=\\S)/gm;\n\n/**\n * Ignore blank lines and get the number of indent characters in the line with the lowest number of leading spaces\n *\n * @param str - String to get indentation\n * @returns Minimum indent character count\n */\nexport function minIndent(str: string): number {\n  const match = str.match(INDENT_MATCH_RE);\n\n  if (!match) {\n    return 0;\n  }\n\n  return match.reduce((r, a) => Math.min(r, a.length), Infinity);\n}\n\nconst STRIP_INDENT_UNNECESSARY_LINE_MATCH_RE = /(^\\n+|\\n\\s+$)/g;\n\n/**\n * Obtain a string with the minimum number of indent characters removed\n *\n * @remarks This method trims unnecessary lines (newlines, whitespace only) before and after. This process can be disabled with `retainUnnecessaryLines`\n *\n * @param str - String to remove indentation\n * @param retainUnnecessaryLines - Retain unnecessary lines\n * @returns String with normalized indentation\n */\nexport function stripIndent(\n  str: string,\n  retainUnnecessaryLines?: boolean,\n): string {\n  if (!retainUnnecessaryLines) {\n    str = str.replace(STRIP_INDENT_UNNECESSARY_LINE_MATCH_RE, '');\n  }\n\n  const indent = minIndent(str);\n\n  if (indent === 0) {\n    return str;\n  }\n\n  const regex = new RegExp(`^[ \\\\t]{${indent}}`, 'gm');\n\n  return str.replace(regex, '');\n}\n\n/**\n * Converts a string to camelCase.\n *\n * @param str - Any input string\n * @returns The string converted to camelCase\n */\nexport function toCamelCase(str: string): string {\n  return str\n    .toLowerCase()\n    .replace(/[^a-z0-9]+(.)/g, (_, chr) => chr.toUpperCase());\n}\n\n/**\n * Converts a string to kebab-case (hyphen-separated lowercase)\n *\n * @param str - Any input string\n * @returns The string converted to kebab-case\n */\nexport function toKebabCase(str: string): string {\n  return (\n    str\n      // Convert camelCase to hyphen-separated\n      .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n      // Replace spaces and underscores with hyphens\n      .replace(/[\\s_]+/g, '-')\n      // Convert the entire string to lowercase\n      .toLowerCase()\n  );\n}\n","const HAS_SET = typeof Set !== 'undefined';\n\n/**\n * Checks if the given value is a `Set` instance\n * @param source - Value to be tested\n * @returns `true` if it is an instance of `Set`.\n */\nexport function isSet<T>(source: unknown): source is Set<T> {\n  return HAS_SET && source instanceof Set;\n}\n","const HAS_MAP = typeof Map !== 'undefined';\n\n/**\n * Checks if the given value is a `Map` instance\n * @param source - Value to be tested\n * @returns `true` if it is an instance of `Map`.\n */\nexport function isMap<K, V>(source: unknown): source is Map<K, V> {\n  return HAS_MAP && source instanceof Map;\n}\n","/** Escapes regular expression control chars */\nexport function escapeRegExp(str: string): string {\n  return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n}\n","import { RecursiveArray } from '@fastkit/ts-type-utils';\n\n/**\n * Converting a recursive array to a flat array\n *\n * @param source - Recursive Arrays\n * @returns - Flattened array\n */\nexport function flattenRecursiveArray<T>(source: RecursiveArray<T>): T[] {\n  const results: T[] = [];\n  if (!Array.isArray(source)) {\n    results.push(source);\n  } else {\n    for (const row of source) {\n      results.push(...flattenRecursiveArray(row));\n    }\n  }\n  return results;\n}\n\n/**\n * Remove any element from an array\n *\n * @mutable\n *\n * @param array - Array\n * @param entry - Element to be deleted\n */\nexport function arrayRemove<T>(array: T[], entry: T) {\n  const index = array.indexOf(entry);\n  if (index !== -1) {\n    array.splice(index, 1);\n  }\n}\n\n/**\n * Generate a range array with a specified number of ranges\n *\n * @param length - number of elements\n * @param offset - starting value\n * @returns range array\n */\nexport function range(length: number, offset = 0): number[] {\n  return Array.from(Array(length), (v, k) => k + offset);\n}\n\n/**\n * Obtain a unique array with duplicate values removed from the specified array\n *\n * @param array - Array\n * @returns Array with duplicates removed\n */\nexport function arrayUnique<T>(array: T[]): T[] {\n  return Array.from(new Set(array));\n}\n","import { arrayUnique } from './array';\n\n/**\n * Checks if the specified variable is a not Nullable.\n *\n * @param value - Variables to be examined\n *\n * @returns\n *  - `null` -&gt; `false`\n *  - `undefined` -&gt; `false`\n *  - `0` -&gt; `true`\n *  - `1` -&gt; `true`\n *  - `\"\"` -&gt; `true`\n *  - `\"0\"` -&gt; `true`\n *  - `{}` -&gt; `true`\n *  - `[]` -&gt; `true`\n */\nexport function inNonNullable<T>(\n  value: T,\n): value is Exclude<T, null | undefined> {\n  return value != null;\n}\n\n/**\n * Checks if the specified variable is a NonNull object.\n *\n * @param value - Variables to be examined\n *\n * @returns\n *  - `null` -&gt; `false`\n *  - `1` -&gt; `false`\n *  - `\"1\"` -&gt; `false`\n *  - `{}` -&gt; `true`\n *  - `[]` -&gt; `true`\n *  - `new Date()` -&gt; `true`\n *  - `new RegExp()` -&gt; `true`\n *  - `new SomeClass()` -&gt; `true`\n */\nexport function isNonNullObject<\n  T extends Record<string, unknown> = Record<string, unknown>,\n>(value: unknown): value is T {\n  return !!value && typeof value === 'object';\n}\n\n/**\n * Checks if the specified variable is a derived instance of the `Object` class.\n *\n * @param value - Variables to be examined\n * @returns\n *  - `null` -&gt; `false`\n *  - `1` -&gt; `false`\n *  - `\"1\"` -&gt; `false`\n *  - `{}` -&gt; `true`\n *  - `[]` -&gt; `false`\n *  - `new Date()` -&gt; `false`\n *  - `new RegExp()` -&gt; `false`\n *  - `new SomeClass()` -&gt; `true`\n *  - `new (class SomeClass extends ParentClass {})()` -&gt; `true`\n *  - `new (class SomeClass extends Array {})()` -&gt; `false`\n */\nexport function isObject<\n  T extends Record<string, unknown> = Record<string, unknown>,\n>(value: unknown): value is T {\n  return Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Checks if the specified variable is a direct instance of the `Object` class.\n *\n * @param value - Variables to be examined\n * @returns\n *  - `null` -&gt; `false`\n *  - `1` -&gt; `false`\n *  - `\"1\"` -&gt; `false`\n *  - `{}` -&gt; `true`\n *  - `[]` -&gt; `false`\n *  - `new Date()` -&gt; `false`\n *  - `new RegExp()` -&gt; `false`\n *  - `new SomeClass()` -&gt; `false`\n */\nexport function isPlainObject<\n  T extends Record<string, unknown> = Record<string, unknown>,\n>(value: unknown): value is T {\n  if (!isObject(value)) return false;\n\n  // If has modified constructor\n  const ctor = value.constructor;\n  if (value.constructor === undefined) return true;\n\n  // If has modified prototype\n  const prot = ctor.prototype;\n  if (isObject(prot) === false) return false;\n\n  // If constructor does not have an Object-specific method\n  // eslint-disable-next-line no-prototype-builtins\n  if (prot.hasOwnProperty('isPrototypeOf') === false) {\n    return false;\n  }\n\n  // Most likely a plain Object\n  return true;\n}\n\n// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\nexport function objectIncludes(b: any, a: any): boolean {\n  if (a === b) return true;\n\n  const arrA = Array.isArray(a);\n  const arrB = Array.isArray(b);\n  let i: number;\n\n  if (arrA && arrB) {\n    // eslint-disable-next-line eqeqeq\n    if (a.length != b.length) return false;\n    for (i = 0; i < a.length; i++)\n      if (!objectIncludes(a[i], b[i])) return false;\n    return true;\n  }\n\n  // eslint-disable-next-line eqeqeq\n  if (arrA != arrB) return false;\n\n  if (a && b && typeof a === 'object' && typeof b === 'object') {\n    const dateA = a instanceof Date;\n    const dateB = b instanceof Date;\n    // eslint-disable-next-line eqeqeq\n    if (dateA && dateB) return a.getTime() == b.getTime();\n    // eslint-disable-next-line eqeqeq\n    if (dateA != dateB) return false;\n\n    const regexpA = a instanceof RegExp;\n    const regexpB = b instanceof RegExp;\n    // eslint-disable-next-line eqeqeq\n    if (regexpA && regexpB) return a.toString() == b.toString();\n    // eslint-disable-next-line eqeqeq\n    if (regexpA != regexpB) return false;\n\n    const keys = Object.keys(a);\n    // if (keys.length !== Object.keys(b).length) return false;\n\n    for (i = 0; i < keys.length; i++)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = 0; i < keys.length; i++)\n      if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n\n    return true;\n  }\n  if (a && b && typeof a === 'function' && typeof b === 'function') {\n    return a.toString() === b.toString();\n  }\n\n  return false;\n}\n\n/**\n * Returns `true` if it is a iterable object\n * */\nexport function isIterableObject<T = any>(source?: any): source is Iterable<T> {\n  return (\n    Array.isArray(source) ||\n    (source &&\n      typeof source === 'object' &&\n      source.constructor.name === 'Object') ||\n    false\n  );\n}\n\n/**\n * @see https://github.com/vuejs/vue-router/blob/c69ff7bd60228fb79acd764c3fdae91015a49103/src/util/route.js#L96\n */\n// eslint-disable-next-line default-param-last\nexport function isObjectEqual<T>(a: T = {} as T, b: unknown): b is T {\n  // handle null value #1566\n  if (!a || !b) return a === b;\n  if (!isObject(b)) return false;\n  const aKeys = Object.keys(a as any);\n  const bKeys = Object.keys(b);\n  if (aKeys.length !== bKeys.length) {\n    return false;\n  }\n  return aKeys.every((key) => {\n    const aVal = (a as any)[key];\n    const bVal = b[key];\n    // query values can be null and undefined\n    if (aVal == null || bVal == null) return aVal === bVal;\n    // check nested equality\n    if (typeof aVal === 'object' && typeof bVal === 'object') {\n      return isObjectEqual(aVal, bVal);\n    }\n    return String(aVal) === String(bVal);\n  });\n}\n\nexport function objectFromArray<R, K extends string | number | symbol, T>(\n  rows: R[] | readonly R[],\n  cb: (row: R, index: number) => [K, T],\n): Record<K, T> {\n  const entries = new Map(rows.map((row, index) => cb(row, index)));\n  return Object.fromEntries(entries) as Record<K, T>;\n}\n\nobjectFromArray.build =\n  <R, T>(rows: R[] | readonly R[]) =>\n  // eslint-disable-next-line no-shadow\n  <K extends string | number | symbol, T>(\n    cb: (row: R, index: number) => [K, T],\n  ) =>\n    objectFromArray(rows, cb);\n\n/**\n * To obtain an object with all undefined properties completely removed from the specified object.\n *\n * @param obj - object\n * @param deep - Recursively delete undefined properties\n * @returns Objects with undefined properties already deleted\n */\nexport function removeUndef<T extends Record<string, any>>(\n  obj: T,\n  deep = false,\n): T {\n  return Object.keys(obj).reduce((result, key) => {\n    let value: any = obj[key];\n    if (value !== undefined) {\n      if (deep && value && typeof value === 'object') {\n        value = removeUndef(value, true);\n      }\n      (result as any)[key] = value;\n    }\n    return result;\n  }, {}) as T;\n}\n\nexport function mapFromObjectArray<\n  T extends Record<keyof any, any>,\n  K extends keyof T,\n>(array: T[], key: K): Record<T[K], T> {\n  return array.reduce(\n    (prev, current) => {\n      prev[current[key]] = current;\n      return prev;\n    },\n    {} as Record<T[K], T>,\n  );\n}\n\n/**\n * To obtain a new object that extracts properties corresponding to specified keys from the given object\n *\n * @param obj - Source object for extraction\n * @param props - List of property names to extract\n * @param includesUndefined - Extract `undefined` values as well?\n * @returns Extracted objects\n */\nexport function pickProperties<\n  T extends Record<keyof any, any>,\n  K extends keyof T,\n>(obj: T, props: K[], includesUndefined?: boolean): Pick<T, K> {\n  const results = {} as Pick<T, K>;\n  for (const prop of props) {\n    const value = obj[prop];\n    if (includesUndefined || value !== undefined) {\n      results[prop] = value;\n    }\n  }\n  return results;\n}\n\n/**\n * Retrieve a new object by removing the property corresponding to the specified key from the given object\n *\n * @param obj - Source object\n * @param props - List of property names to be removed\n * @param excludeUndefined - After performing the removal, further undefined properties can be removed or\n * @returns Objects with specified properties already removed\n */\nexport function omitProperties<\n  T extends Record<keyof any, any>,\n  K extends keyof T,\n>(obj: T, props: K[], excludeUndefined?: boolean): Omit<T, K> {\n  const results = {\n    ...obj,\n  } as Omit<T, K>;\n  for (const prop of props) {\n    delete (results as any)[prop];\n  }\n  return excludeUndefined ? removeUndef(results) : results;\n}\n\nexport type Mixin<T extends object, U extends object> = Omit<T, keyof U> & U;\n\n/**\n * Returns a Proxy instance that mixes in the specified trait object for the given base object\n *\n * @param base - Base object\n * @param trait - trait object\n * @returns Mixed-in Proxy\n */\nexport function mixin<T extends object, U extends object>(\n  base: T,\n  trait: U,\n): Mixin<T, U> {\n  const proxy = new Proxy(base, {\n    get: (_target, propertyKey, receiver) => {\n      const target = Reflect.has(trait, propertyKey) ? trait : _target;\n      return Reflect.get(target, propertyKey, receiver);\n    },\n    set: (_target, propertyKey, newValue, receiver) => {\n      const target = Reflect.has(trait, propertyKey) ? trait : _target;\n      return Reflect.set(target, propertyKey, newValue, receiver);\n    },\n    has: (target, propertyKey) =>\n      Reflect.has(trait, propertyKey) || Reflect.has(target, propertyKey),\n    ownKeys: (target) =>\n      arrayUnique([...Reflect.ownKeys(target), ...Reflect.ownKeys(trait)]),\n    getOwnPropertyDescriptor: (target, propertyKey) =>\n      Reflect.getOwnPropertyDescriptor(trait, propertyKey) ||\n      Reflect.getOwnPropertyDescriptor(base, propertyKey),\n  }) as any;\n  return proxy;\n}\n\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (\n  k: infer I,\n) => void\n  ? I\n  : never;\n\nexport type Mixins<T extends object, R> =\n  R extends Array<infer U>\n    ? Mixins<T, UnionToIntersection<U>>\n    : R extends object\n      ? Mixin<T, R>\n      : never;\n\n/**\n * Obtain a Proxy instance mixed with multiple objects as mixins.\n *\n * @param base - Base object\n * @param traits - trait objects\n * @returns Mixed-in Proxy\n */\nexport function mixins<T extends object, R extends object[]>(\n  base: T,\n  ...traits: R\n): Mixins<T, R> {\n  const targets = [base, ...traits].reverse();\n  const proxy = new Proxy(base, {\n    get: (_target, propertyKey, receiver) => {\n      const target =\n        targets.find((t) => Reflect.has(t, propertyKey)) || _target;\n      return Reflect.get(target, propertyKey, receiver);\n    },\n    set: (_target, propertyKey, newValue, receiver) => {\n      const target =\n        targets.find((t) => Reflect.has(t, propertyKey)) || _target;\n      return Reflect.set(target, propertyKey, newValue, receiver);\n    },\n    has: (_target, propertyKey) =>\n      targets.some((target) => Reflect.has(target, propertyKey)),\n    ownKeys: (_target) =>\n      arrayUnique(targets.map((target) => Reflect.ownKeys(target)).flat()),\n    getOwnPropertyDescriptor: (_target, propertyKey) => {\n      for (const target of targets) {\n        const descriptor = Reflect.getOwnPropertyDescriptor(\n          target,\n          propertyKey,\n        );\n        if (descriptor) return descriptor;\n      }\n    },\n  }) as any;\n  return proxy;\n}\n","import { IN_WINDOW } from './runtime-flags';\n\nlet _currentId = 0;\n\nconst _getNextId = (): number => {\n  _currentId++;\n  if (_currentId > Number.MAX_SAFE_INTEGER) {\n    _currentId = 1;\n  }\n  return _currentId;\n};\n\nconst _cache = new WeakMap<WeakKey, number>();\n\n/**\n * Retrieve a temporary ID for a given object reference.\n *\n * This function creates an ID that corresponds to a given object reference.\n * The ID is not guaranteed to be globally unique and may have duplicates if\n * a large number of IDs are generated within a single process.\n *\n * @param obj - The object for which the temporary ID is generated.\n * @param onlyClient - If `true` is specified, it will return undefined in the server environment.\n * @returns A temporary ID corresponding to the object reference.\n */\nexport function temporaryObjectID<OnlyClient extends boolean = false>(\n  obj: WeakKey,\n  onlyClient?: OnlyClient,\n): OnlyClient extends true ? number | undefined : number {\n  if (onlyClient && !IN_WINDOW) return undefined as any;\n\n  let id = _cache.get(obj);\n  if (id === undefined) {\n    id = _getNextId();\n    _cache.set(obj, id);\n  }\n  return id;\n}\n","/** Does the Buffer class exist in the Global space? */\nconst HAS_BUFFER = typeof Buffer !== 'undefined';\n\n/** Does the ArrayBuffer class exist in the Global space? */\nconst HAS_ARRAY_BUFFER = typeof ArrayBuffer !== 'undefined';\n\n/**\n * Check if the argument value is a Buffer instance\n * @param source - Value to be checked\n * @returns true if it is a Buffer instance\n */\nexport function isBuffer(source: unknown): source is Buffer {\n  return HAS_BUFFER && source instanceof Buffer;\n}\n\n/**\n * Check if the argument value is a ArrayBufferView instance\n * @param source - Value to be checked\n * @returns true if it is a ArrayBufferView instance\n */\nexport function isArrayBufferView(source: unknown): source is ArrayBufferView {\n  return HAS_ARRAY_BUFFER && ArrayBuffer.isView(source);\n}\n\n/**\n * Buffer, and duplicate the ArrayBufferView to get a new Buffer\n * @param cur - Buffer from which to duplicate\n * @returns Copied buffer\n */\nexport function copyBuffer(cur: Buffer | ArrayBufferView): Buffer {\n  if (isBuffer(cur)) {\n    return Buffer.from(cur as unknown as ArrayBuffer);\n  }\n  return Buffer.from(cur.buffer.slice(0), cur.byteOffset, cur.byteLength);\n}\n","/**\n * Type of value that can be a source value to create a Date instance.\n */\nexport type DateSource = number | string | Date;\n\n/**\n * Date, or get epoch milliseconds from its source value\n * @param source - {@link DateSource Date source}\n * @returns epoch millisecond\n */\nexport function safeGetTimeByDateSource(source: DateSource) {\n  if (typeof source === 'number') return source;\n  if (typeof source === 'string') {\n    source = new Date(source);\n  }\n  return source.getTime();\n}\n\n/**\n * Date, or normalize its source value to Date\n * @param source - {@link DateSource Date source}\n * @returns Date Instance\n */\nexport function toDate(source: number | string | Date): Date {\n  return source instanceof Date ? source : new Date(source);\n}\n\n/**\n * List of date input precision\n */\nexport const DATE_INPUT_PRECISIONS = [\n  'month',\n  'date',\n  'datetime-local',\n] as const;\n\n/**\n * Date input precision\n * @see {@link DATE_INPUT_PRECISIONS}\n */\nexport type DateInputPrecision = (typeof DATE_INPUT_PRECISIONS)[number];\n\nexport const DATE_INPUT_PARSE_RE =\n  /^(\\d{4})-(\\d{2})(-(\\d{2})(T(\\d{2}):(\\d{2}))?)?$/;\n\n/**\n * Date input parse results\n */\nexport type ParseDateInputResult =\n  | {\n      precision: 'datetime-local';\n      year: string;\n      month: string;\n      date: string;\n      hours: string;\n      minutes: string;\n      source: string;\n    }\n  | {\n      precision: 'date';\n      year: string;\n      month: string;\n      date: string;\n      hours?: undefined;\n      minutes?: undefined;\n      source: string;\n    }\n  | {\n      precision: 'month';\n      year: string;\n      month: string;\n      date?: undefined;\n      hours?: undefined;\n      minutes?: undefined;\n      source: string;\n    };\n\n/**\n * Parse a date/time string to obtain individual values\n *\n * @param source - {@link DATE_INPUT_PARSE_RE ISO 8601-like date/time string}\n * @returns Date input parse results (null if not parsed)\n *\n * @see {@link ParseDateInputResult}\n */\nexport function parseDateInput(source: string): ParseDateInputResult | null {\n  let result: ParseDateInputResult | null = null;\n  const matched = source.match(DATE_INPUT_PARSE_RE);\n  if (matched) {\n    const year = matched[1];\n    const month = matched[2];\n    const date = matched[4];\n    const hours = matched[6];\n    const minutes = matched[7];\n    if (hours && minutes) {\n      result = {\n        precision: 'datetime-local',\n        year,\n        month,\n        date,\n        hours,\n        minutes,\n        source,\n      };\n    } else if (date) {\n      result = {\n        precision: 'date',\n        year,\n        month,\n        date,\n        source,\n      };\n    } else if (year && month) {\n      result = {\n        precision: 'month',\n        year,\n        month,\n        source,\n      };\n    }\n  }\n  return result;\n}\n","/**\n * Checks if the specified value is empty-like\n *\n * - For arrays, check length\n * - `false`, `null`, `undefined`, `\"\"` is considered value is empty\n */\nexport function isEmpty(value: any): boolean {\n  if (typeof value === 'function') return false;\n  return value == null || value === false || value.length === 0;\n}\n\n/**\n * Get the first non-empty-like value from the specified array\n *\n * @param args - Array to be searched\n */\nexport function notEmptyValue<T>(args: T[]): NonNullable<T> | undefined;\n\n/**\n * Get the first non-empty-like value from the specified array\n * @param args - Array to be searched\n * @param defaultValue - Default value if value not found\n */\nexport function notEmptyValue<T>(\n  args: T[],\n  defaultValue: NonNullable<T>,\n): NonNullable<T>;\n\nexport function notEmptyValue<T>(args: T[], defaultValue?: NonNullable<T>) {\n  for (const arg of args) {\n    if (!isEmpty(arg)) {\n      return arg;\n    }\n  }\n  return defaultValue;\n}\n","import { WritableKeysOf } from '@fastkit/ts-type-utils';\nimport { isNonNullObject } from './object';\n\ninterface AnyObject {\n  [key: string | number | symbol]: any;\n}\n\nexport type DefaultsSchemeSource<V> =\n  V extends Array<infer U>\n    ? U extends AnyObject\n      ?\n          | [DefaultsScheme<U>]\n          | [DefaultsScheme<U>, (notObject: unknown) => Partial<U> | void]\n      : [() => U[]]\n    : V extends AnyObject\n      ? DefaultsScheme<V>\n      : () => V;\n\nexport type DefaultsScheme<T> = {\n  [K in WritableKeysOf<T>]?: DefaultsSchemeSource<T[K]>;\n};\n\nexport const MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL = Symbol(\n  'MERGE_DEFAULTS_INDEX_SIGNATURE',\n);\n\nfunction getIndexSignatureScheme(\n  scheme: unknown,\n): DefaultsSchemeSource<any> | undefined {\n  if (!scheme || Array.isArray(scheme) || typeof scheme !== 'object') {\n    return;\n  }\n\n  const symbols = Object.getOwnPropertySymbols(scheme);\n  if (symbols.some((s) => s === MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL)) {\n    return (scheme as any)[MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL];\n  }\n}\n\nexport function createIndexSignatureDefaultsScheme<T>(\n  scheme: DefaultsSchemeSource<T>,\n) {\n  return {\n    [MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL]: scheme,\n  };\n}\n\nexport function mergeDefaults<T>(base: T, scheme: DefaultsScheme<T>): T {\n  const indexSignatureScheme = getIndexSignatureScheme(scheme);\n  if (indexSignatureScheme) {\n    const baseKeys = Object.keys(base as any); // @FIXME\n    const _scheme: any = {};\n    baseKeys.forEach((key) => {\n      _scheme[key] = indexSignatureScheme;\n    });\n    return mergeDefaults(base, _scheme as any);\n  }\n\n  const keys = Object.keys(scheme) as (keyof T)[];\n  for (const key of keys) {\n    const source = (scheme as any)[key];\n    if (!source) {\n      continue;\n    }\n    if (typeof source === 'function') {\n      if (base[key] === undefined) {\n        base[key] = source() as T[typeof key];\n      }\n    } else if (Array.isArray(source)) {\n      const schemeOrFn = source[0] as DefaultsScheme<any> | (() => any);\n      if (!base[key] || !Array.isArray(base[key])) {\n        base[key] = [] as any;\n      }\n\n      const bucket = base[key] as unknown as any[];\n\n      if (typeof schemeOrFn === 'function' && !bucket.length) {\n        bucket.push(...schemeOrFn());\n      }\n\n      if (typeof schemeOrFn === 'object') {\n        const fallbackFn = (source as any)[1] as unknown as\n          | ((notObject: unknown) => any)\n          | undefined;\n        const newItems: any[] = [];\n        bucket.forEach((row) => {\n          if (!row || typeof row !== 'object') {\n            if (fallbackFn) {\n              row = fallbackFn(row);\n              if (row === undefined) {\n                return;\n              }\n            } else {\n              return;\n            }\n          }\n          newItems.push(mergeDefaults(row, schemeOrFn));\n        });\n        base[key] = newItems as any;\n      }\n    } else {\n      if (!isNonNullObject(base[key])) {\n        base[key] = {} as any;\n      }\n      base[key] = mergeDefaults(base[key], source as any);\n    }\n  }\n  return base;\n}\n"]}