erlc-api 2.3.3 → 3.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.
- package/.gitattributes +2 -0
- package/README.md +381 -87
- package/index.js +1 -0
- package/package.json +18 -46
- package/src/classes/client.js +36 -0
- package/src/constants.js +2 -0
- package/src/erlc.js +15 -0
- package/src/functions/assert.js +5 -0
- package/src/functions/server/getBans.js +54 -0
- package/src/functions/server/getCommandLogs.js +54 -0
- package/src/functions/server/getJoinLogs.js +54 -0
- package/src/functions/server/getKillLogs.js +54 -0
- package/src/functions/server/getModcallLogs.js +54 -0
- package/src/functions/server/getPlayers.js +54 -0
- package/src/functions/server/getQueue.js +54 -0
- package/src/functions/server/getServer.js +78 -0
- package/src/functions/server/getStaff.js +54 -0
- package/src/functions/server/getVehicles.js +54 -0
- package/src/functions/server/runCommand.js +70 -0
- package/src/types/custom.d.ts +5 -0
- package/src/types/index.d.ts +98 -0
- package/dist/browser/erlc.min.js +0 -1
- package/dist/cjs/client.d.ts +0 -25
- package/dist/cjs/client.d.ts.map +0 -1
- package/dist/cjs/client.js +0 -152
- package/dist/cjs/client.js.map +0 -1
- package/dist/cjs/errors/index.d.ts +0 -13
- package/dist/cjs/errors/index.d.ts.map +0 -1
- package/dist/cjs/errors/index.js +0 -32
- package/dist/cjs/errors/index.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -4
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -20
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/types/index.d.ts +0 -46
- package/dist/cjs/types/index.d.ts.map +0 -1
- package/dist/cjs/types/index.js +0 -3
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/esm/client.d.ts +0 -25
- package/dist/esm/client.d.ts.map +0 -1
- package/dist/esm/client.js +0 -145
- package/dist/esm/client.js.map +0 -1
- package/dist/esm/errors/index.d.ts +0 -13
- package/dist/esm/errors/index.d.ts.map +0 -1
- package/dist/esm/errors/index.js +0 -25
- package/dist/esm/errors/index.js.map +0 -1
- package/dist/esm/index.d.ts +0 -4
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/types/index.d.ts +0 -46
- package/dist/esm/types/index.d.ts.map +0 -1
- package/dist/esm/types/index.js +0 -2
- package/dist/esm/types/index.js.map +0 -1
- package/dist/types/client.d.ts +0 -25
- package/dist/types/client.d.ts.map +0 -1
- package/dist/types/errors/index.d.ts +0 -13
- package/dist/types/errors/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/types/index.d.ts +0 -46
- package/dist/types/types/index.d.ts.map +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
declare module "erlc-api" {
|
|
2
|
+
export interface ClientConfig {
|
|
3
|
+
globalToken: string; // The ER:LC global API token
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export const BASEURL = "https://api.policeroleplay.community/v1";
|
|
7
|
+
|
|
8
|
+
type PlayerId = string;
|
|
9
|
+
type PlayerName = string;
|
|
10
|
+
type TextureName = string;
|
|
11
|
+
type CarName = string;
|
|
12
|
+
|
|
13
|
+
export type ErlcPlayer = `${PlayerName}:${PlayerId}`; // Playername:UserID
|
|
14
|
+
export type ErlcPlayerPermission =
|
|
15
|
+
| "Normal"
|
|
16
|
+
| "Server Administrator"
|
|
17
|
+
| "Server Owner"
|
|
18
|
+
| "Server Moderator";
|
|
19
|
+
|
|
20
|
+
export interface ServerStatus {
|
|
21
|
+
Name: string; // The server name
|
|
22
|
+
OwnerUsername: string; // The username of the server owner
|
|
23
|
+
CoOwnerUsernames: string[]; // The usernames of the server co owners
|
|
24
|
+
CurrentPlayers: number; // The amount of people currently in-game
|
|
25
|
+
MaxPlayers: number; // The amount of people who can join the server including server owner
|
|
26
|
+
JoinKey: string; // The code used to join the private server
|
|
27
|
+
AccVerifiedReq: "Disabled" | "Email" | "Phone/ID"; // The level of verification roblox accounts need to join the private server
|
|
28
|
+
TeamBalance: boolean; // If team balance is enabled or not
|
|
29
|
+
VanityURL: string; // The vanity URL to join the server
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface ServerPlayer {
|
|
33
|
+
Player: ErlcPlayer;
|
|
34
|
+
Permission: ErlcPlayerPermission;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface JoinLog {
|
|
38
|
+
Join: boolean; // True is join and False is leave
|
|
39
|
+
Timestamp: number; // Timestamp in seconds
|
|
40
|
+
Player: ErlcPlayer;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface KillLog {
|
|
44
|
+
Killed: ErlcPlayer;
|
|
45
|
+
Timestamp: number; // Timestamp in seconds
|
|
46
|
+
Killer: ErlcPlayer;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface CommandLog {
|
|
50
|
+
Player: ErlcPlayer;
|
|
51
|
+
Timestamp: number; // Timestamp in seconds
|
|
52
|
+
Command: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface ModcallLog {
|
|
56
|
+
Caller: ErlcPlayer;
|
|
57
|
+
Moderator?: ErlcPlayer; // If call is unanswered property is undefined
|
|
58
|
+
Timestamp: number; // Timestamp in seconds
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export type ServerBan = Record<PlayerId, PlayerName>;
|
|
62
|
+
|
|
63
|
+
export interface VehiclesLog {
|
|
64
|
+
Texture: string | null;
|
|
65
|
+
Name: string;
|
|
66
|
+
Owner: ErlcPlayer;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface ServerStaff {
|
|
70
|
+
CoOwners: number[];
|
|
71
|
+
Admins: Record<string, string>;
|
|
72
|
+
Mods: Record<string, string>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface VSMCommandBody {
|
|
76
|
+
command: string; // ":h Hey everyone!"
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function getBans(serverToken: string): Promise<ServerBan>;
|
|
80
|
+
export function getCommandLogs(serverToken: string): Promise<CommandLog[]>;
|
|
81
|
+
export function getJoinLogs(serverToken: string): Promise<JoinLog[]>;
|
|
82
|
+
export function getKillLogs(serverToken: string): Promise<KillLog[]>;
|
|
83
|
+
export function getModcallLogs(serverToken: string): Promise<ModcallLog[]>;
|
|
84
|
+
export function getPlayers(serverToken: string): Promise<ServerPlayer[]>;
|
|
85
|
+
export function getQueue(serverToken: string): Promise<number[]>;
|
|
86
|
+
export function getServer(serverToken: string): Promise<ServerStatus>;
|
|
87
|
+
export function getStaff(serverToken: string): Promise<ServerStaff>;
|
|
88
|
+
export function getVehicles(serverToken: string): Promise<VehiclesLog[]>;
|
|
89
|
+
export function runCommand(
|
|
90
|
+
serverToken: string,
|
|
91
|
+
command: string
|
|
92
|
+
): Promise<boolean>;
|
|
93
|
+
|
|
94
|
+
export class Client {
|
|
95
|
+
constructor(options: ClientConfig);
|
|
96
|
+
config(): ClientConfig;
|
|
97
|
+
}
|
|
98
|
+
}
|
package/dist/browser/erlc.min.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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)})()));
|
package/dist/cjs/client.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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
|
package/dist/cjs/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/cjs/client.js
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
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
|
package/dist/cjs/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/cjs/errors/index.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/cjs/index.d.ts
DELETED
package/dist/cjs/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/cjs/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
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
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
export interface ClientConfig {
|
|
2
|
-
globalToken: string;
|
|
3
|
-
}
|
|
4
|
-
export interface ServerStatus {
|
|
5
|
-
Name: string;
|
|
6
|
-
CurrentPlayers: number;
|
|
7
|
-
MaxPlayers: number;
|
|
8
|
-
JoinKey: string;
|
|
9
|
-
AccVerifiedReq: 'Disabled' | 'Email' | 'Phone/ID';
|
|
10
|
-
TeamBalance: boolean;
|
|
11
|
-
OwnerUsername: string;
|
|
12
|
-
CoOwnerUsernames: string[];
|
|
13
|
-
VanityURL: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ServerPlayer {
|
|
16
|
-
Permission: 'Normal' | 'Server Administrator' | 'Server Owner' | 'Server Moderator';
|
|
17
|
-
Player: string;
|
|
18
|
-
Team: string;
|
|
19
|
-
}
|
|
20
|
-
export interface JoinLog {
|
|
21
|
-
Join: boolean;
|
|
22
|
-
Timestamp: number;
|
|
23
|
-
Player: string;
|
|
24
|
-
}
|
|
25
|
-
export interface KillLog {
|
|
26
|
-
Killed: string;
|
|
27
|
-
Timestamp: number;
|
|
28
|
-
Killer: string;
|
|
29
|
-
}
|
|
30
|
-
export interface CommandLog {
|
|
31
|
-
Player: string;
|
|
32
|
-
Timestamp: number;
|
|
33
|
-
Command: string;
|
|
34
|
-
}
|
|
35
|
-
export interface ModcallLog {
|
|
36
|
-
Caller: string;
|
|
37
|
-
Moderator?: string;
|
|
38
|
-
Timestamp: number;
|
|
39
|
-
}
|
|
40
|
-
export interface VehicleLog {
|
|
41
|
-
Texture: string | null;
|
|
42
|
-
Name: string;
|
|
43
|
-
Owner: string;
|
|
44
|
-
}
|
|
45
|
-
export type ServerBan = Record<string, string>;
|
|
46
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IAClD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,QAAQ,GAAG,sBAAsB,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
package/dist/cjs/types/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":""}
|
package/dist/esm/client.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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
|
package/dist/esm/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|