@pelican.ts/sdk 0.2.1 → 0.2.3
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/.github/logo.png +0 -0
- package/.idea/Pterodactyl.ts.iml +12 -0
- package/.idea/discord.xml +14 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/README.md +1 -1
- package/dist/index.d.mts +661 -0
- package/dist/index.d.ts +661 -0
- package/dist/index.js +1055 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1017 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +3 -3
- package/bun.lock +0 -159
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/client/account.ts","../src/api/client/client.ts","../src/api/client/server_databases.ts","../src/api/client/server_files.ts","../src/api/client/server_schedules.ts","../src/api/client/server_allocations.ts","../src/api/client/server_users.ts","../src/api/client/server_backups.ts","../src/api/client/server_startup.ts","../src/api/client/server_settings.ts","../src/api/client/server_websocket.ts","../src/api/client/server_activity.ts","../src/api/client/server.ts","../src/api/application/users.ts","../src/utils/transform.ts","../src/api/application/client.ts","../src/api/base/request.ts","../src/api/base/types.ts","../src/index.ts"],"sourcesContent":["import {AxiosInstance} from \"axios\";\nimport {APIKey, SSHKey, User} from \"@/api/client/types/user\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport z from \"zod\";\n\n\nexport class Account {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n info = async (): Promise<User> => {\n const {data} = await this.r.get<GenericResponse<User, \"user\">>(\"/account\")\n return data.attributes\n }\n\n updateEmail = async (newEmail: string, password: string): Promise<void> => {\n newEmail = z.email().parse(newEmail)\n await this.r.put(\"/account/email\", {email: newEmail, password})\n }\n\n updatePassword = async (newPassword: string): Promise<void> => {\n newPassword = z.string().min(8).parse(newPassword)\n await this.r.put(\"/account/password\", {\n password: newPassword,\n password_confirmation: newPassword\n })\n }\n\n apiKeys = {\n list: async (): Promise<APIKey[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<APIKey, \"api_key\">>\n >(\"/account/api-keys\")\n return data.data.map(k => k.attributes)\n },\n\n create: async (description: string, allowed_ips?: string[]): Promise<APIKey & { secret_token: string }> => {\n allowed_ips = z.array(z.ipv4()).optional().parse(allowed_ips)\n const {data} = await this.r.post<\n GenericResponse<APIKey, \"api_key\", { secret_token: string }>\n >(\"/account/api-keys\", {description, allowed_ips})\n return {...data.attributes, secret_token: data.meta!.secret_token}\n },\n\n delete: async (identifier: string): Promise<void> => {\n await this.r.delete(`/account/api-keys/${identifier}`)\n }\n }\n\n sshKeys = {\n list: async (): Promise<SSHKey[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<SSHKey, \"ssh_key\">>\n >(\"/account/ssh-keys\")\n return data.data.map(k => k.attributes)\n },\n\n create: async (name: string, public_key: string): Promise<SSHKey> => {\n const {data} = await this.r.post<\n GenericResponse<SSHKey, \"ssh_key\">\n >(\"/account/ssh-keys\", {name, public_key})\n return data.attributes\n },\n\n delete: async (fingerprint: string): Promise<void> => {\n await this.r.post(`/account/ssh-keys/remove`, {fingerprint})\n }\n }\n\n twoFactor = {\n info: async (): Promise<{ image_url_data: string }> => {\n const {data} = await this.r.get<\n Awaited<ReturnType<typeof this.twoFactor.info>>\n >(\"/account/two-factor\")\n return data\n },\n\n enable: async (code: string): Promise<{ tokens: string[] }> => {\n const {data} = await this.r.post<\n Awaited<ReturnType<typeof this.twoFactor.enable>>\n >(\"/account/two-factor\", {code})\n return data\n },\n\n disable: async (password: string): Promise<void> => {\n await this.r.delete(\"/account/two-factor\", {data: {password}})\n }\n }\n}","import {Account} from \"@/api/client/account\";\nimport {AxiosInstance} from \"axios\";\nimport {Permission} from \"@/api/client/types/user\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Server} from \"@/api/client/types/server\";\nimport z from \"zod\";\nimport {ServerClient} from \"@/api/client/server\";\n\n\nexport class Client {\n account: Account\n\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n this.account = new Account(requester)\n }\n\n listPermissions = async (): Promise<Record<string, Permission>> => {\n const {data} = await this.r.get<\n GenericResponse<{ permissions: Record<string, Permission> }, \"system_permissions\">\n >(\"/permissions\")\n\n return data.attributes.permissions\n }\n\n listServers = async (\n type: \"accessible\" | \"mine\" | \"admin\" | \"admin-all\" = \"accessible\",\n page: number = 1,\n per_page: number = 50,\n include?: (\"egg\" | \"subusers\")[],\n ): Promise<Server[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Server, \"server\">>\n >(\"/servers\", {\n params: {type, page, include: include?.join(\",\")}\n })\n return data.data.map(s => s.attributes)\n }\n\n server = (uuid: string): ServerClient => new ServerClient(this.r, uuid)\n\n}\n\n\n/*\nInclude: ?include=param1,param2\nAvail: ?param1=val1¶m2=val2\nFilters: ?filter[param1]=val1&filter[param2]=val2\nSort: ?sort=-param, param=asc, -param=desc\n*/","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Database} from \"@/api/common/types/server_database\";\n// TODO: Check for validity\n\nexport class ServerDatabases {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (\n include?: (\"password\")[], page: number = 1\n ): Promise<Database[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Database, \"server_database\">>\n >(`/servers/${this.id}/databases`, {\n params: {include: include?.join(\",\"), page}\n })\n return data.data.map(d => d.attributes)\n }\n\n create = async (database: string, remote: string): Promise<Database> => {\n const {data} = await this.r.post<\n GenericResponse<Database, \"server_database\">\n >(`/servers/${this.id}/databases`, {database, remote})\n return data.attributes\n }\n\n rotatePassword = async (database_id: string): Promise<Database> => {\n const {data} = await this.r.post<\n GenericResponse<Database, \"server_database\">\n >(`/servers/${this.id}/databases/${database_id}/rotate-password`)\n return data.attributes\n }\n\n delete = async (database_id: string): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/databases/${database_id}`)\n }\n}","import axios, {AxiosInstance} from \"axios\";\nimport {string} from \"zod\";\nimport {FileObject} from \"@/api/common/types/server_files\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\n\nexport class ServerFiles {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (path?: string): Promise<FileObject[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<FileObject, \"file_object\">>\n >(`/servers/${this.id}/files/list`, {\n params: {directory: path}\n })\n return data.data.map(r => r.attributes)\n }\n\n /**\n * Return the contents of a file. To read binary file (non-editable) use {@link download} instead\n */\n contents = async (path: string): Promise<string> => {\n const {data} = await this.r.get<string>(`/servers/${this.id}/files/contents`, {\n params: {file: path}\n })\n return data\n }\n\n downloadGetUrl = async (path: string): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/files/download`, {\n params: {file: path}\n })\n return data.attributes.url\n }\n\n download = async (path: string): Promise<ArrayBuffer> => {\n const url = await this.downloadGetUrl(path)\n const {data} = await axios.get<ArrayBuffer>(url, {responseType: \"arraybuffer\"})\n return data\n }\n\n rename = async (\n root: string = \"/\",\n files: { from: string, to: string }[]\n ): Promise<void> => {\n await this.r.put(`/servers/${this.id}/files/rename`, {root, files})\n }\n\n copy = async (location: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/copy`, {location})\n }\n\n write = async (path: string, content: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/write`, content, {\n params: {file: path},\n })\n }\n\n compress = async (\n root: string = \"/\",\n files: string[],\n archive_name?: string,\n extension?: \"zip\" | \"tgz\" | \"tar.gz\" | \"txz\" | \"tar.xz\" | \"tbz2\" | \"tar.bz2\"\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/compress`, {root, files, archive_name, extension})\n }\n\n decompress = async (\n root: string = \"/\",\n file: string,\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/decompress`, {root, file})\n }\n\n delete = async (\n root: string = \"/\",\n files: string[],\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/delete`, {root, files})\n }\n\n createFolder = async (\n root: string = \"/\",\n name: string,\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/create-folder`, {root, name})\n }\n\n chmod = async (\n root: string = \"/\",\n files: Array<{ file: string, mode: number }>\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/chmod`, {root, files})\n }\n\n pullFromRemote = async (\n url: string,\n directory?: string,\n filename?: string, // Unused\n use_header: boolean = false, // Unused\n foreground: boolean = false // Unused\n ): Promise<void> => {\n await this.r.post(`/servers/${this.id}/files/pull`, {url, directory, filename, use_header, foreground})\n }\n\n uploadGetUrl = async (): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/files/upload`)\n return data.attributes.url\n }\n\n upload = async (file: File, root: string = \"/\"): Promise<void> => {\n const url = await this.uploadGetUrl()\n await axios.post(url, {files: file}, {\n headers: {\"Content-Type\": \"multipart/form-data\"},\n params: {directory: root}\n })\n }\n}","import {AxiosInstance} from \"axios\";\nimport {Schedule, ScheduleTask} from \"@/api/common/types/server_schedule\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {PartialBy} from \"@/utils/types\";\n\nexport class ServerSchedules {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<Schedule[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Schedule, \"server_schedule\">>\n >(`/servers/${this.id}/schedules`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (params: ScheduleCreateParams): Promise<Schedule> => {\n const {data} = await this.r.post<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules`, params)\n return data.attributes\n }\n\n control = (sched_id: number) => new ScheduleControl(this.r, this.id, sched_id)\n}\n\ntype ScheduleCreateParams = {\n name: string,\n is_active?: boolean,\n only_when_online?: boolean,\n minute: string,\n hour: string,\n day_of_week: string,\n month: string,\n day_of_month: string\n}\n\nclass ScheduleControl {\n private r: AxiosInstance\n private readonly id: string\n private readonly sched_id: number\n\n constructor(requester: AxiosInstance, id: string, sched_id: number) {\n this.r = requester\n this.id = id\n this.sched_id = sched_id\n }\n\n info = async (): Promise<Schedule> => {\n const {data} = await this.r.get<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules/${this.sched_id}`)\n return data.attributes\n }\n\n update = async (params: ScheduleCreateParams): Promise<Schedule> => {\n const {data} = await this.r.post<\n GenericResponse<Schedule, \"server_schedule\">\n >(`/servers/${this.id}/schedules/${this.sched_id}`, params)\n return data.attributes\n }\n\n delete = async (): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/schedules/${this.sched_id}`)\n }\n\n execute = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/schedules/${this.sched_id}/execute`)\n }\n\n tasks = {\n create: async (\n opts: PartialBy<\n Pick<ScheduleTask, \"action\" | \"payload\" | \"time_offset\" | \"sequence_id\" | \"continue_on_failure\">,\n \"payload\" | \"sequence_id\" | \"continue_on_failure\"\n >\n ): Promise<ScheduleTask> => {\n const {data} = await this.r.post<\n GenericResponse<ScheduleTask, \"server_schedule_task\">\n >(`/servers/${this.id}/schedules/${this.sched_id}/tasks`, opts)\n return data.attributes\n },\n\n update: async <T extends \"command\" | \"power\" | \"backup\" | \"delete_files\">(\n task_id: number,\n opts: PartialBy<\n Pick<ScheduleTask, \"action\" | \"payload\" | \"time_offset\" | \"sequence_id\" | \"continue_on_failure\">,\n \"payload\" | \"sequence_id\" | \"continue_on_failure\"\n >\n ): Promise<ScheduleTask> => {\n const {data} = await this.r.post<\n GenericResponse<ScheduleTask, \"server_schedule_task\">\n >(`/servers/${this.id}/schedules/${this.sched_id}/tasks/${task_id}`, opts)\n return data.attributes\n },\n\n delete: async (task_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/schedules/${this.sched_id}/tasks/${task_id}`)\n }\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {Allocation} from \"@/api/common/types/server_allocations\";\n\nexport class ServerAllocations {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<Allocation[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Allocation, \"allocation\">>\n >(`/servers/${this.id}/network/allocations`)\n return data.data.map(r => r.attributes)\n }\n\n autoAssign = async (): Promise<Allocation> => {\n const {data} = await this.r.post<\n GenericResponse<Allocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations`)\n return data.attributes\n }\n\n setNotes = async (alloc_id: number, notes: string): Promise<Allocation> => {\n const {data} = await this.r.post<\n GenericResponse<Allocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations/${alloc_id}`, {notes})\n return data.attributes\n }\n\n setPrimary = async (alloc_id: number): Promise<Allocation> => {\n const {data} = await this.r.post<\n GenericResponse<Allocation, \"allocation\">\n >(`/servers/${this.id}/network/allocations/${alloc_id}/primary`)\n return data.attributes\n }\n\n unassign = async (alloc_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/network/allocations/${alloc_id}`)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {ServerSubuser, SubuserPermission} from \"@/api/client/types/server_subuser\";\n\nexport class ServerUsers {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<ServerSubuser[]> => {\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<ServerSubuser, \"user\">>\n >(`/servers/${this.id}/users`)\n return data.data.map(d => d.attributes)\n }\n\n create = async (email: string, permissions: SubuserPermission[] | string[]): Promise<ServerSubuser> => {\n const {data} = await this.r.post<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users`, {email, permissions})\n return data.attributes\n }\n\n info = async (user_id: number): Promise<ServerSubuser> => {\n const {data} = await this.r.get<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users/${user_id}`)\n return data.attributes\n }\n\n update = async (user_id: number, permissions: SubuserPermission[] | string[]): Promise<ServerSubuser> => {\n const {data} = await this.r.put<\n GenericResponse<ServerSubuser, \"user\">\n >(`/servers/${this.id}/users/${user_id}`, {permissions})\n return data.attributes\n }\n\n delete = async (user_id: number): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/users/${user_id}`)\n }\n\n}","import axios, {AxiosInstance} from \"axios\";\nimport {Backup} from \"@/api/common/types/server_backup\";\nimport z, {string} from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\n\nexport class ServerBackups {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (page: number = 1): Promise<Backup[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<Backup, \"backup\">>\n >(`/servers/${this.id}/backups`, {\n params: {page}\n })\n\n return data.data.map(d=>d.attributes)\n }\n\n create = async (args: {\n name?: string,\n is_locked: boolean,\n ignored_files: string[],\n }): Promise<Backup> => {\n args.name = z.string().max(255).optional().parse(args.name)\n const {data} = await this.r.post<\n GenericResponse<Backup, \"backup\">\n >(`/servers/${this.id}/backups`, {\n name: args.name,\n is_locked: args.is_locked,\n ignored_files: args.ignored_files.join(\"\\n\")\n })\n return data.attributes\n }\n\n info = async (backup_uuid: string): Promise<Backup> => {\n const {data} = await this.r.get<\n GenericResponse<Backup, \"backup\">\n >(`/servers/${this.id}/backups/${backup_uuid}`)\n return data.attributes\n }\n\n downloadGetUrl = async (backup_uuid: string): Promise<string> => {\n const {data} = await this.r.get<\n GenericResponse<{ url: string }, \"signed_url\">\n >(`/servers/${this.id}/backups/${backup_uuid}/download`)\n return data.attributes.url\n }\n\n download = async (backup_uuid: string): Promise<ArrayBuffer> => {\n const url = await this.downloadGetUrl(backup_uuid)\n const {data} = await axios.get<ArrayBuffer>(url, {responseType: \"arraybuffer\"})\n return data\n }\n\n delete = async (backup_uuid: string): Promise<void> => {\n await this.r.delete(`/servers/${this.id}/backups/${backup_uuid}`)\n }\n\n}","import {AxiosInstance} from \"axios\";\nimport {CustomListResponse, GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {StartupMeta, StartupParams} from \"@/api/common/types/server_startup\";\n\n\nexport class ServerStartup {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n list = async (): Promise<CustomListResponse<StartupParams, StartupMeta>> => {\n const {data} = await this.r.get<\n CustomListResponse<GenericResponse<StartupParams, \"egg_variable\">, StartupMeta>\n >(`/servers/${this.id}/startup`)\n\n return {\n object: \"list\",\n meta: data.meta,\n data: data.data.map(d=>d.attributes)\n }\n }\n\n set = async (key: string, value: string): Promise<StartupParams> => {\n const {data} = await this.r.put<\n GenericResponse<StartupParams, \"egg_variable\">\n >(`/servers/${this.id}/startup/variable`, {key, value})\n return data.attributes\n }\n}","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {Nullable} from \"@/utils/types\";\n\n\nexport class ServerSettings {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n }\n\n rename = async (name: string): Promise<void> => {\n name = z.string().max(255).parse(name)\n await this.r.post(`/servers/${this.id}/settings/rename`, {name})\n }\n\n updateDescription = async (description: Nullable<string>): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/description`, {description})\n }\n\n reinstall = async (): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/reinstall`)\n }\n\n changeDockerImage = async (image: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/settings/docker-image`, {image})\n }\n}","import {AxiosInstance} from \"axios\"\nimport {EventEmitter} from \"events\"\nimport WebSocket from \"isomorphic-ws\"\nimport stripColor from \"strip-color\"\nimport {\n BackupCompletedJson,\n PowerState,\n SOCKET_EVENT,\n StatsWsJson,\n WebsocketEvent\n} from \"@/api/client/types/websocket\";\nimport {ServerSignalOption} from \"@/api/common/types/server_power\";\n\nconst isBrowser = typeof window !== \"undefined\"\n\n\ntype WebsocketHandshakePayload = {\n data: {\n token: string\n socket: string\n }\n}\n\ntype SocketEventPayloadMap = {\n [SOCKET_EVENT.AUTH_SUCCESS]: undefined\n [SOCKET_EVENT.STATUS]: PowerState\n [SOCKET_EVENT.CONSOLE_OUTPUT]: string\n [SOCKET_EVENT.STATS]: StatsWsJson\n [SOCKET_EVENT.DAEMON_ERROR]: undefined\n [SOCKET_EVENT.DAEMON_MESSAGE]: string\n [SOCKET_EVENT.INSTALL_OUTPUT]: string\n [SOCKET_EVENT.INSTALL_STARTED]: undefined\n [SOCKET_EVENT.INSTALL_COMPLETED]: undefined\n [SOCKET_EVENT.TRANSFER_LOGS]: string\n [SOCKET_EVENT.TRANSFER_STATUS]: string\n [SOCKET_EVENT.BACKUP_COMPLETED]: BackupCompletedJson\n [SOCKET_EVENT.BACKUP_RESTORE_COMPLETED]: undefined\n [SOCKET_EVENT.TOKEN_EXPIRING]: undefined\n [SOCKET_EVENT.TOKEN_EXPIRED]: undefined\n [SOCKET_EVENT.JWT_ERROR]: string\n}\n\ntype Listener<E extends SOCKET_EVENT> = SocketEventPayloadMap[E] extends undefined\n ? () => void\n : (payload: SocketEventPayloadMap[E]) => void\n\ntype MessageEventLike = {data?: unknown}\n\ntype CloseEventLike = Parameters<NonNullable<WebSocket[\"onclose\"]>>[0]\n\ntype ErrorEventLike = Parameters<NonNullable<WebSocket[\"onerror\"]>>[0]\n\nconst RECONNECT_ERRORS = new Set([\n \"jwt: exp claim is invalid\",\n \"jwt: created too far in past (denylist)\",\n])\n\nconst FALLBACK_LOG_MESSAGE = \"No logs - is the server online?\"\n\nexport class ServerWebsocket {\n private readonly r: AxiosInstance\n private readonly serverId: string\n private socket?: WebSocket\n private currentToken?: string\n private readonly bus = new EventEmitter()\n private debugLogging = false\n private stripColors: boolean\n private detachMessageListener?: () => void\n\n constructor(requester: AxiosInstance, id: string, stripColors: boolean = false) {\n this.r = requester\n this.serverId = id\n this.stripColors = stripColors\n }\n\n public on<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): () => void {\n const handler = listener as (...args: unknown[]) => void\n this.bus.on(event, handler)\n return () => {\n this.bus.removeListener(event, handler)\n }\n }\n\n public deregister<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): void {\n const handler = listener as (...args: unknown[]) => void\n this.bus.removeListener(event, handler)\n }\n\n private emit<E extends SOCKET_EVENT>(event: E, ...args: SocketEventPayloadMap[E] extends undefined ? [] : [SocketEventPayloadMap[E]]): void {\n if (args.length === 0) {\n this.bus.emit(event)\n } else {\n this.bus.emit(event, args[0])\n }\n }\n\n public async connect(resumable?: boolean, debugLogging?: boolean): Promise<void> {\n this.debugLogging = debugLogging ?? false\n\n if (this.socket) {\n return\n }\n\n const socketUrl = await this.refreshCredentials()\n\n this.socket = isBrowser\n ? new WebSocket(socketUrl)\n : new WebSocket(socketUrl, undefined, {origin: new URL(socketUrl).origin})\n\n await new Promise<void>((resolve, reject) => {\n const socket = this.socket\n if (!socket) {\n reject(new Error(\"Failed to create socket connection\"))\n return\n }\n\n socket.onopen = async () => {\n try {\n await this.authenticate()\n this.attachMessageListener()\n socket.onopen = null\n socket.onerror = null\n resolve()\n } catch (error) {\n socket.onopen = null\n socket.onerror = null\n reject(error instanceof Error ? error : new Error(\"Websocket authentication failed\"))\n }\n }\n\n socket.onerror = (event: ErrorEventLike) => {\n socket.onopen = null\n socket.onerror = null\n reject(event instanceof Error ? event : new Error(\"Websocket connection error\"))\n }\n })\n\n if (resumable) {\n this.makeResumable(true)\n }\n }\n\n public onSocketDisconnect(handler: (event: CloseEventLike) => void): void {\n if (!this.socket) {\n console.error(new Error(\"No socket connection\"))\n return\n }\n\n this.socket.onclose = handler\n }\n\n public onSocketError(handler: (event: ErrorEventLike) => void): void {\n if (!this.socket) {\n console.error(new Error(\"No socket connection\"))\n return\n }\n\n this.socket.onerror = handler\n }\n\n public makeResumable(disconnectsToo: boolean): void {\n const scheduleReconnect = () => {\n setTimeout(() => {\n const previous = this.socket\n this.detachMessageListener?.()\n this.detachMessageListener = undefined\n this.socket = undefined\n previous?.close()\n void this.connect(true, this.debugLogging)\n }, 1000)\n }\n\n this.onSocketError(() => scheduleReconnect())\n\n if (disconnectsToo) {\n this.onSocketDisconnect(() => scheduleReconnect())\n }\n }\n\n private attachMessageListener(): void {\n if (!this.socket) {\n throw new Error(\"No socket connection\")\n }\n\n this.detachMessageListener?.()\n\n const handler = (event: unknown) => {\n void this.handleIncomingMessage(event)\n }\n\n if (typeof this.socket.addEventListener === \"function\") {\n this.socket.addEventListener(\"message\", handler as (event: MessageEventLike) => void)\n this.detachMessageListener = () => {\n this.socket?.removeEventListener?.(\"message\", handler as (event: MessageEventLike) => void)\n }\n } else {\n const fallback = (data: unknown) => handler({data} satisfies MessageEventLike)\n const socket = this.socket as unknown as {\n on?: (event: string, listener: (data: unknown) => void) => void\n off?: (event: string, listener: (data: unknown) => void) => void\n removeListener?: (event: string, listener: (data: unknown) => void) => void\n }\n\n socket.on?.(\"message\", fallback)\n this.detachMessageListener = () => {\n const target = this.socket as unknown as typeof socket | undefined\n if (!target) {\n return\n }\n\n if (typeof target.off === \"function\") {\n target.off(\"message\", fallback)\n } else if (typeof target.removeListener === \"function\") {\n target.removeListener(\"message\", fallback)\n }\n }\n }\n }\n\n private async handleIncomingMessage(event: unknown): Promise<void> {\n const message = this.parseMessage(event)\n if (!message) {\n return\n }\n\n try {\n await this.dispatchMessage(message)\n } catch (error) {\n if (this.debugLogging) {\n console.error(\"Error while handling websocket message\", error)\n }\n }\n }\n\n private parseMessage(event: unknown): WebsocketEvent | null {\n const payload = this.normalisePayload(event)\n if (!payload) {\n return null\n }\n\n try {\n return JSON.parse(payload) as WebsocketEvent\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse websocket payload\", error)\n }\n return null\n }\n }\n\n private normalisePayload(event: unknown): string | null {\n if (typeof event === \"string\") {\n return event\n }\n\n if (typeof event === \"object\" && event !== null && \"data\" in event) {\n return this.normalisePayload((event as MessageEventLike).data)\n }\n\n if (typeof Buffer !== \"undefined\" && Buffer.isBuffer(event)) {\n return event.toString(\"utf8\")\n }\n\n if (typeof ArrayBuffer !== \"undefined\" && event instanceof ArrayBuffer) {\n if (typeof TextDecoder !== \"undefined\") {\n return new TextDecoder().decode(new Uint8Array(event))\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(event).toString(\"utf8\")\n }\n }\n\n return null\n }\n\n private async dispatchMessage(message: WebsocketEvent): Promise<void> {\n switch (message.event) {\n case SOCKET_EVENT.AUTH_SUCCESS: {\n if (this.debugLogging) {\n console.debug(\"Auth success\")\n }\n this.emit(SOCKET_EVENT.AUTH_SUCCESS)\n break\n }\n case SOCKET_EVENT.STATUS: {\n if (this.debugLogging) {\n console.debug(\"Received status event\", message.args[0])\n }\n this.emit(SOCKET_EVENT.STATUS, message.args[0])\n break\n }\n case SOCKET_EVENT.CONSOLE_OUTPUT: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n if (this.debugLogging) {\n console.debug(\"Received console output\", output)\n }\n this.emit(SOCKET_EVENT.CONSOLE_OUTPUT, output)\n break\n }\n case SOCKET_EVENT.STATS: {\n try {\n const payload = JSON.parse(message.args[0]) as StatsWsJson\n this.emit(SOCKET_EVENT.STATS, payload)\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse stats payload\", error)\n }\n }\n break\n }\n case SOCKET_EVENT.DAEMON_ERROR: {\n this.emit(SOCKET_EVENT.DAEMON_ERROR)\n break\n }\n case SOCKET_EVENT.BACKUP_COMPLETED: {\n try {\n const payload = JSON.parse(message.args[0]) as BackupCompletedJson\n this.emit(SOCKET_EVENT.BACKUP_COMPLETED, payload)\n } catch (error) {\n if (this.debugLogging) {\n console.warn(\"Failed to parse backup payload\", error)\n }\n }\n break\n }\n case SOCKET_EVENT.DAEMON_MESSAGE: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n this.emit(SOCKET_EVENT.DAEMON_MESSAGE, output)\n break\n }\n case SOCKET_EVENT.INSTALL_OUTPUT: {\n let output = message.args[0]\n if (this.stripColors) {\n output = stripColor(output)\n }\n this.emit(SOCKET_EVENT.INSTALL_OUTPUT, output)\n break\n }\n case SOCKET_EVENT.BACKUP_RESTORE_COMPLETED: {\n this.emit(SOCKET_EVENT.BACKUP_RESTORE_COMPLETED)\n break\n }\n case SOCKET_EVENT.INSTALL_COMPLETED: {\n this.emit(SOCKET_EVENT.INSTALL_COMPLETED)\n break\n }\n case SOCKET_EVENT.INSTALL_STARTED: {\n this.emit(SOCKET_EVENT.INSTALL_STARTED)\n break\n }\n case SOCKET_EVENT.TRANSFER_LOGS: {\n this.emit(SOCKET_EVENT.TRANSFER_LOGS, message.args[0])\n break\n }\n case SOCKET_EVENT.TRANSFER_STATUS: {\n this.emit(SOCKET_EVENT.TRANSFER_STATUS, message.args[0])\n break\n }\n case SOCKET_EVENT.TOKEN_EXPIRING: {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRING)\n if (this.debugLogging) {\n console.warn(\"Token expiring, renewing...\")\n }\n await this.refreshCredentials()\n await this.authenticate()\n break\n }\n case SOCKET_EVENT.TOKEN_EXPIRED: {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRED)\n throw new Error(\"Token expired\")\n }\n case SOCKET_EVENT.JWT_ERROR: {\n const reason = message.args[0]\n if (RECONNECT_ERRORS.has(reason)) {\n this.emit(SOCKET_EVENT.TOKEN_EXPIRING)\n if (this.debugLogging) {\n console.warn(\"Token expiring (JWT error), renewing...\")\n }\n await this.refreshCredentials()\n await this.authenticate()\n } else {\n this.emit(SOCKET_EVENT.JWT_ERROR, reason)\n throw new Error(\"Token expired\")\n }\n break\n }\n default: {\n if (this.debugLogging) {\n console.warn(\"Unknown websocket event\", message)\n }\n break\n }\n }\n }\n\n private async refreshCredentials(): Promise<string> {\n const {data} = await this.r.get<WebsocketHandshakePayload>(`/servers/${this.serverId}/websocket`)\n this.currentToken = data.data.token\n return data.data.socket\n }\n\n private async authenticate(): Promise<void> {\n if (!this.socket) {\n throw new Error(\"No socket connection\")\n }\n\n if (!this.currentToken) {\n throw new Error(\"Missing websocket token\")\n }\n\n this.socket.send(JSON.stringify({event: \"auth\", args: [this.currentToken]}))\n }\n\n public disconnect(): void {\n this.detachMessageListener?.()\n this.detachMessageListener = undefined\n if (this.socket) {\n this.socket.close()\n this.socket = undefined\n }\n }\n\n public requestStats(): void {\n this.send(\"send stats\", [null])\n }\n\n public requestLogs(): void {\n this.send(\"send logs\", [null])\n }\n\n private send(event: string, args: unknown[]): void {\n if (!this.socket) {\n if (this.debugLogging) {\n console.warn(`Attempted to send \"${event}\" without an active websocket connection`)\n }\n return\n }\n\n this.socket.send(JSON.stringify({event, args}))\n }\n\n public getStats(): Promise<StatsWsJson> {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n reject(new Error(\"No socket connection\"))\n return\n }\n\n let off: (() => void) | undefined\n const timeout = setTimeout(() => {\n off?.()\n reject(new Error(\"Timed out waiting for stats\"))\n }, 5000)\n\n off = this.on(SOCKET_EVENT.STATS, (payload) => {\n clearTimeout(timeout)\n off?.()\n resolve(payload)\n })\n\n this.requestStats()\n })\n }\n\n public getLogs(): Promise<string[]> {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n reject(new Error(\"No socket connection\"))\n return\n }\n\n const lines: string[] = []\n let off: (() => void) | undefined\n let initialTimeout: ReturnType<typeof setTimeout> | undefined\n let idleTimeout: ReturnType<typeof setTimeout> | undefined\n\n const finalize = (payload: string[]) => {\n off?.()\n if (initialTimeout) {\n clearTimeout(initialTimeout)\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout)\n }\n resolve(payload)\n }\n\n initialTimeout = setTimeout(() => {\n finalize(lines.length > 0 ? lines : [FALLBACK_LOG_MESSAGE])\n }, 5000)\n\n off = this.on(SOCKET_EVENT.CONSOLE_OUTPUT, (line) => {\n lines.push(line)\n if (initialTimeout) {\n clearTimeout(initialTimeout)\n initialTimeout = undefined\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout)\n }\n idleTimeout = setTimeout(() => {\n finalize(lines)\n }, 1000)\n })\n\n this.requestLogs()\n })\n }\n\n public sendPoweraction(action: ServerSignalOption): void {\n this.send(\"set state\", [action])\n }\n\n public sendCommand(cmd: string): void {\n this.send(\"send command\", [cmd])\n }\n}\n","import {AxiosInstance} from \"axios\";\nimport {ServerActivityLog} from \"@/api/client/types/server\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\n\nexport class ServerActivity {\n private readonly r: AxiosInstance\n private readonly id: string\n\n constructor(r: AxiosInstance, id: string) {\n this.r = r\n this.id = id\n }\n\n list = async (\n page: number = 1,\n per_page: number = 25,\n ): Promise<ServerActivityLog[]> => {\n const {data} = await this.r.get<GenericListResponse<GenericResponse<ServerActivityLog, \"activity_log\">>>(`/server/${this.id}/activity`, {\n params: {\n page,\n per_page,\n },\n })\n return data.data.map(log => log.attributes)\n }\n}","import {AxiosInstance} from \"axios\";\nimport {GenericResponse} from \"@/api/base/types\";\nimport {Server, ServerStats} from \"@/api/client/types/server\";\nimport {ServerDatabases} from \"@/api/client/server_databases\";\nimport {ServerFiles} from \"@/api/client/server_files\";\nimport {ServerSchedules} from \"@/api/client/server_schedules\";\nimport {ServerAllocations} from \"@/api/client/server_allocations\";\nimport {ServerUsers} from \"@/api/client/server_users\";\nimport {ServerBackups} from \"@/api/client/server_backups\";\nimport {ServerStartup} from \"@/api/client/server_startup\";\nimport {ServerSettings} from \"@/api/client/server_settings\";\nimport {ServerWebsocket} from \"@/api/client/server_websocket\";\nimport {ServerActivity} from \"@/api/client/server_activity\";\n\n\nexport class ServerClient {\n private readonly r: AxiosInstance\n private readonly id: string\n\n activity: ServerActivity\n databases: ServerDatabases\n files: ServerFiles\n schedules: ServerSchedules\n allocations: ServerAllocations\n users: ServerUsers\n backups: ServerBackups\n startup: ServerStartup\n variables: ServerStartup\n settings: ServerSettings\n\n constructor(requester: AxiosInstance, id: string) {\n this.r = requester\n this.id = id\n\n this.activity = new ServerActivity(requester, id)\n this.databases = new ServerDatabases(requester, id)\n this.files = new ServerFiles(requester, id)\n this.schedules = new ServerSchedules(requester, id)\n this.allocations = new ServerAllocations(requester, id)\n this.users = new ServerUsers(requester, id)\n this.backups = new ServerBackups(requester, id)\n this.startup = new ServerStartup(requester, id)\n this.variables = this.startup // preferable\n this.settings = new ServerSettings(requester, id)\n }\n\n info = async (include?: (\"egg\" | \"subusers\")[]): Promise<Server> => {\n const {data} = await this.r.get<GenericResponse<Server, \"server\">>(`/servers/${this.id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n websocket = (stripColors: boolean = false): ServerWebsocket => {\n return new ServerWebsocket(this.r, this.id, stripColors)\n }\n\n resources = async (): Promise<ServerStats> => {\n const {data} = await this.r.get<GenericResponse<ServerStats, \"stats\">>(`/servers/${this.id}/resources`)\n return data.attributes\n }\n\n command = async (command: string): Promise<void> => {\n await this.r.post(`/servers/${this.id}/command`, {command})\n }\n\n power = async (signal: \"start\" | \"stop\" | \"restart\" | \"kill\"): Promise<void> => {\n await this.r.post(`/servers/${this.id}/power`, {signal})\n }\n}","import {AxiosInstance} from \"axios\";\nimport z from \"zod\";\nimport {GenericListResponse, GenericResponse} from \"@/api/base/types\";\nimport {User} from \"@/api/application/types/user\";\nimport {ArrayQueryParams, SortParam} from \"@/utils/transform\";\nimport {ExactlyOneKey} from \"@/utils/types\";\n\n\nexport class Users {\n private readonly r: AxiosInstance\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n }\n\n list = async (\n {...opts}: ListType,\n page: number = 1\n ): Promise<User[]> => {\n z.number().positive().parse(page)\n const {data} = await this.r.get<\n GenericListResponse<GenericResponse<User, \"user\">>\n >(\"/users\", {\n params: {\n include: opts.include?.join(\",\"),\n page,\n ...ArrayQueryParams({filters: opts.filters || {}}),\n sort: opts.sort?.id\n ? SortParam(\"id\", opts.sort?.id)\n : SortParam(\"uuid\", opts.sort?.uuid!)\n }\n })\n\n return data.data.map(d => d.attributes)\n }\n\n info = async (\n id: number,\n {include}: { include?: (\"servers\")[] }\n ): Promise<User> => {\n z.number().positive().parse(id)\n const {data} = await this.r.get<\n GenericResponse<User, \"user\">\n >(`/users/${id}`, {\n params: {include: include?.join(\",\")}\n })\n return data.attributes\n }\n\n infoByExternal = async (\n external_id: string,\n {include}: { include?: (\"servers\")[] }\n ): Promise<User> => {\n const {data} = await this.r.get<\n GenericResponse<User, \"user\">\n >(`/users/external/${external_id}`)\n return data.attributes\n }\n\n create = async (user: CreateType): Promise<User> => {\n const {data} = await this.r.post<\n GenericResponse<User, \"user\">\n >(\"/users\", user)\n return data.attributes\n }\n\n update = async (id: number, user: UpdateType): Promise<User> => {\n z.number().positive().parse(id)\n const {data} = await this.r.put<\n GenericResponse<User, \"user\">\n >(`/users/${id}`, user)\n return data.attributes\n }\n\n delete = async (id: number): Promise<void> => {\n z.number().positive().parse(id)\n await this.r.delete(`/users/${id}`)\n }\n\n}\n\ntype ListType = {\n include?: (\"servers\")[],\n filters?: ListFilters,\n sort?: ListSort\n}\ntype ListFilters = {\n [key in \"email\" | \"uuid\" | \"username\" | \"external_id\"]: string;\n};\n\ntype ListSort = ExactlyOneKey<\"id\" | \"uuid\", \"asc\" | \"desc\">\n\ntype CreateType = {\n email: string,\n username: string,\n first_name: string,\n last_name: string\n}\n\ntype UpdateType = CreateType & {\n language: string\n password: string\n}","import {string} from \"zod\";\n\n\nexport const ArrayQueryParams = (p: {\n [key: string]: {\n [key: string]: string\n }\n}): {\n [key: string]: string\n} => {\n const params = new URLSearchParams()\n\n const o: ReturnType<typeof ArrayQueryParams> = {}\n\n for (const [param, value] of Object.entries(p)) {\n for (const [key, val] of Object.entries(value)) {\n o[`${param}[${key}]`] = val\n }\n }\n\n return o\n}\n\nexport const SortParam = (key: string, p: \"asc\" | \"desc\"): string => {\n return `${p===\"desc\" ? \"-\" : \"\"}${key}`\n}","import {AxiosInstance} from \"axios\";\nimport {Users} from \"@/api/application/users\";\n\nexport class Client {\n private readonly r: AxiosInstance\n users: Users\n\n constructor(requester: AxiosInstance) {\n this.r = requester\n\n this.users = new Users(requester)\n }\n}","import z from \"zod\"\nimport axios, {AxiosInstance, AxiosResponse} from \"axios\";\nimport {PterodactylError, PterodactylException} from \"@/api/base/types\";\n\nexport class Agent {\n private readonly base_url: string\n private readonly token: string\n readonly requester: AxiosInstance\n\n constructor(url: string, token: string, type: \"client\" | \"application\") {\n this.base_url = z.url(\"Invalid URL Schema\").parse(url)\n this.token = z.string().regex(/^(ptl[ac]|pacc|papp)_.+$/, \"Invalid token type\").parse(token)\n\n this.requester = axios.create({\n baseURL: this.base_url.replace(/\\/+$/, \"\")+`/api/${type}`,\n timeout: 3000,\n headers: {\n Authorization: `Bearer ${this.token}`\n }\n })\n\n this.requester.interceptors.response.use(undefined, (error: any)=>{\n if (error.response && error.response.status === 400) {\n return Promise.reject(new PterodactylException(\n 'Invalid request data',\n error.response.data as PterodactylError[],\n error.response.status\n ));\n }\n return Promise.reject(error);\n })\n }\n}","export type GenericResponse<T, N extends string = string, M = undefined> = {\n object: N,\n attributes: T,\n meta?: M\n}\n\ntype PaginationMeta = {\n total: number,\n count: number,\n per_page: number,\n current_page: number,\n total_pages: number,\n links: any\n}\n\nexport type GenericListResponse<T> = {\n object: \"list\",\n data: T[],\n meta?: { pagination: PaginationMeta }\n}\n\nexport type CustomListResponse<T, M> = {\n object: \"list\",\n data: T[],\n meta?: M\n}\n\n\nexport class PterodactylException extends Error {\n data: PterodactylError[]\n status: number\n\n constructor(message: string, data: PterodactylError[], status: number) {\n super(message)\n this.data = data\n this.status = status\n }\n}\n\nexport type PterodactylError = {\n code: string,\n status?: number,\n detail: string,\n source?: {\n [key: string]: string\n }\n}","import {Client as UserClient} from \"@/api/client/client\";\nimport {Client as AppClient} from \"@/api/application/client\";\nimport {Agent} from \"@/api/base/request\";\n\nexport class PelicanClient extends UserClient{\n constructor(url: string, token: string) {\n const ax = new Agent(url, token, \"client\")\n super(ax.requester)\n }\n}\n\nexport class PelicanApplication extends AppClient{\n constructor(url: string, token: string) {\n const ax = new Agent(url, token, \"application\")\n super(ax.requester)\n }\n}"],"mappings":"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","names":["z","z","axios","z","z","z","z","z","Client","z","axios","z","axios","Client"]}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pelican.ts/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Pelican panel SDK for TypeScript",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
|
-
"build": "
|
|
10
|
-
"
|
|
9
|
+
"build": "tsup src/index.ts --format esm,cjs --dts --sourcemap --target esnext",
|
|
10
|
+
"pub": "npm publish --access=public"
|
|
11
11
|
},
|
|
12
12
|
"keywords": ["pterodactyl", "pterodactyl.ts", "pterodactyl.js", "pelican", "pelican.ts", "pelican.js"],
|
|
13
13
|
"author": "M41den",
|
package/bun.lock
DELETED
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"lockfileVersion": 1,
|
|
3
|
-
"workspaces": {
|
|
4
|
-
"": {
|
|
5
|
-
"name": "pterodactyl.ts",
|
|
6
|
-
"dependencies": {
|
|
7
|
-
"axios": "^1.12.2",
|
|
8
|
-
"isomorphic-ws": "^5.0.0",
|
|
9
|
-
"strip-color": "^0.1.0",
|
|
10
|
-
"zod": "^4.1.12",
|
|
11
|
-
},
|
|
12
|
-
"devDependencies": {
|
|
13
|
-
"@types/node": "^22.18.12",
|
|
14
|
-
"@types/strip-color": "^0.1.2",
|
|
15
|
-
"tsc-alias": "^1.8.16",
|
|
16
|
-
"typescript": "^5.9.3",
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
"packages": {
|
|
21
|
-
"@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
|
|
22
|
-
|
|
23
|
-
"@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
|
|
24
|
-
|
|
25
|
-
"@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
|
|
26
|
-
|
|
27
|
-
"@types/node": ["@types/node@22.18.12", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-BICHQ67iqxQGFSzfCFTT7MRQ5XcBjG5aeKh5Ok38UBbPe5fxTyE+aHFxwVrGyr8GNlqFMLKD1D3P2K/1ks8tog=="],
|
|
28
|
-
|
|
29
|
-
"@types/strip-color": ["@types/strip-color@0.1.2", "", {}, "sha512-9ytlUoDq2/vhwmpBVWI4BFfWJVsKJl+xogC1TYZSkhnmMUHvVVD71eHaPV3j4YnLViIJcai8BVdv2BGJpwQfFQ=="],
|
|
30
|
-
|
|
31
|
-
"anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
|
|
32
|
-
|
|
33
|
-
"array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="],
|
|
34
|
-
|
|
35
|
-
"asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
|
|
36
|
-
|
|
37
|
-
"axios": ["axios@1.12.2", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw=="],
|
|
38
|
-
|
|
39
|
-
"binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
|
|
40
|
-
|
|
41
|
-
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
|
|
42
|
-
|
|
43
|
-
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
|
|
44
|
-
|
|
45
|
-
"chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
|
|
46
|
-
|
|
47
|
-
"combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
|
|
48
|
-
|
|
49
|
-
"commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="],
|
|
50
|
-
|
|
51
|
-
"delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
|
|
52
|
-
|
|
53
|
-
"dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="],
|
|
54
|
-
|
|
55
|
-
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
|
|
56
|
-
|
|
57
|
-
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
|
|
58
|
-
|
|
59
|
-
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
|
|
60
|
-
|
|
61
|
-
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
|
|
62
|
-
|
|
63
|
-
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
|
|
64
|
-
|
|
65
|
-
"fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
|
|
66
|
-
|
|
67
|
-
"fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="],
|
|
68
|
-
|
|
69
|
-
"fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
|
|
70
|
-
|
|
71
|
-
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
|
|
72
|
-
|
|
73
|
-
"form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="],
|
|
74
|
-
|
|
75
|
-
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
|
76
|
-
|
|
77
|
-
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
|
|
78
|
-
|
|
79
|
-
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
|
|
80
|
-
|
|
81
|
-
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
|
|
82
|
-
|
|
83
|
-
"get-tsconfig": ["get-tsconfig@4.13.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ=="],
|
|
84
|
-
|
|
85
|
-
"glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
|
86
|
-
|
|
87
|
-
"globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="],
|
|
88
|
-
|
|
89
|
-
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
|
|
90
|
-
|
|
91
|
-
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
|
|
92
|
-
|
|
93
|
-
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
|
|
94
|
-
|
|
95
|
-
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
|
|
96
|
-
|
|
97
|
-
"ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
|
|
98
|
-
|
|
99
|
-
"is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="],
|
|
100
|
-
|
|
101
|
-
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
|
|
102
|
-
|
|
103
|
-
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
|
|
104
|
-
|
|
105
|
-
"is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
|
|
106
|
-
|
|
107
|
-
"isomorphic-ws": ["isomorphic-ws@5.0.0", "", { "peerDependencies": { "ws": "*" } }, "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw=="],
|
|
108
|
-
|
|
109
|
-
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
|
|
110
|
-
|
|
111
|
-
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
|
|
112
|
-
|
|
113
|
-
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
|
|
114
|
-
|
|
115
|
-
"mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
|
|
116
|
-
|
|
117
|
-
"mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
|
|
118
|
-
|
|
119
|
-
"mylas": ["mylas@2.1.13", "", {}, "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg=="],
|
|
120
|
-
|
|
121
|
-
"normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
|
|
122
|
-
|
|
123
|
-
"path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
|
|
124
|
-
|
|
125
|
-
"picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
|
|
126
|
-
|
|
127
|
-
"plimit-lit": ["plimit-lit@1.6.1", "", { "dependencies": { "queue-lit": "^1.5.1" } }, "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA=="],
|
|
128
|
-
|
|
129
|
-
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
|
|
130
|
-
|
|
131
|
-
"queue-lit": ["queue-lit@1.5.2", "", {}, "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw=="],
|
|
132
|
-
|
|
133
|
-
"queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
|
|
134
|
-
|
|
135
|
-
"readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="],
|
|
136
|
-
|
|
137
|
-
"resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
|
|
138
|
-
|
|
139
|
-
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
|
|
140
|
-
|
|
141
|
-
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
|
|
142
|
-
|
|
143
|
-
"slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="],
|
|
144
|
-
|
|
145
|
-
"strip-color": ["strip-color@0.1.0", "", {}, "sha512-p9LsUieSjWNNAxVCXLeilaDlmuUOrDS5/dF9znM1nZc7EGX5+zEFC0bEevsNIaldjlks+2jns5Siz6F9iK6jwA=="],
|
|
146
|
-
|
|
147
|
-
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
|
|
148
|
-
|
|
149
|
-
"tsc-alias": ["tsc-alias@1.8.16", "", { "dependencies": { "chokidar": "^3.5.3", "commander": "^9.0.0", "get-tsconfig": "^4.10.0", "globby": "^11.0.4", "mylas": "^2.1.9", "normalize-path": "^3.0.0", "plimit-lit": "^1.2.6" }, "bin": { "tsc-alias": "dist/bin/index.js" } }, "sha512-QjCyu55NFyRSBAl6+MTFwplpFcnm2Pq01rR/uxfqJoLMm6X3O14KEGtaSDZpJYaE1bJBGDjD0eSuiIWPe2T58g=="],
|
|
150
|
-
|
|
151
|
-
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
|
152
|
-
|
|
153
|
-
"undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
|
|
154
|
-
|
|
155
|
-
"ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="],
|
|
156
|
-
|
|
157
|
-
"zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="],
|
|
158
|
-
}
|
|
159
|
-
}
|