sodas-sdk 1.4.4 → 1.5.1
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/dist/SODAS_SDK_CLASS/template/validation.d.ts +1 -0
- package/dist/index.browser.js +3 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.legacy.browser.js +3 -0
- package/dist/index.legacy.browser.js.map +1 -1
- package/dist/index.legacy.node.cjs +3 -0
- package/dist/index.legacy.node.cjs.map +1 -1
- package/dist/index.node.js +3 -0
- package/dist/index.node.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.legacy.browser.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAM,gBAAgB,qBAAM,IAAI,qBAAM,sBAAsB,qBAAM;;AAE1F;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACntD0B;AACqC;AACY;AAC1B;AAEkB;AACH;AAMhE;;GAEG;AACH,MAAM,WAAY,SAAQ,qDAAa;IAKrC;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,WAAW,CAAC,OAAO,GAAG,GAAG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;AACO;AACqB;AAChB;;AAExD;;AAEA,iEAAe;AACf;AACA,oBAAoB,qEAAa;AACjC;AACA,2BAA2B,6DAAY;AACvC,SAAS,oDAAoD;AAC7D;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC,wCAAwC;;AAExC;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAM;AACZ;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,2DAAU,oBAAoB,2DAAU;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,2DAAU,kBAAkB,2DAAU;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,iEAAoB;AACvE;AACA;AACA;AACA,iBAAiB,2DAAU;AAC3B;AACA,2CAA2C,2DAAU,aAAa,2DAAU;AAC5E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM,iDAAK;AACX;AACA,OAAO;AACP;;AAEA;AACA,SAAS,iDAAK;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,sFAAoB;AAChE;AACA;;AAEA;AACA;AACA,wCAAwC,sFAAoB;;AAE5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAa;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,qEAAa;;AAElC,oBAAoB,0DAAQ;AAC5B,iBAAiB,2DAAU,2CAA2C,2DAAU;AAChF;AACA;;;AAGA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMY;;AAEkB;AACM;AACD;AACY;AACL;AACc;AACH;AACJ;AACN;AACN;AACW;AACH;AACL;AACY;AACH;AACJ;AACW;;AAEzD;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA,sBAAsB,sDAAK;AAC3B,mBAAmB,4DAAI,CAAC,sDAAK;;AAE7B;AACA,EAAE,iDAAK,kBAAkB,sDAAK,sBAAsB,iBAAiB;;AAErE;AACA,EAAE,iDAAK,kCAAkC,iBAAiB;;AAE1D;AACA;AACA,0BAA0B,gEAAW;AACrC;;AAEA;AACA;;AAEA;AACA,6BAA6B,0DAAQ;;AAErC;AACA,cAAc,sDAAK;;AAEnB;AACA,sBAAsB,gEAAa;AACnC,oBAAoB,8DAAW;AAC/B,iBAAiB,2DAAQ;AACzB,gBAAgB,iDAAO;AACvB,mBAAmB,8DAAU;;AAE7B;AACA,mBAAmB,4DAAU;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,2DAAM;;AAErB;AACA,qBAAqB,iEAAY;;AAEjC;AACA,oBAAoB,4DAAW;;AAE/B,qBAAqB,8DAAY;;AAEjC,4BAA4B,uEAAc,CAAC,iDAAK;;AAEhD,mBAAmB,8DAAQ;;AAE3B,uBAAuB,mEAAc;;AAErC;;AAEA;AACA,iEAAe,KAAK;;;;;;;;;;;;;;;;;ACxFP;;AAEkC;;AAE/C;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,yDAAa;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACtId;;AAEkC;AACf;;AAEhC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA,EAAE,2DAAU,oDAAoD,2DAAU;AAC1E;AACA;;AAEA,iDAAK,yBAAyB,2DAAU;AACxC;AACA,CAAC;;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACxBhB;;AAEE;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACJa;;AAEqB;AACY;AACW;AACN;AACR;AACI;AACC;AACH;;AAE7C,mBAAmB,6DAAS;;AAE5B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAkB;AACrC,oBAAoB,8DAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oEAAoE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,aAAa,2DAAW;;AAExB,WAAW,yCAAyC;;AAEpD;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAS;AACjB;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,iDAAK;AACzC;AACA;AACA;;AAEA,eAAe,iDAAK;AACpB;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wDAAY;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,qBAAqB,2DAAe;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAe;AAC/B,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,2DAAW;AACxB,qBAAqB,6DAAa;AAClC,WAAW,gEAAQ;AACnB;AACA;;AAEA;AACA,iDAAK;AACL;AACA;AACA,wBAAwB,2DAAW,aAAa;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED,iDAAK;AACL;;AAEA;AACA;AACA,0BAA0B,2DAAW,aAAa;AAClD;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;ACnOR;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,CAAC;;AAED;AACA,kDAAkD,YAAY;;AAE9D;AACA;AACA;;AAEA,EAAE,iDAAK;AACP;AACA,GAAG;AACH;AACA,GAAG;;AAEH;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACtGb;;AAEmB;AACsB;;AAEtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,iDAAK;;AAEZ,MAAM,iDAAK;AACX;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uBAAuB,iDAAK;;AAE5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;;AAEA;AACA,MAAM,iDAAK;;AAEX,QAAQ,iDAAK;AACb;AACA,MAAM,QAAQ,iDAAK;AACnB,iBAAiB,oEAAY;AAC7B,MAAM,SAAS,iDAAK;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iDAAK;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,iDAAK;AACT,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,iDAAK;AACT,sEAAsE,iDAAK;AAC3E,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,iDAAK;;AAET;AACA;AACA;;AAEA;;AAEA;AACA,iDAAK,6CAA6C,MAAM;AACxD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iDAAK;;AAEL,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC7Sf;;AAEqB;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA,eAAe;AACf;AACA;AACA,IAAI,iDAAK;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,kBAAkB,EAAC;;;;;;;;;;;;;;;;;;ACtErB;;AAE2C;AACJ;;AAEpD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACe;AACf,kBAAkB,qEAAa;AAC/B,WAAW,mEAAW;AACtB;AACA;AACA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AEA,wBAAwB,iDAAK;AAC7B;;AAEA,eAAe,kEAAU;AACzB,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK,qBAAqB,iDAAK;AACvC;AACA;;AAEA,gBAAgB,iDAAK;AACrB;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB,2DAAU,SAAS,2DAAU;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,0DAAQ;AACtB,UAAU,0DAAQ;AAClB,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA,CAAC;;AAED,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AChKX;;AAEb,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACNK;;;;;;;;;;;;;;;;ACAM;;AAE4B;;AAEzC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;;AAEA,YAAY,0DAAU;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;ACzDpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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uBAAuB,iDAAK;AAC5B,sBAAsB,iDAAK;AAC3B;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,OAAO,iDAAK;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;AC1Nb;;AAEmB;AACS;AACG;;AAE7B;AACf,SAAS,0DAAU,WAAW,0DAAQ;AACtC;AACA,UAAU,0DAAQ,WAAW,iDAAK;AAClC;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;AChBO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;ACtFa;;AAE0B;AACQ;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA,wBAAwB,iDAAO;AAC/B;;AAEA;AACA;AACA;AACA,gBAAgB,2DAAU;AAC1B;AACA,QAAQ,2DAAU;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA,cAAc,2DAAU,8BAA8B,2DAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAU,yCAAyC,2DAAU;AAC/E;AACA;AACA;AACA;AACA,gBAAgB,2DAAU,0BAA0B,2DAAU;AAC9D;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AC1FU;;AAEZ,iEAAe,yCAAyC;;;;;;;;;;;;;;;;ACF3C;;AAEb,iEAAe,iDAAiD,EAAC;;;;;;;;;;;;;;;;;ACFpD;;AAE+D;AAC5E,iEAAe,2DAA2D,wEAAoB,EAAC;;;;;;;;;;;;;;;;;;;ACHrC;AACd;AACR;;AAEpC,iEAAe;AACf;AACA;AACA,mBAAmB;AACnB,YAAY;AACZ,QAAQ;AACR,GAAG;AACH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;ACZF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAQC;;;;;;;;;;;;;;;;;;AClDsC;AACI;;AAE3C,iEAAe;AACf,KAAK,6CAAK;AACV,KAAK,sDAAQ;AACb,CAAC;;;;;;;;;;;;;;;;;ACNY;;AAEwB;;AAErC;;AAEA,OAAO,UAAU;AACjB,OAAO,gBAAgB;;AAEvB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA,OAAO,SAAS;;AAEhB;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA,2BAA2B,oBAAoB,IAAI;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC;AAClC,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA,gCAAgC,WAAW,IAAI;AAC/C;AACA;AACA,eAAe,4DAAI;AACnB,MAAM;AACN;AACA;AACA,GAAG,GAAG,WAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,eAAe;;AAEzC;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG,WAAW,cAAc;AAC5B,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;UCvvBF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA,+BAA+B;AAC8B;AACR;AACY;AACF;AACQ;AACtC;AAIZ;AAUA;AAME;AAEvB,gDAAgD;AAsB9C;AAEF,gDAAgD;AAChD,MAAM,GAAG,GAAG;IACV,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,MAAM;IACN,WAAW;IACX,OAAO;IACP,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,2BAA2B;IAC3B,kBAAkB;IAClB,IAAI;IACJ,KAAK;IACL,wBAAwB;IACxB,2BAA2B;CAC5B,CAAC;AAEF,qDAAqD;AACrD,iEAAe,GAAG,EAAC","sources":["webpack://SodasSDK/webpack/universalModuleDefinition","webpack://SodasSDK/./node_modules/form-data/lib/browser.js","webpack://SodasSDK/./node_modules/lodash.clonedeep/index.js","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataService.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataset.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/datasetSeries.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/distribution.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/versionInfo.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dcatClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/term.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/vocabulary.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/governanceClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/sodasSDKClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/template/validation.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/dataFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/sodasSDKFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/thumbnailFile.ts","webpack://SodasSDK/./lib/core/auth.ts","webpack://SodasSDK/./lib/core/error.ts","webpack://SodasSDK/./lib/core/init.ts","webpack://SodasSDK/./lib/core/type.ts","webpack://SodasSDK/./lib/core/util.ts","webpack://SodasSDK/./lib/core/values.ts","webpack://SodasSDK/ignored|/Users/pollo/Desktop/sodas_sdk/lib/SODAS_SDK_FILE|fs","webpack://SodasSDK/ignored|/Users/pollo/Desktop/sodas_sdk/lib/SODAS_SDK_FILE|path","webpack://SodasSDK/./node_modules/axios/lib/adapters/adapters.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/fetch.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/xhr.js","webpack://SodasSDK/./node_modules/axios/lib/axios.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CancelToken.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CanceledError.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/isCancel.js","webpack://SodasSDK/./node_modules/axios/lib/core/Axios.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/core/InterceptorManager.js","webpack://SodasSDK/./node_modules/axios/lib/core/buildFullPath.js","webpack://SodasSDK/./node_modules/axios/lib/core/dispatchRequest.js","webpack://SodasSDK/./node_modules/axios/lib/core/mergeConfig.js","webpack://SodasSDK/./node_modules/axios/lib/core/settle.js","webpack://SodasSDK/./node_modules/axios/lib/core/transformData.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/index.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/transitional.js","webpack://SodasSDK/./node_modules/axios/lib/env/data.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/bind.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/buildURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/combineURLs.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/composeSignals.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/cookies.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/null.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/speedometer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/spread.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/throttle.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toFormData.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/trackStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/validator.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/index.js","webpack://SodasSDK/./node_modules/axios/lib/platform/common/utils.js","webpack://SodasSDK/./node_modules/axios/lib/platform/index.js","webpack://SodasSDK/./node_modules/axios/lib/utils.js","webpack://SodasSDK/webpack/bootstrap","webpack://SodasSDK/webpack/runtime/compat get default export","webpack://SodasSDK/webpack/runtime/define property getters","webpack://SodasSDK/webpack/runtime/global","webpack://SodasSDK/webpack/runtime/hasOwnProperty shorthand","webpack://SodasSDK/webpack/runtime/make namespace object","webpack://SodasSDK/webpack/runtime/node module decorator","webpack://SodasSDK/./lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SodasSDK\"] = factory();\n\telse\n\t\troot[\"SodasSDK\"] = factory();\n})(typeof self !== 'undefined' ? self : this, () => {\nreturn ","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","import axios from \"axios\";\nimport {UnexpectedResponseFormatError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\nexport interface DataServiceDTO extends DCAT_RESOURCE_DTO {\n DataServiceID?: string;\n EndpointURL?: string;\n EndpointDescription?: string;\n}\n/**\n * Represents a Data Service DTO.\n */\nclass DataService extends DCAT_RESOURCE {\n private DataServiceID: IDType;\n private EndpointURL: string;\n private EndpointDescription: string;\n\n /**\n * Initializes the API URL for DataService.\n *\n * @static\n * @param {string} url - The base URL of the API.\n */\n static configureAPIURL(url: string) {\n DataService.API_URL = `${url}/dataservice`;\n DataService.LIST_URL = `${DataService.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DataService.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DataService.BEARER_TOKEN && {\n Authorization: `Bearer ${DataService.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new DataService();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new this();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DataServiceDTO {\n return {\n ...super.toDTO(),\n ...(this.DataServiceID && {DataServiceID: this.DataServiceID}),\n EndpointURL: this.EndpointURL,\n EndpointDescription: this.EndpointDescription,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dataServiceDTO = dto as DataServiceDTO;\n dataServiceDTO.DataServiceID &&\n (this.DataServiceID = asID(dataServiceDTO.DataServiceID));\n dataServiceDTO.EndpointURL &&\n (this.EndpointURL = dataServiceDTO.EndpointURL);\n dataServiceDTO.EndpointDescription &&\n (this.EndpointDescription = dataServiceDTO.EndpointDescription);\n }\n\n get dataServiceID(): IDType {\n return this.DataServiceID;\n }\n\n get endpointURL(): string {\n return this.EndpointURL;\n }\n set endpointURL(value: string) {\n this.EndpointURL = value;\n }\n\n get endpointDescription(): string {\n return this.EndpointDescription;\n }\n set endpointDescription(value: string) {\n this.EndpointDescription = value;\n }\n}\n\nexport default DataService;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\nimport Distribution from \"./distribution\";\n\nexport interface DatasetDTO extends DCAT_RESOURCE_DTO {\n DatasetID?: string;\n InSeriesID?: string;\n FirstID?: string;\n PreviousID?: string;\n NextID?: string;\n LastID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n DistributionIDs?: string[]; // Distribution is always returned in API\n}\n/**\n * Represents a Dataset Data Transfer Object (DTO).\n */\nclass Dataset extends DCAT_RESOURCE {\n private DatasetID: IDType;\n private InSeriesID: IDType;\n private FirstID: IDType;\n private PreviousID: IDType;\n private NextID: IDType;\n private LastID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private DistributionIDs: IDType[];\n private Distributions: Distribution[];\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n Dataset.API_URL = `${url}/dataset`;\n Dataset.LIST_URL = `${Dataset.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<Dataset>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = Dataset.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new Dataset();\n await dataset.populateFromDTO(item);\n return dataset;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${Dataset.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<Dataset>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new this();\n await dataset.populateFromDTO(item);\n return dataset;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetDTO {\n return {\n ...super.toDTO(),\n\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetDTO = dto as DatasetDTO;\n datasetDTO.DatasetID && (this.DatasetID = asID(datasetDTO.DatasetID));\n datasetDTO.InSeriesID && (this.InSeriesID = asID(datasetDTO.InSeriesID));\n datasetDTO.Frequency && (this.Frequency = datasetDTO.Frequency);\n datasetDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters = datasetDTO.SpatialResolutionInMeters);\n datasetDTO.TemporalResolution &&\n (this.TemporalResolution = datasetDTO.TemporalResolution);\n datasetDTO.Spatial && (this.Spatial = datasetDTO.Spatial);\n datasetDTO.Temporal && (this.Temporal = datasetDTO.Temporal);\n datasetDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetDTO.WasGeneratedBy);\n\n datasetDTO.FirstID && (this.FirstID = asID(datasetDTO.FirstID));\n datasetDTO.PreviousID && (this.PreviousID = asID(datasetDTO.PreviousID));\n datasetDTO.NextID && (this.NextID = asID(datasetDTO.NextID));\n datasetDTO.LastID && (this.LastID = asID(datasetDTO.LastID));\n\n await this.populateDistributionFromDTO(dto);\n }\n\n public async populateDistributionFromDTO(dto: DatasetDTO): Promise<void> {\n if (dto.DistributionIDs) {\n this.DistributionIDs = dto.DistributionIDs.map((stringID) =>\n asID(stringID)\n );\n this.Distributions = await Promise.all(\n dto.DistributionIDs.map(async (distributionID: IDType) => {\n return await Distribution.getDBRecord(distributionID);\n })\n );\n }\n }\n\n public static async syncToCurrentHub(dataset: Dataset): Promise<void> {\n try {\n const checkExisting = await Dataset.getDBRecordByAssetID(\n asID(dataset.assetID)\n );\n if (checkExisting) {\n checkExisting.populateToSync(dataset);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDataset = new Dataset();\n newDataset.populateToSync(dataset);\n await newDataset.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n public populateToSync(source: Dataset): void {\n const excludedKeys = new Set([\n \"ID\",\n \"DatasetID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"InSeriesID\",\n \"FirstID\",\n \"PreviousID\",\n \"NextID\",\n \"LastID\",\n \"DistributionIDs\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"Distributions\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n // Handle distributions separately so that we can preserve identity fields\n // of existing distributions while syncing other fields, and create new\n // distributions for any additional ones in the source.\n const sourceDistributions = (source as any).Distributions as\n | Distribution[]\n | undefined;\n if (!sourceDistributions || sourceDistributions.length === 0) {\n return;\n }\n\n this.Distributions = [];\n\n for (let i = 0; i < sourceDistributions.length; i++) {\n const srcDist = sourceDistributions[i];\n const targetDist = new Distribution();\n targetDist.populateToSync(srcDist);\n this.Distributions.push(targetDist);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const distributions = this.Distributions;\n await super.createDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions && this.Distributions.length != 0) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n }\n\n private async deleteNotMaintainedDistributions() {\n if (this.DistributionIDs && this.DistributionIDs.length != 0) {\n const existingIDs = this.DistributionIDs;\n const maintainedIDs = asIDs(\n this.Distributions.map((distribution) => distribution.id).filter(\n (id) => id !== undefined\n )\n );\n const scheduledToDeletedIDs = existingIDs.filter(\n (id) => !maintainedIDs.includes(id)\n );\n const scheduledToDeletedDistributions = await Promise.all(\n scheduledToDeletedIDs.map(async (ID) => {\n return await Distribution.getDBRecord(ID);\n })\n );\n await Promise.all(\n scheduledToDeletedDistributions.map(async (distribution) => {\n await distribution.deleteDBRecord();\n })\n );\n this.DistributionIDs = maintainedIDs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const distributions = this.Distributions;\n await super.updateDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n if (distribution.id) {\n await distribution.updateDBRecord();\n } else {\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n await this.deleteNotMaintainedDistributions();\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.Distributions && this.Distributions.length != 0) {\n for (let i = 0; i < this.Distributions.length; i++) {\n if (this.Distributions[i].hasDBRecord()) {\n await this.Distributions[i].deleteDBRecord();\n }\n destroy(this.Distributions[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public get distributions(): Distribution[] {\n return this.Distributions;\n }\n\n public getDistributionUsingIndex(index: number): Distribution {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n return this.Distributions[index];\n }\n\n public appendDistribution(distribution: Distribution) {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n if (distribution instanceof Distribution) {\n this.Distributions.push(distribution);\n } else {\n throw new InvalidTypeError(distribution, \"Distribution\");\n }\n }\n\n /**\n * Creates and adds a new distribution to the dataset.\n * @returns {Distribution} The newly created distribution.\n */\n public createDistribution(): Distribution {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n const newDistribution = new Distribution();\n this.Distributions.push(newDistribution);\n return newDistribution;\n }\n\n public removeDistributionUsingIndex(index: number) {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n this.Distributions.splice(index, 1);\n }\n\n public get datasetID(): IDType {\n return this.DatasetID;\n }\n\n public get inSeriesID(): IDType {\n return this.InSeriesID;\n }\n\n public get firstID(): IDType {\n return this.FirstID;\n }\n\n public get previousID(): IDType {\n return this.PreviousID;\n }\n\n public get nextID(): IDType {\n return this.NextID;\n }\n\n public get lastID(): IDType {\n return this.LastID;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default Dataset;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n NotInitializedError,\n NotRecordedArgumentError,\n SwitchSameIndexError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Dataset from \"./dataset\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\ninterface DatasetSeriesDTO extends DCAT_RESOURCE_DTO {\n DatasetSeriesID?: string;\n InSeriesID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n SeriesMemberIDs?: string[];\n}\n\n/**\n * Represents a series of datasets.\n */\nclass DatasetSeries extends DCAT_RESOURCE {\n private DatasetSeriesID: IDType;\n private InSeriesID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private SeriesMembers: Dataset[];\n private SeriesMemberIDs: IDType[];\n\n public static async syncToCurrentHub(\n datasetSeries: DatasetSeries,\n ): Promise<void> {\n try {\n const checkExisting = await DatasetSeries.getDBRecordByAssetID(\n asID(datasetSeries.assetID),\n );\n if (checkExisting) {\n await checkExisting.populateToSync(datasetSeries);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDatasetSeries = new DatasetSeries();\n await newDatasetSeries.populateToSync(datasetSeries);\n await newDatasetSeries.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n /**\n * Populates this instance with values from the given DatasetSeries, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Version/lineage fields (IsVersionOf, PreviousVersionID, NextVersionID, VersionInfos)\n * - Series identity fields (DatasetSeriesID, InSeriesID)\n * - Fields explicitly set to `undefined` on the source instance\n *\n * Additionally, when SeriesMembers are present on the source, this method\n * resolves each member via Dataset.getDBRecordByAssetID (by AssetID) and\n * replaces this.SeriesMemberIDs with the resolved IDs.\n */\n public async populateToSync(source: DatasetSeries): Promise<void> {\n const excludedKeys = new Set([\n \"ID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"DatasetSeriesID\",\n \"InSeriesID\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"SeriesMembers\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n\n this.SeriesMembers = [];\n\n const sourceMembers = (source as any).SeriesMembers as\n | Dataset[]\n | undefined;\n if (!sourceMembers || sourceMembers.length === 0) {\n return;\n }\n\n const resolvedIDs: IDType[] = [];\n for (const member of sourceMembers) {\n if (!member) continue;\n const assetIDStr = member.assetID;\n if (!assetIDStr) continue;\n const assetID = asID(assetIDStr);\n // Prefer existing record by AssetID; if not found, create a new one.\n try {\n const existing = await Dataset.getDBRecordByAssetID(assetID);\n if (existing) {\n existing.populateToSync(member);\n await existing.updateDBRecord();\n resolvedIDs.push(existing.id);\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newMember = new Dataset();\n newMember.populateToSync(member);\n await newMember.createDBRecord();\n resolvedIDs.push(newMember.id);\n } else {\n throw error;\n }\n }\n }\n this.SeriesMemberIDs = resolvedIDs;\n }\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n DatasetSeries.API_URL = `${url}/datasetseries`;\n DatasetSeries.LIST_URL = `${DatasetSeries.API_URL}/list`;\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${DatasetSeries.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DatasetSeries.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new DatasetSeries();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n },\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new this();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetSeriesDTO {\n const result = {\n ...super.toDTO(),\n\n ...(this.DatasetSeriesID && {DatasetSeriesID: this.DatasetSeriesID}),\n ...(this.InSeriesID && {InSeriesID: this.InSeriesID}),\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n ...(this.SeriesMemberIDs && {SeriesMemberIDs: this.SeriesMemberIDs}),\n };\n return result;\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetSeriesDTO = dto as DatasetSeriesDTO;\n datasetSeriesDTO.DatasetSeriesID &&\n (this.DatasetSeriesID = asID(datasetSeriesDTO.DatasetSeriesID));\n datasetSeriesDTO.InSeriesID &&\n (this.InSeriesID = asID(datasetSeriesDTO.InSeriesID));\n datasetSeriesDTO.Frequency && (this.Frequency = datasetSeriesDTO.Frequency);\n datasetSeriesDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n datasetSeriesDTO.SpatialResolutionInMeters);\n datasetSeriesDTO.TemporalResolution &&\n (this.TemporalResolution = datasetSeriesDTO.TemporalResolution);\n datasetSeriesDTO.Spatial && (this.Spatial = datasetSeriesDTO.Spatial);\n datasetSeriesDTO.Temporal && (this.Temporal = datasetSeriesDTO.Temporal);\n datasetSeriesDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetSeriesDTO.WasGeneratedBy);\n\n await this.populateSeriesMembersFromDTO(datasetSeriesDTO);\n }\n\n public async populateSeriesMembersFromDTO(\n dto: DatasetSeriesDTO,\n ): Promise<void> {\n this.SeriesMembers = [];\n if (dto.SeriesMemberIDs && dto.SeriesMemberIDs.length != 0) {\n this.SeriesMemberIDs = asIDs(dto.SeriesMemberIDs);\n if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {\n for (const seriesMemberID of this.SeriesMemberIDs) {\n const seriesMember = await Dataset.getDBRecord(seriesMemberID);\n if (seriesMember) {\n this.SeriesMembers.push(seriesMember);\n }\n }\n }\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.SeriesMembers) {\n for (let i = 0; i < this.SeriesMembers.length; i++) {\n destroy(this.SeriesMembers[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public appendSeriesMember(dataset: Dataset) {\n if (!this.SeriesMemberIDs) {\n this.SeriesMemberIDs = [];\n }\n if (!(dataset instanceof Dataset)) {\n throw new InvalidTypeError(dataset, \"Dataset\");\n }\n if (!dataset.id) {\n throw new NotRecordedArgumentError(dataset);\n }\n this.SeriesMemberIDs.push(dataset.id);\n }\n\n public switchSeriesMembers(index1: number, index2: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index1 < 0 || index1 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index1);\n }\n if (index2 < 0 || index2 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index2);\n }\n if (index1 === index2) {\n throw new SwitchSameIndexError(index1);\n }\n\n const temp = this.SeriesMemberIDs[index1];\n this.SeriesMemberIDs[index1] = this.SeriesMemberIDs[index2];\n this.SeriesMemberIDs[index2] = temp;\n }\n\n public removeSeriesMember(index: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index < 0 || index >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index);\n }\n\n this.SeriesMemberIDs.splice(index, 1);\n if (this.SeriesMembers && index < this.SeriesMembers.length) {\n this.SeriesMembers.splice(index, 1);\n }\n }\n\n public get datasetSeriesID(): IDType {\n return this.DatasetSeriesID;\n }\n public get seriesMemberIDs(): IDType[] {\n return this.SeriesMemberIDs;\n }\n public get seriesMembers(): Dataset[] {\n return this.SeriesMembers;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default DatasetSeries;\n","import {InvalidTypeError, NotRecordedYetError} from \"../../core/error\";\nimport {\n asID,\n ExtraMetadataType,\n IDType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nimport ThumbnailFile from \"../../SODAS_SDK_FILE/thumbnailFile\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport VersionInfo, {VersionInfoDTO} from \"./versionInfo\";\n\nexport interface DCAT_RESOURCE_DTO extends DCAT_MODEL_DTO {\n //ResourceType is always determined in backend.\n ResourceType?: string;\n\n AssetID?: string;\n DatahubID?: string;\n ThumbnailURL?: string;\n AccessRights?: string;\n Status?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string;\n PreviousVersionID?: string;\n NextVersionID?: string;\n ContactPoint?: string;\n KeywordML?: MultiLanguageKeywords; // Adjust to specific type if available\n LandingPage?: string;\n Theme?: string;\n ConformsTo?: string;\n Creator?: string;\n DescriptionML?: any; // Adjust to specific type if available\n Identifier?: string;\n IsReferencedBy?: any[]; // Adjust to specific type if available\n Language?: any[]; // Adjust to specific type if available\n License?: string;\n Publisher?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific type if available\n Type?: string;\n HasPolicy?: any[];\n IssuerID?: string;\n ExtraMetadata?: ExtraMetadataType;\n\n VersionInfo?: VersionInfoDTO[];\n}\n\nabstract class DCAT_RESOURCE extends DCAT_MODEL {\n protected Thumbnail: ThumbnailFile;\n\n private ResourceType: string;\n\n private AssetID: IDType;\n private DatahubID: IDType;\n private ThumbnailURL: string;\n private AccessRights: string;\n private Status: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf: IDType;\n private PreviousVersionID: IDType;\n private NextVersionID: IDType;\n private ContactPoint: string;\n private KeywordML: MultiLanguageKeywords;\n private LandingPage: string;\n private Theme: string;\n private ConformsTo: string;\n private Creator: string;\n private DescriptionML: MultiLanguageField;\n private Identifier: string;\n private IsReferencedBy: any[];\n private Language: any[];\n private License: string;\n private Publisher: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private Type: string;\n private HasPolicy: any[];\n private IssuerID: string;\n private ExtraMetadata: ExtraMetadataType;\n\n private VersionInfos: VersionInfo[];\n\n public toDTO(): DCAT_RESOURCE_DTO {\n return {\n ...super.toDTO(),\n AssetID: this.AssetID,\n DatahubID: this.DatahubID,\n ThumbnailURL: this.ThumbnailURL,\n AccessRights: this.AccessRights,\n Status: this.Status,\n VersionNotes: this.VersionNotes,\n Version: this.Version,\n ...(this.IsVersionOf && {IsVersionOf: this.IsVersionOf}),\n ...(this.PreviousVersionID && {\n PreviousVersionID: this.PreviousVersionID,\n }),\n ...(this.NextVersionID && {NextVersionID: this.NextVersionID}),\n ContactPoint: this.ContactPoint,\n KeywordML: this.KeywordML,\n LandingPage: this.LandingPage,\n Theme: this.Theme,\n ConformsTo: this.ConformsTo,\n Creator: this.Creator,\n DescriptionML: this.DescriptionML,\n Identifier: this.Identifier,\n IsReferencedBy: this.IsReferencedBy,\n Language: this.Language,\n License: this.License,\n Publisher: this.Publisher,\n Rights: this.Rights,\n TitleML: this.TitleML,\n Type: this.Type,\n HasPolicy: this.HasPolicy,\n IssuerID: this.IssuerID,\n ExtraMetadata: this.ExtraMetadata,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dcatResourceDTO = dto as DCAT_RESOURCE_DTO;\n\n dcatResourceDTO.ResourceType &&\n (this.ResourceType = dcatResourceDTO.ResourceType);\n\n dcatResourceDTO.AssetID && (this.AssetID = asID(dcatResourceDTO.AssetID));\n dcatResourceDTO.DatahubID &&\n (this.DatahubID = asID(dcatResourceDTO.DatahubID));\n dcatResourceDTO.ThumbnailURL &&\n (this.ThumbnailURL = dcatResourceDTO.ThumbnailURL);\n dcatResourceDTO.AccessRights &&\n (this.AccessRights = dcatResourceDTO.AccessRights);\n dcatResourceDTO.Status && (this.Status = dcatResourceDTO.Status);\n dcatResourceDTO.VersionNotes &&\n (this.VersionNotes = dcatResourceDTO.VersionNotes);\n dcatResourceDTO.Version && (this.Version = dcatResourceDTO.Version);\n dcatResourceDTO.IsVersionOf &&\n (this.IsVersionOf = asID(dcatResourceDTO.IsVersionOf));\n dcatResourceDTO.PreviousVersionID &&\n (this.PreviousVersionID = asID(dcatResourceDTO.PreviousVersionID));\n dcatResourceDTO.NextVersionID &&\n (this.NextVersionID = asID(dcatResourceDTO.NextVersionID));\n dcatResourceDTO.ContactPoint &&\n (this.ContactPoint = dcatResourceDTO.ContactPoint);\n dcatResourceDTO.KeywordML && (this.KeywordML = dcatResourceDTO.KeywordML);\n dcatResourceDTO.LandingPage &&\n (this.LandingPage = dcatResourceDTO.LandingPage);\n dcatResourceDTO.Theme && (this.Theme = dcatResourceDTO.Theme);\n dcatResourceDTO.ConformsTo &&\n (this.ConformsTo = dcatResourceDTO.ConformsTo);\n dcatResourceDTO.Creator && (this.Creator = dcatResourceDTO.Creator);\n dcatResourceDTO.DescriptionML &&\n (this.DescriptionML = dcatResourceDTO.DescriptionML);\n dcatResourceDTO.Identifier &&\n (this.Identifier = dcatResourceDTO.Identifier);\n dcatResourceDTO.IsReferencedBy &&\n (this.IsReferencedBy = dcatResourceDTO.IsReferencedBy);\n dcatResourceDTO.Language && (this.Language = dcatResourceDTO.Language);\n dcatResourceDTO.License && (this.License = dcatResourceDTO.License);\n dcatResourceDTO.Publisher && (this.Publisher = dcatResourceDTO.Publisher);\n dcatResourceDTO.Rights && (this.Rights = dcatResourceDTO.Rights);\n dcatResourceDTO.TitleML && (this.TitleML = dcatResourceDTO.TitleML);\n dcatResourceDTO.Type && (this.Type = dcatResourceDTO.Type);\n dcatResourceDTO.HasPolicy && (this.HasPolicy = dcatResourceDTO.HasPolicy);\n dcatResourceDTO.IssuerID && (this.IssuerID = dcatResourceDTO.IssuerID);\n dcatResourceDTO.ExtraMetadata &&\n (this.ExtraMetadata = dcatResourceDTO.ExtraMetadata);\n await this.populateVersionInfoFromDTO(dcatResourceDTO);\n }\n\n public async populateVersionInfoFromDTO(\n dto: DCAT_RESOURCE_DTO,\n ): Promise<void> {\n if (dto.VersionInfo && dto.VersionInfo.length != 0) {\n this.VersionInfos = await Promise.all(\n dto.VersionInfo.map(async (veresionInfoDTO: VersionInfoDTO) => {\n const versionInfo = new VersionInfo();\n await versionInfo.populateFromDTO(veresionInfoDTO);\n return versionInfo;\n }),\n );\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.Thumbnail;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.Thumbnail;\n }\n\n public setThumbnailForBrowser(file: File) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForBrowser(file);\n }\n\n public setThumbnailForNode(thumbnailPath: string) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForNode(thumbnailPath);\n }\n\n get assetID(): string {\n return this.AssetID;\n }\n\n get versionInfos(): VersionInfo[] {\n return this.VersionInfos;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n set previousVersion(previousVersion: DCAT_RESOURCE) {\n if (!(previousVersion instanceof DCAT_RESOURCE)) {\n throw new InvalidTypeError(previousVersion, \"DCAT_RESOURCE\");\n }\n if (!previousVersion.hasDBRecord()) {\n throw new NotRecordedYetError(previousVersion);\n }\n this.PreviousVersionID = previousVersion.id;\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get datahubID(): string {\n return this.DatahubID;\n }\n\n get thumbnailURL(): string {\n return this.ThumbnailURL;\n }\n\n get accessRights(): string {\n return this.AccessRights;\n }\n set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n get status(): string {\n return this.Status;\n }\n set status(value: string) {\n this.Status = value;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n set versionNotes(value: string) {\n this.VersionNotes = value;\n }\n\n get version(): string {\n return this.Version;\n }\n set version(value: string) {\n this.Version = value;\n }\n\n get contactPoint(): string {\n return this.ContactPoint;\n }\n set contactPoint(value: string) {\n this.ContactPoint = value;\n }\n\n get landingPage(): string {\n return this.LandingPage;\n }\n set landingPage(value: string) {\n this.LandingPage = value;\n }\n\n get theme(): string {\n return this.Theme;\n }\n set theme(value: string) {\n this.Theme = value;\n }\n\n get conformsTo(): string {\n return this.ConformsTo;\n }\n set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n get creator(): string {\n return this.Creator;\n }\n set creator(value: string) {\n this.Creator = value;\n }\n\n get identifier(): string {\n return this.Identifier;\n }\n get language(): any[] {\n return this.Language;\n }\n set language(value: any[]) {\n this.Language = value;\n }\n\n get license(): string {\n return this.License;\n }\n set license(value: string) {\n this.License = value;\n }\n\n get publisher(): string {\n return this.Publisher;\n }\n set publisher(value: string) {\n this.Publisher = value;\n }\n\n get rights(): any[] {\n return this.Rights;\n }\n set rights(value: any[]) {\n this.Rights = value;\n }\n\n get type(): string {\n return this.Type;\n }\n set type(value: string) {\n this.Type = value;\n }\n\n get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n get issuerID(): string {\n return this.IssuerID;\n }\n set issuerID(value: string) {\n this.IssuerID = value;\n }\n\n public setExtraMetadata(name: string, value: string) {\n if (!this.ExtraMetadata) {\n this.ExtraMetadata = {};\n }\n this.ExtraMetadata[name] = value;\n }\n\n public getExtraMetadata(name: string): string | undefined {\n if (!this.ExtraMetadata) {\n return undefined;\n }\n return this.ExtraMetadata[name];\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`,\n );\n }\n }\n\n public setKeywords(keywords: string[], languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n this.KeywordML[languageCode] = keywords;\n }\n\n public addKeyword(keyword: string, languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n if (!this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = [];\n }\n if (!this.KeywordML[languageCode].includes(keyword)) {\n this.KeywordML[languageCode].push(keyword);\n }\n }\n\n public removeKeyword(keyword: string, languageCode: string = \"ko\") {\n if (this.KeywordML && this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = this.KeywordML[languageCode].filter(\n (k) => k !== keyword,\n );\n if (this.KeywordML[languageCode].length === 0) {\n delete this.KeywordML[languageCode]; // Remove the language entry if empty\n }\n }\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n return this.KeywordML[languageCode] ?? [];\n }\n}\n\nexport default DCAT_RESOURCE;\n","import DataFile from \"../../SODAS_SDK_FILE/dataFile\";\nimport {IDType, MultiLanguageField, asID} from \"../../core/type\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\n\nexport interface DistributionDTO extends DCAT_MODEL_DTO {\n AccessServiceID?: string;\n AccessURL?: string;\n ByteSize?: number;\n CompressFormat?: string;\n DownloadURL?: string;\n MediaType?: string;\n PackageFormat?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n AccessRights?: string;\n ConformsTo?: string;\n DescriptionML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n Format?: string;\n License?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n HasPolicy?: any[];\n Checksum?: string;\n\n IsDistributionOf?: string;\n}\n\nclass Distribution extends DCAT_MODEL {\n static UPLOAD_API_URL: string;\n static DOWNLOAD_API_URL: string;\n\n private UploadingData: DataFile;\n\n private IsDistributionOf: IDType;\n private AccessServiceID: IDType;\n private AccessURL: string;\n private ByteSize: number;\n private CompressFormat: string;\n private DownloadURL: string;\n private MediaType: string;\n private PackageFormat: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private AccessRights: string;\n private ConformsTo: string;\n private DescriptionML: MultiLanguageField;\n private Format: string;\n private License: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private HasPolicy: any[];\n private Checksum: string;\n\n /**\n * Populates this instance with values from the given Distribution, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Fields that are explicitly set to `undefined` on the source instance\n */\n public populateToSync(source: Distribution): void {\n const excludedKeys = new Set([\"ID\", \"IsDistributionOf\", \"AccessServiceID\"]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n }\n\n public toDTO(): DistributionDTO {\n return {\n ...super.toDTO(),\n ...(this.IsDistributionOf && {IsDistributionOf: this.IsDistributionOf}),\n ...(this.AccessServiceID && {AccessServiceID: this.AccessServiceID}),\n AccessURL: this.AccessURL,\n ByteSize: this.ByteSize,\n CompressFormat: this.CompressFormat,\n DownloadURL: this.DownloadURL,\n MediaType: this.MediaType,\n PackageFormat: this.PackageFormat,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n AccessRights: this.AccessRights,\n ConformsTo: this.ConformsTo,\n DescriptionML: this.DescriptionML,\n Format: this.Format,\n License: this.License,\n Rights: this.Rights,\n TitleML: this.TitleML,\n HasPolicy: this.HasPolicy,\n Checksum: this.Checksum,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const distributionDTO = dto as DistributionDTO;\n distributionDTO.AccessServiceID &&\n (this.AccessServiceID = asID(distributionDTO.AccessServiceID));\n distributionDTO.AccessURL && (this.AccessURL = distributionDTO.AccessURL);\n distributionDTO.ByteSize && (this.ByteSize = distributionDTO.ByteSize);\n distributionDTO.CompressFormat &&\n (this.CompressFormat = distributionDTO.CompressFormat);\n distributionDTO.DownloadURL &&\n (this.DownloadURL = distributionDTO.DownloadURL);\n distributionDTO.MediaType && (this.MediaType = distributionDTO.MediaType);\n distributionDTO.PackageFormat &&\n (this.PackageFormat = distributionDTO.PackageFormat);\n distributionDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n distributionDTO.SpatialResolutionInMeters);\n distributionDTO.TemporalResolution &&\n (this.TemporalResolution = distributionDTO.TemporalResolution);\n distributionDTO.AccessRights &&\n (this.AccessRights = distributionDTO.AccessRights);\n distributionDTO.ConformsTo &&\n (this.ConformsTo = distributionDTO.ConformsTo);\n distributionDTO.DescriptionML &&\n (this.DescriptionML = distributionDTO.DescriptionML);\n distributionDTO.Format && (this.Format = distributionDTO.Format);\n distributionDTO.License && (this.License = distributionDTO.License);\n distributionDTO.Rights && (this.Rights = distributionDTO.Rights);\n distributionDTO.TitleML && (this.TitleML = distributionDTO.TitleML);\n distributionDTO.HasPolicy && (this.HasPolicy = distributionDTO.HasPolicy);\n distributionDTO.Checksum && (this.Checksum = distributionDTO.Checksum);\n distributionDTO.IsDistributionOf &&\n (this.IsDistributionOf = asID(distributionDTO.IsDistributionOf));\n }\n\n /**\n * Initializes or updates the API URLs for the Distribution class.\n *\n * @static\n * @param {string} url - The base URL for the distribution API.\n */\n static configureAPIURL(url: string) {\n Distribution.API_URL = `${url}/distribution`;\n Distribution.LIST_URL = `${Distribution.API_URL}/list`;\n Distribution.UPLOAD_API_URL = `${url}/data/upload`;\n Distribution.DOWNLOAD_API_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.configureBucketName(bucketName);\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setUploadingDataForBrowser(file: File) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForBrowser(file);\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setUploadingDataForNode(filePath: string) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForNode(filePath);\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.UploadingData;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.UploadingData;\n }\n\n // AccessServiceID\n public get accessServiceID(): IDType {\n return this.AccessServiceID;\n }\n\n // AccessURL\n public get accessURL(): string {\n return this.AccessURL;\n }\n public set accessURL(value: string) {\n this.AccessURL = value;\n }\n\n // ByteSize\n public get byteSize(): number {\n return this.ByteSize;\n }\n public set byteSize(value: number) {\n this.ByteSize = value;\n }\n\n // DownloadURL\n public get downloadURL(): string {\n return this.DownloadURL;\n }\n\n public set downloadURL(value: string) {\n this.DownloadURL = value;\n }\n\n // MediaType\n public get mediaType(): string {\n return this.MediaType;\n }\n\n public set mediaType(value: string) {\n this.MediaType = value;\n }\n\n // PackageFormat\n public get packageFormat(): string {\n return this.PackageFormat;\n }\n\n public set packageFormat(value: string) {\n this.PackageFormat = value;\n }\n\n // SpatialResolutionInMeters\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n // TemporalResolution\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n // AccessRights\n public get accessRights(): string {\n return this.AccessRights;\n }\n\n public set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n // ConformsTo\n public get conformsTo(): string {\n return this.ConformsTo;\n }\n\n public set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`\n );\n }\n }\n\n // Format\n public get format(): string {\n return this.Format;\n }\n public set format(value: string) {\n this.Format = value;\n }\n\n // CompressFormat\n public get compressFormat(): string {\n return this.CompressFormat;\n }\n public set compressFormat(value: string) {\n this.CompressFormat = value;\n }\n\n // License\n public get license(): string {\n return this.License;\n }\n public set license(value: string) {\n this.License = value;\n }\n\n // Rights\n public get rights(): any[] {\n return this.Rights;\n }\n public set rights(value: any[]) {\n this.Rights = value;\n }\n\n public get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n public set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n // Checksum\n public get checksum(): string {\n return this.Checksum;\n }\n public set checksum(value: string) {\n this.Checksum = value;\n }\n\n // IsDistributionOf\n public get isDistributionOf(): IDType {\n return this.IsDistributionOf;\n }\n public set isDistributionOf(value: string) {\n this.IsDistributionOf = asID(value);\n }\n}\n\nexport default Distribution;\n","import {\n asID,\n asIRI,\n IDType,\n IRIType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nexport interface VersionInfoDTO {\n ID?: string; // ID from core.Model\n TitleML?: MultiLanguageField;\n DescriptionML?: MultiLanguageField;\n IRI?: string;\n KeywordML?: MultiLanguageKeywords;\n ResourceType?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string; // UUID as string\n NextVersionID?: string; // UUID as string\n PreviousVersionID?: string; // UUID as string\n}\n\n/**\n * Represents version information for a resource.\n */\nclass VersionInfo {\n private ID?: IDType;\n private TitleML: MultiLanguageField;\n private DescriptionML: MultiLanguageField;\n private IRI: IRIType;\n private KeywordML: MultiLanguageKeywords;\n private ResourceType: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf?: string;\n private NextVersionID?: string;\n private PreviousVersionID?: string;\n\n public async populateFromDTO(dto: VersionInfoDTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.TitleML && (this.TitleML = dto.TitleML);\n dto.DescriptionML && (this.DescriptionML = dto.DescriptionML);\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.KeywordML && (this.KeywordML = dto.KeywordML);\n dto.ResourceType && (this.ResourceType = dto.ResourceType);\n dto.VersionNotes && (this.VersionNotes = dto.VersionNotes);\n dto.Version && (this.Version = dto.Version);\n dto.IsVersionOf && (this.IsVersionOf = dto.IsVersionOf);\n dto.NextVersionID && (this.NextVersionID = dto.NextVersionID);\n dto.PreviousVersionID && (this.PreviousVersionID = dto.PreviousVersionID);\n }\n\n get id(): IDType {\n return this.ID;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n get iri(): IRIType {\n return this.IRI;\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n return this.KeywordML[languageCode] || [];\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n\n get version(): string {\n return this.Version;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n}\n\nexport default VersionInfo;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID, asIRI} from \"../core/type\";\nimport {LARGE_ENOUGH_NUMBER, destroy, handleAxiosError} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\n\ninterface DCAT_MODEL_STATIC<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof DCAT_MODEL.listDBRecords;\n}\nexport interface DCAT_MODEL_DTO {\n ID?: string;\n IRI?: string;\n\n Issued?: string;\n Modified?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n}\n\nabstract class DCAT_MODEL extends SODAS_SDK_CLASS {\n protected CreatedAt: Date;\n protected UpdatedAt: Date;\n\n public toDTO(): DCAT_MODEL_DTO {\n return {\n ...(this.ID && {ID: this.ID}),\n ...(this.IRI && {IRI: this.IRI}),\n ...(this.Issued && {Issued: this.Issued.toISOString()}),\n ...(this.Modified && {Modified: this.Modified.toISOString()}),\n ...(this.CreatedAt && {CreatedAt: this.CreatedAt.toISOString()}),\n ...(this.UpdatedAt && {UpdatedAt: this.UpdatedAt.toISOString()}),\n };\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.Issued && (this.Issued = new Date(dto.Issued));\n dto.Modified && (this.Modified = new Date(dto.Modified));\n dto.CreatedAt && (this.CreatedAt = new Date(dto.CreatedAt));\n dto.UpdatedAt && (this.UpdatedAt = new Date(dto.UpdatedAt));\n }\n\n static async listDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<GENERIC_DCAT_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(item);\n return dcatResource;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>\n ): Promise<GENERIC_DCAT_MODEL[]> {\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list;\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public static async getDBRecord<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n ID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/${ID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n static async getDBRecordByAssetID<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n assetID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/asset/${assetID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n /**\n * Checks whether a DB record exists for the given AssetID and returns its ID.\n *\n * This method wraps getDBRecordByAssetID and converts a 404 response to `null`,\n * while rethrowing any other kind of error.\n */\n static async checkDBRecordOfAssetID(assetID: IDType): Promise<IDType | null> {\n try {\n const record = (await (this as any).getDBRecordByAssetID(\n assetID\n )) as DCAT_MODEL;\n return record.id;\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: `${cls.API_URL}/`,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.delete(`${this.ID}`);\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 204) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n\n public get createdAt(): Date {\n return this.CreatedAt;\n }\n\n public get updatedAt(): Date {\n return this.UpdatedAt;\n }\n}\n\nexport default DCAT_MODEL;\n","import axios from \"axios\";\nimport {\n NeedToImplementError,\n NeedToSetFieldError,\n NotRecordedYetError,\n} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IDType,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Vocabulary from \"./vocabulary\";\n\nexport interface TermDTO extends GOVERNANCE_MODEL_DTO {\n termIri?: string;\n vocabularyId: string;\n name: string;\n description?: string;\n}\n\nclass Term extends GOVERNANCE_MODEL {\n private TermIRI: IRIType;\n private VocabularyID: IDType;\n private Name: string;\n private Description: string;\n\n private VocabularyIRI: IRIType;\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Term.API_URL = `${url}/${PREFIX}/term`;\n Term.LIST_URL = `${Term.API_URL}/list`;\n Term.GET_URL = `${Term.API_URL}/get`;\n Term.CREATE_URL = `${Term.API_URL}/create`;\n Term.UPDATE_URL = `${Term.API_URL}/update`;\n Term.DELETE_URL = `${Term.API_URL}/remove`;\n }\n\n public toDTO(): TermDTO {\n return {\n ...super.toDTO(),\n termIri: this.TermIRI,\n vocabularyId: this.vocabularyID,\n name: this.Name,\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const termDTO = dto as TermDTO;\n this.TermIRI = asIRI(termDTO.termIri);\n this.VocabularyID = asID(termDTO.vocabularyId);\n this.Name = termDTO.name;\n termDTO.description && (this.Description = termDTO.description);\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType\n ): Promise<PaginatedResponse<Term>> {\n throwErrorIfAPIURLNotSetForStatic(Term);\n try {\n const response = await axios.get(Term.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await Term.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get termIRI(): IRIType {\n return this.TermIRI;\n }\n\n public set termIRI(value: string) {\n this.TermIRI = asIRI(value);\n }\n\n public setVocabulary(vocabulary: Vocabulary) {\n if (!vocabulary.hasDBRecord()) {\n throw new NotRecordedYetError(vocabulary);\n }\n this.VocabularyID = vocabulary.id;\n this.VocabularyIRI = vocabulary.iri;\n }\n\n public get vocabularyIRI(): IRIType {\n return this.VocabularyIRI;\n }\n\n public get vocabularyID(): IDType {\n return this.VocabularyID;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public setExternalTermIRIUsingName() {\n if (!this.name) {\n throw new NeedToSetFieldError(this, \"name\");\n }\n this.termIRI = `${this.VocabularyIRI}#${this.name}`;\n }\n}\n\nexport default Term;\n","import axios from \"axios\";\nimport {NamedTermNotExistError, NeedToImplementError} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Term from \"./term\";\n\nexport interface VocabularyDTO extends GOVERNANCE_MODEL_DTO {\n namespaceIri?: string;\n original: boolean;\n prefix: string;\n name: string;\n description: string;\n}\n\nclass Vocabulary extends GOVERNANCE_MODEL {\n private NamespaceIRI: IRIType;\n private Original: boolean;\n private Prefix: string;\n private Name: string;\n private Description: string;\n\n private FetchedTermIRIs: IRIType[];\n private Terms: Term[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Vocabulary.API_URL = `${url}/${PREFIX}/vocabulary`;\n Vocabulary.LIST_URL = `${Vocabulary.API_URL}/list`;\n Vocabulary.GET_URL = `${Vocabulary.API_URL}/get`;\n Vocabulary.CREATE_URL = `${Vocabulary.API_URL}/create`;\n Vocabulary.UPDATE_URL = `${Vocabulary.API_URL}/update`;\n Vocabulary.DELETE_URL = `${Vocabulary.API_URL}/remove`;\n }\n\n public toDTO(): VocabularyDTO {\n return {\n ...super.toDTO(),\n ...(this.NamespaceIRI && {namespaceIri: this.NamespaceIRI}),\n original: this.Original,\n prefix: this.Prefix,\n name: this.Name,\n description: this.Description,\n };\n }\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const vocabularyDTO = dto as VocabularyDTO;\n this.NamespaceIRI = asIRI(vocabularyDTO.namespaceIri);\n this.Original = vocabularyDTO.original;\n this.Prefix = vocabularyDTO.prefix;\n this.Name = vocabularyDTO.name;\n this.Description = vocabularyDTO.description;\n await this.populateTermsFromDTO(vocabularyDTO);\n }\n\n private async populateTermsFromDTO(dto: VocabularyDTO): Promise<void> {\n if (dto.id) {\n const {list} = await Term.listDBRecords(\n 1,\n LARGE_ENOUGH_NUMBER,\n SortOrder.ASC,\n asID(dto.id)\n );\n this.Terms = list;\n this.FetchedTermIRIs = this.Terms.map((term) => term.iri);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const terms = this.Terms;\n await super.createDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n }\n\n private async deleteNotMaintainedTerms() {\n if (this.FetchedTermIRIs && this.FetchedTermIRIs.length != 0) {\n const existingIRIs = this.FetchedTermIRIs;\n const maintainedIRIs = this.Terms.map((term) => term.iri).filter(\n (iri) => iri !== undefined\n );\n const scheduledToDeletedIRIs = existingIRIs.filter(\n (iri) => !maintainedIRIs.includes(iri)\n );\n const scheduledToDeletedTerms = await Promise.all(\n scheduledToDeletedIRIs.map(async (IRI) => {\n return await Term.getDBRecord(IRI);\n })\n );\n await Promise.all(\n scheduledToDeletedTerms.map(async (term) => {\n await term.deleteDBRecord();\n })\n );\n this.FetchedTermIRIs = maintainedIRIs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n try {\n const terms = this.Terms;\n await super.updateDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n term.setVocabulary(this);\n if (term.hasDBRecord()) {\n await term.updateDBRecord();\n } else {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n await this.deleteNotMaintainedTerms();\n }\n } catch (error) {\n throw error;\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n await this.deleteNotMaintainedTerms();\n if (this.Terms && this.Terms.length != 0) {\n for (let i = 0; i < this.Terms.length; i++) {\n destroy(this.Terms[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n original?: boolean,\n name?: string\n ): Promise<PaginatedResponse<Vocabulary>> {\n throwErrorIfAPIURLNotSetForStatic(Vocabulary);\n try {\n const response = await axios.get(Vocabulary.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n original: original,\n name: name,\n },\n // headers,\n });\n return await Vocabulary.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public createTerm(): Term {\n if (!this.Terms) {\n this.Terms = [];\n }\n const newTerm = new Term();\n newTerm.setVocabulary(this);\n this.Terms.push(newTerm);\n return newTerm;\n }\n\n public getTermUsingName(name: string): Term {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n return this.Terms[index];\n }\n\n public removeTermUsingName(name: string): void {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n this.Terms.splice(index, 1);\n }\n\n public get namespaceIRI(): IRIType {\n return this.NamespaceIRI;\n }\n\n public set namespaceIRI(value: string) {\n this.NamespaceIRI = asIRI(value);\n }\n\n public get original(): boolean {\n return this.Original;\n }\n\n public set original(value: boolean) {\n this.Original = value;\n }\n\n public get prefix(): string {\n return this.Prefix;\n }\n\n public set prefix(value: string) {\n this.Prefix = value;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get terms(): Term[] {\n return this.Terms;\n }\n}\n\nexport default Vocabulary;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n NeedToImplementError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {asID, asIRI, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\ninterface GovernanceModelStatic<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof GOVERNANCE_MODEL.listDBRecords;\n}\n\nexport interface GOVERNANCE_MODEL_DTO {\n id?: string;\n iri?: string;\n issued?: string;\n modified?: string;\n}\n\nabstract class GOVERNANCE_MODEL extends SODAS_SDK_CLASS {\n static GET_URL: string;\n static CREATE_URL: string;\n static UPDATE_URL: string;\n static DELETE_URL: string;\n\n public toDTO(): GOVERNANCE_MODEL_DTO {\n return {\n ...(this.ID && {id: this.ID}),\n ...(this.IRI && {iri: this.IRI}),\n ...(this.Issued && {issued: this.Issued.toISOString()}),\n ...(this.Modified && {modified: this.Modified.toISOString()}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {}\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n dto.id && (this.ID = asID(dto.id));\n dto.iri && (this.IRI = asIRI(dto.iri));\n dto.issued && (this.Issued = new Date(dto.issued));\n dto.modified && (this.Modified = new Date(dto.modified));\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n static async listDBRecords<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: new () => GENERIC_GOVERNANCE_MODEL,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<GOVERNANCE_MODEL>> {\n throw new NeedToImplementError();\n }\n\n static async listResponseToPaginatedResponse<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n response: any\n ): Promise<PaginatedResponse<GENERIC_GOVERNANCE_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n if (response.data.total != null && Array.isArray(response.data.results)) {\n const list = [];\n for (const item of response.data.results) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(item);\n list.push(governanceModel);\n }\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>\n ): Promise<GENERIC_GOVERNANCE_MODEL[]> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list as GENERIC_GOVERNANCE_MODEL[];\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).CREATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n static async getDBRecord<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n IRI: IRIType\n ): Promise<GENERIC_GOVERNANCE_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n const url = `${\n (this.prototype.constructor as typeof GOVERNANCE_MODEL).GET_URL\n }/?iri=${IRI}`;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(response.data);\n return governanceModel;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const {iri, issued, modified, ...data} = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).UPDATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const url = `${(this.constructor as typeof GOVERNANCE_MODEL).DELETE_URL}`;\n let response: any;\n try {\n response = await axios.post(\n url,\n {iri: this.IRI},\n {headers: {\"Content-Type\": \"application/json\"}}\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 201) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n}\n\nexport default GOVERNANCE_MODEL;\n","import {\n AlreadyRecordedError,\n API_URL_NOT_SET,\n NeedToImplementError,\n NotRecordedYetError,\n} from \"../core/error\";\nimport {IDType, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\n\nexport function throwErrorIfAPIURLNotSetForStatic(cls: typeof SODAS_SDK_CLASS) {\n if (!cls.API_URL) {\n throw new API_URL_NOT_SET(cls);\n }\n}\n\nabstract class SODAS_SDK_CLASS {\n static BEARER_TOKEN: string;\n static API_URL: string;\n static LIST_URL: string;\n\n protected ID: IDType;\n protected IRI: IRIType;\n\n protected Issued: Date;\n protected Modified: Date;\n\n static configureAPIURL(url: string) {\n throw new NeedToImplementError();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<SODAS_SDK_CLASS>> {\n throw new NeedToImplementError();\n }\n\n public abstract toDTO(): any;\n public abstract populateFromDTO(dto: any): Promise<void>;\n\n public abstract createDBRecord(): Promise<void>;\n public abstract updateDBRecord(): Promise<void>;\n public abstract deleteDBRecord(): Promise<void>;\n\n public abstract hasDBRecord(): boolean;\n\n protected throwErrorIfRecorded() {\n if (this.hasDBRecord()) {\n throw new AlreadyRecordedError(this);\n }\n }\n protected throwErrorIfNotRecorded() {\n if (!this.hasDBRecord()) {\n throw new NotRecordedYetError(this);\n }\n }\n\n protected throwErrorIfAPIURLNotSet() {\n if (!(this.constructor as typeof SODAS_SDK_CLASS).API_URL) {\n throw new API_URL_NOT_SET(this.constructor);\n }\n }\n\n public debug() {\n console.log(this);\n }\n\n public get id(): IDType {\n return this.ID;\n }\n\n public get iri(): IRIType {\n return this.IRI;\n }\n\n public get issued(): Date {\n return this.Issued;\n }\n\n public get modified(): Date {\n return this.Modified;\n }\n}\n\nexport default SODAS_SDK_CLASS;\n","import axios from \"axios\";\nimport {NeedToImplementError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\n\nexport enum VALIDATION_TYPE {\n DATA_TYPE = \"data_type\",\n RANGE = \"range\",\n PATTERN = \"pattern\",\n UNIQUENESS = \"uniqueness\",\n COMPLETENESS = \"completeness\",\n LENGTH = \"length\",\n ALLOWED_VALUES = \"allowed_values\",\n OUTLIER = \"outlier\",\n STATISTICAL = \"statistical\",\n}\n\nexport enum EXPECTED_TYPE {\n NUMERIC = \"numeric\",\n STRING = \"string\",\n DATETIME = \"datetime\",\n}\n\nexport interface ValidationRule {\n column: string;\n name: string;\n type: VALIDATION_TYPE;\n}\n\nexport interface completnessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.COMPLETENESS;\n min_completeness: number;\n weight: number;\n}\nexport interface dataTypeValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.DATA_TYPE;\n expected_type: EXPECTED_TYPE;\n weight: number;\n}\nexport interface uniquenessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.UNIQUENESS;\n weight: number;\n}\nexport interface patternValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.PATTERN;\n pattern: string;\n weight: number;\n}\n\nexport interface ValidationTemplateDTO extends GOVERNANCE_MODEL_DTO {\n name: string;\n description?: string;\n validationRules: ValidationRule[];\n}\n\nclass ValidationTemplate extends GOVERNANCE_MODEL {\n private Name: string;\n private Description: string;\n private ValidationRules: ValidationRule[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/template\";\n ValidationTemplate.API_URL = `${url}/${PREFIX}/validation`;\n ValidationTemplate.LIST_URL = `${ValidationTemplate.API_URL}/list`;\n ValidationTemplate.GET_URL = `${ValidationTemplate.API_URL}/get`;\n ValidationTemplate.CREATE_URL = `${ValidationTemplate.API_URL}/create`;\n ValidationTemplate.UPDATE_URL = `${ValidationTemplate.API_URL}/update`;\n ValidationTemplate.DELETE_URL = `${ValidationTemplate.API_URL}/remove`;\n }\n\n public toDTO(): ValidationTemplateDTO {\n return {\n ...super.toDTO(),\n name: this.Name,\n ...(this.ValidationRules && {validationRules: this.ValidationRules}),\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const validationTemplateDTO = dto as ValidationTemplateDTO;\n this.ValidationRules = validationTemplateDTO.validationRules;\n this.Name = validationTemplateDTO.name;\n this.Description = validationTemplateDTO.description;\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType\n ): Promise<PaginatedResponse<ValidationTemplate>> {\n throwErrorIfAPIURLNotSetForStatic(ValidationTemplate);\n try {\n const response = await axios.get(ValidationTemplate.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await ValidationTemplate.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get validationRules(): ValidationRule[] {\n return this.ValidationRules;\n }\n\n public set validationRules(value: ValidationRule[]) {\n this.ValidationRules = value;\n }\n\n static parseValidationRules(rawRules: any[]): ValidationRule[] {\n return rawRules.map((rule) => {\n const baseRule = {\n column: rule.column,\n name: rule.name,\n type: rule.type as VALIDATION_TYPE,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.COMPLETENESS,\n min_completeness: rule.min_completeness,\n weight: rule.weight,\n } as completnessValidationRule;\n\n case VALIDATION_TYPE.DATA_TYPE:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.DATA_TYPE,\n expected_type: rule.expected_type as EXPECTED_TYPE,\n weight: rule.weight,\n } as dataTypeValidationRule;\n\n case VALIDATION_TYPE.PATTERN:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.PATTERN,\n pattern: rule.pattern,\n weight: rule.weight,\n } as patternValidationRule;\n\n case VALIDATION_TYPE.UNIQUENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.UNIQUENESS,\n weight: rule.weight,\n } as uniquenessValidationRule;\n\n default:\n return baseRule as ValidationRule;\n }\n });\n }\n\n private ensureValidationRulesInitialized() {\n if (!this.ValidationRules) {\n this.ValidationRules = [];\n }\n }\n\n public createRule(type: VALIDATION_TYPE): ValidationRule {\n this.ensureValidationRulesInitialized();\n let rule: ValidationRule;\n const baseRule = {\n column: \"\",\n name: \"\",\n type,\n };\n switch (type) {\n case VALIDATION_TYPE.COMPLETENESS:\n rule = {\n ...baseRule,\n min_completeness: 0,\n weight: 0,\n } as completnessValidationRule;\n break;\n case VALIDATION_TYPE.DATA_TYPE:\n rule = {\n ...baseRule,\n expected_type: EXPECTED_TYPE.STRING,\n weight: 0,\n } as dataTypeValidationRule;\n break;\n case VALIDATION_TYPE.PATTERN:\n rule = {\n ...baseRule,\n pattern: \"\",\n weight: 0,\n } as patternValidationRule;\n break;\n case VALIDATION_TYPE.UNIQUENESS:\n rule = {\n ...baseRule,\n weight: 0,\n } as uniquenessValidationRule;\n break;\n default:\n rule = baseRule as ValidationRule;\n }\n this.ValidationRules.push(rule);\n return rule;\n }\n\n public deleteRuleAt(index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0 || index >= this.ValidationRules.length) {\n return;\n }\n this.ValidationRules.splice(index, 1);\n }\n\n public deleteRuleByTypeAt(type: VALIDATION_TYPE, index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0) {\n return;\n }\n let current = 0;\n for (let i = 0; i < this.ValidationRules.length; i++) {\n if (this.ValidationRules[i].type === type) {\n if (current === index) {\n this.ValidationRules.splice(i, 1);\n return;\n }\n current++;\n }\n }\n }\n\n static groupValidationRulesByColumn(\n rules: ValidationRule[]\n ): Record<string, ValidationRule[]> {\n return rules.reduce((acc, rule) => {\n const column = rule.column;\n if (!acc[column]) {\n acc[column] = [];\n }\n acc[column].push(rule);\n return acc;\n }, {} as Record<string, ValidationRule[]>);\n }\n\n static groupValidationRulesByType(\n rules: ValidationRule[]\n ): Record<VALIDATION_TYPE, ValidationRule[]> {\n return rules.reduce((acc, rule) => {\n const type = rule.type;\n if (!acc[type]) {\n acc[type] = [];\n }\n acc[type].push(rule);\n return acc;\n }, {} as Record<VALIDATION_TYPE, ValidationRule[]>);\n }\n\n /**\n * Parse escaped JSON string containing validation_rules to ValidationRule[]\n * @param escapedString - Escaped JSON string like \"validation_rules\\\":[{\\\"column\\\":\\\"class_label\\\",...}]\"\n * @returns Parsed ValidationRule array\n */\n static parseValidationRulesFromEscapedString(\n escapedString: string\n ): ValidationRule[] {\n let processedString = escapedString.trim();\n\n // Remove surrounding quotes if present (e.g., '\"{\"validation_rules\":...}\"' -> '{\"validation_rules\":...}')\n // Check for both single and double quotes\n if (\n ((processedString.startsWith('\"') && processedString.endsWith('\"')) ||\n (processedString.startsWith(\"'\") && processedString.endsWith(\"'\"))) &&\n processedString.length > 1\n ) {\n processedString = processedString.slice(1, -1).trim();\n }\n\n // Unescape the string (replace \\\" with \")\n // Handle both \\\" and \\\\\\\" cases to avoid double-escaping issues\n let unescapedString = processedString;\n // First handle \\\\\\\" -> \\\"\n unescapedString = unescapedString.replace(/\\\\\\\\\"/g, '\\\\\"');\n // Then handle \\\" -> \"\n unescapedString = unescapedString.replace(/\\\\\"/g, '\"');\n\n // Try to parse as JSON\n let parsed: any;\n try {\n // First try parsing directly\n parsed = JSON.parse(unescapedString);\n } catch (error) {\n // If parsing fails, try different approaches\n const trimmed = unescapedString.trim();\n\n // If it starts with \"validation_rules\" but is not wrapped in braces\n if (\n trimmed.startsWith('\"validation_rules\"') ||\n trimmed.startsWith(\"validation_rules\")\n ) {\n // Try wrapping in braces\n const wrapped = trimmed.startsWith('\"')\n ? `{${trimmed}}`\n : `{\"${trimmed}}`;\n try {\n parsed = JSON.parse(wrapped);\n } catch (e) {\n // If still fails, try without the leading quote\n const withoutQuote = trimmed.replace(/^\"/, \"\");\n parsed = JSON.parse(`{\"${withoutQuote}`);\n }\n } else if (trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\")) {\n // Already looks like JSON object, try parsing again after trimming\n parsed = JSON.parse(trimmed);\n } else {\n throw error;\n }\n }\n\n // Extract validation_rules array\n let validationRules: any;\n\n // If it's already an array, use it directly\n if (Array.isArray(parsed)) {\n validationRules = parsed;\n } else if (parsed.validation_rules) {\n // If it's an object with validation_rules property\n validationRules = parsed.validation_rules;\n } else if (typeof parsed === \"object\") {\n // If it's an object but no validation_rules property, try to use it as is\n validationRules = parsed;\n } else {\n throw new Error(\"Invalid format: validation_rules not found\");\n }\n\n // Ensure validationRules is an array\n if (!Array.isArray(validationRules)) {\n throw new Error(\"Invalid format: validation_rules must be an array\");\n }\n\n const parsedRules =\n ValidationTemplate.parseValidationRules(validationRules);\n (parsedRules as any)._escapedString = escapedString;\n return parsedRules;\n }\n\n /**\n * Convert ValidationRule[] to escaped JSON string\n * @param rules - ValidationRule array to stringify\n * @returns Escaped JSON string with format: \"{\\\"validation_rules\\\":[...]}\"\n */\n static stringifyValidationRulesToEscapedString(\n rules: ValidationRule[]\n ): string {\n // Convert ValidationRule[] to plain objects for JSON serialization\n const plainRules = rules.map((rule) => {\n const plainRule: any = {\n column: rule.column,\n name: rule.name,\n type: rule.type,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n const completenessRule = rule as completnessValidationRule;\n return {\n ...plainRule,\n min_completeness: completenessRule.min_completeness,\n weight: completenessRule.weight,\n };\n\n case VALIDATION_TYPE.DATA_TYPE:\n const dataTypeRule = rule as dataTypeValidationRule;\n return {\n ...plainRule,\n expected_type: dataTypeRule.expected_type,\n weight: dataTypeRule.weight,\n };\n\n case VALIDATION_TYPE.PATTERN:\n const patternRule = rule as patternValidationRule;\n return {\n ...plainRule,\n pattern: patternRule.pattern,\n weight: patternRule.weight,\n };\n\n case VALIDATION_TYPE.UNIQUENESS:\n const uniquenessRule = rule as uniquenessValidationRule;\n return {\n ...plainRule,\n weight: uniquenessRule.weight,\n };\n\n default:\n return plainRule;\n }\n });\n\n // Create object with validation_rules property\n if ((rules as any)._escapedString) {\n return (rules as any)._escapedString;\n }\n\n const obj = {validation_rules: plainRules};\n const jsonString = JSON.stringify(obj);\n const escaped = jsonString.replace(/\"/g, '\\\\\"');\n return '\"' + escaped + '\"';\n }\n}\n\nexport default ValidationTemplate;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport {UnexpectedResponseFormatError} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nimport SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass DataFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n static BUCKET_NAME: string;\n\n private endpoint: string;\n private bucketName: string;\n\n static configureAPIURL(url: string) {\n DataFile.UPLOAD_URL = `${url}/data/upload`;\n DataFile.REMOVE_URL = `${url}/data/remove/`;\n DataFile.DOWNLOAD_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.BUCKET_NAME = bucketName;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const uploadURL = DataFile.BUCKET_NAME\n ? `${DataFile.UPLOAD_URL}?bucketName=${this.bucketName}`\n : DataFile.UPLOAD_URL;\n const uploadResponse = await axios.post(uploadURL, formData, {\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n this.bucketName = uploadResponse.data.bucketName;\n this.endpoint = uploadResponse.data.endpoint;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const removeURL = this.bucketName\n ? `${DataFile.REMOVE_URL}${this.ID}?bucketName=${this.bucketName}`\n : `${DataFile.REMOVE_URL}${this.ID}`;\n const removeResponse = await axios.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${DataFile.DOWNLOAD_URL}/${this.ID}?bucketName=${this.bucketName}&endpoint=${this.endpoint}`;\n }\n}\n\nexport default DataFile;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport {\n NeedToImplementError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nabstract class SODAS_SDK_FILE {\n static BEARER_TOKEN: string;\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n protected ID: string; //Sometimes it is not uuid. So I decide to leave it as a string.\n\n protected fileName?: string;\n protected fileSize?: number;\n protected fileType?: string;\n protected fileContent?: any;\n\n static configureAPIURL(url: string): void {\n throw new NeedToImplementError();\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setFileForBrowser(file: File) {\n this.fileName = file.name;\n this.fileSize = file.size;\n this.fileType = file.type;\n this.fileContent = file;\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setFileForNode(filePath: string) {\n const fileName = path.basename(filePath);\n const fileType = path.extname(filePath);\n const fileTypeWithoutDot = fileType.slice(1);\n const fileStats = fs.statSync(filePath);\n this.fileContent = fs.readFileSync(filePath);\n this.fileName = fileName;\n this.fileSize = fileStats.size;\n this.fileType = fileTypeWithoutDot;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const apiClient = axios.create({\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const uploadResponse = await apiClient.post(cls.UPLOAD_URL, formData);\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const apiClient = axios.create();\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const removeURL = `${cls.REMOVE_URL}${this.ID}`;\n const removeResponse = await apiClient.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${(this.constructor as typeof SODAS_SDK_FILE).DOWNLOAD_URL}/${\n this.ID\n }`;\n }\n}\n\nexport default SODAS_SDK_FILE;\n","import SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass ThumbnailFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n static configureAPIURL(url: string) {\n ThumbnailFile.UPLOAD_URL = `${url}/thumbnail/upload`;\n ThumbnailFile.REMOVE_URL = `${url}/thumbnail/remove/`;\n ThumbnailFile.DOWNLOAD_URL = `${url}/thumbnails`;\n }\n}\n\nexport default ThumbnailFile;\n","import axios from \"axios\";\nimport DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\nimport DataFile from \"../SODAS_SDK_FILE/dataFile\";\nimport ThumbnailFile from \"../SODAS_SDK_FILE/thumbnailFile\";\nimport {NoAccessTokenFoundError, UnexpectedResponseFormatError} from \"./error\";\nimport {setGovernanceBearerToken, setLegacyDatahubBearerToken} from \"./init\";\n\nclass Config {\n private static instance: Config | null = null;\n\n private governanceToken: string | null = null;\n private legacyDatahubToken: string | null = null;\n\n private governanceBaseUrl: string;\n private sodasProfileBaseUrl: string;\n private legacyDatahubBaseUrl: string;\n\n private constructor(\n governanceBaseUrl: string,\n sodasProfileBaseUrl: string,\n legacyDatahubBaseUrl: string\n ) {\n this.governanceBaseUrl = governanceBaseUrl.replace(/\\/$/, \"\");\n this.sodasProfileBaseUrl = sodasProfileBaseUrl.replace(/\\/$/, \"\");\n this.legacyDatahubBaseUrl = legacyDatahubBaseUrl.replace(/\\/$/, \"\");\n this.initializeAPIURLs();\n }\n\n /**\n * Explicitly configure the SDK with the given API URLs.\n * This is the preferred way to set API URLs instead of using configureAPIURL.\n */\n public static configure(\n datahubApiUrl: string,\n governanceApiUrl: string,\n legacyDatahubApiUrl: string\n ): Config {\n if (!Config.instance) {\n Config.instance = new Config(\n governanceApiUrl,\n datahubApiUrl,\n legacyDatahubApiUrl\n );\n } else {\n Config.instance.governanceBaseUrl = governanceApiUrl.replace(/\\/$/, \"\");\n Config.instance.sodasProfileBaseUrl = datahubApiUrl.replace(/\\/$/, \"\");\n Config.instance.legacyDatahubBaseUrl = legacyDatahubApiUrl.replace(\n /\\/$/,\n \"\"\n );\n Config.instance.initializeAPIURLs();\n }\n return Config.instance;\n }\n\n /**\n * Get the singleton instance of Config, using environment variables.\n */\n public static getInstance(): Config {\n if (!Config.instance) {\n const governanceBaseUrl =\n process.env.PRODUCTION_GOVERNANCE_API_URL ||\n process.env.TEST_GOVERNANCE_API_URL ||\n \"\";\n const sodasProfileBaseUrl =\n process.env.PRODUCTION_DATAHUB_API_URL ||\n process.env.TEST_SODAS_PROFILE_API_URL ||\n \"\";\n const legacyDatahubBaseUrl =\n process.env.PRODUCTION_LEGACY_DATAHUB_API_URL ||\n process.env.TEST_LEGACY_DATAHUB_API_URL ||\n \"\";\n\n if (!governanceBaseUrl || !sodasProfileBaseUrl) {\n throw new Error(\n \"Governance or Datahub base URL is not configured in environment variables.\"\n );\n }\n\n Config.instance = new Config(\n governanceBaseUrl,\n sodasProfileBaseUrl,\n legacyDatahubBaseUrl\n );\n }\n\n return Config.instance;\n }\n\n /**\n * Initialize all SDK class API URLs based on the configured base URLs.\n */\n private initializeAPIURLs(): void {\n const SLASH_DELETED_SODAS_PROFILE_BASE_URL =\n this.sodasProfileBaseUrl.replace(/\\/$/, \"\");\n const SLASH_DELETED_GOVERNANCE_PORTAL_API_URL =\n this.governanceBaseUrl.replace(/\\/$/, \"\");\n\n if (this.sodasProfileBaseUrl) {\n Distribution.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n Dataset.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DatasetSeries.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataServiceDTO.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n ThumbnailFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n } else {\n console.error(\"DATAHUB_API_URL not found in config\");\n }\n\n if (this.governanceBaseUrl) {\n Vocabulary.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n Term.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n ValidationTemplate.configureAPIURL(\n SLASH_DELETED_GOVERNANCE_PORTAL_API_URL\n );\n } else {\n console.error(\"GOVERNANCE_API_URL not found in config\");\n }\n }\n\n /**\n * Login to the Governance portal and store the access token.\n */\n public async loginGovernance(id: string, password: string): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.governanceToken = response.data.accessToken;\n setGovernanceBearerToken(this.governanceToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n }\n\n /**\n * Login to the Datahub portal and store the access token.\n */\n public async loginLegacyDatahub(id: string, password: string): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n try {\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.legacyDatahubToken = response.data.accessToken;\n setLegacyDatahubBearerToken(this.legacyDatahubToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n } catch (error) {\n console.error(\"Error during loginLegacyDatahub:\", error);\n throw error;\n }\n }\n\n /**\n * Logout from the Governance portal and clear the stored token.\n */\n public async logoutGovernance(): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.governanceToken\n ? {Authorization: `Bearer ${this.governanceToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.governanceToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Logout from the Datahub portal and clear the stored token.\n */\n public async logoutLegacyDatahub(): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.legacyDatahubToken\n ? {Authorization: `Bearer ${this.legacyDatahubToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.legacyDatahubToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Get the current Governance access token.\n */\n public getGovernanceToken(): string | null {\n return this.governanceToken;\n }\n\n /**\n * Get the current Datahub access token.\n */\n public getLegacyDatahubToken(): string | null {\n return this.legacyDatahubToken;\n }\n}\n\nexport default Config;\n","import SODAS_SDK_CLASS from \"../SODAS_SDK_CLASS/sodasSDKClass\";\nimport {ResourceDescriptorRole} from \"./type\";\n\nexport class AlreadyRecordedError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is already recorded in Database : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\nexport class API_URL_NOT_SET extends Error {\n constructor(cls: Function) {\n super(`API_URL is not set in class: ${cls.name}`);\n this.name = \"API_URL_NOT_SET\";\n }\n}\nexport class DeleteRecordFailError extends Error {\n constructor() {\n super(\"Delete DBRecord Failed\");\n }\n}\n\nexport class IndexOutOfBoundsError extends Error {\n constructor(index: number) {\n super(`Index : ${index} out of bounds`);\n }\n}\n\nexport class InvalidDateObjectError extends Error {\n constructor(value: any) {\n super(`Invalid Date object : ${value}`);\n }\n}\n\nexport class InvalidDateStringError extends Error {\n constructor(str: string) {\n super(`Invalid Date string : ${str}`);\n }\n}\n\nexport class InvalidTypeError extends Error {\n constructor(value: any, expectedType: string) {\n super(`Invalid type '${typeof value}' instead of '${expectedType}'`);\n }\n}\n\nexport class InvalidValueError extends Error {\n constructor(value: any) {\n super(`Invalid value : ${JSON.stringify(value)} is put`);\n }\n}\n\nexport class NamedTermNotExistError extends Error {\n constructor(name: string) {\n super(`Named term ${name} not exist.`);\n }\n}\n\nexport class NeedToImplementError extends Error {\n constructor() {\n super(`It needs to be implemented.`);\n }\n}\n\nexport class NeedToSetFieldError extends Error {\n constructor(value: any, field: string) {\n super(\n `This instance : ${JSON.stringify(value)} needs to set field : ${field}`\n );\n }\n}\n\nexport class NoAccessTokenFoundError extends Error {\n constructor() {\n super(\"No accessToken found in the response\");\n }\n}\n\nexport class NotInitializedError extends Error {\n constructor(field: string) {\n super(`Field : ${field} is not initialized yet`);\n }\n}\n\nexport class NotRecordedArgumentError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(`Not recorded argument is put : ${JSON.stringify(instance)}`);\n }\n}\n\nexport class NotRecordedYetError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is not recorded in Database yet : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\n\nexport class RecordNotFoundError extends Error {\n constructor() {\n super(\"Record is not found\");\n }\n}\n\nexport class RequirementsNotSetError extends Error {\n constructor() {\n super(`Requirements are not set`);\n }\n}\n\nexport class ResourceRoleDescriptorAlreadyExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} already exists.`);\n }\n}\n\nexport class ResourceRoleDescriptorNotExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} doesn't exists.`);\n }\n}\n\nexport class RetryLimitReachedError extends Error {\n constructor(max: number) {\n super(`Max retries[${max}] reached`);\n }\n}\n\nexport class SwitchSameIndexError extends Error {\n constructor(index: number) {\n super(`Switch same index : ${index}`);\n }\n}\n\nexport class UnexpectedResponseFormatError extends Error {\n constructor(response: any) {\n super(`Unexpected response format. : ${JSON.stringify(response)}`);\n }\n}\n","import DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\n\n/**\n * Sets the Bearer token for API authentication across multiple DTO classes.\n *\n * @param {string} token - The Bearer token used for API authentication.\n * @returns {void}\n */\nexport function setGovernanceBearerToken(token: string): void {\n Vocabulary.BEARER_TOKEN = token;\n Term.BEARER_TOKEN = token;\n ValidationTemplate.BEARER_TOKEN = token;\n}\n\nexport function setLegacyDatahubBearerToken(token: string): void {\n Dataset.BEARER_TOKEN = token;\n DataServiceDTO.BEARER_TOKEN = token;\n DatasetSeries.BEARER_TOKEN = token;\n Distribution.BEARER_TOKEN = token;\n}\n","import {InvalidDateObjectError, InvalidDateStringError} from \"./error\";\n\nexport type IDType = string & {__iriBrand: never};\n\nconst uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\nexport function asID(value: string): IDType {\n if (!uuidRegex.test(value)) {\n throw new Error(`Invalid UUID format: '${value}'`);\n }\n return value as IDType;\n}\n\nexport function asIDs(values: string[]): IDType[] {\n return values.map((value) => asID(value));\n}\n\nexport type IRIType = string & {__iriBrand: never};\n\nexport function asIRI(value: string): IRIType {\n return value as IRIType;\n}\n/**\n * Branded type for a valid ISO 8601 date-time string.\n * Example: \"2025-01-08T09:04:51.008Z\" or \"2025-01-08T18:10:01.292602+09:00\"\n */\nexport type DateString = string & {__iriBrand: never};\n\n/**\n * Converts a Date object to a DateString (ISO 8601 format).\n *\n * @param {Date} date - The Date object to convert.\n * @returns {DateString} - The validated ISO 8601 date-time string.\n * @throws {Error} - Throws an error if the Date object is invalid.\n */\nexport function toDateString(date: Date | null): DateString {\n if (!(date instanceof Date) || isNaN(date.getTime())) {\n throw new InvalidDateObjectError(date);\n }\n\n // Convert the Date object to an ISO 8601 string\n const value = date.toISOString();\n\n // Validate the format\n const ISO_8601_PATTERN =\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\n if (!ISO_8601_PATTERN.test(value)) {\n throw new InvalidDateStringError(value);\n }\n\n return value as DateString;\n}\n/**\n * Converts a DateString to a JavaScript Date object.\n *\n * @param {DateString} dateString - The ISO 8601 date-time string to convert.\n * @returns {Date} - The corresponding JavaScript Date object.\n */\nexport function toDate(dateString: DateString): Date {\n const date = new Date(dateString);\n if (isNaN(date.getTime())) {\n throw new InvalidDateStringError(dateString);\n }\n return date;\n}\n\n//TODO : ROW_KEY must be added and controlled\nexport type TemplateArtifactRow = {\n [K in TemplateDetailFunctionality]?: any;\n};\n\nexport type TemplateArtifactValue = Array<TemplateArtifactRow>;\n\n/**\n * Represents a multilingual field where each key is a language code (e.g., \"en\", \"ko\") and the value is a string.\n */\nexport type MultiLanguageField = {[languageCode: string]: string};\n\n/**\n * Represents multilingual keywords where each key is a language code and the value is an array of strings.\n */\nexport type MultiLanguageKeywords = {[languageCode: string]: string[]};\n\nexport type ExtraMetadataType = {[MetaFieldName: string]: string};\n\nexport enum ResourceDescriptorRole {\n VOCABULARY = \"vocabulary\",\n TYPE = \"type\",\n SCHEMA = \"schema\",\n CONSTRAINT = \"constraint\",\n VALIDATION = \"validation\",\n MAPPING = \"mapping\",\n EXAMPLE = \"example\",\n SPECIFICATION = \"specification\",\n GUIDANCE = \"guidance\",\n}\n\nexport enum ArtifactType {\n TEMPLATE = \"template\",\n FILE = \"file\",\n}\n\nexport enum TemplateDetailFunctionality {\n //VOCABULARY\n ORIGIN = \"origin\",\n NAMESPACE = \"namespaceIRI\",\n TERM = \"term\",\n DESCRIPTION = \"description\", //EXAMPLE and SCHEMA ALSO\n //TYPE\n NAME = \"name\", //SCHEMA ALSO\n LABEL = \"label\",\n VALUE = \"value\", //EXAMPLE ALSO\n //SCHEMA\n TYPE = \"type\", //CONSTRAINT ALSO\n REQUIRED = \"required\", //CONSTRAINT ALSO\n FIELD_TERM = \"fieldTerm\",\n //CONSTRAINT\n FIELD = \"field\", //EXAMPLE and MAPPING ALSO\n REGEX = \"regex\",\n //VALIDATION\n MEASURE = \"measure\",\n //MAPPING\n TARGET_PROFILE = \"targetProfile\",\n TARGET_FIELD = \"targetField\",\n //EXAMPLE : FIELD, VALUE, DESCIRPTION\n\n //SPECIFICATION\n CONVERSION = \"conversion\", // May be Serealization to pdf or just html\n //GUIDANCE : I think I need to remove it\n}\n\nexport type PaginatedResponse<GENERIC_SODAS_SDK_CLASS> = {\n total: number;\n list: GENERIC_SODAS_SDK_CLASS[];\n};\n\nexport enum SortOrder {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n","import axios, {AxiosError, AxiosResponse} from \"axios\";\nimport cloneDeep from \"lodash.clonedeep\";\nimport {RetryLimitReachedError} from \"./error\";\n/**\n * Enumeration to differentiate between `ID` and `IRI`.\n *\n * @enum {string}\n */\n\n/**\n * Handles errors by logging the details and re-throwing the error.\n *\n * @param {any} error - The error object to handle.\n * @throws {any} - Re-throws the provided error after logging it.\n */\nexport function handleError(error: any): never {\n if (error.response) {\n console.error(\"Error response:\", error.response.data);\n console.error(\"Error status:\", error.response.status);\n } else if (error.request) {\n console.error(\"No response received:\", error.request);\n } else {\n console.error(\"Error:\", error.message);\n }\n throw error;\n}\n\nexport function handleAxiosError(error: AxiosError): never {\n if (axios.isAxiosError(error) && error.response) {\n const errorData = error.response.data as any;\n if (errorData.error) {\n console.error(`Error: ${error.response.status} - ${errorData.error}`);\n } else if (errorData.message) {\n console.error(`Error: ${error.response.status} - ${errorData.message}`);\n } else {\n console.error(`Error: ${error.response.status} - ${errorData}`);\n }\n } else {\n if ((error.code = \"ECONNREFUSED\")) {\n console.log(\"CONNECTION ERROR\");\n } else {\n console.error({\n message: error.message,\n code: error.code,\n status: error.response?.status,\n });\n }\n }\n throw error; // Re-throw the error so it can be handled by the caller if needed\n}\n\n/**\n * Removes all properties from an object, effectively making it empty.\n *\n * This function deletes all own properties of the provided object,\n * and remove the prototype also.\n * leaving the object in an unusable state.\n *\n * @param {object} obj - The object whose properties will be deleted.\n * @returns {void}\n *\n * @example\n * const obj = { id: 123, name: \"Test\" };\n * destroy(obj);\n * console.log(obj); // Output: {}\n */\nexport function destroy(obj: any): void {\n const keys = Object.getOwnPropertyNames(obj);\n for (const key of keys) {\n delete (obj as any)[key];\n }\n Object.setPrototypeOf(obj, Object.prototype);\n}\n\n/**\n * Creates a deep copy of the given instance, preserving the prototype chain and handling nested objects.\n *\n * This function recursively copies all properties of the instance, ensuring that nested objects\n * and arrays are also deeply copied. The returned object retains the same prototype as the original instance.\n *\n * @template T - The type of the instance to be copied.\n * @param {T} instance - The instance to be deeply copied.\n * @returns {T} A new instance that is a deep copy of the original, with the same prototype.\n */\nexport function deepCopy<T>(instance: T): T {\n return cloneDeep(instance);\n}\n\nconst SYSTEM_PROCESSING = \"SYSTEM_PROCESSING\"; // Replace with your actual flag value\n\nexport const LARGE_ENOUGH_NUMBER = 10000;\ninterface RetryResponse {\n errorCode: string;\n flag: string; // Adjust the type to match your actual API response\n [key: string]: any; // Optionally allow other properties\n}\n\n/**\n * A function to repeatedly try an Axios request until the response meets specific criteria.\n * @param requestFn - A function that executes an Axios request and returns a response.\n * @param maxRetries - Maximum number of retries before giving up.\n * @param delayMs - Delay between retries in milliseconds.\n * @returns The Axios response that meets the criteria.\n * @throws Error if the maximum number of retries is reached or if an error occurs.\n */\nexport async function retryRequest<\n GENERIC_RETRY_RESPONSE extends RetryResponse\n>(\n requestFn: () => Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>>,\n maxRetries: number = 30,\n delayMs: number = 1000\n): Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>> {\n let retries = 0;\n\n while (retries < maxRetries) {\n try {\n const response = await requestFn();\n if (response.status === 200 && response.data.flag !== SYSTEM_PROCESSING) {\n return response; // Return the successful response\n }\n // If still processing, wait before retrying\n if (response.status === 200 && response.data.flag === SYSTEM_PROCESSING) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n retries++;\n } else {\n return response;\n }\n } catch (error) {\n throw error; // Rethrow error if retries are exhausted\n }\n }\n throw new RetryLimitReachedError(maxRetries);\n}\n\nexport function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export enum ORIGIN_VALUES {\n EXISTING = \"existing\",\n APPENDING = \"appending\",\n // APPENDED = \"appended\",\n}\n\nexport enum BASIC_TYPE_VALUES {\n DATE = \"date\",\n CELCIUS = \"celcius\",\n FAHRENT = \"fahrent\",\n mph = \"mph\",\n MPS = \"mps\",\n inHg = \"inHg\",\n hPa = \"hPa\",\n in = \"in\",\n mm = \"mm\",\n microgram = \"microgram\",\n}\n\nexport enum MEASURE_VALUES {\n CONSTRAINT = \"constraint\",\n YDATA = \"y-data\",\n}\n\nexport enum CONVERSION_VALUES {\n HTML = \"html\",\n PDF = \"pdf\",\n}\n","/* (ignored) */","/* (ignored) */","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// Import named functions first\nimport DataService from \"./SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"./SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"./SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"./SODAS_SDK_CLASS/DCAT/distribution\";\nimport ValidationTemplate from \"./SODAS_SDK_CLASS/template/validation\";\nimport Config from \"./core/auth\";\nimport {\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n} from \"./core/init\";\nimport {\n ArtifactType,\n IDType,\n IRIType,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n asID,\n asIRI,\n} from \"./core/type\";\nimport {\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n} from \"./core/values\";\n\n// ✅ Named exports (For ES module compatibility)\nexport {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n IDType,\n IRIType,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Default export (For CommonJS compatibility)\nconst sdk = {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Ensures `require(\"sodas-sdk\")` works in CommonJS\nexport default sdk;\n"],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.legacy.browser.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAM,gBAAgB,qBAAM,IAAI,qBAAM,sBAAsB,qBAAM;;AAE1F;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACntD0B;AACqC;AACY;AAC1B;AAEkB;AACH;AAMhE;;GAEG;AACH,MAAM,WAAY,SAAQ,qDAAa;IAKrC;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,WAAW,CAAC,OAAO,GAAG,GAAG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;;;;;;;;;;;;;;;;;;AClO+B;AACO;AACsB;AAChB;AACQ;AACC;AACZ;AACO;AACqB;AAChB;;AAExD;;AAEA,iEAAe;AACf;AACA,oBAAoB,qEAAa;AACjC;AACA,2BAA2B,6DAAY;AACvC,SAAS,oDAAoD;AAC7D;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC,wCAAwC;;AAExC;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAM;AACZ;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,2DAAU,oBAAoB,2DAAU;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,2DAAU,kBAAkB,2DAAU;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,iEAAoB;AACvE;AACA;AACA;AACA,iBAAiB,2DAAU;AAC3B;AACA,2CAA2C,2DAAU,aAAa,2DAAU;AAC5E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM,iDAAK;AACX;AACA,OAAO;AACP;;AAEA;AACA,SAAS,iDAAK;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,sFAAoB;AAChE;AACA;;AAEA;AACA;AACA,wCAAwC,sFAAoB;;AAE5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAa;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,qEAAa;;AAElC,oBAAoB,0DAAQ;AAC5B,iBAAiB,2DAAU,2CAA2C,2DAAU;AAChF;AACA;;;AAGA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMY;;AAEkB;AACM;AACD;AACY;AACL;AACc;AACH;AACJ;AACN;AACN;AACW;AACH;AACL;AACY;AACH;AACJ;AACW;;AAEzD;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA,sBAAsB,sDAAK;AAC3B,mBAAmB,4DAAI,CAAC,sDAAK;;AAE7B;AACA,EAAE,iDAAK,kBAAkB,sDAAK,sBAAsB,iBAAiB;;AAErE;AACA,EAAE,iDAAK,kCAAkC,iBAAiB;;AAE1D;AACA;AACA,0BAA0B,gEAAW;AACrC;;AAEA;AACA;;AAEA;AACA,6BAA6B,0DAAQ;;AAErC;AACA,cAAc,sDAAK;;AAEnB;AACA,sBAAsB,gEAAa;AACnC,oBAAoB,8DAAW;AAC/B,iBAAiB,2DAAQ;AACzB,gBAAgB,iDAAO;AACvB,mBAAmB,8DAAU;;AAE7B;AACA,mBAAmB,4DAAU;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,2DAAM;;AAErB;AACA,qBAAqB,iEAAY;;AAEjC;AACA,oBAAoB,4DAAW;;AAE/B,qBAAqB,8DAAY;;AAEjC,4BAA4B,uEAAc,CAAC,iDAAK;;AAEhD,mBAAmB,8DAAQ;;AAE3B,uBAAuB,mEAAc;;AAErC;;AAEA;AACA,iEAAe,KAAK;;;;;;;;;;;;;;;;;ACxFP;;AAEkC;;AAE/C;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,yDAAa;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACtId;;AAEkC;AACf;;AAEhC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA,EAAE,2DAAU,oDAAoD,2DAAU;AAC1E;AACA;;AAEA,iDAAK,yBAAyB,2DAAU;AACxC;AACA,CAAC;;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACxBhB;;AAEE;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACJa;;AAEqB;AACY;AACW;AACN;AACR;AACI;AACC;AACH;;AAE7C,mBAAmB,6DAAS;;AAE5B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAkB;AACrC,oBAAoB,8DAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oEAAoE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,aAAa,2DAAW;;AAExB,WAAW,yCAAyC;;AAEpD;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAS;AACjB;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,iDAAK;AACzC;AACA;AACA;;AAEA,eAAe,iDAAK;AACpB;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wDAAY;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,qBAAqB,2DAAe;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAe;AAC/B,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,2DAAW;AACxB,qBAAqB,6DAAa;AAClC,WAAW,gEAAQ;AACnB;AACA;;AAEA;AACA,iDAAK;AACL;AACA;AACA,wBAAwB,2DAAW,aAAa;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED,iDAAK;AACL;;AAEA;AACA;AACA,0BAA0B,2DAAW,aAAa;AAClD;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;ACnOR;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,CAAC;;AAED;AACA,kDAAkD,YAAY;;AAE9D;AACA;AACA;;AAEA,EAAE,iDAAK;AACP;AACA,GAAG;AACH;AACA,GAAG;;AAEH;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACtGb;;AAEmB;AACsB;;AAEtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,iDAAK;;AAEZ,MAAM,iDAAK;AACX;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uBAAuB,iDAAK;;AAE5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;;AAEA;AACA,MAAM,iDAAK;;AAEX,QAAQ,iDAAK;AACb;AACA,MAAM,QAAQ,iDAAK;AACnB,iBAAiB,oEAAY;AAC7B,MAAM,SAAS,iDAAK;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iDAAK;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,iDAAK;AACT,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,iDAAK;AACT,sEAAsE,iDAAK;AAC3E,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,iDAAK;;AAET;AACA;AACA;;AAEA;;AAEA;AACA,iDAAK,6CAA6C,MAAM;AACxD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iDAAK;;AAEL,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC7Sf;;AAEqB;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA,eAAe;AACf;AACA;AACA,IAAI,iDAAK;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,kBAAkB,EAAC;;;;;;;;;;;;;;;;;;ACtErB;;AAE2C;AACJ;;AAEpD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB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gE;AAChE;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,wEAAgB;AAC/B;;AAEA,wBAAwB,iDAAK;AAC7B;;AAEA,eAAe,kEAAU;AACzB,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK,qBAAqB,iDAAK;AACvC;AACA;;AAEA,gBAAgB,iDAAK;AACrB;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB,2DAAU,SAAS,2DAAU;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,0DAAQ;AACtB,UAAU,0DAAQ;AAClB,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA,CAAC;;AAED,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AChKX;;AAEb,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACNK;;;;;;;;;;;;;;;;ACAM;;AAE4B;;AAEzC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;;AAEA,YAAY,0DAAU;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;ACzDpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;ACtEjB;;AAEE;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACNa;;AAEmB;AACsC;;AAEtE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ,uBAAuB,iDAAK;AAC5B;AACA,UAAU,wEAAoB;AAC9B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC9Da;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACduD;AACR;AACf;;AAEhC;AACA,SAAS,QAAQ;;AAEjB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2DAAU,aAAa,gEAAa;AAC5E;AACA;;AAEA;AACA;AACA,kBAAkB,2DAAU,YAAY,SAAS,iBAAiB,2DAAU;AAC5E,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA,WAAW,QAAQ;;AAEnB,+BAA+B,iDAAK;;AAEpC;AACA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;AC/CI;AACU;;AAE5C,iEAAe,0DAAQ;;AAEvB;AACA;AACA;AACA;;AAEA,MAAM,iDAAK;;AAEX,MAAM,iDAAK;;AAEX,MAAM,iDAAK;;AAEX;;AAEA,uCAAuC;AACvC,KAAK;;AAEL;AACA,0DAA0D,wBAAwB;AAClF;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,KAAK;AACL;AACA,GAAG,EAAC;;;;;;;;;;;;;;;;;;ACxCS;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iDAAK;AACd;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,iDAAK;;AAEzB;AACA,UAAU,iDAAK;AACf;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0BAA0B,iDAAK;AAC/B;AACA;;AAEA;;AAEA,kBAAkB,iDAAK;AACvB;AACA;;AAEA;AACA;;AAEA,MAAM,iDAAK,yBAAyB,iDAAK;AACzC;;AAEA,IAAI,iDAAK;AACT;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;AC9FjB;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACe;AACf;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACda;;AAEqB;;AAElC;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACe;AACf,SAAS,iDAAK;AACd;;;;;;;;;;;;;;;;;;ACba;;AAEqB;AACU;;AAE5C,iEAAe,0DAAQ;;AAEvB;AACA;AACA;AACA,iBAAiB,0DAAQ,qCAAqC,0DAAQ;AACtE;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA,sBAAsB,iDAAK;AAC3B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,EAAC;;;;;;;;;;;;;;;;AClEP;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;ACDP;;AAEqB;;AAElC;AACA;AACA,0BAA0B,iDAAK;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA,iEAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACtDW;;AAEE;AACf,0BAA0B,KAAK;AAC/B;AACA;;;;;;;;;;;;;;;;;;;;;ACL2C;AACN;AACL;;AAEzB;AACP;AACA,uBAAuB,2DAAW;;AAElC,SAAS,wDAAQ;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO,4CAA4C,iDAAK;;;;;;;;;;;;;;;;;;;;;;;;AC3CZ;AACZ;AACmB;AAChB;AACkB;AACJ;AACE;AACd;;AAErC,iEAAe;AACf,oBAAoB,gEAAW,GAAG;;AAElC,OAAO,oEAAoE;;AAE3E,gCAAgC,6DAAY;;AAE5C,kBAAkB,wDAAQ,CAAC,kEAAa;;AAExC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,MAAM,iDAAK;AACX,QAAQ,0DAAQ,0BAA0B,0DAAQ;AAClD,yCAAyC;AACzC,MAAM;AACN;AACA,kEAAkE;AAClE,gFAAgF;AAChF;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,0DAAQ;AACd,qBAAqB,iDAAK;;AAE1B,qDAAqD,+DAAe;AACpE;AACA,4DAA4D,mDAAO;;AAEnE;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;;;;;ACvDY;;AAEb;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;ACtDd;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;AC3CX;;AAEmB;AACe;AAC/C;AACoE;;AAEpE;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK,yBAAyB,iDAAK;AAC5C;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK;AACd;;AAEA,mBAAmB,iDAAK,cAAc,iDAAK,IAAI;AAC/C;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA,8BAA8B,0EAAgB;;AAE9C;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA,YAAY,iDAAK;AACjB,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAK;;AAEhC,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,oBAAoB,iDAAK;AACzB,gBAAgB,2DAAU;AAC1B;;AAEA,QAAQ,iDAAK,yBAAyB,iDAAK;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,GAAG;AAChB,aAAa,eAAe;AAC5B,aAAa,sBAAsB;AACnC,YAAY;AACZ;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA,UAAU,iDAAK,kBAAkB;AACjC;AACA;AACA;AACA;AACA,QAAQ;AACR,SAAS,iDAAK;AACd,UAAU,iDAAK,sBAAsB,iDAAK,gCAAgC,iDAAK;AAC/E;AACA;AACA;;AAEA;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,QAAQ,iDAAK;;AAEb;AACA;AACA;;AAEA;;AAEA,IAAI,iDAAK;AACT,uBAAuB,iDAAK;AAC5B,sBAAsB,iDAAK;AAC3B;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,OAAO,iDAAK;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;AC1Nb;;AAEmB;AACS;AACG;;AAE7B;AACf,SAAS,0DAAU,WAAW,0DAAQ;AACtC;AACA,UAAU,0DAAQ,WAAW,iDAAK;AAClC;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;AChBO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;ACtFa;;AAE0B;AACQ;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA,wBAAwB,iDAAO;AAC/B;;AAEA;AACA;AACA;AACA,gBAAgB,2DAAU;AAC1B;AACA,QAAQ,2DAAU;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA,cAAc,2DAAU,8BAA8B,2DAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAU,yCAAyC,2DAAU;AAC/E;AACA;AACA;AACA;AACA,gBAAgB,2DAAU,0BAA0B,2DAAU;AAC9D;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AC1FU;;AAEZ,iEAAe,yCAAyC;;;;;;;;;;;;;;;;ACF3C;;AAEb,iEAAe,iDAAiD,EAAC;;;;;;;;;;;;;;;;;ACFpD;;AAE+D;AAC5E,iEAAe,2DAA2D,wEAAoB,EAAC;;;;;;;;;;;;;;;;;;;ACHrC;AACd;AACR;;AAEpC,iEAAe;AACf;AACA;AACA,mBAAmB;AACnB,YAAY;AACZ,QAAQ;AACR,GAAG;AACH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;ACZF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAQC;;;;;;;;;;;;;;;;;;AClDsC;AACI;;AAE3C,iEAAe;AACf,KAAK,6CAAK;AACV,KAAK,sDAAQ;AACb,CAAC;;;;;;;;;;;;;;;;;ACNY;;AAEwB;;AAErC;;AAEA,OAAO,UAAU;AACjB,OAAO,gBAAgB;;AAEvB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA,OAAO,SAAS;;AAEhB;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA,2BAA2B,oBAAoB,IAAI;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC;AAClC,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA,gCAAgC,WAAW,IAAI;AAC/C;AACA;AACA,eAAe,4DAAI;AACnB,MAAM;AACN;AACA;AACA,GAAG,GAAG,WAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,eAAe;;AAEzC;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG,WAAW,cAAc;AAC5B,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;UCvvBF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA,+BAA+B;AAC8B;AACR;AACY;AACF;AACQ;AACtC;AAIZ;AAUA;AAME;AAEvB,gDAAgD;AAsB9C;AAEF,gDAAgD;AAChD,MAAM,GAAG,GAAG;IACV,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,MAAM;IACN,WAAW;IACX,OAAO;IACP,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,2BAA2B;IAC3B,kBAAkB;IAClB,IAAI;IACJ,KAAK;IACL,wBAAwB;IACxB,2BAA2B;CAC5B,CAAC;AAEF,qDAAqD;AACrD,iEAAe,GAAG,EAAC","sources":["webpack://SodasSDK/webpack/universalModuleDefinition","webpack://SodasSDK/./node_modules/form-data/lib/browser.js","webpack://SodasSDK/./node_modules/lodash.clonedeep/index.js","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataService.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataset.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/datasetSeries.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/distribution.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/versionInfo.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dcatClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/term.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/vocabulary.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/governanceClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/sodasSDKClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/template/validation.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/dataFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/sodasSDKFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/thumbnailFile.ts","webpack://SodasSDK/./lib/core/auth.ts","webpack://SodasSDK/./lib/core/error.ts","webpack://SodasSDK/./lib/core/init.ts","webpack://SodasSDK/./lib/core/type.ts","webpack://SodasSDK/./lib/core/util.ts","webpack://SodasSDK/./lib/core/values.ts","webpack://SodasSDK/ignored|/Users/pollo/Desktop/sodas_sdk/lib/SODAS_SDK_FILE|fs","webpack://SodasSDK/ignored|/Users/pollo/Desktop/sodas_sdk/lib/SODAS_SDK_FILE|path","webpack://SodasSDK/./node_modules/axios/lib/adapters/adapters.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/fetch.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/xhr.js","webpack://SodasSDK/./node_modules/axios/lib/axios.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CancelToken.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CanceledError.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/isCancel.js","webpack://SodasSDK/./node_modules/axios/lib/core/Axios.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/core/InterceptorManager.js","webpack://SodasSDK/./node_modules/axios/lib/core/buildFullPath.js","webpack://SodasSDK/./node_modules/axios/lib/core/dispatchRequest.js","webpack://SodasSDK/./node_modules/axios/lib/core/mergeConfig.js","webpack://SodasSDK/./node_modules/axios/lib/core/settle.js","webpack://SodasSDK/./node_modules/axios/lib/core/transformData.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/index.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/transitional.js","webpack://SodasSDK/./node_modules/axios/lib/env/data.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/bind.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/buildURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/combineURLs.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/composeSignals.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/cookies.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/null.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/speedometer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/spread.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/throttle.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toFormData.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/trackStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/validator.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/platform/browser/index.js","webpack://SodasSDK/./node_modules/axios/lib/platform/common/utils.js","webpack://SodasSDK/./node_modules/axios/lib/platform/index.js","webpack://SodasSDK/./node_modules/axios/lib/utils.js","webpack://SodasSDK/webpack/bootstrap","webpack://SodasSDK/webpack/runtime/compat get default export","webpack://SodasSDK/webpack/runtime/define property getters","webpack://SodasSDK/webpack/runtime/global","webpack://SodasSDK/webpack/runtime/hasOwnProperty shorthand","webpack://SodasSDK/webpack/runtime/make namespace object","webpack://SodasSDK/webpack/runtime/node module decorator","webpack://SodasSDK/./lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SodasSDK\"] = factory();\n\telse\n\t\troot[\"SodasSDK\"] = factory();\n})(typeof self !== 'undefined' ? self : this, () => {\nreturn ","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","import axios from \"axios\";\nimport {UnexpectedResponseFormatError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\nexport interface DataServiceDTO extends DCAT_RESOURCE_DTO {\n DataServiceID?: string;\n EndpointURL?: string;\n EndpointDescription?: string;\n}\n/**\n * Represents a Data Service DTO.\n */\nclass DataService extends DCAT_RESOURCE {\n private DataServiceID: IDType;\n private EndpointURL: string;\n private EndpointDescription: string;\n\n /**\n * Initializes the API URL for DataService.\n *\n * @static\n * @param {string} url - The base URL of the API.\n */\n static configureAPIURL(url: string) {\n DataService.API_URL = `${url}/dataservice`;\n DataService.LIST_URL = `${DataService.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DataService.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DataService.BEARER_TOKEN && {\n Authorization: `Bearer ${DataService.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new DataService();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new this();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DataServiceDTO {\n return {\n ...super.toDTO(),\n ...(this.DataServiceID && {DataServiceID: this.DataServiceID}),\n EndpointURL: this.EndpointURL,\n EndpointDescription: this.EndpointDescription,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dataServiceDTO = dto as DataServiceDTO;\n dataServiceDTO.DataServiceID &&\n (this.DataServiceID = asID(dataServiceDTO.DataServiceID));\n dataServiceDTO.EndpointURL &&\n (this.EndpointURL = dataServiceDTO.EndpointURL);\n dataServiceDTO.EndpointDescription &&\n (this.EndpointDescription = dataServiceDTO.EndpointDescription);\n }\n\n get dataServiceID(): IDType {\n return this.DataServiceID;\n }\n\n get endpointURL(): string {\n return this.EndpointURL;\n }\n set endpointURL(value: string) {\n this.EndpointURL = value;\n }\n\n get endpointDescription(): string {\n return this.EndpointDescription;\n }\n set endpointDescription(value: string) {\n this.EndpointDescription = value;\n }\n}\n\nexport default DataService;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\nimport Distribution from \"./distribution\";\n\nexport interface DatasetDTO extends DCAT_RESOURCE_DTO {\n DatasetID?: string;\n InSeriesID?: string;\n FirstID?: string;\n PreviousID?: string;\n NextID?: string;\n LastID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n DistributionIDs?: string[]; // Distribution is always returned in API\n}\n/**\n * Represents a Dataset Data Transfer Object (DTO).\n */\nclass Dataset extends DCAT_RESOURCE {\n private DatasetID: IDType;\n private InSeriesID: IDType;\n private FirstID: IDType;\n private PreviousID: IDType;\n private NextID: IDType;\n private LastID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private DistributionIDs: IDType[];\n private Distributions: Distribution[];\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n Dataset.API_URL = `${url}/dataset`;\n Dataset.LIST_URL = `${Dataset.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<Dataset>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = Dataset.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new Dataset();\n await dataset.populateFromDTO(item);\n return dataset;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${Dataset.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<Dataset>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n },\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new this();\n await dataset.populateFromDTO(item);\n return dataset;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetDTO {\n return {\n ...super.toDTO(),\n\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetDTO = dto as DatasetDTO;\n datasetDTO.DatasetID && (this.DatasetID = asID(datasetDTO.DatasetID));\n datasetDTO.InSeriesID && (this.InSeriesID = asID(datasetDTO.InSeriesID));\n datasetDTO.Frequency && (this.Frequency = datasetDTO.Frequency);\n datasetDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters = datasetDTO.SpatialResolutionInMeters);\n datasetDTO.TemporalResolution &&\n (this.TemporalResolution = datasetDTO.TemporalResolution);\n datasetDTO.Spatial && (this.Spatial = datasetDTO.Spatial);\n datasetDTO.Temporal && (this.Temporal = datasetDTO.Temporal);\n datasetDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetDTO.WasGeneratedBy);\n\n datasetDTO.FirstID && (this.FirstID = asID(datasetDTO.FirstID));\n datasetDTO.PreviousID && (this.PreviousID = asID(datasetDTO.PreviousID));\n datasetDTO.NextID && (this.NextID = asID(datasetDTO.NextID));\n datasetDTO.LastID && (this.LastID = asID(datasetDTO.LastID));\n\n await this.populateDistributionFromDTO(dto);\n }\n\n public async populateDistributionFromDTO(dto: DatasetDTO): Promise<void> {\n if (dto.DistributionIDs) {\n this.DistributionIDs = dto.DistributionIDs.map((stringID) =>\n asID(stringID),\n );\n this.Distributions = await Promise.all(\n dto.DistributionIDs.map(async (distributionID: IDType) => {\n return await Distribution.getDBRecord(distributionID);\n }),\n );\n }\n }\n\n public static async syncToCurrentHub(dataset: Dataset): Promise<void> {\n try {\n const checkExisting = await Dataset.getDBRecordByAssetID(\n asID(dataset.assetID),\n );\n if (checkExisting) {\n checkExisting.populateToSync(dataset);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDataset = new Dataset();\n newDataset.populateToSync(dataset);\n await newDataset.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n public populateToSync(source: Dataset): void {\n const excludedKeys = new Set([\n \"ID\",\n \"DatasetID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"InSeriesID\",\n \"FirstID\",\n \"PreviousID\",\n \"NextID\",\n \"LastID\",\n \"DistributionIDs\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"Distributions\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n // Handle distributions separately so that we can preserve identity fields\n // of existing distributions while syncing other fields, and create new\n // distributions for any additional ones in the source.\n const sourceDistributions = (source as any).Distributions as\n | Distribution[]\n | undefined;\n if (!sourceDistributions || sourceDistributions.length === 0) {\n return;\n }\n\n this.Distributions = [];\n\n for (let i = 0; i < sourceDistributions.length; i++) {\n const srcDist = sourceDistributions[i];\n const targetDist = new Distribution();\n targetDist.populateToSync(srcDist);\n this.Distributions.push(targetDist);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const distributions = this.Distributions;\n await super.createDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions && this.Distributions.length != 0) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n }\n\n private async deleteNotMaintainedDistributions() {\n if (this.DistributionIDs && this.DistributionIDs.length != 0) {\n const existingIDs = this.DistributionIDs;\n const maintainedIDs = asIDs(\n this.Distributions.map((distribution) => distribution.id).filter(\n (id) => id !== undefined,\n ),\n );\n const scheduledToDeletedIDs = existingIDs.filter(\n (id) => !maintainedIDs.includes(id),\n );\n const scheduledToDeletedDistributions = await Promise.all(\n scheduledToDeletedIDs.map(async (ID) => {\n return await Distribution.getDBRecord(ID);\n }),\n );\n await Promise.all(\n scheduledToDeletedDistributions.map(async (distribution) => {\n await distribution.deleteDBRecord();\n }),\n );\n this.DistributionIDs = maintainedIDs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const distributions = this.Distributions;\n await super.updateDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n if (distribution.id) {\n await distribution.updateDBRecord();\n } else {\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n await this.deleteNotMaintainedDistributions();\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.Distributions && this.Distributions.length != 0) {\n for (let i = 0; i < this.Distributions.length; i++) {\n if (this.Distributions[i].hasDBRecord()) {\n await this.Distributions[i].deleteDBRecord();\n }\n destroy(this.Distributions[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public get distributions(): Distribution[] {\n return this.Distributions;\n }\n\n public getDistributionUsingIndex(index: number): Distribution {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n return this.Distributions[index];\n }\n\n public appendDistribution(distribution: Distribution) {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n if (distribution instanceof Distribution) {\n this.Distributions.push(distribution);\n } else {\n throw new InvalidTypeError(distribution, \"Distribution\");\n }\n }\n\n /**\n * Creates and adds a new distribution to the dataset.\n * @returns {Distribution} The newly created distribution.\n */\n public createDistribution(): Distribution {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n const newDistribution = new Distribution();\n this.Distributions.push(newDistribution);\n return newDistribution;\n }\n\n public removeDistributionUsingIndex(index: number) {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n this.Distributions.splice(index, 1);\n }\n\n public get datasetID(): IDType {\n return this.DatasetID;\n }\n\n public get inSeriesID(): IDType {\n return this.InSeriesID;\n }\n\n public get firstID(): IDType {\n return this.FirstID;\n }\n\n public get previousID(): IDType {\n return this.PreviousID;\n }\n\n public get nextID(): IDType {\n return this.NextID;\n }\n\n public get lastID(): IDType {\n return this.LastID;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default Dataset;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n NotInitializedError,\n NotRecordedArgumentError,\n SwitchSameIndexError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Dataset from \"./dataset\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\ninterface DatasetSeriesDTO extends DCAT_RESOURCE_DTO {\n DatasetSeriesID?: string;\n InSeriesID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n SeriesMemberIDs?: string[];\n}\n\n/**\n * Represents a series of datasets.\n */\nclass DatasetSeries extends DCAT_RESOURCE {\n private DatasetSeriesID: IDType;\n private InSeriesID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private SeriesMembers: Dataset[];\n private SeriesMemberIDs: IDType[];\n\n public static async syncToCurrentHub(\n datasetSeries: DatasetSeries,\n ): Promise<void> {\n try {\n const checkExisting = await DatasetSeries.getDBRecordByAssetID(\n asID(datasetSeries.assetID),\n );\n if (checkExisting) {\n await checkExisting.populateToSync(datasetSeries);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDatasetSeries = new DatasetSeries();\n await newDatasetSeries.populateToSync(datasetSeries);\n await newDatasetSeries.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n /**\n * Populates this instance with values from the given DatasetSeries, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Version/lineage fields (IsVersionOf, PreviousVersionID, NextVersionID, VersionInfos)\n * - Series identity fields (DatasetSeriesID, InSeriesID)\n * - Fields explicitly set to `undefined` on the source instance\n *\n * Additionally, when SeriesMembers are present on the source, this method\n * resolves each member via Dataset.getDBRecordByAssetID (by AssetID) and\n * replaces this.SeriesMemberIDs with the resolved IDs.\n */\n public async populateToSync(source: DatasetSeries): Promise<void> {\n const excludedKeys = new Set([\n \"ID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"DatasetSeriesID\",\n \"InSeriesID\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"SeriesMembers\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n\n this.SeriesMembers = [];\n\n const sourceMembers = (source as any).SeriesMembers as\n | Dataset[]\n | undefined;\n if (!sourceMembers || sourceMembers.length === 0) {\n return;\n }\n\n const resolvedIDs: IDType[] = [];\n for (const member of sourceMembers) {\n if (!member) continue;\n const assetIDStr = member.assetID;\n if (!assetIDStr) continue;\n const assetID = asID(assetIDStr);\n // Prefer existing record by AssetID; if not found, create a new one.\n try {\n const existing = await Dataset.getDBRecordByAssetID(assetID);\n if (existing) {\n existing.populateToSync(member);\n await existing.updateDBRecord();\n resolvedIDs.push(existing.id);\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newMember = new Dataset();\n newMember.populateToSync(member);\n await newMember.createDBRecord();\n resolvedIDs.push(newMember.id);\n } else {\n throw error;\n }\n }\n }\n this.SeriesMemberIDs = resolvedIDs;\n }\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n DatasetSeries.API_URL = `${url}/datasetseries`;\n DatasetSeries.LIST_URL = `${DatasetSeries.API_URL}/list`;\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${DatasetSeries.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DatasetSeries.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new DatasetSeries();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n },\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new this();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetSeriesDTO {\n const result = {\n ...super.toDTO(),\n\n ...(this.DatasetSeriesID && {DatasetSeriesID: this.DatasetSeriesID}),\n ...(this.InSeriesID && {InSeriesID: this.InSeriesID}),\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n ...(this.SeriesMemberIDs && {SeriesMemberIDs: this.SeriesMemberIDs}),\n };\n return result;\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetSeriesDTO = dto as DatasetSeriesDTO;\n datasetSeriesDTO.DatasetSeriesID &&\n (this.DatasetSeriesID = asID(datasetSeriesDTO.DatasetSeriesID));\n datasetSeriesDTO.InSeriesID &&\n (this.InSeriesID = asID(datasetSeriesDTO.InSeriesID));\n datasetSeriesDTO.Frequency && (this.Frequency = datasetSeriesDTO.Frequency);\n datasetSeriesDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n datasetSeriesDTO.SpatialResolutionInMeters);\n datasetSeriesDTO.TemporalResolution &&\n (this.TemporalResolution = datasetSeriesDTO.TemporalResolution);\n datasetSeriesDTO.Spatial && (this.Spatial = datasetSeriesDTO.Spatial);\n datasetSeriesDTO.Temporal && (this.Temporal = datasetSeriesDTO.Temporal);\n datasetSeriesDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetSeriesDTO.WasGeneratedBy);\n\n await this.populateSeriesMembersFromDTO(datasetSeriesDTO);\n }\n\n public async populateSeriesMembersFromDTO(\n dto: DatasetSeriesDTO,\n ): Promise<void> {\n this.SeriesMembers = [];\n if (dto.SeriesMemberIDs && dto.SeriesMemberIDs.length != 0) {\n this.SeriesMemberIDs = asIDs(dto.SeriesMemberIDs);\n if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {\n for (const seriesMemberID of this.SeriesMemberIDs) {\n const seriesMember = await Dataset.getDBRecord(seriesMemberID);\n if (seriesMember) {\n this.SeriesMembers.push(seriesMember);\n }\n }\n }\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.SeriesMembers) {\n for (let i = 0; i < this.SeriesMembers.length; i++) {\n destroy(this.SeriesMembers[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public appendSeriesMember(dataset: Dataset) {\n if (!this.SeriesMemberIDs) {\n this.SeriesMemberIDs = [];\n }\n if (!(dataset instanceof Dataset)) {\n throw new InvalidTypeError(dataset, \"Dataset\");\n }\n if (!dataset.id) {\n throw new NotRecordedArgumentError(dataset);\n }\n this.SeriesMemberIDs.push(dataset.id);\n }\n\n public switchSeriesMembers(index1: number, index2: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index1 < 0 || index1 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index1);\n }\n if (index2 < 0 || index2 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index2);\n }\n if (index1 === index2) {\n throw new SwitchSameIndexError(index1);\n }\n\n const temp = this.SeriesMemberIDs[index1];\n this.SeriesMemberIDs[index1] = this.SeriesMemberIDs[index2];\n this.SeriesMemberIDs[index2] = temp;\n }\n\n public removeSeriesMember(index: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index < 0 || index >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index);\n }\n\n this.SeriesMemberIDs.splice(index, 1);\n if (this.SeriesMembers && index < this.SeriesMembers.length) {\n this.SeriesMembers.splice(index, 1);\n }\n }\n\n public get datasetSeriesID(): IDType {\n return this.DatasetSeriesID;\n }\n public get seriesMemberIDs(): IDType[] {\n return this.SeriesMemberIDs;\n }\n public get seriesMembers(): Dataset[] {\n return this.SeriesMembers;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default DatasetSeries;\n","import {InvalidTypeError, NotRecordedYetError} from \"../../core/error\";\nimport {\n asID,\n ExtraMetadataType,\n IDType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nimport ThumbnailFile from \"../../SODAS_SDK_FILE/thumbnailFile\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport VersionInfo, {VersionInfoDTO} from \"./versionInfo\";\n\nexport interface DCAT_RESOURCE_DTO extends DCAT_MODEL_DTO {\n //ResourceType is always determined in backend.\n ResourceType?: string;\n\n AssetID?: string;\n DatahubID?: string;\n ThumbnailURL?: string;\n AccessRights?: string;\n Status?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string;\n PreviousVersionID?: string;\n NextVersionID?: string;\n ContactPoint?: string;\n KeywordML?: MultiLanguageKeywords; // Adjust to specific type if available\n LandingPage?: string;\n Theme?: string;\n ConformsTo?: string;\n Creator?: string;\n DescriptionML?: any; // Adjust to specific type if available\n Identifier?: string;\n IsReferencedBy?: any[]; // Adjust to specific type if available\n Language?: any[]; // Adjust to specific type if available\n License?: string;\n Publisher?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific type if available\n Type?: string;\n HasPolicy?: any[];\n IssuerID?: string;\n ExtraMetadata?: ExtraMetadataType;\n\n VersionInfo?: VersionInfoDTO[];\n}\n\nabstract class DCAT_RESOURCE extends DCAT_MODEL {\n protected Thumbnail: ThumbnailFile;\n\n private ResourceType: string;\n\n private AssetID: IDType;\n private DatahubID: IDType;\n private ThumbnailURL: string;\n private AccessRights: string;\n private Status: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf: IDType;\n private PreviousVersionID: IDType;\n private NextVersionID: IDType;\n private ContactPoint: string;\n private KeywordML: MultiLanguageKeywords;\n private LandingPage: string;\n private Theme: string;\n private ConformsTo: string;\n private Creator: string;\n private DescriptionML: MultiLanguageField;\n private Identifier: string;\n private IsReferencedBy: any[];\n private Language: any[];\n private License: string;\n private Publisher: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private Type: string;\n private HasPolicy: any[];\n private IssuerID: string;\n private ExtraMetadata: ExtraMetadataType;\n\n private VersionInfos: VersionInfo[];\n\n public toDTO(): DCAT_RESOURCE_DTO {\n return {\n ...super.toDTO(),\n AssetID: this.AssetID,\n DatahubID: this.DatahubID,\n ThumbnailURL: this.ThumbnailURL,\n AccessRights: this.AccessRights,\n Status: this.Status,\n VersionNotes: this.VersionNotes,\n Version: this.Version,\n ...(this.IsVersionOf && {IsVersionOf: this.IsVersionOf}),\n ...(this.PreviousVersionID && {\n PreviousVersionID: this.PreviousVersionID,\n }),\n ...(this.NextVersionID && {NextVersionID: this.NextVersionID}),\n ContactPoint: this.ContactPoint,\n KeywordML: this.KeywordML,\n LandingPage: this.LandingPage,\n Theme: this.Theme,\n ConformsTo: this.ConformsTo,\n Creator: this.Creator,\n DescriptionML: this.DescriptionML,\n Identifier: this.Identifier,\n IsReferencedBy: this.IsReferencedBy,\n Language: this.Language,\n License: this.License,\n Publisher: this.Publisher,\n Rights: this.Rights,\n TitleML: this.TitleML,\n Type: this.Type,\n HasPolicy: this.HasPolicy,\n IssuerID: this.IssuerID,\n ExtraMetadata: this.ExtraMetadata,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dcatResourceDTO = dto as DCAT_RESOURCE_DTO;\n\n dcatResourceDTO.ResourceType &&\n (this.ResourceType = dcatResourceDTO.ResourceType);\n\n dcatResourceDTO.AssetID && (this.AssetID = asID(dcatResourceDTO.AssetID));\n dcatResourceDTO.DatahubID &&\n (this.DatahubID = asID(dcatResourceDTO.DatahubID));\n dcatResourceDTO.ThumbnailURL &&\n (this.ThumbnailURL = dcatResourceDTO.ThumbnailURL);\n dcatResourceDTO.AccessRights &&\n (this.AccessRights = dcatResourceDTO.AccessRights);\n dcatResourceDTO.Status && (this.Status = dcatResourceDTO.Status);\n dcatResourceDTO.VersionNotes &&\n (this.VersionNotes = dcatResourceDTO.VersionNotes);\n dcatResourceDTO.Version && (this.Version = dcatResourceDTO.Version);\n dcatResourceDTO.IsVersionOf &&\n (this.IsVersionOf = asID(dcatResourceDTO.IsVersionOf));\n dcatResourceDTO.PreviousVersionID &&\n (this.PreviousVersionID = asID(dcatResourceDTO.PreviousVersionID));\n dcatResourceDTO.NextVersionID &&\n (this.NextVersionID = asID(dcatResourceDTO.NextVersionID));\n dcatResourceDTO.ContactPoint &&\n (this.ContactPoint = dcatResourceDTO.ContactPoint);\n dcatResourceDTO.KeywordML && (this.KeywordML = dcatResourceDTO.KeywordML);\n dcatResourceDTO.LandingPage &&\n (this.LandingPage = dcatResourceDTO.LandingPage);\n dcatResourceDTO.Theme && (this.Theme = dcatResourceDTO.Theme);\n dcatResourceDTO.ConformsTo &&\n (this.ConformsTo = dcatResourceDTO.ConformsTo);\n dcatResourceDTO.Creator && (this.Creator = dcatResourceDTO.Creator);\n dcatResourceDTO.DescriptionML &&\n (this.DescriptionML = dcatResourceDTO.DescriptionML);\n dcatResourceDTO.Identifier &&\n (this.Identifier = dcatResourceDTO.Identifier);\n dcatResourceDTO.IsReferencedBy &&\n (this.IsReferencedBy = dcatResourceDTO.IsReferencedBy);\n dcatResourceDTO.Language && (this.Language = dcatResourceDTO.Language);\n dcatResourceDTO.License && (this.License = dcatResourceDTO.License);\n dcatResourceDTO.Publisher && (this.Publisher = dcatResourceDTO.Publisher);\n dcatResourceDTO.Rights && (this.Rights = dcatResourceDTO.Rights);\n dcatResourceDTO.TitleML && (this.TitleML = dcatResourceDTO.TitleML);\n dcatResourceDTO.Type && (this.Type = dcatResourceDTO.Type);\n dcatResourceDTO.HasPolicy && (this.HasPolicy = dcatResourceDTO.HasPolicy);\n dcatResourceDTO.IssuerID && (this.IssuerID = dcatResourceDTO.IssuerID);\n dcatResourceDTO.ExtraMetadata &&\n (this.ExtraMetadata = dcatResourceDTO.ExtraMetadata);\n await this.populateVersionInfoFromDTO(dcatResourceDTO);\n }\n\n public async populateVersionInfoFromDTO(\n dto: DCAT_RESOURCE_DTO,\n ): Promise<void> {\n if (dto.VersionInfo && dto.VersionInfo.length != 0) {\n this.VersionInfos = await Promise.all(\n dto.VersionInfo.map(async (veresionInfoDTO: VersionInfoDTO) => {\n const versionInfo = new VersionInfo();\n await versionInfo.populateFromDTO(veresionInfoDTO);\n return versionInfo;\n }),\n );\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.Thumbnail;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.Thumbnail;\n }\n\n public setThumbnailForBrowser(file: File) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForBrowser(file);\n }\n\n public setThumbnailForNode(thumbnailPath: string) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForNode(thumbnailPath);\n }\n\n get assetID(): string {\n return this.AssetID;\n }\n\n get versionInfos(): VersionInfo[] {\n return this.VersionInfos;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n set previousVersion(previousVersion: DCAT_RESOURCE) {\n if (!(previousVersion instanceof DCAT_RESOURCE)) {\n throw new InvalidTypeError(previousVersion, \"DCAT_RESOURCE\");\n }\n if (!previousVersion.hasDBRecord()) {\n throw new NotRecordedYetError(previousVersion);\n }\n this.PreviousVersionID = previousVersion.id;\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get datahubID(): string {\n return this.DatahubID;\n }\n\n get thumbnailURL(): string {\n return this.ThumbnailURL;\n }\n\n get accessRights(): string {\n return this.AccessRights;\n }\n set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n get status(): string {\n return this.Status;\n }\n set status(value: string) {\n this.Status = value;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n set versionNotes(value: string) {\n this.VersionNotes = value;\n }\n\n get version(): string {\n return this.Version;\n }\n set version(value: string) {\n this.Version = value;\n }\n\n get contactPoint(): string {\n return this.ContactPoint;\n }\n set contactPoint(value: string) {\n this.ContactPoint = value;\n }\n\n get landingPage(): string {\n return this.LandingPage;\n }\n set landingPage(value: string) {\n this.LandingPage = value;\n }\n\n get theme(): string {\n return this.Theme;\n }\n set theme(value: string) {\n this.Theme = value;\n }\n\n get conformsTo(): string {\n return this.ConformsTo;\n }\n set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n get creator(): string {\n return this.Creator;\n }\n set creator(value: string) {\n this.Creator = value;\n }\n\n get identifier(): string {\n return this.Identifier;\n }\n get language(): any[] {\n return this.Language;\n }\n set language(value: any[]) {\n this.Language = value;\n }\n\n get license(): string {\n return this.License;\n }\n set license(value: string) {\n this.License = value;\n }\n\n get publisher(): string {\n return this.Publisher;\n }\n set publisher(value: string) {\n this.Publisher = value;\n }\n\n get rights(): any[] {\n return this.Rights;\n }\n set rights(value: any[]) {\n this.Rights = value;\n }\n\n get type(): string {\n return this.Type;\n }\n set type(value: string) {\n this.Type = value;\n }\n\n get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n get issuerID(): string {\n return this.IssuerID;\n }\n set issuerID(value: string) {\n this.IssuerID = value;\n }\n\n public setExtraMetadata(name: string, value: string) {\n if (!this.ExtraMetadata) {\n this.ExtraMetadata = {};\n }\n this.ExtraMetadata[name] = value;\n }\n\n public getExtraMetadata(name: string): string | undefined {\n if (!this.ExtraMetadata) {\n return undefined;\n }\n return this.ExtraMetadata[name];\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`,\n );\n }\n }\n\n public setKeywords(keywords: string[], languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n this.KeywordML[languageCode] = keywords;\n }\n\n public addKeyword(keyword: string, languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n if (!this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = [];\n }\n if (!this.KeywordML[languageCode].includes(keyword)) {\n this.KeywordML[languageCode].push(keyword);\n }\n }\n\n public removeKeyword(keyword: string, languageCode: string = \"ko\") {\n if (this.KeywordML && this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = this.KeywordML[languageCode].filter(\n (k) => k !== keyword,\n );\n if (this.KeywordML[languageCode].length === 0) {\n delete this.KeywordML[languageCode]; // Remove the language entry if empty\n }\n }\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n return this.KeywordML[languageCode] ?? [];\n }\n}\n\nexport default DCAT_RESOURCE;\n","import DataFile from \"../../SODAS_SDK_FILE/dataFile\";\nimport {IDType, MultiLanguageField, asID} from \"../../core/type\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\n\nexport interface DistributionDTO extends DCAT_MODEL_DTO {\n AccessServiceID?: string;\n AccessURL?: string;\n ByteSize?: number;\n CompressFormat?: string;\n DownloadURL?: string;\n MediaType?: string;\n PackageFormat?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n AccessRights?: string;\n ConformsTo?: string;\n DescriptionML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n Format?: string;\n License?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n HasPolicy?: any[];\n Checksum?: string;\n\n IsDistributionOf?: string;\n}\n\nclass Distribution extends DCAT_MODEL {\n static UPLOAD_API_URL: string;\n static DOWNLOAD_API_URL: string;\n\n private UploadingData: DataFile;\n\n private IsDistributionOf: IDType;\n private AccessServiceID: IDType;\n private AccessURL: string;\n private ByteSize: number;\n private CompressFormat: string;\n private DownloadURL: string;\n private MediaType: string;\n private PackageFormat: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private AccessRights: string;\n private ConformsTo: string;\n private DescriptionML: MultiLanguageField;\n private Format: string;\n private License: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private HasPolicy: any[];\n private Checksum: string;\n\n /**\n * Populates this instance with values from the given Distribution, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Fields that are explicitly set to `undefined` on the source instance\n */\n public populateToSync(source: Distribution): void {\n const excludedKeys = new Set([\"ID\", \"IsDistributionOf\", \"AccessServiceID\"]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n }\n\n public toDTO(): DistributionDTO {\n return {\n ...super.toDTO(),\n ...(this.IsDistributionOf && {IsDistributionOf: this.IsDistributionOf}),\n ...(this.AccessServiceID && {AccessServiceID: this.AccessServiceID}),\n AccessURL: this.AccessURL,\n ByteSize: this.ByteSize,\n CompressFormat: this.CompressFormat,\n DownloadURL: this.DownloadURL,\n MediaType: this.MediaType,\n PackageFormat: this.PackageFormat,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n AccessRights: this.AccessRights,\n ConformsTo: this.ConformsTo,\n DescriptionML: this.DescriptionML,\n Format: this.Format,\n License: this.License,\n Rights: this.Rights,\n TitleML: this.TitleML,\n HasPolicy: this.HasPolicy,\n Checksum: this.Checksum,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const distributionDTO = dto as DistributionDTO;\n distributionDTO.AccessServiceID &&\n (this.AccessServiceID = asID(distributionDTO.AccessServiceID));\n distributionDTO.AccessURL && (this.AccessURL = distributionDTO.AccessURL);\n distributionDTO.ByteSize && (this.ByteSize = distributionDTO.ByteSize);\n distributionDTO.CompressFormat &&\n (this.CompressFormat = distributionDTO.CompressFormat);\n distributionDTO.DownloadURL &&\n (this.DownloadURL = distributionDTO.DownloadURL);\n distributionDTO.MediaType && (this.MediaType = distributionDTO.MediaType);\n distributionDTO.PackageFormat &&\n (this.PackageFormat = distributionDTO.PackageFormat);\n distributionDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n distributionDTO.SpatialResolutionInMeters);\n distributionDTO.TemporalResolution &&\n (this.TemporalResolution = distributionDTO.TemporalResolution);\n distributionDTO.AccessRights &&\n (this.AccessRights = distributionDTO.AccessRights);\n distributionDTO.ConformsTo &&\n (this.ConformsTo = distributionDTO.ConformsTo);\n distributionDTO.DescriptionML &&\n (this.DescriptionML = distributionDTO.DescriptionML);\n distributionDTO.Format && (this.Format = distributionDTO.Format);\n distributionDTO.License && (this.License = distributionDTO.License);\n distributionDTO.Rights && (this.Rights = distributionDTO.Rights);\n distributionDTO.TitleML && (this.TitleML = distributionDTO.TitleML);\n distributionDTO.HasPolicy && (this.HasPolicy = distributionDTO.HasPolicy);\n distributionDTO.Checksum && (this.Checksum = distributionDTO.Checksum);\n distributionDTO.IsDistributionOf &&\n (this.IsDistributionOf = asID(distributionDTO.IsDistributionOf));\n }\n\n /**\n * Initializes or updates the API URLs for the Distribution class.\n *\n * @static\n * @param {string} url - The base URL for the distribution API.\n */\n static configureAPIURL(url: string) {\n Distribution.API_URL = `${url}/distribution`;\n Distribution.LIST_URL = `${Distribution.API_URL}/list`;\n Distribution.UPLOAD_API_URL = `${url}/data/upload`;\n Distribution.DOWNLOAD_API_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.configureBucketName(bucketName);\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setUploadingDataForBrowser(file: File) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForBrowser(file);\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setUploadingDataForNode(filePath: string) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForNode(filePath);\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.UploadingData;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.UploadingData;\n }\n\n // AccessServiceID\n public get accessServiceID(): IDType {\n return this.AccessServiceID;\n }\n\n // AccessURL\n public get accessURL(): string {\n return this.AccessURL;\n }\n public set accessURL(value: string) {\n this.AccessURL = value;\n }\n\n // ByteSize\n public get byteSize(): number {\n return this.ByteSize;\n }\n public set byteSize(value: number) {\n this.ByteSize = value;\n }\n\n // DownloadURL\n public get downloadURL(): string {\n return this.DownloadURL;\n }\n\n public set downloadURL(value: string) {\n this.DownloadURL = value;\n }\n\n // MediaType\n public get mediaType(): string {\n return this.MediaType;\n }\n\n public set mediaType(value: string) {\n this.MediaType = value;\n }\n\n // PackageFormat\n public get packageFormat(): string {\n return this.PackageFormat;\n }\n\n public set packageFormat(value: string) {\n this.PackageFormat = value;\n }\n\n // SpatialResolutionInMeters\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n // TemporalResolution\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n // AccessRights\n public get accessRights(): string {\n return this.AccessRights;\n }\n\n public set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n // ConformsTo\n public get conformsTo(): string {\n return this.ConformsTo;\n }\n\n public set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`\n );\n }\n }\n\n // Format\n public get format(): string {\n return this.Format;\n }\n public set format(value: string) {\n this.Format = value;\n }\n\n // CompressFormat\n public get compressFormat(): string {\n return this.CompressFormat;\n }\n public set compressFormat(value: string) {\n this.CompressFormat = value;\n }\n\n // License\n public get license(): string {\n return this.License;\n }\n public set license(value: string) {\n this.License = value;\n }\n\n // Rights\n public get rights(): any[] {\n return this.Rights;\n }\n public set rights(value: any[]) {\n this.Rights = value;\n }\n\n public get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n public set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n // Checksum\n public get checksum(): string {\n return this.Checksum;\n }\n public set checksum(value: string) {\n this.Checksum = value;\n }\n\n // IsDistributionOf\n public get isDistributionOf(): IDType {\n return this.IsDistributionOf;\n }\n public set isDistributionOf(value: string) {\n this.IsDistributionOf = asID(value);\n }\n}\n\nexport default Distribution;\n","import {\n asID,\n asIRI,\n IDType,\n IRIType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nexport interface VersionInfoDTO {\n ID?: string; // ID from core.Model\n TitleML?: MultiLanguageField;\n DescriptionML?: MultiLanguageField;\n IRI?: string;\n KeywordML?: MultiLanguageKeywords;\n ResourceType?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string; // UUID as string\n NextVersionID?: string; // UUID as string\n PreviousVersionID?: string; // UUID as string\n}\n\n/**\n * Represents version information for a resource.\n */\nclass VersionInfo {\n private ID?: IDType;\n private TitleML: MultiLanguageField;\n private DescriptionML: MultiLanguageField;\n private IRI: IRIType;\n private KeywordML: MultiLanguageKeywords;\n private ResourceType: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf?: string;\n private NextVersionID?: string;\n private PreviousVersionID?: string;\n\n public async populateFromDTO(dto: VersionInfoDTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.TitleML && (this.TitleML = dto.TitleML);\n dto.DescriptionML && (this.DescriptionML = dto.DescriptionML);\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.KeywordML && (this.KeywordML = dto.KeywordML);\n dto.ResourceType && (this.ResourceType = dto.ResourceType);\n dto.VersionNotes && (this.VersionNotes = dto.VersionNotes);\n dto.Version && (this.Version = dto.Version);\n dto.IsVersionOf && (this.IsVersionOf = dto.IsVersionOf);\n dto.NextVersionID && (this.NextVersionID = dto.NextVersionID);\n dto.PreviousVersionID && (this.PreviousVersionID = dto.PreviousVersionID);\n }\n\n get id(): IDType {\n return this.ID;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n get iri(): IRIType {\n return this.IRI;\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n return this.KeywordML[languageCode] || [];\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n\n get version(): string {\n return this.Version;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n}\n\nexport default VersionInfo;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID, asIRI} from \"../core/type\";\nimport {LARGE_ENOUGH_NUMBER, destroy, handleAxiosError} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\n\ninterface DCAT_MODEL_STATIC<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof DCAT_MODEL.listDBRecords;\n}\nexport interface DCAT_MODEL_DTO {\n ID?: string;\n IRI?: string;\n\n Issued?: string;\n Modified?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n}\n\nabstract class DCAT_MODEL extends SODAS_SDK_CLASS {\n protected CreatedAt: Date;\n protected UpdatedAt: Date;\n\n public toDTO(): DCAT_MODEL_DTO {\n return {\n ...(this.ID && {ID: this.ID}),\n ...(this.IRI && {IRI: this.IRI}),\n ...(this.Issued && {Issued: this.Issued.toISOString()}),\n ...(this.Modified && {Modified: this.Modified.toISOString()}),\n ...(this.CreatedAt && {CreatedAt: this.CreatedAt.toISOString()}),\n ...(this.UpdatedAt && {UpdatedAt: this.UpdatedAt.toISOString()}),\n };\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.Issued && (this.Issued = new Date(dto.Issued));\n dto.Modified && (this.Modified = new Date(dto.Modified));\n dto.CreatedAt && (this.CreatedAt = new Date(dto.CreatedAt));\n dto.UpdatedAt && (this.UpdatedAt = new Date(dto.UpdatedAt));\n }\n\n static async listDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<GENERIC_DCAT_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(item);\n return dcatResource;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>\n ): Promise<GENERIC_DCAT_MODEL[]> {\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list;\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public static async getDBRecord<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n ID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/${ID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n static async getDBRecordByAssetID<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n assetID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/asset/${assetID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n /**\n * Checks whether a DB record exists for the given AssetID and returns its ID.\n *\n * This method wraps getDBRecordByAssetID and converts a 404 response to `null`,\n * while rethrowing any other kind of error.\n */\n static async checkDBRecordOfAssetID(assetID: IDType): Promise<IDType | null> {\n try {\n const record = (await (this as any).getDBRecordByAssetID(\n assetID\n )) as DCAT_MODEL;\n return record.id;\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: `${cls.API_URL}/`,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.delete(`${this.ID}`);\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 204) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n\n public get createdAt(): Date {\n return this.CreatedAt;\n }\n\n public get updatedAt(): Date {\n return this.UpdatedAt;\n }\n}\n\nexport default DCAT_MODEL;\n","import axios from \"axios\";\nimport {\n NeedToImplementError,\n NeedToSetFieldError,\n NotRecordedYetError,\n} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IDType,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Vocabulary from \"./vocabulary\";\n\nexport interface TermDTO extends GOVERNANCE_MODEL_DTO {\n termIri?: string;\n vocabularyId: string;\n name: string;\n description?: string;\n}\n\nclass Term extends GOVERNANCE_MODEL {\n private TermIRI: IRIType;\n private VocabularyID: IDType;\n private Name: string;\n private Description: string;\n\n private VocabularyIRI: IRIType;\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Term.API_URL = `${url}/${PREFIX}/term`;\n Term.LIST_URL = `${Term.API_URL}/list`;\n Term.GET_URL = `${Term.API_URL}/get`;\n Term.CREATE_URL = `${Term.API_URL}/create`;\n Term.UPDATE_URL = `${Term.API_URL}/update`;\n Term.DELETE_URL = `${Term.API_URL}/remove`;\n }\n\n public toDTO(): TermDTO {\n return {\n ...super.toDTO(),\n termIri: this.TermIRI,\n vocabularyId: this.vocabularyID,\n name: this.Name,\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const termDTO = dto as TermDTO;\n this.TermIRI = asIRI(termDTO.termIri);\n this.VocabularyID = asID(termDTO.vocabularyId);\n this.Name = termDTO.name;\n termDTO.description && (this.Description = termDTO.description);\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType\n ): Promise<PaginatedResponse<Term>> {\n throwErrorIfAPIURLNotSetForStatic(Term);\n try {\n const response = await axios.get(Term.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await Term.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get termIRI(): IRIType {\n return this.TermIRI;\n }\n\n public set termIRI(value: string) {\n this.TermIRI = asIRI(value);\n }\n\n public setVocabulary(vocabulary: Vocabulary) {\n if (!vocabulary.hasDBRecord()) {\n throw new NotRecordedYetError(vocabulary);\n }\n this.VocabularyID = vocabulary.id;\n this.VocabularyIRI = vocabulary.iri;\n }\n\n public get vocabularyIRI(): IRIType {\n return this.VocabularyIRI;\n }\n\n public get vocabularyID(): IDType {\n return this.VocabularyID;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public setExternalTermIRIUsingName() {\n if (!this.name) {\n throw new NeedToSetFieldError(this, \"name\");\n }\n this.termIRI = `${this.VocabularyIRI}#${this.name}`;\n }\n}\n\nexport default Term;\n","import axios from \"axios\";\nimport {NamedTermNotExistError, NeedToImplementError} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Term from \"./term\";\n\nexport interface VocabularyDTO extends GOVERNANCE_MODEL_DTO {\n namespaceIri?: string;\n original: boolean;\n prefix: string;\n name: string;\n description: string;\n}\n\nclass Vocabulary extends GOVERNANCE_MODEL {\n private NamespaceIRI: IRIType;\n private Original: boolean;\n private Prefix: string;\n private Name: string;\n private Description: string;\n\n private FetchedTermIRIs: IRIType[];\n private Terms: Term[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Vocabulary.API_URL = `${url}/${PREFIX}/vocabulary`;\n Vocabulary.LIST_URL = `${Vocabulary.API_URL}/list`;\n Vocabulary.GET_URL = `${Vocabulary.API_URL}/get`;\n Vocabulary.CREATE_URL = `${Vocabulary.API_URL}/create`;\n Vocabulary.UPDATE_URL = `${Vocabulary.API_URL}/update`;\n Vocabulary.DELETE_URL = `${Vocabulary.API_URL}/remove`;\n }\n\n public toDTO(): VocabularyDTO {\n return {\n ...super.toDTO(),\n ...(this.NamespaceIRI && {namespaceIri: this.NamespaceIRI}),\n original: this.Original,\n prefix: this.Prefix,\n name: this.Name,\n description: this.Description,\n };\n }\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const vocabularyDTO = dto as VocabularyDTO;\n this.NamespaceIRI = asIRI(vocabularyDTO.namespaceIri);\n this.Original = vocabularyDTO.original;\n this.Prefix = vocabularyDTO.prefix;\n this.Name = vocabularyDTO.name;\n this.Description = vocabularyDTO.description;\n await this.populateTermsFromDTO(vocabularyDTO);\n }\n\n private async populateTermsFromDTO(dto: VocabularyDTO): Promise<void> {\n if (dto.id) {\n const {list} = await Term.listDBRecords(\n 1,\n LARGE_ENOUGH_NUMBER,\n SortOrder.ASC,\n asID(dto.id)\n );\n this.Terms = list;\n this.FetchedTermIRIs = this.Terms.map((term) => term.iri);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const terms = this.Terms;\n await super.createDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n }\n\n private async deleteNotMaintainedTerms() {\n if (this.FetchedTermIRIs && this.FetchedTermIRIs.length != 0) {\n const existingIRIs = this.FetchedTermIRIs;\n const maintainedIRIs = this.Terms.map((term) => term.iri).filter(\n (iri) => iri !== undefined\n );\n const scheduledToDeletedIRIs = existingIRIs.filter(\n (iri) => !maintainedIRIs.includes(iri)\n );\n const scheduledToDeletedTerms = await Promise.all(\n scheduledToDeletedIRIs.map(async (IRI) => {\n return await Term.getDBRecord(IRI);\n })\n );\n await Promise.all(\n scheduledToDeletedTerms.map(async (term) => {\n await term.deleteDBRecord();\n })\n );\n this.FetchedTermIRIs = maintainedIRIs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n try {\n const terms = this.Terms;\n await super.updateDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n term.setVocabulary(this);\n if (term.hasDBRecord()) {\n await term.updateDBRecord();\n } else {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n await this.deleteNotMaintainedTerms();\n }\n } catch (error) {\n throw error;\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n await this.deleteNotMaintainedTerms();\n if (this.Terms && this.Terms.length != 0) {\n for (let i = 0; i < this.Terms.length; i++) {\n destroy(this.Terms[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n original?: boolean,\n name?: string\n ): Promise<PaginatedResponse<Vocabulary>> {\n throwErrorIfAPIURLNotSetForStatic(Vocabulary);\n try {\n const response = await axios.get(Vocabulary.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n original: original,\n name: name,\n },\n // headers,\n });\n return await Vocabulary.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public createTerm(): Term {\n if (!this.Terms) {\n this.Terms = [];\n }\n const newTerm = new Term();\n newTerm.setVocabulary(this);\n this.Terms.push(newTerm);\n return newTerm;\n }\n\n public getTermUsingName(name: string): Term {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n return this.Terms[index];\n }\n\n public removeTermUsingName(name: string): void {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n this.Terms.splice(index, 1);\n }\n\n public get namespaceIRI(): IRIType {\n return this.NamespaceIRI;\n }\n\n public set namespaceIRI(value: string) {\n this.NamespaceIRI = asIRI(value);\n }\n\n public get original(): boolean {\n return this.Original;\n }\n\n public set original(value: boolean) {\n this.Original = value;\n }\n\n public get prefix(): string {\n return this.Prefix;\n }\n\n public set prefix(value: string) {\n this.Prefix = value;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get terms(): Term[] {\n return this.Terms;\n }\n}\n\nexport default Vocabulary;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n NeedToImplementError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {asID, asIRI, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\ninterface GovernanceModelStatic<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof GOVERNANCE_MODEL.listDBRecords;\n}\n\nexport interface GOVERNANCE_MODEL_DTO {\n id?: string;\n iri?: string;\n issued?: string;\n modified?: string;\n}\n\nabstract class GOVERNANCE_MODEL extends SODAS_SDK_CLASS {\n static GET_URL: string;\n static CREATE_URL: string;\n static UPDATE_URL: string;\n static DELETE_URL: string;\n\n public toDTO(): GOVERNANCE_MODEL_DTO {\n return {\n ...(this.ID && {id: this.ID}),\n ...(this.IRI && {iri: this.IRI}),\n ...(this.Issued && {issued: this.Issued.toISOString()}),\n ...(this.Modified && {modified: this.Modified.toISOString()}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {}\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n dto.id && (this.ID = asID(dto.id));\n dto.iri && (this.IRI = asIRI(dto.iri));\n dto.issued && (this.Issued = new Date(dto.issued));\n dto.modified && (this.Modified = new Date(dto.modified));\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n static async listDBRecords<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: new () => GENERIC_GOVERNANCE_MODEL,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<GOVERNANCE_MODEL>> {\n throw new NeedToImplementError();\n }\n\n static async listResponseToPaginatedResponse<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n response: any\n ): Promise<PaginatedResponse<GENERIC_GOVERNANCE_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n if (response.data.total != null && Array.isArray(response.data.results)) {\n const list = [];\n for (const item of response.data.results) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(item);\n list.push(governanceModel);\n }\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>\n ): Promise<GENERIC_GOVERNANCE_MODEL[]> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list as GENERIC_GOVERNANCE_MODEL[];\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).CREATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n static async getDBRecord<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n IRI: IRIType\n ): Promise<GENERIC_GOVERNANCE_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n const url = `${\n (this.prototype.constructor as typeof GOVERNANCE_MODEL).GET_URL\n }/?iri=${IRI}`;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(response.data);\n return governanceModel;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const {iri, issued, modified, ...data} = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).UPDATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const url = `${(this.constructor as typeof GOVERNANCE_MODEL).DELETE_URL}`;\n let response: any;\n try {\n response = await axios.post(\n url,\n {iri: this.IRI},\n {headers: {\"Content-Type\": \"application/json\"}}\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 201) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n}\n\nexport default GOVERNANCE_MODEL;\n","import {\n AlreadyRecordedError,\n API_URL_NOT_SET,\n NeedToImplementError,\n NotRecordedYetError,\n} from \"../core/error\";\nimport {IDType, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\n\nexport function throwErrorIfAPIURLNotSetForStatic(cls: typeof SODAS_SDK_CLASS) {\n if (!cls.API_URL) {\n throw new API_URL_NOT_SET(cls);\n }\n}\n\nabstract class SODAS_SDK_CLASS {\n static BEARER_TOKEN: string;\n static API_URL: string;\n static LIST_URL: string;\n\n protected ID: IDType;\n protected IRI: IRIType;\n\n protected Issued: Date;\n protected Modified: Date;\n\n static configureAPIURL(url: string) {\n throw new NeedToImplementError();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<SODAS_SDK_CLASS>> {\n throw new NeedToImplementError();\n }\n\n public abstract toDTO(): any;\n public abstract populateFromDTO(dto: any): Promise<void>;\n\n public abstract createDBRecord(): Promise<void>;\n public abstract updateDBRecord(): Promise<void>;\n public abstract deleteDBRecord(): Promise<void>;\n\n public abstract hasDBRecord(): boolean;\n\n protected throwErrorIfRecorded() {\n if (this.hasDBRecord()) {\n throw new AlreadyRecordedError(this);\n }\n }\n protected throwErrorIfNotRecorded() {\n if (!this.hasDBRecord()) {\n throw new NotRecordedYetError(this);\n }\n }\n\n protected throwErrorIfAPIURLNotSet() {\n if (!(this.constructor as typeof SODAS_SDK_CLASS).API_URL) {\n throw new API_URL_NOT_SET(this.constructor);\n }\n }\n\n public debug() {\n console.log(this);\n }\n\n public get id(): IDType {\n return this.ID;\n }\n\n public get iri(): IRIType {\n return this.IRI;\n }\n\n public get issued(): Date {\n return this.Issued;\n }\n\n public get modified(): Date {\n return this.Modified;\n }\n}\n\nexport default SODAS_SDK_CLASS;\n","import axios from \"axios\";\nimport {NeedToImplementError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\n\nexport enum VALIDATION_TYPE {\n DATA_TYPE = \"data_type\",\n RANGE = \"range\",\n PATTERN = \"pattern\",\n UNIQUENESS = \"uniqueness\",\n COMPLETENESS = \"completeness\",\n LENGTH = \"length\",\n ALLOWED_VALUES = \"allowed_values\",\n OUTLIER = \"outlier\",\n STATISTICAL = \"statistical\",\n}\n\nexport enum EXPECTED_TYPE {\n NUMERIC = \"numeric\",\n STRING = \"string\",\n DATETIME = \"datetime\",\n}\n\nexport interface ValidationRule {\n column: string;\n name: string;\n type: VALIDATION_TYPE;\n}\n\nexport interface completnessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.COMPLETENESS;\n min_completeness: number;\n weight: number;\n}\nexport interface dataTypeValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.DATA_TYPE;\n expected_type: EXPECTED_TYPE;\n weight: number;\n}\nexport interface uniquenessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.UNIQUENESS;\n weight: number;\n}\nexport interface patternValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.PATTERN;\n pattern: string;\n weight: number;\n}\n\nexport interface ValidationTemplateDTO extends GOVERNANCE_MODEL_DTO {\n name: string;\n description?: string;\n validationRules: ValidationRule[];\n}\n\nclass ValidationTemplate extends GOVERNANCE_MODEL {\n private Name: string;\n private Description: string;\n private ValidationRules: ValidationRule[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/template\";\n ValidationTemplate.API_URL = `${url}/${PREFIX}/validation`;\n ValidationTemplate.LIST_URL = `${ValidationTemplate.API_URL}/list`;\n ValidationTemplate.GET_URL = `${ValidationTemplate.API_URL}/get`;\n ValidationTemplate.CREATE_URL = `${ValidationTemplate.API_URL}/create`;\n ValidationTemplate.UPDATE_URL = `${ValidationTemplate.API_URL}/update`;\n ValidationTemplate.DELETE_URL = `${ValidationTemplate.API_URL}/remove`;\n }\n\n public toDTO(): ValidationTemplateDTO {\n return {\n ...super.toDTO(),\n name: this.Name,\n ...(this.ValidationRules && {validationRules: this.ValidationRules}),\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const validationTemplateDTO = dto as ValidationTemplateDTO;\n this.ValidationRules = validationTemplateDTO.validationRules;\n this.Name = validationTemplateDTO.name;\n this.Description = validationTemplateDTO.description;\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType,\n ): Promise<PaginatedResponse<ValidationTemplate>> {\n throwErrorIfAPIURLNotSetForStatic(ValidationTemplate);\n try {\n const response = await axios.get(ValidationTemplate.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await ValidationTemplate.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get validationRules(): ValidationRule[] {\n return this.ValidationRules;\n }\n\n public set validationRules(value: ValidationRule[]) {\n this.ValidationRules = value;\n }\n\n static parseValidationRules(rawRules: any[]): ValidationRule[] {\n return rawRules.map((rule) => {\n const baseRule = {\n column: rule.column,\n name: rule.name,\n type: rule.type as VALIDATION_TYPE,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.COMPLETENESS,\n min_completeness: rule.min_completeness,\n weight: rule.weight,\n } as completnessValidationRule;\n\n case VALIDATION_TYPE.DATA_TYPE:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.DATA_TYPE,\n expected_type: rule.expected_type as EXPECTED_TYPE,\n weight: rule.weight,\n } as dataTypeValidationRule;\n\n case VALIDATION_TYPE.PATTERN:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.PATTERN,\n pattern: rule.pattern,\n weight: rule.weight,\n } as patternValidationRule;\n\n case VALIDATION_TYPE.UNIQUENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.UNIQUENESS,\n weight: rule.weight,\n } as uniquenessValidationRule;\n\n default:\n return baseRule as ValidationRule;\n }\n });\n }\n\n private ensureValidationRulesInitialized() {\n if (!this.ValidationRules) {\n this.ValidationRules = [];\n }\n }\n\n public createRule(type: VALIDATION_TYPE): ValidationRule {\n this.ensureValidationRulesInitialized();\n let rule: ValidationRule;\n const baseRule = {\n column: \"\",\n name: \"\",\n type,\n };\n switch (type) {\n case VALIDATION_TYPE.COMPLETENESS:\n rule = {\n ...baseRule,\n min_completeness: 0,\n weight: 0,\n } as completnessValidationRule;\n break;\n case VALIDATION_TYPE.DATA_TYPE:\n rule = {\n ...baseRule,\n expected_type: EXPECTED_TYPE.STRING,\n weight: 0,\n } as dataTypeValidationRule;\n break;\n case VALIDATION_TYPE.PATTERN:\n rule = {\n ...baseRule,\n pattern: \"\",\n weight: 0,\n } as patternValidationRule;\n break;\n case VALIDATION_TYPE.UNIQUENESS:\n rule = {\n ...baseRule,\n weight: 0,\n } as uniquenessValidationRule;\n break;\n default:\n rule = baseRule as ValidationRule;\n }\n this.ValidationRules.push(rule);\n return rule;\n }\n\n public deleteRuleAt(index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0 || index >= this.ValidationRules.length) {\n return;\n }\n this.ValidationRules.splice(index, 1);\n }\n\n public deleteRuleByTypeAt(type: VALIDATION_TYPE, index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0) {\n return;\n }\n let current = 0;\n for (let i = 0; i < this.ValidationRules.length; i++) {\n if (this.ValidationRules[i].type === type) {\n if (current === index) {\n this.ValidationRules.splice(i, 1);\n return;\n }\n current++;\n }\n }\n }\n\n static groupValidationRulesByColumn(\n rules: ValidationRule[],\n ): Record<string, ValidationRule[]> {\n return rules.reduce(\n (acc, rule) => {\n const column = rule.column;\n if (!acc[column]) {\n acc[column] = [];\n }\n acc[column].push(rule);\n return acc;\n },\n {} as Record<string, ValidationRule[]>,\n );\n }\n\n static groupValidationRulesByType(\n rules: ValidationRule[],\n ): Record<VALIDATION_TYPE, ValidationRule[]> {\n return rules.reduce(\n (acc, rule) => {\n const type = rule.type;\n if (!acc[type]) {\n acc[type] = [];\n }\n acc[type].push(rule);\n return acc;\n },\n {} as Record<VALIDATION_TYPE, ValidationRule[]>,\n );\n }\n\n /**\n * Parse escaped JSON string containing validation_rules to ValidationRule[]\n * @param escapedString - Escaped JSON string like \"validation_rules\\\":[{\\\"column\\\":\\\"class_label\\\",...}]\"\n * @returns Parsed ValidationRule array\n */\n static parseValidationRulesFromEscapedString(\n escapedString: string,\n ): ValidationRule[] {\n let processedString = escapedString.trim();\n\n // Remove surrounding quotes if present (e.g., '\"{\"validation_rules\":...}\"' -> '{\"validation_rules\":...}')\n // Check for both single and double quotes\n if (\n ((processedString.startsWith('\"') && processedString.endsWith('\"')) ||\n (processedString.startsWith(\"'\") && processedString.endsWith(\"'\"))) &&\n processedString.length > 1\n ) {\n processedString = processedString.slice(1, -1).trim();\n }\n\n // Unescape the string (replace \\\" with \")\n // Handle both \\\" and \\\\\\\" cases to avoid double-escaping issues\n let unescapedString = processedString;\n // First handle \\\\\\\" -> \\\"\n unescapedString = unescapedString.replace(/\\\\\\\\\"/g, '\\\\\"');\n // Then handle \\\" -> \"\n unescapedString = unescapedString.replace(/\\\\\"/g, '\"');\n\n // Try to parse as JSON\n let parsed: any;\n try {\n // First try parsing directly\n parsed = JSON.parse(unescapedString);\n } catch (error) {\n // If parsing fails, try different approaches\n const trimmed = unescapedString.trim();\n\n // If it starts with \"validation_rules\" but is not wrapped in braces\n if (\n trimmed.startsWith('\"validation_rules\"') ||\n trimmed.startsWith(\"validation_rules\")\n ) {\n // Try wrapping in braces\n const wrapped = trimmed.startsWith('\"')\n ? `{${trimmed}}`\n : `{\"${trimmed}}`;\n try {\n parsed = JSON.parse(wrapped);\n } catch (e) {\n // If still fails, try without the leading quote\n const withoutQuote = trimmed.replace(/^\"/, \"\");\n parsed = JSON.parse(`{\"${withoutQuote}`);\n }\n } else if (trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\")) {\n // Already looks like JSON object, try parsing again after trimming\n parsed = JSON.parse(trimmed);\n } else {\n throw error;\n }\n }\n\n // Extract validation_rules array\n let validationRules: any;\n\n // If it's already an array, use it directly\n if (Array.isArray(parsed)) {\n validationRules = parsed;\n } else if (parsed.validation_rules) {\n // If it's an object with validation_rules property\n validationRules = parsed.validation_rules;\n } else if (typeof parsed === \"object\") {\n // If it's an object but no validation_rules property, try to use it as is\n validationRules = parsed;\n } else {\n throw new Error(\"Invalid format: validation_rules not found\");\n }\n\n // Ensure validationRules is an array\n if (!Array.isArray(validationRules)) {\n throw new Error(\"Invalid format: validation_rules must be an array\");\n }\n\n const parsedRules =\n ValidationTemplate.parseValidationRules(validationRules);\n (parsedRules as any)._escapedString = escapedString;\n return parsedRules;\n }\n\n /**\n * Convert ValidationRule[] to escaped JSON string\n * @param rules - ValidationRule array to stringify\n * @returns Escaped JSON string with format: \"{\\\"validation_rules\\\":[...]}\"\n */\n static stringifyValidationRulesToEscapedString(\n rules: ValidationRule[],\n ): string {\n // Convert ValidationRule[] to plain objects for JSON serialization\n const plainRules = rules.map((rule) => {\n const plainRule: any = {\n column: rule.column,\n name: rule.name,\n type: rule.type,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n const completenessRule = rule as completnessValidationRule;\n return {\n ...plainRule,\n min_completeness: completenessRule.min_completeness,\n weight: completenessRule.weight,\n };\n\n case VALIDATION_TYPE.DATA_TYPE:\n const dataTypeRule = rule as dataTypeValidationRule;\n return {\n ...plainRule,\n expected_type: dataTypeRule.expected_type,\n weight: dataTypeRule.weight,\n };\n\n case VALIDATION_TYPE.PATTERN:\n const patternRule = rule as patternValidationRule;\n return {\n ...plainRule,\n pattern: patternRule.pattern,\n weight: patternRule.weight,\n };\n\n case VALIDATION_TYPE.UNIQUENESS:\n const uniquenessRule = rule as uniquenessValidationRule;\n return {\n ...plainRule,\n weight: uniquenessRule.weight,\n };\n\n default:\n return plainRule;\n }\n });\n\n // Create object with validation_rules property\n if ((rules as any)._escapedString) {\n return (rules as any)._escapedString;\n }\n\n const obj = {validation_rules: plainRules};\n const jsonString = JSON.stringify(obj);\n const escaped = jsonString.replace(/\"/g, '\\\\\"');\n return '\"' + escaped + '\"';\n }\n\n get rules(): ValidationRule[] {\n return this.ValidationRules;\n }\n}\n\nexport default ValidationTemplate;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport {UnexpectedResponseFormatError} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nimport SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass DataFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n static BUCKET_NAME: string;\n\n private endpoint: string;\n private bucketName: string;\n\n static configureAPIURL(url: string) {\n DataFile.UPLOAD_URL = `${url}/data/upload`;\n DataFile.REMOVE_URL = `${url}/data/remove/`;\n DataFile.DOWNLOAD_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.BUCKET_NAME = bucketName;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const uploadURL = DataFile.BUCKET_NAME\n ? `${DataFile.UPLOAD_URL}?bucketName=${this.bucketName}`\n : DataFile.UPLOAD_URL;\n const uploadResponse = await axios.post(uploadURL, formData, {\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n this.bucketName = uploadResponse.data.bucketName;\n this.endpoint = uploadResponse.data.endpoint;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const removeURL = this.bucketName\n ? `${DataFile.REMOVE_URL}${this.ID}?bucketName=${this.bucketName}`\n : `${DataFile.REMOVE_URL}${this.ID}`;\n const removeResponse = await axios.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${DataFile.DOWNLOAD_URL}/${this.ID}?bucketName=${this.bucketName}&endpoint=${this.endpoint}`;\n }\n}\n\nexport default DataFile;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport {\n NeedToImplementError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nabstract class SODAS_SDK_FILE {\n static BEARER_TOKEN: string;\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n protected ID: string; //Sometimes it is not uuid. So I decide to leave it as a string.\n\n protected fileName?: string;\n protected fileSize?: number;\n protected fileType?: string;\n protected fileContent?: any;\n\n static configureAPIURL(url: string): void {\n throw new NeedToImplementError();\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setFileForBrowser(file: File) {\n this.fileName = file.name;\n this.fileSize = file.size;\n this.fileType = file.type;\n this.fileContent = file;\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setFileForNode(filePath: string) {\n const fileName = path.basename(filePath);\n const fileType = path.extname(filePath);\n const fileTypeWithoutDot = fileType.slice(1);\n const fileStats = fs.statSync(filePath);\n this.fileContent = fs.readFileSync(filePath);\n this.fileName = fileName;\n this.fileSize = fileStats.size;\n this.fileType = fileTypeWithoutDot;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const apiClient = axios.create({\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const uploadResponse = await apiClient.post(cls.UPLOAD_URL, formData);\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const apiClient = axios.create();\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const removeURL = `${cls.REMOVE_URL}${this.ID}`;\n const removeResponse = await apiClient.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${(this.constructor as typeof SODAS_SDK_FILE).DOWNLOAD_URL}/${\n this.ID\n }`;\n }\n}\n\nexport default SODAS_SDK_FILE;\n","import SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass ThumbnailFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n static configureAPIURL(url: string) {\n ThumbnailFile.UPLOAD_URL = `${url}/thumbnail/upload`;\n ThumbnailFile.REMOVE_URL = `${url}/thumbnail/remove/`;\n ThumbnailFile.DOWNLOAD_URL = `${url}/thumbnails`;\n }\n}\n\nexport default ThumbnailFile;\n","import axios from \"axios\";\nimport DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\nimport DataFile from \"../SODAS_SDK_FILE/dataFile\";\nimport ThumbnailFile from \"../SODAS_SDK_FILE/thumbnailFile\";\nimport {NoAccessTokenFoundError, UnexpectedResponseFormatError} from \"./error\";\nimport {setGovernanceBearerToken, setLegacyDatahubBearerToken} from \"./init\";\n\nclass Config {\n private static instance: Config | null = null;\n\n private governanceToken: string | null = null;\n private legacyDatahubToken: string | null = null;\n\n private governanceBaseUrl: string;\n private sodasProfileBaseUrl: string;\n private legacyDatahubBaseUrl: string;\n\n private constructor(\n governanceBaseUrl: string,\n sodasProfileBaseUrl: string,\n legacyDatahubBaseUrl: string\n ) {\n this.governanceBaseUrl = governanceBaseUrl.replace(/\\/$/, \"\");\n this.sodasProfileBaseUrl = sodasProfileBaseUrl.replace(/\\/$/, \"\");\n this.legacyDatahubBaseUrl = legacyDatahubBaseUrl.replace(/\\/$/, \"\");\n this.initializeAPIURLs();\n }\n\n /**\n * Explicitly configure the SDK with the given API URLs.\n * This is the preferred way to set API URLs instead of using configureAPIURL.\n */\n public static configure(\n datahubApiUrl: string,\n governanceApiUrl: string,\n legacyDatahubApiUrl: string\n ): Config {\n if (!Config.instance) {\n Config.instance = new Config(\n governanceApiUrl,\n datahubApiUrl,\n legacyDatahubApiUrl\n );\n } else {\n Config.instance.governanceBaseUrl = governanceApiUrl.replace(/\\/$/, \"\");\n Config.instance.sodasProfileBaseUrl = datahubApiUrl.replace(/\\/$/, \"\");\n Config.instance.legacyDatahubBaseUrl = legacyDatahubApiUrl.replace(\n /\\/$/,\n \"\"\n );\n Config.instance.initializeAPIURLs();\n }\n return Config.instance;\n }\n\n /**\n * Get the singleton instance of Config, using environment variables.\n */\n public static getInstance(): Config {\n if (!Config.instance) {\n const governanceBaseUrl =\n process.env.PRODUCTION_GOVERNANCE_API_URL ||\n process.env.TEST_GOVERNANCE_API_URL ||\n \"\";\n const sodasProfileBaseUrl =\n process.env.PRODUCTION_DATAHUB_API_URL ||\n process.env.TEST_SODAS_PROFILE_API_URL ||\n \"\";\n const legacyDatahubBaseUrl =\n process.env.PRODUCTION_LEGACY_DATAHUB_API_URL ||\n process.env.TEST_LEGACY_DATAHUB_API_URL ||\n \"\";\n\n if (!governanceBaseUrl || !sodasProfileBaseUrl) {\n throw new Error(\n \"Governance or Datahub base URL is not configured in environment variables.\"\n );\n }\n\n Config.instance = new Config(\n governanceBaseUrl,\n sodasProfileBaseUrl,\n legacyDatahubBaseUrl\n );\n }\n\n return Config.instance;\n }\n\n /**\n * Initialize all SDK class API URLs based on the configured base URLs.\n */\n private initializeAPIURLs(): void {\n const SLASH_DELETED_SODAS_PROFILE_BASE_URL =\n this.sodasProfileBaseUrl.replace(/\\/$/, \"\");\n const SLASH_DELETED_GOVERNANCE_PORTAL_API_URL =\n this.governanceBaseUrl.replace(/\\/$/, \"\");\n\n if (this.sodasProfileBaseUrl) {\n Distribution.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n Dataset.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DatasetSeries.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataServiceDTO.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n ThumbnailFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n } else {\n console.error(\"DATAHUB_API_URL not found in config\");\n }\n\n if (this.governanceBaseUrl) {\n Vocabulary.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n Term.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n ValidationTemplate.configureAPIURL(\n SLASH_DELETED_GOVERNANCE_PORTAL_API_URL\n );\n } else {\n console.error(\"GOVERNANCE_API_URL not found in config\");\n }\n }\n\n /**\n * Login to the Governance portal and store the access token.\n */\n public async loginGovernance(id: string, password: string): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.governanceToken = response.data.accessToken;\n setGovernanceBearerToken(this.governanceToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n }\n\n /**\n * Login to the Datahub portal and store the access token.\n */\n public async loginLegacyDatahub(id: string, password: string): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n try {\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.legacyDatahubToken = response.data.accessToken;\n setLegacyDatahubBearerToken(this.legacyDatahubToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n } catch (error) {\n console.error(\"Error during loginLegacyDatahub:\", error);\n throw error;\n }\n }\n\n /**\n * Logout from the Governance portal and clear the stored token.\n */\n public async logoutGovernance(): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.governanceToken\n ? {Authorization: `Bearer ${this.governanceToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.governanceToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Logout from the Datahub portal and clear the stored token.\n */\n public async logoutLegacyDatahub(): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.legacyDatahubToken\n ? {Authorization: `Bearer ${this.legacyDatahubToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.legacyDatahubToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Get the current Governance access token.\n */\n public getGovernanceToken(): string | null {\n return this.governanceToken;\n }\n\n /**\n * Get the current Datahub access token.\n */\n public getLegacyDatahubToken(): string | null {\n return this.legacyDatahubToken;\n }\n}\n\nexport default Config;\n","import SODAS_SDK_CLASS from \"../SODAS_SDK_CLASS/sodasSDKClass\";\nimport {ResourceDescriptorRole} from \"./type\";\n\nexport class AlreadyRecordedError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is already recorded in Database : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\nexport class API_URL_NOT_SET extends Error {\n constructor(cls: Function) {\n super(`API_URL is not set in class: ${cls.name}`);\n this.name = \"API_URL_NOT_SET\";\n }\n}\nexport class DeleteRecordFailError extends Error {\n constructor() {\n super(\"Delete DBRecord Failed\");\n }\n}\n\nexport class IndexOutOfBoundsError extends Error {\n constructor(index: number) {\n super(`Index : ${index} out of bounds`);\n }\n}\n\nexport class InvalidDateObjectError extends Error {\n constructor(value: any) {\n super(`Invalid Date object : ${value}`);\n }\n}\n\nexport class InvalidDateStringError extends Error {\n constructor(str: string) {\n super(`Invalid Date string : ${str}`);\n }\n}\n\nexport class InvalidTypeError extends Error {\n constructor(value: any, expectedType: string) {\n super(`Invalid type '${typeof value}' instead of '${expectedType}'`);\n }\n}\n\nexport class InvalidValueError extends Error {\n constructor(value: any) {\n super(`Invalid value : ${JSON.stringify(value)} is put`);\n }\n}\n\nexport class NamedTermNotExistError extends Error {\n constructor(name: string) {\n super(`Named term ${name} not exist.`);\n }\n}\n\nexport class NeedToImplementError extends Error {\n constructor() {\n super(`It needs to be implemented.`);\n }\n}\n\nexport class NeedToSetFieldError extends Error {\n constructor(value: any, field: string) {\n super(\n `This instance : ${JSON.stringify(value)} needs to set field : ${field}`\n );\n }\n}\n\nexport class NoAccessTokenFoundError extends Error {\n constructor() {\n super(\"No accessToken found in the response\");\n }\n}\n\nexport class NotInitializedError extends Error {\n constructor(field: string) {\n super(`Field : ${field} is not initialized yet`);\n }\n}\n\nexport class NotRecordedArgumentError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(`Not recorded argument is put : ${JSON.stringify(instance)}`);\n }\n}\n\nexport class NotRecordedYetError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is not recorded in Database yet : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\n\nexport class RecordNotFoundError extends Error {\n constructor() {\n super(\"Record is not found\");\n }\n}\n\nexport class RequirementsNotSetError extends Error {\n constructor() {\n super(`Requirements are not set`);\n }\n}\n\nexport class ResourceRoleDescriptorAlreadyExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} already exists.`);\n }\n}\n\nexport class ResourceRoleDescriptorNotExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} doesn't exists.`);\n }\n}\n\nexport class RetryLimitReachedError extends Error {\n constructor(max: number) {\n super(`Max retries[${max}] reached`);\n }\n}\n\nexport class SwitchSameIndexError extends Error {\n constructor(index: number) {\n super(`Switch same index : ${index}`);\n }\n}\n\nexport class UnexpectedResponseFormatError extends Error {\n constructor(response: any) {\n super(`Unexpected response format. : ${JSON.stringify(response)}`);\n }\n}\n","import DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\n\n/**\n * Sets the Bearer token for API authentication across multiple DTO classes.\n *\n * @param {string} token - The Bearer token used for API authentication.\n * @returns {void}\n */\nexport function setGovernanceBearerToken(token: string): void {\n Vocabulary.BEARER_TOKEN = token;\n Term.BEARER_TOKEN = token;\n ValidationTemplate.BEARER_TOKEN = token;\n}\n\nexport function setLegacyDatahubBearerToken(token: string): void {\n Dataset.BEARER_TOKEN = token;\n DataServiceDTO.BEARER_TOKEN = token;\n DatasetSeries.BEARER_TOKEN = token;\n Distribution.BEARER_TOKEN = token;\n}\n","import {InvalidDateObjectError, InvalidDateStringError} from \"./error\";\n\nexport type IDType = string & {__iriBrand: never};\n\nconst uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\nexport function asID(value: string): IDType {\n if (!uuidRegex.test(value)) {\n throw new Error(`Invalid UUID format: '${value}'`);\n }\n return value as IDType;\n}\n\nexport function asIDs(values: string[]): IDType[] {\n return values.map((value) => asID(value));\n}\n\nexport type IRIType = string & {__iriBrand: never};\n\nexport function asIRI(value: string): IRIType {\n return value as IRIType;\n}\n/**\n * Branded type for a valid ISO 8601 date-time string.\n * Example: \"2025-01-08T09:04:51.008Z\" or \"2025-01-08T18:10:01.292602+09:00\"\n */\nexport type DateString = string & {__iriBrand: never};\n\n/**\n * Converts a Date object to a DateString (ISO 8601 format).\n *\n * @param {Date} date - The Date object to convert.\n * @returns {DateString} - The validated ISO 8601 date-time string.\n * @throws {Error} - Throws an error if the Date object is invalid.\n */\nexport function toDateString(date: Date | null): DateString {\n if (!(date instanceof Date) || isNaN(date.getTime())) {\n throw new InvalidDateObjectError(date);\n }\n\n // Convert the Date object to an ISO 8601 string\n const value = date.toISOString();\n\n // Validate the format\n const ISO_8601_PATTERN =\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\n if (!ISO_8601_PATTERN.test(value)) {\n throw new InvalidDateStringError(value);\n }\n\n return value as DateString;\n}\n/**\n * Converts a DateString to a JavaScript Date object.\n *\n * @param {DateString} dateString - The ISO 8601 date-time string to convert.\n * @returns {Date} - The corresponding JavaScript Date object.\n */\nexport function toDate(dateString: DateString): Date {\n const date = new Date(dateString);\n if (isNaN(date.getTime())) {\n throw new InvalidDateStringError(dateString);\n }\n return date;\n}\n\n//TODO : ROW_KEY must be added and controlled\nexport type TemplateArtifactRow = {\n [K in TemplateDetailFunctionality]?: any;\n};\n\nexport type TemplateArtifactValue = Array<TemplateArtifactRow>;\n\n/**\n * Represents a multilingual field where each key is a language code (e.g., \"en\", \"ko\") and the value is a string.\n */\nexport type MultiLanguageField = {[languageCode: string]: string};\n\n/**\n * Represents multilingual keywords where each key is a language code and the value is an array of strings.\n */\nexport type MultiLanguageKeywords = {[languageCode: string]: string[]};\n\nexport type ExtraMetadataType = {[MetaFieldName: string]: string};\n\nexport enum ResourceDescriptorRole {\n VOCABULARY = \"vocabulary\",\n TYPE = \"type\",\n SCHEMA = \"schema\",\n CONSTRAINT = \"constraint\",\n VALIDATION = \"validation\",\n MAPPING = \"mapping\",\n EXAMPLE = \"example\",\n SPECIFICATION = \"specification\",\n GUIDANCE = \"guidance\",\n}\n\nexport enum ArtifactType {\n TEMPLATE = \"template\",\n FILE = \"file\",\n}\n\nexport enum TemplateDetailFunctionality {\n //VOCABULARY\n ORIGIN = \"origin\",\n NAMESPACE = \"namespaceIRI\",\n TERM = \"term\",\n DESCRIPTION = \"description\", //EXAMPLE and SCHEMA ALSO\n //TYPE\n NAME = \"name\", //SCHEMA ALSO\n LABEL = \"label\",\n VALUE = \"value\", //EXAMPLE ALSO\n //SCHEMA\n TYPE = \"type\", //CONSTRAINT ALSO\n REQUIRED = \"required\", //CONSTRAINT ALSO\n FIELD_TERM = \"fieldTerm\",\n //CONSTRAINT\n FIELD = \"field\", //EXAMPLE and MAPPING ALSO\n REGEX = \"regex\",\n //VALIDATION\n MEASURE = \"measure\",\n //MAPPING\n TARGET_PROFILE = \"targetProfile\",\n TARGET_FIELD = \"targetField\",\n //EXAMPLE : FIELD, VALUE, DESCIRPTION\n\n //SPECIFICATION\n CONVERSION = \"conversion\", // May be Serealization to pdf or just html\n //GUIDANCE : I think I need to remove it\n}\n\nexport type PaginatedResponse<GENERIC_SODAS_SDK_CLASS> = {\n total: number;\n list: GENERIC_SODAS_SDK_CLASS[];\n};\n\nexport enum SortOrder {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n","import axios, {AxiosError, AxiosResponse} from \"axios\";\nimport cloneDeep from \"lodash.clonedeep\";\nimport {RetryLimitReachedError} from \"./error\";\n/**\n * Enumeration to differentiate between `ID` and `IRI`.\n *\n * @enum {string}\n */\n\n/**\n * Handles errors by logging the details and re-throwing the error.\n *\n * @param {any} error - The error object to handle.\n * @throws {any} - Re-throws the provided error after logging it.\n */\nexport function handleError(error: any): never {\n if (error.response) {\n console.error(\"Error response:\", error.response.data);\n console.error(\"Error status:\", error.response.status);\n } else if (error.request) {\n console.error(\"No response received:\", error.request);\n } else {\n console.error(\"Error:\", error.message);\n }\n throw error;\n}\n\nexport function handleAxiosError(error: AxiosError): never {\n if (axios.isAxiosError(error) && error.response) {\n const errorData = error.response.data as any;\n if (errorData.error) {\n console.error(`Error: ${error.response.status} - ${errorData.error}`);\n } else if (errorData.message) {\n console.error(`Error: ${error.response.status} - ${errorData.message}`);\n } else {\n console.error(`Error: ${error.response.status} - ${errorData}`);\n }\n } else {\n if ((error.code = \"ECONNREFUSED\")) {\n console.log(\"CONNECTION ERROR\");\n } else {\n console.error({\n message: error.message,\n code: error.code,\n status: error.response?.status,\n });\n }\n }\n throw error; // Re-throw the error so it can be handled by the caller if needed\n}\n\n/**\n * Removes all properties from an object, effectively making it empty.\n *\n * This function deletes all own properties of the provided object,\n * and remove the prototype also.\n * leaving the object in an unusable state.\n *\n * @param {object} obj - The object whose properties will be deleted.\n * @returns {void}\n *\n * @example\n * const obj = { id: 123, name: \"Test\" };\n * destroy(obj);\n * console.log(obj); // Output: {}\n */\nexport function destroy(obj: any): void {\n const keys = Object.getOwnPropertyNames(obj);\n for (const key of keys) {\n delete (obj as any)[key];\n }\n Object.setPrototypeOf(obj, Object.prototype);\n}\n\n/**\n * Creates a deep copy of the given instance, preserving the prototype chain and handling nested objects.\n *\n * This function recursively copies all properties of the instance, ensuring that nested objects\n * and arrays are also deeply copied. The returned object retains the same prototype as the original instance.\n *\n * @template T - The type of the instance to be copied.\n * @param {T} instance - The instance to be deeply copied.\n * @returns {T} A new instance that is a deep copy of the original, with the same prototype.\n */\nexport function deepCopy<T>(instance: T): T {\n return cloneDeep(instance);\n}\n\nconst SYSTEM_PROCESSING = \"SYSTEM_PROCESSING\"; // Replace with your actual flag value\n\nexport const LARGE_ENOUGH_NUMBER = 10000;\ninterface RetryResponse {\n errorCode: string;\n flag: string; // Adjust the type to match your actual API response\n [key: string]: any; // Optionally allow other properties\n}\n\n/**\n * A function to repeatedly try an Axios request until the response meets specific criteria.\n * @param requestFn - A function that executes an Axios request and returns a response.\n * @param maxRetries - Maximum number of retries before giving up.\n * @param delayMs - Delay between retries in milliseconds.\n * @returns The Axios response that meets the criteria.\n * @throws Error if the maximum number of retries is reached or if an error occurs.\n */\nexport async function retryRequest<\n GENERIC_RETRY_RESPONSE extends RetryResponse\n>(\n requestFn: () => Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>>,\n maxRetries: number = 30,\n delayMs: number = 1000\n): Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>> {\n let retries = 0;\n\n while (retries < maxRetries) {\n try {\n const response = await requestFn();\n if (response.status === 200 && response.data.flag !== SYSTEM_PROCESSING) {\n return response; // Return the successful response\n }\n // If still processing, wait before retrying\n if (response.status === 200 && response.data.flag === SYSTEM_PROCESSING) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n retries++;\n } else {\n return response;\n }\n } catch (error) {\n throw error; // Rethrow error if retries are exhausted\n }\n }\n throw new RetryLimitReachedError(maxRetries);\n}\n\nexport function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export enum ORIGIN_VALUES {\n EXISTING = \"existing\",\n APPENDING = \"appending\",\n // APPENDED = \"appended\",\n}\n\nexport enum BASIC_TYPE_VALUES {\n DATE = \"date\",\n CELCIUS = \"celcius\",\n FAHRENT = \"fahrent\",\n mph = \"mph\",\n MPS = \"mps\",\n inHg = \"inHg\",\n hPa = \"hPa\",\n in = \"in\",\n mm = \"mm\",\n microgram = \"microgram\",\n}\n\nexport enum MEASURE_VALUES {\n CONSTRAINT = \"constraint\",\n YDATA = \"y-data\",\n}\n\nexport enum CONVERSION_VALUES {\n HTML = \"html\",\n PDF = \"pdf\",\n}\n","/* (ignored) */","/* (ignored) */","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// Import named functions first\nimport DataService from \"./SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"./SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"./SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"./SODAS_SDK_CLASS/DCAT/distribution\";\nimport ValidationTemplate from \"./SODAS_SDK_CLASS/template/validation\";\nimport Config from \"./core/auth\";\nimport {\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n} from \"./core/init\";\nimport {\n ArtifactType,\n IDType,\n IRIType,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n asID,\n asIRI,\n} from \"./core/type\";\nimport {\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n} from \"./core/values\";\n\n// ✅ Named exports (For ES module compatibility)\nexport {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n IDType,\n IRIType,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Default export (For CommonJS compatibility)\nconst sdk = {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Ensures `require(\"sodas-sdk\")` works in CommonJS\nexport default sdk;\n"],"names":[],"sourceRoot":""}
|