UNPKG

@modexvpn/hcloud

Version:
1 lines 32 kB
{"version":3,"sources":["../client.ts","../utils/formatError.ts","../sdk/servers/getServerById.ts","../sdk/servers/getServers.ts","../sdk/servers/deleteServer.ts","../sdk/servers/createServer.ts","../sdk/servers/getServerMetrics.ts","../sdk/servers/updateServer.ts","../sdk/servers/actions/attachIso.ts","../sdk/servers/actions/detachIso.ts","../sdk/servers/actions/rebuild.ts","../sdk/servers/actions/disableBackup.ts","../sdk/servers/actions/disableRescue.ts","../sdk/servers/actions/powerControl.ts","../sdk/servers/actions/resetPassword.ts","../sdk/servers/actions/changeProtection.ts","../sdk/servers/actions/getActions.ts","../sdk/locations/getLocations.ts","../sdk/locations/getLocation.ts","../sdk/servers/actions/sshIntoServer.ts","../sdk/servers/server-type/getServerTypes.ts","../sdk/servers/server-type/getServerType.ts","../types/security/sshkeys.schema.ts","../types/common/label.types.ts","../sdk/security/ssh-keys/getSSHKey.ts","../types/common/meta.types.ts","../sdk/security/ssh-keys/getSSHKeys.ts","../index.ts"],"sourcesContent":["import axios from 'axios'\n\nconst HCLOUD_API_URL = 'https://api.hetzner.cloud/v1'\nconst HCLOUD_API_TOKEN = process.env.HCLOUD_API_TOKEN\n\nif (!HCLOUD_API_TOKEN) {\n throw new Error('HCLOUD_API_TOKEN is missing. Set it in your .env file')\n}\n\nexport const hcloudClient = axios.create({\n baseURL: HCLOUD_API_URL,\n headers: {\n Authorization: `Bearer ${HCLOUD_API_TOKEN}`,\n 'Content-Type': 'application/json',\n },\n})\n","import { HcloudAxiosError } from \"@/types/errors/hcloud-axios-error.types\"\n\nexport function formatHcloudError(error: unknown, context: string): Error {\n const err = error as HcloudAxiosError\n const baseMessage = err?.response?.data?.error?.message || err?.message || 'Unknown error'\n \n const details = err?.response?.data?.error?.details\n let extraMessage = ''\n \n if (details?.fields?.length) {\n const fieldMessages = details.fields.map((field) => {\n const issues = field.messages?.join(', ') || 'invalid'\n return `${field.name}: ${issues}`\n })\n extraMessage += `\\nFields: ${fieldMessages.join('; ')}`\n }\n \n if (details?.limits?.length) {\n const limitNames = details.limits.map((limit) => limit.name)\n extraMessage += `\\nLimits hit: ${limitNames.join(', ')}`\n }\n \n return new Error(`${context}: ${baseMessage}${extraMessage}`)\n}","import { hcloudClient } from \"@/client\"\nimport { Server } from \"@/types/servers/server.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function getServerById(serverId: number): Promise<Server> {\n try {\n const res = await hcloudClient.get(`/servers/${serverId}`)\n return res.data.server as Server\n } catch (error: unknown) {\n throw formatHcloudError(error, `Failed to fetch server ${serverId}`)\n }\n}","import { hcloudClient } from '@/client'\nimport { formatHcloudError } from '@/utils/formatError'\nimport { Server } from '@/types/servers/server.schema'\nimport { Meta } from '@/types/common/meta.types'\n\n/**\n* Query parameters for listing servers.\n* \n* @property name - Filter by exact server name (optional).\n* @property label_selector - Filter by label selector (optional).\n* @property sort - Sort by field and direction (optional). \n* Allowed values: id, name, created (+ :asc / :desc).\n* @property status - Filter by server status (optional). \n* Allowed values: running, initializing, starting, stopping, off, deleting, migrating, rebuilding, unknown.\n* @property page - Page number (optional, defaults to 1 on API side).\n* @property per_page - Entries per page (optional, defaults to 25 on API side).\n*/\n\nexport type GetServersQuery = {\n name?: string\n label_selector?: string\n status?: string | string[]\n sort?: string | string[]\n page?: number\n per_page?: number\n}\n\n\nexport type GetServersResponse = {\n some(arg0: (s: any) => boolean): any\n servers: Server[]\n meta: Meta\n}\n\n\nexport const getServers = {\n async list(query?: GetServersQuery): Promise<GetServersResponse> {\n try {\n const res = await hcloudClient.get('/servers', {\n params: query,\n })\n return res.data as GetServersResponse\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to list servers')\n }\n },\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function deleteServer(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.delete(`/servers/${serverId}`)\n return res.data.action as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to delete server')\n }\n}","import { hcloudClient } from \"@/client\"\nimport { formatHcloudError } from \"@/utils/formatError\"\nimport { Server } from \"@/types/servers/server.schema\"\nimport { Label } from \"@/types/common/label.types\"\n\nexport type CreateServerOptions = {\n name: string\n server_type: string\n image: string\n location?: string\n datacenter?: string\n start_after_create?: boolean\n placement_group?: number\n ssh_keys?: (string | number)[]\n volumes?: number[]\n networks?: number[]\n firewalls?: { firewall: number }[]\n user_data?: string\n labels?: Label\n automount?: boolean\n public_net?: {\n enable_ipv4?: boolean\n enable_ipv6?: boolean\n ipv4?: number | null\n ipv6?: number | null\n }\n}\n\nexport async function createServer(options: CreateServerOptions): Promise<Server> {\n try {\n const res = await hcloudClient.post('/servers', options)\n return res.data.server as Server\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to create server')\n }\n}","import { formatHcloudError } from '@/utils/formatError'\nimport { hcloudClient } from '@/client'\n\nexport type ServerMetrics = {\n start: string\n end: string\n step: number\n time_series: {\n [key: string]: {\n values: [number, string][]\n }\n }\n}\n\nexport type GetServerMetricsParams = {\n type: 'cpu' | 'disk' | 'network' | `${'cpu' | 'disk' | 'network'},${'cpu' | 'disk' | 'network'}`\n start?: string\n end?: string\n step?: number\n}\n\nexport async function getServerMetrics(\n serverId: number,\n params: GetServerMetricsParams = {\n type: 'cpu',\n start: new Date(Date.now() - 5 * 60 * 1000).toISOString(),\n end: new Date().toISOString(),\n }\n): Promise<ServerMetrics> {\n try {\n const res = await hcloudClient.get(`/servers/${serverId}/metrics`, {\n params,\n })\n \n return res.data.metrics as ServerMetrics\n } catch (error: unknown) {\n throw formatHcloudError(error, `Failed to fetch metrics for server ${serverId}`)\n }\n}\n","import { hcloudClient } from \"@/client\"\nimport { formatHcloudError } from \"@/utils/formatError\"\nimport { Server } from \"@/types/servers/server.schema\"\nimport { Label } from \"@/types/common/label.types\"\n\nexport type UpdateServerOptions = {\n name?: string\n labels?: Label\n}\n\nexport async function updateServer(serverId: number, options: UpdateServerOptions): Promise<Server> {\n try {\n const res = await hcloudClient.put(`/servers/${serverId}`, options)\n return res.data.server as Server\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to create server')\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function attachIso(serverId: number, iso: string | number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/attach_iso`, { iso })\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not attach ISO to server: ${serverId}`)\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function detachIso(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/detach_iso`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not detach ISO from server: ${serverId}`)\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\n\nexport async function rebuild(serverId: number, imageId: string): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/rebuild`, { image: imageId })\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not rebuild server: ${serverId}`)\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function disableBackup(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/disable_backup`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not disable backup for server: ${serverId}`)\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function disableRescue(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/disable_rescue`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not disable rescue mode for server: ${serverId}`)\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\n/**\n * Collection of server power control actions using the Hetzner Cloud API.\n * Each method sends the corresponding power command to the server a serverId is required.\n */\n\nexport const powerControl = {\n async on(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/poweron`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Failed to power on server: ${serverId}`)\n }\n },\n \n async powerOff(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/poweroff`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Failed to power off server: ${serverId}`)\n }\n },\n\n async reboot(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/reboot`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Failed to reboot server: ${serverId}`)\n }\n },\n \n async reset(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/reset`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Failed to reset server: ${serverId}`)\n }\n },\n \n async shutdown(serverId: number): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/shutdown`)\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Failed to shut down server: ${serverId}`)\n }\n },\n}\n","import { hcloudClient } from \"@/client\";\nimport { Action } from \"@/types/servers/actions/server-action.schema\";\nimport { formatHcloudError } from \"@/utils/formatError\";\n\nexport type ResetPasswordResponse = {\n root_password: string\n action: Action\n}\n\nexport async function resetPassword(serverId: number): Promise<ResetPasswordResponse> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/reset_password`)\n return res.data as ResetPasswordResponse\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not reset password of server: ${serverId}`)\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Action } from \"@/types/servers/actions/server-action.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function changeProtection(serverId: number, deleteServer: boolean, rebuild: boolean): Promise<Action> {\n try {\n const res = await hcloudClient.post(`/servers/${serverId}/actions/change_protection`, { delete: deleteServer, rebuild})\n return res.data as Action\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not change protection for server: ${serverId}`)\n }\n}","import { hcloudClient } from \"@/client\";\nimport { Meta } from \"@/types/common/meta.types\";\nimport { Action } from \"@/types/servers/actions/server-action.schema\";\nimport { formatHcloudError } from \"@/utils/formatError\";\n\nexport type GetActionsResponse = {\n actions: Action[]\n meta: Meta\n}\n\nexport async function getActions(): Promise<GetActionsResponse> {\n try {\n const res = await hcloudClient.get('/servers/actions')\n return res.data as GetActionsResponse\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could get all actions.`)\n }\n}","/**\n* Query parameters for listing locationss.\n* \n* @property name - Filter by exact locations name (optional).\n* @property sort - Sort by field and direction (optional). \n* Allowed values: id, name, created (+ :asc / :desc).\n* @property page - Page number (optional, defaults to 1 on API side).\n* @property per_page - Entries per page (optional, defaults to 25 on API side).\n*/\n\nimport { hcloudClient } from \"@/client\"\nimport { Meta } from \"@/types/common/meta.types\"\nimport { Location } from \"@/types/location.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport type GetLocationsQuery = {\n name?: string\n sort?: string | string[]\n page?: number\n per_page?: number\n}\n\nexport type GetLocationsResponse = {\n locations: Location[]\n meta: Meta\n}\n\nexport async function getLocations(query?: GetLocationsQuery): Promise<GetLocationsResponse> {\n try {\n const res = await hcloudClient.get('/locations', {\n params: query,\n })\n return res.data as GetLocationsResponse\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to list locations')\n }\n}","import { hcloudClient } from \"@/client\"\nimport { Location } from \"@/types/location.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport async function getLocation(locationId: number): Promise<Location> {\n try {\n const res = await hcloudClient.get(`/locations/${locationId}`)\n return res.data.location as Location\n } catch (error: unknown) {\n throw formatHcloudError(error, `Coult not get location: ${locationId}`)\n }\n}","import { formatHcloudError } from \"@/utils/formatError\";\nimport { NodeSSH } from \"node-ssh\"\n\nconst ssh = new NodeSSH()\n\nexport async function sshIntoServer(ip: string, command: string, username: \"root\", privateKey = process.env.SSH_PRIVATE_KEY): Promise<{ stdout: string; stderr: string }> {\n try {\n await ssh.connect({ host: ip, username, privateKey })\n \n const result = await ssh.execCommand(command)\n return {\n stdout: result.stdout,\n stderr: result.stderr\n }\n } catch (error: unknown) {\n throw formatHcloudError(error, `Could not SSH into server: ${ip}`)\n } finally {\n ssh.dispose()\n }\n}","\nimport { hcloudClient } from \"@/client\"\nimport { Meta } from \"@/types/common/meta.types\"\nimport { ServerType } from \"@/types/server-type.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\n/**\n* Query parameters for fetching server types.\n* \n* @property name - Filter by exact server name (optional).\n* @property page - Page number (optional, defaults to 1 on API side).\n* @property per_page - Entries per page (optional, defaults to 25 on API side).\n*/\n\nexport type GetServerTypeQuery = {\n name?: string\n page?: number\n per_page?: number\n}\n\nexport type GetServersResponse = {\n servers: ServerType[]\n meta: Meta\n}\n\nexport const getServersTypes = {\n async list(query?: GetServerTypeQuery): Promise<GetServersResponse> {\n try {\n const res = await hcloudClient.get('/servers', {\n params: query,\n })\n return res.data as GetServersResponse\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to list servers')\n }\n },\n}","import { hcloudClient } from \"@/client\"\nimport { ServerType } from \"@/types/server-type.schema\"\nimport { formatHcloudError } from \"@/utils/formatError\"\n\nexport type GetServerTypeResponse = {\n server: ServerType\n}\n\nexport async function getServerTypeById(serverId: number): Promise<GetServerTypeResponse> {\n try {\n const res = await hcloudClient.get(`/server_types/${serverId}`)\n return res.data as GetServerTypeResponse\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to list servers')\n }\n}","import { z } from \"zod\"\nimport { LabelSchema } from \"@/types/common/label.types\"\n\nexport const SSHKeySchema = z.object({\n id: z.number(),\n name: z.string(),\n fingerprint: z.string(),\n public_key: z.string(),\n labels: LabelSchema,\n created: z.string()\n})\n\nexport type SSHKey = z.infer<typeof SSHKeySchema>","import { z } from \"zod\"\n\nconst labelKeyRegex =\n/^(([a-z0-9]([-a-z0-9]*[a-z0-9])?\\.)*[a-z0-9]([-a-z0-9]*[a-z0-9])?\\/)?[a-zA-Z0-9]([a-zA-Z0-9._-]{0,61}[a-zA-Z0-9])?$/\n\nconst labelValueRegex =\n/^([a-zA-Z0-9]([a-zA-Z0-9._-]{0,61}[a-zA-Z0-9])?)?$/\n\nexport const LabelSchema = z.record(\n z\n .string()\n .regex(labelKeyRegex, \"Invalid label key\")\n .refine((key) => !key.startsWith(\"hetzner.cloud/\"), {\n message: \"Keys with 'hetzner.cloud/' prefix are reserved\",\n }),\n z.string().regex(labelValueRegex, \"Invalid label value\")\n)\n\nexport type Label = z.infer<typeof LabelSchema>\n","import { hcloudClient } from \"@/client\";\nimport { SSHKeySchema } from \"@/types/security/sshkeys.schema\";\nimport { formatHcloudError } from \"@/utils/formatError\";\nimport { z } from \"zod\";\n\nconst GetSSHKeyResponseSchema = z.object({\n ssh_key: SSHKeySchema\n})\n\nexport async function getSSHKey(sshKeyId: number): Promise<z.infer<typeof SSHKeySchema>> {\n try {\n const res = await hcloudClient.get(`/ssh_keys/${sshKeyId}`);\n const parsed = GetSSHKeyResponseSchema.parse(res.data);\n return parsed.ssh_key;\n } catch (error: unknown) {\n throw formatHcloudError(error, \"Failed to get ssh key\");\n }\n}\n","import { z } from \"zod\"\n\nexport const MetaSchema = z.object({\n pagination: z.object({\n page: z.number(),\n per_page: z.number(),\n previous_page: z.number().nullable(),\n next_page: z.number().nullable(),\n last_page: z.number(),\n total_entries: z.number(),\n }),\n})\n\nexport type Meta = z.infer<typeof MetaSchema>\n","/**\n* Query parameters for listing locationss.\n* \n* @property name - Filter by exact locations name (optional).\n* @property sort - Sort by field and direction (optional). \n* Allowed values: id, name, created (+ :asc / :desc).\n* @property fingerprint\n* @property page - Page number (optional, defaults to 1 on API side).\n* @property per_page - Entries per page (optional, defaults to 25 on API side).\n*/\n\nimport { hcloudClient } from \"@/client\"\nimport { MetaSchema } from \"@/types/common/meta.types\"\nimport { formatHcloudError } from \"@/utils/formatError\"\nimport { z } from \"zod\"\nimport { SSHKeySchema } from \"@/types/security/sshkeys.schema\"\n\nexport const GetSSHKeyQuerySchema = z.object({\n name: z.string().optional(),\n sort: z.union([z.string(), z.array(z.string())]).optional(),\n page: z.number().optional(),\n per_page: z.number().optional(),\n fingerprint: z.string().optional(),\n label_selector: z.string().optional()\n})\n\nexport type GetSSHKeyQuery = z.infer<typeof GetSSHKeyQuerySchema>\n\nexport const GetSSHKeyResponseSchema = z.object({\n ssh_keys: z.array(SSHKeySchema),\n meta: MetaSchema,\n})\n\nexport type GetSSHKeyResponse = z.infer<typeof GetSSHKeyResponseSchema>\n\nexport async function getSSHKeys(query?: GetSSHKeyQuery): Promise<GetSSHKeyResponse> {\n try {\n const res = await hcloudClient.get('/ssh_keys', { params: query })\n const parsed = GetSSHKeyResponseSchema.parse(res.data)\n return parsed\n } catch (error: unknown) {\n throw formatHcloudError(error, 'Failed to list ssh keys')\n }\n}","import { getServerById } from './sdk/servers/getServerById'\nimport { getServers } from './sdk/servers/getServers'\nimport { deleteServer } from './sdk/servers/deleteServer'\nimport { createServer } from './sdk/servers/createServer'\nimport { getServerMetrics } from './sdk/servers/getServerMetrics'\nimport { updateServer } from '@/sdk/servers/updateServer'\nimport { attachIso } from '@/sdk/servers/actions/attachIso'\nimport { detachIso } from './sdk/servers/actions/detachIso'\nimport { rebuild } from './sdk/servers/actions/rebuild'\nimport { disableBackup } from './sdk/servers/actions/disableBackup'\nimport { disableRescue } from './sdk/servers/actions/disableRescue'\nimport { powerControl } from './sdk/servers/actions/powerControl'\nimport { resetPassword } from './sdk/servers/actions/resetPassword'\nimport { changeProtection } from './sdk/servers/actions/changeProtection'\nimport { getActions } from './sdk/servers/actions/getActions'\nimport { getLocations } from './sdk/locations/getLocations'\nimport { getLocation } from './sdk/locations/getLocation'\nimport { sshIntoServer } from './sdk/servers/actions/sshIntoServer'\nimport { getServersTypes } from './sdk/servers/server-type/getServerTypes'\nimport { getServerTypeById } from './sdk/servers/server-type/getServerType'\nimport { getSSHKey } from './sdk/security/ssh-keys/getSSHKey'\nimport { getSSHKeys } from './sdk/security/ssh-keys/getSSHKeys'\n\nexport const hcloud = {\n servers: {\n list: getServers.list,\n getById: getServerById,\n delete: deleteServer,\n create: createServer,\n getMetrics: getServerMetrics,\n update: updateServer,\n attachIso,\n detachIso,\n rebuild,\n disableBackup,\n disableRescue,\n powerControl,\n resetPassword,\n changeProtection,\n listActions: getActions,\n sshIntoServer,\n listServerType: getServersTypes.list,\n getServerTypeById: getServerTypeById\n },\n locations: {\n list: getLocations,\n getById: getLocation\n },\n security: {\n getSSHKey,\n listSSHKeys: getSSHKeys,\n }\n}\n"],"mappings":"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","names":["deleteServer","rebuild","z","z","z","z","z","z","GetSSHKeyResponseSchema"]}