erlc-api 1.3.11 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +103 -87
  2. package/dist/browser/erlc.min.js +1 -0
  3. package/dist/cjs/client.d.ts +25 -0
  4. package/dist/cjs/client.d.ts.map +1 -0
  5. package/dist/cjs/client.js +152 -0
  6. package/dist/cjs/client.js.map +1 -0
  7. package/dist/cjs/errors/index.d.ts +13 -0
  8. package/dist/cjs/errors/index.d.ts.map +1 -0
  9. package/dist/cjs/errors/index.js +32 -0
  10. package/dist/cjs/errors/index.js.map +1 -0
  11. package/dist/cjs/index.d.ts +4 -0
  12. package/dist/cjs/index.d.ts.map +1 -0
  13. package/dist/cjs/index.js +20 -0
  14. package/dist/cjs/index.js.map +1 -0
  15. package/dist/cjs/types/index.d.ts +46 -0
  16. package/dist/cjs/types/index.d.ts.map +1 -0
  17. package/dist/cjs/types/index.js +3 -0
  18. package/dist/cjs/types/index.js.map +1 -0
  19. package/dist/esm/client.d.ts +25 -0
  20. package/dist/esm/client.d.ts.map +1 -0
  21. package/dist/esm/client.js +145 -0
  22. package/dist/esm/client.js.map +1 -0
  23. package/dist/esm/errors/index.d.ts +13 -0
  24. package/dist/esm/errors/index.d.ts.map +1 -0
  25. package/dist/esm/errors/index.js +25 -0
  26. package/dist/esm/errors/index.js.map +1 -0
  27. package/dist/esm/index.d.ts +4 -0
  28. package/dist/esm/index.d.ts.map +1 -0
  29. package/dist/esm/index.js +4 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/dist/esm/types/index.d.ts +46 -0
  32. package/dist/esm/types/index.d.ts.map +1 -0
  33. package/dist/esm/types/index.js +2 -0
  34. package/dist/esm/types/index.js.map +1 -0
  35. package/dist/types/client.d.ts +25 -0
  36. package/dist/types/client.d.ts.map +1 -0
  37. package/dist/types/errors/index.d.ts +13 -0
  38. package/dist/types/errors/index.d.ts.map +1 -0
  39. package/dist/types/index.d.ts +4 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/types/index.d.ts +46 -0
  42. package/dist/types/types/index.d.ts.map +1 -0
  43. package/package.json +47 -15
  44. package/.gitattributes +0 -2
  45. package/index.js +0 -1
  46. package/src/classes/client.js +0 -36
  47. package/src/constants.js +0 -2
  48. package/src/erlc.js +0 -14
  49. package/src/functions/assert.js +0 -5
  50. package/src/functions/server/getBans.js +0 -28
  51. package/src/functions/server/getCommandLogs.js +0 -28
  52. package/src/functions/server/getJoinLogs.js +0 -28
  53. package/src/functions/server/getKillLogs.js +0 -28
  54. package/src/functions/server/getModcallLogs.js +0 -28
  55. package/src/functions/server/getPlayers.js +0 -28
  56. package/src/functions/server/getQueue.js +0 -28
  57. package/src/functions/server/getServer.js +0 -52
  58. package/src/functions/server/getVehicles.js +0 -28
  59. package/src/functions/server/runCommand.js +0 -27
  60. package/src/types/custom.d.ts +0 -5
  61. package/src/types/index.d.ts +0 -90
package/README.md CHANGED
@@ -1,110 +1,126 @@
1
- # ER:LC API Wrapper
1
+ # ERLC API
2
2
 
3
- A lightweight API Wrapper with 100% coverage of the ER:LC API. Fixed Error and Improvements
4
- 7
3
+ A modern TypeScript/JavaScript API wrapper for ER:LC (Emergency Response: Liberty County) with full browser support.
5
4
 
6
- ## Getting Started
5
+ ## Features
7
6
 
8
- First you need to install the package.
7
+ - 🚀 Full TypeScript support
8
+ - 🌐 Browser compatible
9
+ - ⚡ Promise-based API
10
+ - 🛡️ Comprehensive error handling
11
+ - 📘 Type definitions included
12
+ - 🔄 CommonJS and ES Module support
9
13
 
10
- `npm i erlc-api`
14
+ ## Installation
11
15
 
12
- ### Setting Up
16
+ ```bash
17
+ npm install erlc-api
18
+ ```
19
+
20
+ ## Usage
13
21
 
14
- Setting up is super simple:
22
+ ### TypeScript/ES Modules
23
+ ```typescript
24
+ import { Client } from 'erlc-api';
15
25
 
16
- ```js
17
- // index.js
18
- const erlc = require("erlc");
19
- const client = new erlc.Client({
20
- globalToken: "", // You get the global key directly from the ERLC developers. To increase your API request limits
26
+ const client = new Client({
27
+ globalToken: 'your-global-token'
21
28
  });
22
- client.config(); // Registers your client
23
- ```
24
29
 
25
- Now you can start using API Methods - here are a few examples:
26
-
27
- ```js
28
- // GetServerInfo.js
29
- const erlc = require("erlc-api"); //JS
30
- import erlc from "erlc-api"; // Module or typeScript
31
-
32
- const getServerFunc = async () => {
33
- const serverId = ""; // The server ApiKey you wish to target. You can get this api key in your (Server Settings)
34
- const server = await erlc.getServer(serverId).catch(console.log); // Gets the server, logs any errors
35
- console.log(server); // Logs the server object
36
-
37
- // Expected Response:
38
- // {
39
- // Name: "Your Sever Name",
40
- // CurrentPlayers: 0,
41
- // MaxPlayers: 40,
42
- // JoinKey: "Your Code Join",
43
- // AccVerifiedReq: "Disabled" | "Email" | "Phone/ID",
44
- // TeamBalance: true or false ,
45
- // OwnerUsername: "Your Name",
46
- // CoOwnerUsernames: [],
47
- // VanityURL: "https://policeroleplay.community/join?code=YourCode",
48
- // },
49
- };
50
-
51
- getServerFunc();
30
+ // Get server information
31
+ const serverInfo = await client.getServer('server-token');
32
+ console.log(serverInfo);
33
+
34
+ // Get players
35
+ const players = await client.getPlayers('server-token');
36
+ console.log(players);
52
37
  ```
53
38
 
54
- ```js
55
- // GetPlayers.js
56
- const erlc = require("erlc-api"); //JS
57
- import erlc from "erlc-api"; // Module or typeScript
58
-
59
- const getPlayersFunc = async () => {
60
- const serverId = ""; // The server ApiKey you wish to target. You can get this api key in your (Server Settings)
61
- const server = await erlc.getPlayers(serverId).catch(console.log); // Gets the server, logs any errors
62
- console.log(server); // Logs the server object
63
- // Expected Response:
64
- // [
65
- // {
66
- // "Permission": "Server Owner" Or Member, Moderator,
67
- // "Player": "Player-Username and ID" ,
68
- // "Team": "Civilian" Or Fire, Police, Sherift
69
- // }
70
- // ]
71
- };
72
- getPlayersFunc();
39
+ ### CommonJS
40
+ ```javascript
41
+ const { Client } = require('erlc-api');
42
+
43
+ const client = new Client({
44
+ globalToken: 'your-global-token'
45
+ });
46
+
47
+ // Using async/await
48
+ async function getServerInfo() {
49
+ try {
50
+ const server = await client.getServer('server-token');
51
+ console.log(server);
52
+ } catch (error) {
53
+ console.error('Error:', error.message);
54
+ }
55
+ }
73
56
  ```
74
57
 
75
- ```js
76
- //getmodCalls.js
77
- const erlc = require("erlc-api"); //JS
78
- import erlc from "erlc-api"; // Module or typeScript
79
-
80
- const getModCallsFunc = async () => {
81
- const serverId = ""; // The server ApiKey you wish to target. You can get this api key in your (Server Settings)
82
- const server = await erlc.getModcallLogs(serverId).catch(console.log); // Gets the server, logs any errors
83
- console.log(server); // Logs the server object
84
- // Expected Response:
85
- // {
86
- // Caller: ErlcPlayer;
87
- // Moderator?: ErlcPlayer; // If call is unanswered property is undefined
88
- // Timestamp: number;
89
- // }
90
- };
91
- getModCallsFunc()
58
+ ### Browser
59
+ ```html
60
+ <script src="node_modules/erlc-api/dist/browser/erlc.min.js"></script>
61
+ <script>
62
+ const client = new ERLC.Client({
63
+ globalToken: 'your-global-token'
64
+ });
65
+
66
+ client.getServer('server-token')
67
+ .then(server => console.log(server))
68
+ .catch(error => console.error(error));
69
+ </script>
92
70
  ```
93
71
 
94
- ### [Discord Bot](https://discord.com/oauth2/authorize?client_id=1014990793280323624)
72
+ ## API Methods
73
+
74
+ - `getServer(serverToken)` - Get server information
75
+ - `getPlayers(serverToken)` - Get list of players
76
+ - `getJoinLogs(serverToken)` - Get join/leave logs
77
+ - `getKillLogs(serverToken)` - Get kill logs
78
+ - `getCommandLogs(serverToken)` - Get command logs
79
+ - `getModcallLogs(serverToken)` - Get modcall logs
80
+ - `getBans(serverToken)` - Get server bans
81
+ - `getVehicles(serverToken)` - Get vehicle information
82
+ - `getQueue(serverToken)` - Get queue information
83
+ - `runCommand(serverToken, command)` - Run a server command
84
+
85
+ ## Error Handling
86
+
87
+ The library includes custom error classes for better error handling:
88
+
89
+ ```typescript
90
+ import { AuthenticationError, ValidationError, NetworkError } from 'erlc-api';
91
+
92
+ try {
93
+ await client.getServer('server-token');
94
+ } catch (error) {
95
+ if (error instanceof AuthenticationError) {
96
+ console.error('Authentication failed');
97
+ } else if (error instanceof ValidationError) {
98
+ console.error('Invalid input');
99
+ } else if (error instanceof NetworkError) {
100
+ console.error('Network error occurred');
101
+ }
102
+ }
103
+ ```
95
104
 
96
- The Discord Bot Back Online 29/05/2024
105
+ ## Development
97
106
 
98
- ## [Module Examples](https://scarlet-2.gitbook.io/erlc-api/)
107
+ ```bash
108
+ # Install dependencies
109
+ npm install
99
110
 
100
- ### [PRC API Docs](https://apidocs.policeroleplay.community/reference/api-reference)
111
+ # Run tests
112
+ npm test
101
113
 
102
- ## [Liveries]("https://github.com/Exodo0/ERLC-API/tree/main/Custom%20Liveries")
114
+ # Build
115
+ npm run build
103
116
 
104
- ### Credits
117
+ # Lint
118
+ npm run lint
105
119
 
106
- Library Re-Development - [Egologics](https://twitter.com/0Adexus0)
120
+ # Format code
121
+ npm run format
122
+ ```
107
123
 
108
- API Development - [Police Roleplay Community](https://twitter.com/PRC_Roblox)
124
+ ## License
109
125
 
110
- Apply for more API request limits - [Discord](https://discord.gg/prc)
126
+ MIT License - see LICENSE file for details.
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ERLC=t():e.ERLC=t()}(this,(()=>(()=>{"use strict";var e={985:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Client=void 0;const o=n(r(425)),s=r(110);class i{constructor(e){this.lastCommandTime=0,this.commandQueue=Promise.resolve(),this.validateConfig(e),this.config=e,this.api=o.default.create({baseURL:i.BASE_URL,headers:{Authorization:this.config.globalToken}}),this.api.interceptors.response.use((e=>e),(e=>{if(e.response)switch(e.response.status){case 401:throw new s.AuthenticationError("Invalid authentication credentials");case 400:throw new s.ValidationError(e.response.data.message||"Invalid request");case 429:const t=e.response.data.retry_after;throw new s.NetworkError(`Rate limit exceeded. Retry after ${t} seconds.`);default:throw new s.NetworkError(`Request failed: ${e.response.data.message||e.message}`)}if(e.request)throw new s.NetworkError("No response received from server");throw new s.NetworkError(e.message||"Network request failed")}))}validateConfig(e){if(!e.globalToken)throw new s.ValidationError("Global token is required")}async request(e,t,r="GET",n){try{return(await this.api.request({method:r,url:e,headers:{"Server-Key":t},data:n})).data}catch(e){if(o.default.isAxiosError(e))throw e;throw new s.NetworkError(e instanceof Error?e.message:"Unknown error occurred")}}async waitCooldown(){const e=Date.now()-this.lastCommandTime;if(e<i.COMMAND_COOLDOWN){const t=i.COMMAND_COOLDOWN-e;await new Promise((e=>setTimeout(e,t)))}}enqueueCommand(e){const t=async()=>(await this.waitCooldown(),this.lastCommandTime=Date.now(),await e());return this.commandQueue=this.commandQueue.then(t,t),this.commandQueue}async getServer(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server",e)}async getPlayers(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/players",e)}async getJoinLogs(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/joinlogs",e)}async getKillLogs(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/killlogs",e)}async getCommandLogs(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/commandlogs",e)}async getModcallLogs(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/modcalls",e)}async getBans(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/bans",e)}async getVehicles(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/vehicles",e)}async getQueue(e){if(!e)throw new s.ValidationError("Server token is required");return await this.request("/server/queue",e)}async runCommand(e,t){if(!e)throw new s.ValidationError("Server token is required");if(!t)throw new s.ValidationError("Command is required");return this.enqueueCommand((async()=>(await this.request("/server/command",e,"POST",{command:t}),!0)))}}t.Client=i,i.BASE_URL="https://api.policeroleplay.community/v1",i.COMMAND_COOLDOWN=5e3},110:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NetworkError=t.ValidationError=t.AuthenticationError=t.ERLCError=void 0;class r extends Error{constructor(e){super(e),this.name="ERLCError"}}t.ERLCError=r,t.AuthenticationError=class extends r{constructor(e="Authentication failed"){super(e),this.name="AuthenticationError"}},t.ValidationError=class extends r{constructor(e){super(e),this.name="ValidationError"}},t.NetworkError=class extends r{constructor(e="Network request failed"){super(e),this.name="NetworkError"}}},156:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(985),t),o(r(574),t),o(r(110),t)},574:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},425:(e,t,r)=>{function n(e,t){return function(){return e.apply(t,arguments)}}const{toString:o}=Object.prototype,{getPrototypeOf:s}=Object,i=(a=Object.create(null),e=>{const t=o.call(e);return a[t]||(a[t]=t.slice(8,-1).toLowerCase())});var a;const c=e=>(e=e.toLowerCase(),t=>i(t)===e),u=e=>t=>typeof t===e,{isArray:l}=Array,f=u("undefined"),d=c("ArrayBuffer"),h=u("string"),p=u("function"),m=u("number"),y=e=>null!==e&&"object"==typeof e,w=e=>{if("object"!==i(e))return!1;const t=s(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},g=c("Date"),b=c("File"),E=c("Blob"),O=c("FileList"),R=c("URLSearchParams"),[S,v,T,A]=["ReadableStream","Request","Response","Headers"].map(c);function C(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,o;if("object"!=typeof e&&(e=[e]),l(e))for(n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else{const o=r?Object.getOwnPropertyNames(e):Object.keys(e),s=o.length;let i;for(n=0;n<s;n++)i=o[n],t.call(null,e[i],i,e)}}function x(e,t){t=t.toLowerCase();const r=Object.keys(e);let n,o=r.length;for(;o-- >0;)if(n=r[o],t===n.toLowerCase())return n;return null}const N="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:r.g,j=e=>!f(e)&&e!==N,_=(P="undefined"!=typeof Uint8Array&&s(Uint8Array),e=>P&&e instanceof P);var P;const L=c("HTMLFormElement"),k=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),U=c("RegExp"),q=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};C(r,((r,o)=>{let s;!1!==(s=t(r,o,e))&&(n[o]=s||r)})),Object.defineProperties(e,n)},D="abcdefghijklmnopqrstuvwxyz",F="0123456789",B={DIGIT:F,ALPHA:D,ALPHA_DIGIT:D+D.toUpperCase()+F},M=c("AsyncFunction"),I=(V="function"==typeof setImmediate,z=p(N.postMessage),V?setImmediate:z?(H=`axios@${Math.random()}`,J=[],N.addEventListener("message",(({source:e,data:t})=>{e===N&&t===H&&J.length&&J.shift()()}),!1),e=>{J.push(e),N.postMessage(H,"*")}):e=>setTimeout(e));var V,z,H,J;const W="undefined"!=typeof queueMicrotask?queueMicrotask.bind(N):"undefined"!=typeof process&&process.nextTick||I;var K={isArray:l,isArrayBuffer:d,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&p(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||p(e.append)&&("formdata"===(t=i(e))||"object"===t&&p(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer),t},isString:h,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:y,isPlainObject:w,isReadableStream:S,isRequest:v,isResponse:T,isHeaders:A,isUndefined:f,isDate:g,isFile:b,isBlob:E,isRegExp:U,isFunction:p,isStream:e=>y(e)&&p(e.pipe),isURLSearchParams:R,isTypedArray:_,isFileList:O,forEach:C,merge:function e(){const{caseless:t}=j(this)&&this||{},r={},n=(n,o)=>{const s=t&&x(r,o)||o;w(r[s])&&w(n)?r[s]=e(r[s],n):w(n)?r[s]=e({},n):l(n)?r[s]=n.slice():r[s]=n};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&C(arguments[e],n);return r},extend:(e,t,r,{allOwnKeys:o}={})=>(C(t,((t,o)=>{r&&p(t)?e[o]=n(t,r):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let o,i,a;const c={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],n&&!n(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&s(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:i,kindOfTest:c,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray:e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!m(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:L,hasOwnProperty:k,hasOwnProp:k,reduceDescriptors:q,freezeMethods:e=>{q(e,((t,r)=>{if(p(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];p(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return l(e)?n(e):n(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:x,global:N,isContextDefined:j,ALPHABET:B,generateString:(e=16,t=B.ALPHA_DIGIT)=>{let r="";const{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&p(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),r=(e,n)=>{if(y(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const o=l(e)?[]:{};return C(e,((e,t)=>{const s=r(e,n+1);!f(s)&&(o[t]=s)})),t[n]=void 0,o}}return e};return r(e,0)},isAsyncFn:M,isThenable:e=>e&&(y(e)||p(e))&&p(e.then)&&p(e.catch),setImmediate:I,asap:W};function $(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}K.inherits($,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:K.toJSONObject(this.config),code:this.code,status:this.status}}});const G=$.prototype,X={};function Q(e){return K.isPlainObject(e)||K.isArray(e)}function Z(e){return K.endsWith(e,"[]")?e.slice(0,-2):e}function Y(e,t,r){return e?e.concat(t).map((function(e,t){return e=Z(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{X[e]={value:e}})),Object.defineProperties($,X),Object.defineProperty(G,"isAxiosError",{value:!0}),$.from=(e,t,r,n,o,s)=>{const i=Object.create(G);return K.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),$.call(i,e.message,t,r,n,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};const ee=K.toFlatObject(K,{},null,(function(e){return/^is[A-Z]/.test(e)}));function te(e,t,r){if(!K.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(r=K.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!K.isUndefined(t[e])}))).metaTokens,o=r.visitor||u,s=r.dots,i=r.indexes,a=(r.Blob||"undefined"!=typeof Blob&&Blob)&&K.isSpecCompliantForm(t);if(!K.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(K.isDate(e))return e.toISOString();if(!a&&K.isBlob(e))throw new $("Blob is not supported. Use a Buffer instead.");return K.isArrayBuffer(e)||K.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,r,o){let a=e;if(e&&!o&&"object"==typeof e)if(K.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(K.isArray(e)&&function(e){return K.isArray(e)&&!e.some(Q)}(e)||(K.isFileList(e)||K.endsWith(r,"[]"))&&(a=K.toArray(e)))return r=Z(r),a.forEach((function(e,n){!K.isUndefined(e)&&null!==e&&t.append(!0===i?Y([r],n,s):null===i?r:r+"[]",c(e))})),!1;return!!Q(e)||(t.append(Y(o,r,s),c(e)),!1)}const l=[],f=Object.assign(ee,{defaultVisitor:u,convertValue:c,isVisitable:Q});if(!K.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!K.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),K.forEach(r,(function(r,s){!0===(!(K.isUndefined(r)||null===r)&&o.call(t,r,K.isString(s)?s.trim():s,n,f))&&e(r,n?n.concat(s):[s])})),l.pop()}}(e),t}function re(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ne(e,t){this._pairs=[],e&&te(e,this,t)}const oe=ne.prototype;function se(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ie(e,t,r){if(!t)return e;const n=r&&r.encode||se;K.isFunction(r)&&(r={serialize:r});const o=r&&r.serialize;let s;if(s=o?o(t,r):K.isURLSearchParams(t)?t.toString():new ne(t,r).toString(n),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}oe.append=function(e,t){this._pairs.push([e,t])},oe.toString=function(e){const t=e?function(t){return e.call(this,t,re)}:re;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var ae=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){K.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},ce={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ue={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ne,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const le="undefined"!=typeof window&&"undefined"!=typeof document,fe="object"==typeof navigator&&navigator||void 0,de=le&&(!fe||["ReactNative","NativeScript","NS"].indexOf(fe.product)<0),he="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,pe=le&&window.location.href||"http://localhost";var me={...Object.freeze({__proto__:null,hasBrowserEnv:le,hasStandardBrowserWebWorkerEnv:he,hasStandardBrowserEnv:de,navigator:fe,origin:pe}),...ue};function ye(e){function t(e,r,n,o){let s=e[o++];if("__proto__"===s)return!0;const i=Number.isFinite(+s),a=o>=e.length;return s=!s&&K.isArray(n)?n.length:s,a?(K.hasOwnProp(n,s)?n[s]=[n[s],r]:n[s]=r,!i):(n[s]&&K.isObject(n[s])||(n[s]=[]),t(e,r,n[s],o)&&K.isArray(n[s])&&(n[s]=function(e){const t={},r=Object.keys(e);let n;const o=r.length;let s;for(n=0;n<o;n++)s=r[n],t[s]=e[s];return t}(n[s])),!i)}if(K.isFormData(e)&&K.isFunction(e.entries)){const r={};return K.forEachEntry(e,((e,n)=>{t(function(e){return K.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,r,0)})),r}return null}const we={transitional:ce,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,o=K.isObject(e);if(o&&K.isHTMLForm(e)&&(e=new FormData(e)),K.isFormData(e))return n?JSON.stringify(ye(e)):e;if(K.isArrayBuffer(e)||K.isBuffer(e)||K.isStream(e)||K.isFile(e)||K.isBlob(e)||K.isReadableStream(e))return e;if(K.isArrayBufferView(e))return e.buffer;if(K.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return te(e,new me.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return me.isNode&&K.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((s=K.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return te(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||n?(t.setContentType("application/json",!1),function(e){if(K.isString(e))try{return(0,JSON.parse)(e),K.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||we.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(K.isResponse(e)||K.isReadableStream(e))return e;if(e&&K.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(r){if("SyntaxError"===e.name)throw $.from(e,$.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:me.classes.FormData,Blob:me.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};K.forEach(["delete","get","head","post","put","patch"],(e=>{we.headers[e]={}}));var ge=we;const be=K.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ee=Symbol("internals");function Oe(e){return e&&String(e).trim().toLowerCase()}function Re(e){return!1===e||null==e?e:K.isArray(e)?e.map(Re):String(e)}function Se(e,t,r,n,o){return K.isFunction(n)?n.call(this,t,r):(o&&(t=r),K.isString(t)?K.isString(n)?-1!==t.indexOf(n):K.isRegExp(n)?n.test(t):void 0:void 0)}class ve{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function o(e,t,r){const o=Oe(t);if(!o)throw new Error("header name must be a non-empty string");const s=K.findKey(n,o);(!s||void 0===n[s]||!0===r||void 0===r&&!1!==n[s])&&(n[s||t]=Re(e))}const s=(e,t)=>K.forEach(e,((e,r)=>o(e,r,t)));if(K.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(K.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let r,n,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),r=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!r||t[r]&&be[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t})(e),t);else if(K.isHeaders(e))for(const[t,n]of e.entries())o(n,t,r);else null!=e&&o(t,e,r);return this}get(e,t){if(e=Oe(e)){const r=K.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(K.isFunction(t))return t.call(this,e,r);if(K.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Oe(e)){const r=K.findKey(this,e);return!(!r||void 0===this[r]||t&&!Se(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function o(e){if(e=Oe(e)){const o=K.findKey(r,e);!o||t&&!Se(0,r[o],o,t)||(delete r[o],n=!0)}}return K.isArray(e)?e.forEach(o):o(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const o=t[r];e&&!Se(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const t=this,r={};return K.forEach(this,((n,o)=>{const s=K.findKey(r,o);if(s)return t[s]=Re(n),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}(o):String(o).trim();i!==o&&delete t[o],t[i]=Re(n),r[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return K.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&K.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[Ee]=this[Ee]={accessors:{}}).accessors,r=this.prototype;function n(e){const n=Oe(e);t[n]||(function(e,t){const r=K.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}(r,e),t[n]=!0)}return K.isArray(e)?e.forEach(n):n(e),this}}ve.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),K.reduceDescriptors(ve.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),K.freezeMethods(ve);var Te=ve;function Ae(e,t){const r=this||ge,n=t||r,o=Te.from(n.headers);let s=n.data;return K.forEach(e,(function(e){s=e.call(r,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function Ce(e){return!(!e||!e.__CANCEL__)}function xe(e,t,r){$.call(this,null==e?"canceled":e,$.ERR_CANCELED,t,r),this.name="CanceledError"}function Ne(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new $("Request failed with status code "+r.status,[$.ERR_BAD_REQUEST,$.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}K.inherits(xe,$,{__CANCEL__:!0});const je=(e,t,r=3)=>{let n=0;const o=function(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),u=n[i];o||(o=c),r[s]=a,n[s]=c;let l=i,f=0;for(;l!==s;)f+=r[l++],l%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o<t)return;const d=u&&c-u;return d?Math.round(1e3*f/d):void 0}}(50,250);return function(e,t){let r,n,o=0,s=1e3/t;const i=(t,s=Date.now())=>{o=s,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),a=t-o;a>=s?i(e,t):(r=e,n||(n=setTimeout((()=>{n=null,i(r)}),s-a)))},()=>r&&i(r)]}((r=>{const s=r.loaded,i=r.lengthComputable?r.total:void 0,a=s-n,c=o(a);n=s,e({loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:r,lengthComputable:null!=i,[t?"download":"upload"]:!0})}),r)},_e=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},Pe=e=>(...t)=>K.asap((()=>e(...t)));var Le=me.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,me.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(me.origin),me.navigator&&/(msie|trident)/i.test(me.navigator.userAgent)):()=>!0,ke=me.hasStandardBrowserEnv?{write(e,t,r,n,o,s){const i=[e+"="+encodeURIComponent(t)];K.isNumber(r)&&i.push("expires="+new Date(r).toGMTString()),K.isString(n)&&i.push("path="+n),K.isString(o)&&i.push("domain="+o),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Ue(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const qe=e=>e instanceof Te?{...e}:e;function De(e,t){t=t||{};const r={};function n(e,t,r,n){return K.isPlainObject(e)&&K.isPlainObject(t)?K.merge.call({caseless:n},e,t):K.isPlainObject(t)?K.merge({},t):K.isArray(t)?t.slice():t}function o(e,t,r,o){return K.isUndefined(t)?K.isUndefined(e)?void 0:n(void 0,e,0,o):n(e,t,0,o)}function s(e,t){if(!K.isUndefined(t))return n(void 0,t)}function i(e,t){return K.isUndefined(t)?K.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function a(r,o,s){return s in t?n(r,o):s in e?n(void 0,r):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t,r)=>o(qe(e),qe(t),0,!0)};return K.forEach(Object.keys(Object.assign({},e,t)),(function(n){const s=c[n]||o,i=s(e[n],t[n],n);K.isUndefined(i)&&s!==a||(r[n]=i)})),r}var Fe=e=>{const t=De({},e);let r,{data:n,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:c}=t;if(t.headers=a=Te.from(a),t.url=ie(Ue(t.baseURL,t.url),e.params,e.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),K.isFormData(n))if(me.hasStandardBrowserEnv||me.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(r=a.getContentType())){const[e,...t]=r?r.split(";").map((e=>e.trim())).filter(Boolean):[];a.setContentType([e||"multipart/form-data",...t].join("; "))}if(me.hasStandardBrowserEnv&&(o&&K.isFunction(o)&&(o=o(t)),o||!1!==o&&Le(t.url))){const e=s&&i&&ke.read(i);e&&a.set(s,e)}return t},Be="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){const n=Fe(e);let o=n.data;const s=Te.from(n.headers).normalize();let i,a,c,u,l,{responseType:f,onUploadProgress:d,onDownloadProgress:h}=n;function p(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(i),n.signal&&n.signal.removeEventListener("abort",i)}let m=new XMLHttpRequest;function y(){if(!m)return;const n=Te.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Ne((function(e){t(e),p()}),(function(e){r(e),p()}),{data:f&&"text"!==f&&"json"!==f?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:n,config:e,request:m}),m=null}m.open(n.method.toUpperCase(),n.url,!0),m.timeout=n.timeout,"onloadend"in m?m.onloadend=y:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(y)},m.onabort=function(){m&&(r(new $("Request aborted",$.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new $("Network Error",$.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const o=n.transitional||ce;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new $(t,o.clarifyTimeoutError?$.ETIMEDOUT:$.ECONNABORTED,e,m)),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&K.forEach(s.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),K.isUndefined(n.withCredentials)||(m.withCredentials=!!n.withCredentials),f&&"json"!==f&&(m.responseType=n.responseType),h&&([c,l]=je(h,!0),m.addEventListener("progress",c)),d&&m.upload&&([a,u]=je(d),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(i=t=>{m&&(r(!t||t.type?new xe(null,e,m):t),m.abort(),m=null)},n.cancelToken&&n.cancelToken.subscribe(i),n.signal&&(n.signal.aborted?i():n.signal.addEventListener("abort",i)));const w=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(n.url);w&&-1===me.protocols.indexOf(w)?r(new $("Unsupported protocol "+w+":",$.ERR_BAD_REQUEST,e)):m.send(o||null)}))},Me=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const o=function(e){if(!r){r=!0,i();const t=e instanceof Error?e:this.reason;n.abort(t instanceof $?t:new xe(t instanceof Error?t.message:t))}};let s=t&&setTimeout((()=>{s=null,o(new $(`timeout ${t} of ms exceeded`,$.ETIMEDOUT))}),t);const i=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>e.addEventListener("abort",o)));const{signal:a}=n;return a.unsubscribe=()=>K.asap(i),a}};const Ie=function*(e,t){let r=e.byteLength;if(!t||r<t)return void(yield e);let n,o=0;for(;o<r;)n=o+t,yield e.slice(o,n),o=n},Ve=(e,t,r,n)=>{const o=async function*(e,t){for await(const r of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:r}=await t.read();if(e)break;yield r}}finally{await t.cancel()}}(e))yield*Ie(r,t)}(e,t);let s,i=0,a=e=>{s||(s=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await o.next();if(t)return a(),void e.close();let s=n.byteLength;if(r){let e=i+=s;r(e)}e.enqueue(new Uint8Array(n))}catch(e){throw a(e),e}},cancel:e=>(a(e),o.return())},{highWaterMark:2})},ze="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,He=ze&&"function"==typeof ReadableStream,Je=ze&&("function"==typeof TextEncoder?(We=new TextEncoder,e=>We.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var We;const Ke=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},$e=He&&Ke((()=>{let e=!1;const t=new Request(me.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Ge=He&&Ke((()=>K.isReadableStream(new Response("").body))),Xe={stream:Ge&&(e=>e.body)};var Qe;ze&&(Qe=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Xe[e]&&(Xe[e]=K.isFunction(Qe[e])?t=>t[e]():(t,r)=>{throw new $(`Response type '${e}' is not supported`,$.ERR_NOT_SUPPORT,r)})})));const Ze={http:null,xhr:Be,fetch:ze&&(async e=>{let{url:t,method:r,data:n,signal:o,cancelToken:s,timeout:i,onDownloadProgress:a,onUploadProgress:c,responseType:u,headers:l,withCredentials:f="same-origin",fetchOptions:d}=Fe(e);u=u?(u+"").toLowerCase():"text";let h,p=Me([o,s&&s.toAbortSignal()],i);const m=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let y;try{if(c&&$e&&"get"!==r&&"head"!==r&&0!==(y=await(async(e,t)=>{const r=K.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(K.isBlob(e))return e.size;if(K.isSpecCompliantForm(e)){const t=new Request(me.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return K.isArrayBufferView(e)||K.isArrayBuffer(e)?e.byteLength:(K.isURLSearchParams(e)&&(e+=""),K.isString(e)?(await Je(e)).byteLength:void 0)})(t):r})(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(K.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=_e(y,je(Pe(c)));n=Ve(r.body,65536,e,t)}}K.isString(f)||(f=f?"include":"omit");const o="credentials"in Request.prototype;h=new Request(t,{...d,signal:p,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:o?f:void 0});let s=await fetch(h);const i=Ge&&("stream"===u||"response"===u);if(Ge&&(a||i&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=s[t]}));const t=K.toFiniteNumber(s.headers.get("content-length")),[r,n]=a&&_e(t,je(Pe(a),!0))||[];s=new Response(Ve(s.body,65536,r,(()=>{n&&n(),m&&m()})),e)}u=u||"text";let w=await Xe[K.findKey(Xe,u)||"text"](s,e);return!i&&m&&m(),await new Promise(((t,r)=>{Ne(t,r,{data:w,headers:Te.from(s.headers),status:s.status,statusText:s.statusText,config:e,request:h})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new $("Network Error",$.ERR_NETWORK,e,h),{cause:t.cause||t});throw $.from(t,t&&t.code,e,h)}})};K.forEach(Ze,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Ye=e=>`- ${e}`,et=e=>K.isFunction(e)||null===e||!1===e;var tt=e=>{e=K.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let s=0;s<t;s++){let t;if(r=e[s],n=r,!et(r)&&(n=Ze[(t=String(r)).toLowerCase()],void 0===n))throw new $(`Unknown adapter '${t}'`);if(n)break;o[t||"#"+s]=n}if(!n){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new $("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Ye).join("\n"):" "+Ye(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function rt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new xe(null,e)}function nt(e){return rt(e),e.headers=Te.from(e.headers),e.data=Ae.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),tt(e.adapter||ge.adapter)(e).then((function(t){return rt(e),t.data=Ae.call(e,e.transformResponse,t),t.headers=Te.from(t.headers),t}),(function(t){return Ce(t)||(rt(e),t&&t.response&&(t.response.data=Ae.call(e,e.transformResponse,t.response),t.response.headers=Te.from(t.response.headers))),Promise.reject(t)}))}const ot={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{ot[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const st={};ot.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.9] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,s)=>{if(!1===e)throw new $(n(o," has been removed"+(t?" in "+t:"")),$.ERR_DEPRECATED);return t&&!st[o]&&(st[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,s)}},ot.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};var it={assertOptions:function(e,t,r){if("object"!=typeof e)throw new $("options must be an object",$.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const s=n[o],i=t[s];if(i){const t=e[s],r=void 0===t||i(t,s,e);if(!0!==r)throw new $("option "+s+" must be "+r,$.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new $("Unknown option "+s,$.ERR_BAD_OPTION)}},validators:ot};const at=it.validators;class ct{constructor(e){this.defaults=e,this.interceptors={request:new ae,response:new ae}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const r=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?r&&!String(e.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+r):e.stack=r}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=De(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:o}=t;void 0!==r&&it.assertOptions(r,{silentJSONParsing:at.transitional(at.boolean),forcedJSONParsing:at.transitional(at.boolean),clarifyTimeoutError:at.transitional(at.boolean)},!1),null!=n&&(K.isFunction(n)?t.paramsSerializer={serialize:n}:it.assertOptions(n,{encode:at.function,serialize:at.function},!0)),it.assertOptions(t,{baseUrl:at.spelling("baseURL"),withXsrfToken:at.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&K.merge(o.common,o[t.method]);o&&K.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Te.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,f=0;if(!a){const e=[nt.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);f<l;)u=u.then(e[f++],e[f++]);return u}l=i.length;let d=t;for(f=0;f<l;){const e=i[f++],t=i[f++];try{d=e(d)}catch(e){t.call(this,e);break}}try{u=nt.call(this,d)}catch(e){return Promise.reject(e)}for(f=0,l=c.length;f<l;)u=u.then(c[f++],c[f++]);return u}getUri(e){return ie(Ue((e=De(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}K.forEach(["delete","get","head","options"],(function(e){ct.prototype[e]=function(t,r){return this.request(De(r||{},{method:e,url:t,data:(r||{}).data}))}})),K.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,o){return this.request(De(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}ct.prototype[e]=t(),ct.prototype[e+"Form"]=t(!0)}));var ut=ct;class lt{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const r=this;this.promise.then((e=>{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,o){r.reason||(r.reason=new xe(e,n,o),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new lt((function(t){e=t})),cancel:e}}}var ft=lt;const dt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(dt).forEach((([e,t])=>{dt[t]=e}));var ht=dt;const pt=function e(t){const r=new ut(t),o=n(ut.prototype.request,r);return K.extend(o,ut.prototype,r,{allOwnKeys:!0}),K.extend(o,r,null,{allOwnKeys:!0}),o.create=function(r){return e(De(t,r))},o}(ge);pt.Axios=ut,pt.CanceledError=xe,pt.CancelToken=ft,pt.isCancel=Ce,pt.VERSION="1.7.9",pt.toFormData=te,pt.AxiosError=$,pt.Cancel=pt.CanceledError,pt.all=function(e){return Promise.all(e)},pt.spread=function(e){return function(t){return e.apply(null,t)}},pt.isAxiosError=function(e){return K.isObject(e)&&!0===e.isAxiosError},pt.mergeConfig=De,pt.AxiosHeaders=Te,pt.formToJSON=e=>ye(K.isHTMLForm(e)?new FormData(e):e),pt.getAdapter=tt,pt.HttpStatusCode=ht,pt.default=pt,e.exports=pt}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r(156)})()));
@@ -0,0 +1,25 @@
1
+ import { ClientConfig, ServerStatus, ServerPlayer, JoinLog, KillLog, CommandLog, ModcallLog, VehicleLog, ServerBan } from './types';
2
+ export declare class Client {
3
+ private readonly api;
4
+ private readonly config;
5
+ private static readonly BASE_URL;
6
+ private lastCommandTime;
7
+ private static readonly COMMAND_COOLDOWN;
8
+ private commandQueue;
9
+ constructor(config: ClientConfig);
10
+ private validateConfig;
11
+ private request;
12
+ private waitCooldown;
13
+ private enqueueCommand;
14
+ getServer(serverToken: string): Promise<ServerStatus>;
15
+ getPlayers(serverToken: string): Promise<ServerPlayer[]>;
16
+ getJoinLogs(serverToken: string): Promise<JoinLog[]>;
17
+ getKillLogs(serverToken: string): Promise<KillLog[]>;
18
+ getCommandLogs(serverToken: string): Promise<CommandLog[]>;
19
+ getModcallLogs(serverToken: string): Promise<ModcallLog[]>;
20
+ getBans(serverToken: string): Promise<ServerBan>;
21
+ getVehicles(serverToken: string): Promise<VehicleLog[]>;
22
+ getQueue(serverToken: string): Promise<number[]>;
23
+ runCommand(serverToken: string, command: string): Promise<boolean>;
24
+ }
25
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,SAAS,CAAC;AAGjB,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IAC7E,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAChD,OAAO,CAAC,YAAY,CAAmC;gBAE3C,MAAM,EAAE,YAAY;IAoChC,OAAO,CAAC,cAAc;YAMR,OAAO;YAwBP,YAAY;IAU1B,OAAO,CAAC,cAAc;IAWhB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOrD,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAOxD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOpD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOpD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO1D,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO1D,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAOhD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAOvD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOhD,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAazE"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Client = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const errors_1 = require("./errors");
9
+ class Client {
10
+ constructor(config) {
11
+ this.lastCommandTime = 0;
12
+ this.commandQueue = Promise.resolve();
13
+ this.validateConfig(config);
14
+ this.config = config;
15
+ this.api = axios_1.default.create({
16
+ baseURL: Client.BASE_URL,
17
+ headers: {
18
+ Authorization: this.config.globalToken,
19
+ },
20
+ });
21
+ this.api.interceptors.response.use((response) => response, (error) => {
22
+ if (error.response) {
23
+ switch (error.response.status) {
24
+ case 401:
25
+ throw new errors_1.AuthenticationError('Invalid authentication credentials');
26
+ case 400:
27
+ throw new errors_1.ValidationError(error.response.data.message || 'Invalid request');
28
+ case 429:
29
+ const retryAfter = error.response.data.retry_after;
30
+ throw new errors_1.NetworkError(`Rate limit exceeded. Retry after ${retryAfter} seconds.`);
31
+ default:
32
+ throw new errors_1.NetworkError(`Request failed: ${error.response.data.message || error.message}`);
33
+ }
34
+ }
35
+ if (error.request) {
36
+ throw new errors_1.NetworkError('No response received from server');
37
+ }
38
+ throw new errors_1.NetworkError(error.message || 'Network request failed');
39
+ });
40
+ }
41
+ validateConfig(config) {
42
+ if (!config.globalToken) {
43
+ throw new errors_1.ValidationError('Global token is required');
44
+ }
45
+ }
46
+ async request(endpoint, serverToken, method = 'GET', data) {
47
+ try {
48
+ const response = await this.api.request({
49
+ method,
50
+ url: endpoint,
51
+ headers: {
52
+ 'Server-Key': serverToken,
53
+ },
54
+ data,
55
+ });
56
+ return response.data;
57
+ }
58
+ catch (error) {
59
+ if (axios_1.default.isAxiosError(error)) {
60
+ throw error;
61
+ }
62
+ throw new errors_1.NetworkError(error instanceof Error ? error.message : 'Unknown error occurred');
63
+ }
64
+ }
65
+ async waitCooldown() {
66
+ const now = Date.now();
67
+ const timeSinceLastCommand = now - this.lastCommandTime;
68
+ if (timeSinceLastCommand < Client.COMMAND_COOLDOWN) {
69
+ const waitTime = Client.COMMAND_COOLDOWN - timeSinceLastCommand;
70
+ await new Promise((resolve) => setTimeout(resolve, waitTime));
71
+ }
72
+ }
73
+ enqueueCommand(operation) {
74
+ const execute = async () => {
75
+ await this.waitCooldown();
76
+ this.lastCommandTime = Date.now();
77
+ return await operation();
78
+ };
79
+ this.commandQueue = this.commandQueue.then(execute, execute);
80
+ return this.commandQueue;
81
+ }
82
+ async getServer(serverToken) {
83
+ if (!serverToken) {
84
+ throw new errors_1.ValidationError('Server token is required');
85
+ }
86
+ return await this.request('/server', serverToken);
87
+ }
88
+ async getPlayers(serverToken) {
89
+ if (!serverToken) {
90
+ throw new errors_1.ValidationError('Server token is required');
91
+ }
92
+ return await this.request('/server/players', serverToken);
93
+ }
94
+ async getJoinLogs(serverToken) {
95
+ if (!serverToken) {
96
+ throw new errors_1.ValidationError('Server token is required');
97
+ }
98
+ return await this.request('/server/joinlogs', serverToken);
99
+ }
100
+ async getKillLogs(serverToken) {
101
+ if (!serverToken) {
102
+ throw new errors_1.ValidationError('Server token is required');
103
+ }
104
+ return await this.request('/server/killlogs', serverToken);
105
+ }
106
+ async getCommandLogs(serverToken) {
107
+ if (!serverToken) {
108
+ throw new errors_1.ValidationError('Server token is required');
109
+ }
110
+ return await this.request('/server/commandlogs', serverToken);
111
+ }
112
+ async getModcallLogs(serverToken) {
113
+ if (!serverToken) {
114
+ throw new errors_1.ValidationError('Server token is required');
115
+ }
116
+ return await this.request('/server/modcalls', serverToken);
117
+ }
118
+ async getBans(serverToken) {
119
+ if (!serverToken) {
120
+ throw new errors_1.ValidationError('Server token is required');
121
+ }
122
+ return await this.request('/server/bans', serverToken);
123
+ }
124
+ async getVehicles(serverToken) {
125
+ if (!serverToken) {
126
+ throw new errors_1.ValidationError('Server token is required');
127
+ }
128
+ return await this.request('/server/vehicles', serverToken);
129
+ }
130
+ async getQueue(serverToken) {
131
+ if (!serverToken) {
132
+ throw new errors_1.ValidationError('Server token is required');
133
+ }
134
+ return await this.request('/server/queue', serverToken);
135
+ }
136
+ async runCommand(serverToken, command) {
137
+ if (!serverToken) {
138
+ throw new errors_1.ValidationError('Server token is required');
139
+ }
140
+ if (!command) {
141
+ throw new errors_1.ValidationError('Command is required');
142
+ }
143
+ return this.enqueueCommand(async () => {
144
+ const result = await this.request('/server/command', serverToken, 'POST', { command });
145
+ return true;
146
+ });
147
+ }
148
+ }
149
+ exports.Client = Client;
150
+ Client.BASE_URL = 'https://api.policeroleplay.community/v1';
151
+ Client.COMMAND_COOLDOWN = 5000;
152
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare class ERLCError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare class AuthenticationError extends ERLCError {
5
+ constructor(message?: string);
6
+ }
7
+ export declare class ValidationError extends ERLCError {
8
+ constructor(message: string);
9
+ }
10
+ export declare class NetworkError extends ERLCError {
11
+ constructor(message?: string);
12
+ }
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,GAAE,MAAgC;CAItD;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,GAAE,MAAiC;CAIvD"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NetworkError = exports.ValidationError = exports.AuthenticationError = exports.ERLCError = void 0;
4
+ class ERLCError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = 'ERLCError';
8
+ }
9
+ }
10
+ exports.ERLCError = ERLCError;
11
+ class AuthenticationError extends ERLCError {
12
+ constructor(message = 'Authentication failed') {
13
+ super(message);
14
+ this.name = 'AuthenticationError';
15
+ }
16
+ }
17
+ exports.AuthenticationError = AuthenticationError;
18
+ class ValidationError extends ERLCError {
19
+ constructor(message) {
20
+ super(message);
21
+ this.name = 'ValidationError';
22
+ }
23
+ }
24
+ exports.ValidationError = ValidationError;
25
+ class NetworkError extends ERLCError {
26
+ constructor(message = 'Network request failed') {
27
+ super(message);
28
+ this.name = 'NetworkError';
29
+ }
30
+ }
31
+ exports.NetworkError = NetworkError;
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AALD,8BAKC;AAED,MAAa,mBAAoB,SAAQ,SAAS;IAChD,YAAY,UAAkB,uBAAuB;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED,MAAa,eAAgB,SAAQ,SAAS;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED,MAAa,YAAa,SAAQ,SAAS;IACzC,YAAY,UAAkB,wBAAwB;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC"}
@@ -0,0 +1,4 @@
1
+ export * from './client';
2
+ export * from './types';
3
+ export * from './errors';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./client"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ __exportStar(require("./errors"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB"}