{"version":3,"sources":["../src/sdk/core/errors.ts","../src/sdk/core/http/envelope.ts","../src/sdk/core/logger.ts","../src/sdk/core/http/client.ts","../src/sdk/resources/magnets/types.ts","../src/sdk/resources/magnets/index.ts","../src/sdk/resources/hosts/types.ts","../src/sdk/resources/users/types.ts","../src/sdk/resources/users/index.ts","../src/sdk/resources/hosts/index.ts","../src/sdk/resources/links/types.ts","../src/sdk/resources/links/index.ts","../src/sdk/index.ts"],"names":["z","envelope","pino","axios","DateTime"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z, type ZodError } from \"zod\";\n\nexport const ApiErrorResponseSchema = z.object({\n  code: z.string(),\n  message: z.string(),\n});\nexport type ApiErrorResponse = z.infer<typeof ApiErrorResponseSchema>;\n\n// Result type for explicit error handling\nexport type ResultSuccess<T> = { ok: true; data: T };\nexport type ResultError<E> = { ok: false; error: E };\nexport type Result<T, E = SdkError> = ResultSuccess<T> | ResultError<E>;\n\n// Enhanced error classes that extend Error for proper exception throwing\nexport abstract class SdkError extends Error {\n  abstract readonly type: string;\n  abstract readonly retryable: boolean;\n  readonly requestId?: string;\n  readonly timestamp: Date;\n\n  constructor(message: string, requestId?: string) {\n    super(message);\n    this.name = this.constructor.name;\n    this.requestId = requestId;\n    this.timestamp = new Date();\n    Object.setPrototypeOf(this, new.target.prototype);\n  }\n}\n\nexport class NetworkError extends SdkError {\n  readonly type = \"network\" as const;\n  override readonly cause: Error;\n  readonly retryable: boolean;\n  readonly statusCode?: number;\n\n  constructor(cause: Error, statusCode?: number, requestId?: string) {\n    const message = statusCode\n      ? `Network error (${statusCode}): ${cause.message}`\n      : `Network error: ${cause.message}`;\n    super(message, requestId);\n    this.cause = cause;\n    this.statusCode = statusCode;\n    this.retryable = isRetryableHttpError(cause, statusCode);\n  }\n}\n\nexport class ApiError extends SdkError {\n  readonly type = \"api\" as const;\n  readonly subtype: \"auth\" | \"rateLimit\" | \"notFound\" | \"unknown\";\n  readonly code: string;\n  readonly originalMessage: string;\n  readonly retryable: boolean;\n  readonly demo?: boolean;\n\n  constructor(apiError: ApiErrorResponse, demo = false, requestId?: string) {\n    super(`API error (${apiError.code}): ${apiError.message}`, requestId);\n    this.code = apiError.code;\n    this.originalMessage = apiError.message;\n    this.subtype = determineApiErrorSubtype(apiError.code);\n    this.retryable = this.subtype === \"rateLimit\";\n    this.demo = demo;\n  }\n}\n\nexport class ValidationError extends SdkError {\n  readonly type = \"validation\" as const;\n  readonly retryable = false;\n  readonly issues: ZodError[\"issues\"];\n\n  constructor(zodError: ZodError, requestId?: string) {\n    const issueMessages = zodError.issues\n      .map((issue) => `${issue.path.join(\".\")}: ${issue.message}`)\n      .join(\", \");\n    super(`Validation error: ${issueMessages}`, requestId);\n    this.issues = zodError.issues;\n  }\n}\n\nexport class ConfigurationError extends SdkError {\n  readonly type = \"configuration\" as const;\n  readonly retryable = false;\n\n  constructor(message: string) {\n    super(`Configuration error: ${message}`);\n  }\n}\n\n// Error factory functions - now return error instances instead of plain objects\nexport function createNetworkError(\n  cause: Error,\n  statusCode?: number,\n  requestId?: string,\n): NetworkError {\n  return new NetworkError(cause, statusCode, requestId);\n}\n\nexport function createApiError(\n  apiError: ApiErrorResponse,\n  demo = false,\n  requestId?: string,\n): ApiError {\n  return new ApiError(apiError, demo, requestId);\n}\n\nexport function createValidationError(\n  zodError: ZodError,\n  requestId?: string,\n): ValidationError {\n  return new ValidationError(zodError, requestId);\n}\n\nexport function createConfigurationError(message: string): ConfigurationError {\n  return new ConfigurationError(message);\n}\n\n// Helper functions\nfunction isRetryableHttpError(error: Error, statusCode?: number): boolean {\n  if (statusCode !== undefined) return statusCode >= 500 || statusCode === 429;\n\n  const axiosLikeError = error as { code?: string };\n  return (\n    axiosLikeError.code === \"ECONNRESET\" ||\n    axiosLikeError.code === \"ETIMEDOUT\" ||\n    axiosLikeError.code === \"ENOTFOUND\"\n  );\n}\n\nfunction determineApiErrorSubtype(code: string): ApiError[\"subtype\"] {\n  const upperCode = code.toUpperCase();\n  if (upperCode.startsWith(\"AUTH\")) return \"auth\";\n  if (upperCode.includes(\"RATE\") || upperCode.includes(\"LIMIT\"))\n    return \"rateLimit\";\n  if (upperCode.includes(\"NOT_FOUND\") || upperCode.includes(\"UNKNOWN_TORRENT\"))\n    return \"notFound\";\n  return \"unknown\";\n}\n\n// Utility functions for working with Results\nexport function isOk<T, E>(\n  result: Result<T, E>,\n): result is { ok: true; data: T } {\n  return result.ok;\n}\n\nexport function isError<T, E>(\n  result: Result<T, E>,\n): result is { ok: false; error: E } {\n  return !result.ok;\n}\n\nexport function mapResult<T, U, E>(\n  result: Result<T, E>,\n  fn: (data: T) => U,\n): Result<U, E> {\n  if (result.ok) return { ok: true, data: fn(result.data) };\n  return result;\n}\n\nexport function mapError<T, E, F>(\n  result: Result<T, E>,\n  fn: (error: E) => F,\n): Result<T, F> {\n  if (result.ok) return result;\n  return { ok: false, error: fn(result.error) };\n}\n\n// For batch operations - collect successes and failures\nexport interface BatchResult<T> {\n  successes: T[];\n  failures: SdkError[];\n}\n\nexport function createBatchResult<T>(\n  results: Result<T, SdkError>[],\n): BatchResult<T> {\n  const successes: T[] = [];\n  const failures: SdkError[] = [];\n\n  results.forEach((result) => {\n    if (result.ok) successes.push(result.data);\n    else failures.push(result.error);\n  });\n\n  return { successes, failures };\n}\n","import { z } from \"zod\";\nimport { \n  type Result, \n  type SdkError, \n  createApiError, \n  createValidationError \n} from \"../errors\";\n\nconst DemoFlagSchema = z\n  .union([z.literal(\"true\"), z.boolean()])\n  .optional()\n  .transform((v) => (v === \"true\" ? true : !!v));\n\nconst AlldebridErrorSchema = z.object({\n  code: z.string(),\n  message: z.string(),\n});\n\n/** Error envelope according to docs. */\nexport const ApiErrorEnvelopeSchema = z.object({\n  status: z.literal(\"error\"),\n  error: AlldebridErrorSchema,\n  demo: DemoFlagSchema,\n});\n\n/** Success envelope (data shape is endpoint-specific). */\nexport function ApiSuccessEnvelopeSchema<T extends z.ZodType>(dataSchema: T) {\n  return z.object({\n    status: z.literal(\"success\"),\n    data: dataSchema,\n    demo: DemoFlagSchema,\n  });\n}\n\n/** Narrow TypeScript helper types. */\nexport type ApiErrorEnvelopeType = z.infer<typeof ApiErrorEnvelopeSchema>;\nexport type ApiSuccessEnvelopeType<T extends z.ZodType> = {\n  status: \"success\";\n  data: z.infer<T>;\n  demo?: boolean;\n};\n\nexport interface ParsedSuccessData<T> {\n  data: T;\n  demo: boolean;\n}\n\nexport function parseEnvelope<T extends z.ZodType>(\n  json: unknown,\n  dataSchema: T,\n  requestId?: string\n): Result<ParsedSuccessData<z.output<T>>, SdkError> {\n  const UnionSchema = z.discriminatedUnion(\"status\", [\n    ApiSuccessEnvelopeSchema(dataSchema),\n    ApiErrorEnvelopeSchema,\n  ]);\n  \n  const parseResult = UnionSchema.safeParse(json);\n  \n  if (!parseResult.success) {\n    return {\n      ok: false,\n      error: createValidationError(parseResult.error, requestId),\n    };\n  }\n  \n  if (parseResult.data.status === \"success\") {\n    const envelope = parseResult.data as ApiSuccessEnvelopeType<T>;\n    return {\n      ok: true,\n      data: {\n        data: envelope.data,\n        demo: envelope.demo ?? false,\n      },\n    };\n  }\n  \n  const envelope = parseResult.data as ApiErrorEnvelopeType;\n  return {\n    ok: false,\n    error: createApiError(\n      envelope.error,\n      envelope.demo ?? false,\n      requestId\n    ),\n  };\n}","import pino from \"pino\";\n\nexport const logger = pino({\n  transport: {\n    target: \"pino-pretty\",\n    options: {\n      colorize: true,\n    },\n  },\n});\n\n","import { z } from \"zod\";\nimport { type ParsedSuccessData, parseEnvelope } from \"./envelope\";\nimport { logger } from \"../logger\";\nimport {\n  SdkError,\n  createNetworkError,\n  createConfigurationError,\n} from \"../errors\";\nimport axios, {\n  type AxiosRequestConfig,\n  type RawAxiosRequestHeaders,\n} from \"axios\";\n\nexport const DEFAULT_BASE_URL = \"https://api.alldebrid.com\";\n\nconst ClientOptionsSchema = z.object({\n  apiKey: z.string().min(1, \"apiKey is required\"),\n  baseUrl: z.url().optional(),\n  logLevel: z\n    .enum([\"fatal\", \"error\", \"warn\", \"info\", \"debug\", \"trace\"])\n    .optional(),\n  timeout: z.number().positive().optional(),\n  retries: z.number().int().min(0).optional(),\n  // Security hardening: cap payload sizes to mitigate DoS via large bodies\n  maxContentLengthBytes: z.number().int().positive().optional(),\n  maxBodyLengthBytes: z.number().int().positive().optional(),\n  // Cap redirects to avoid loops or redirect storms\n  maxRedirects: z.number().int().min(0).optional(),\n});\nexport type ClientOptions = z.infer<typeof ClientOptionsSchema>;\n\nconst RequestHeadersSchema = z.record(\n  z.union([\n    z.literal(\"Accept\"),\n    z.literal(\"Content-Length\"),\n    z.literal(\"User-Agent\"),\n    z.literal(\"Content-Encoding\"),\n    z.literal(\"Authorization\"),\n    z.string(),\n  ]),\n  z.union([z.string(), z.number(), z.boolean(), z.null()]),\n);\ntype RequestGetOptions = {\n  method?: \"GET\";\n  headers?: Record<string, string | number | boolean>;\n  queryParams?: Record<string, string | number | boolean>;\n  publicEndpoint?: boolean;\n};\nconst RequestPostOptionsSchema = z.object({\n  requestType: z.literal(\"simplePost\"),\n  method: z.literal(\"POST\"),\n  headers: RequestHeadersSchema.optional(),\n  queryParams: z\n    .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n    .optional(),\n});\ntype RequestPostOptions = z.infer<typeof RequestPostOptionsSchema>;\nconst RequestPostJsonOptionsSchema = RequestPostOptionsSchema.extend({\n  requestType: z.literal(\"postJson\"),\n  json: z.record(z.string(), z.unknown()),\n});\ntype RequestPostJsonOptions = z.infer<typeof RequestPostJsonOptionsSchema>;\nconst RequestPostFormDataOptionsSchema = RequestPostOptionsSchema.extend({\n  requestType: z.literal(\"postFormData\"),\n  formData: z.union([\n    z.record(z.string(), z.unknown()),\n    z.instanceof(FormData),\n  ]),\n});\ntype RequestPostFormDataOptions = z.infer<\n  typeof RequestPostFormDataOptionsSchema\n>;\n\nexport class AlldebridHttpClient {\n  private baseUrl: string = DEFAULT_BASE_URL;\n  private apiKey?: string;\n  private timeout: number = 30000;\n  private retries: number = 3;\n  private maxContentLengthBytes: number = 5 * 1024 * 1024; // 5 MiB\n  private maxBodyLengthBytes: number = 5 * 1024 * 1024; // 5 MiB\n  private maxRedirects: number = 5;\n\n  private normalizePath(path: string): string {\n    return z\n      .string()\n      .min(1, \"path is required\")\n      .transform((v) => v.replace(/^\\//, \"\"))\n      .parse(path);\n  }\n\n  private baseRequestSetup(\n    path: string,\n    headers?: RawAxiosRequestHeaders,\n    publicEndpoint?: boolean,\n  ): {\n    url: string;\n    headers: RawAxiosRequestHeaders;\n  } {\n    if (!this.apiKey) {\n      throw createConfigurationError(\n        \"AlldebridHttpClient is not configured. Call configure({ apiKey }) first.\",\n      );\n    }\n\n    const normalizedPath = this.normalizePath(path);\n    const url = new URL(`${this.baseUrl}/${normalizedPath}`);\n\n    const defaultHeaders = {\n      ...{ Accept: \"application/json\" },\n      ...(publicEndpoint ? {} : { Authorization: `Bearer ${this.apiKey}` }),\n    };\n\n    return {\n      url: url.toString(),\n      headers: { ...defaultHeaders, ...headers },\n    };\n  }\n\n  private delay(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\n  configure(opts: ClientOptions) {\n    const parsed = ClientOptionsSchema.parse(opts);\n    this.apiKey = parsed.apiKey;\n    this.baseUrl = (parsed.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/$/, \"\");\n    this.timeout = parsed.timeout ?? 3000;\n    this.retries = parsed.retries ?? 3;\n    this.maxContentLengthBytes = parsed.maxContentLengthBytes ?? this.maxContentLengthBytes;\n    this.maxBodyLengthBytes = parsed.maxBodyLengthBytes ?? this.maxBodyLengthBytes;\n    this.maxRedirects = parsed.maxRedirects ?? this.maxRedirects;\n  }\n\n  private async executeRequest<T extends z.ZodType>(\n    config: AxiosRequestConfig,\n    dataSchema: T,\n    retryCount = 0,\n  ): Promise<ParsedSuccessData<z.output<T>>> {\n    try {\n      logger.debug({ ...config }, \"alldebrid http request\");\n      const { data: json } = await axios.request<unknown>({\n        ...config,\n        timeout: this.timeout,\n        // Security hardening against large payload DoS\n        maxContentLength: this.maxContentLengthBytes,\n        maxBodyLength: this.maxBodyLengthBytes,\n        maxRedirects: this.maxRedirects,\n        responseType: \"json\",\n        decompress: true,\n      });\n      logger.debug({ json }, \"alldebrid http raw response\");\n      const result = parseEnvelope(json, dataSchema);\n      if (result.ok) return result.data;\n      else throw result.error;\n    } catch (error: unknown) {\n      if (error instanceof SdkError) throw error;\n\n      const networkError = createNetworkError(\n        error as Error,\n        (error as { response?: { status?: number } })?.response?.status,\n      );\n\n      if (retryCount < this.retries && networkError.retryable) {\n        logger.debug(\n          { attempt: retryCount + 1, maxRetries: this.retries },\n          \"Retrying request\",\n        );\n        await this.delay(Math.pow(2, retryCount) * 1000);\n        return this.executeRequest(config, dataSchema, retryCount + 1);\n      }\n\n      throw networkError;\n    }\n  }\n\n  async getRequest<T extends z.ZodType>(\n    path: string,\n    dataSchema: T,\n    options?: RequestGetOptions,\n  ): Promise<ParsedSuccessData<z.output<T>>> {\n    const { url, headers } = this.baseRequestSetup(\n      path,\n      options?.headers,\n      options?.publicEndpoint ?? false,\n    );\n    const config: AxiosRequestConfig = {\n      url,\n      headers,\n      method: \"GET\" as const,\n      ...(options?.queryParams && { params: options.queryParams }),\n    };\n\n    return this.executeRequest(config, dataSchema);\n  }\n\n  async postRequest<T extends z.ZodType>(\n    path: string,\n    dataSchema: T,\n    options?:\n      | RequestPostOptions\n      | RequestPostFormDataOptions\n      | RequestPostJsonOptions,\n  ): Promise<ParsedSuccessData<z.output<T>>> {\n    const { url, headers } = this.baseRequestSetup(path, options?.headers);\n    let config: AxiosRequestConfig = {\n      url,\n      headers,\n      method: \"POST\" as const,\n      ...(options?.queryParams && { params: options.queryParams }),\n    };\n\n    if (!options) return this.executeRequest(config, dataSchema);\n\n    const parsedOptions = z\n      .discriminatedUnion(\"requestType\", [\n        RequestPostOptionsSchema,\n        RequestPostJsonOptionsSchema,\n        RequestPostFormDataOptionsSchema,\n      ])\n      .parse(options);\n\n    switch (parsedOptions.requestType) {\n      case \"postJson\":\n        config = {\n          ...config,\n          data: parsedOptions.json,\n          headers: {\n            ...config.headers,\n            \"Content-Type\": \"application/json\",\n          },\n        };\n        break;\n      case \"postFormData\":\n        config = {\n          ...config,\n          data: parsedOptions.formData,\n          headers: {\n            ...config.headers,\n            \"Content-Type\": \"multipart/form-data\",\n          },\n        };\n        break;\n      default:\n        break;\n    }\n\n    return this.executeRequest(config, dataSchema);\n  }\n}\n","import { z } from \"zod\";\nimport { DateTime } from \"luxon\";\n\n// BASE\nconst MagnetBaseSchema = z.object({\n  id: z.number(),\n  filename: z.string(),\n  hash: z.string(),\n  status: z.string(),\n  statusCode: z.int().gte(0).lte(11),\n  type: z.string().optional(),\n  notified: z.boolean().optional(),\n  version: z.int().gte(1).optional(),\n});\n\n// READY\nexport const MagnetFileSchema = z.object({\n  n: z.string(),\n  s: z.int().gt(0),\n  l: z.url(),\n});\nexport type MagnetFile = z.infer<typeof MagnetFileSchema>;\nexport const MagnetDirSchema = z.object({\n  n: z.string(),\n  get e() {\n    return z.array(z.union([MagnetFileSchema, MagnetDirSchema]));\n  },\n});\nexport type MagnetDir = z.infer<typeof MagnetDirSchema>;\n\nexport const MagnetListedReadySchema = MagnetBaseSchema.extend({\n  status: z.literal(\"Ready\"),\n  statusCode: z.literal(4),\n  size: z.int().gt(0),\n  uploadDate: z\n    .int()\n    .gt(0)\n    .transform((num) => DateTime.fromSeconds(num)),\n  completionDate: z\n    .int()\n    .gt(0)\n    .transform((num) => DateTime.fromSeconds(num)),\n  nbLinks: z.int().gt(0),\n});\nexport type MagnetListedReady = z.infer<typeof MagnetListedReadySchema>;\n\nexport const MagnetReadySchema = MagnetListedReadySchema.extend({\n  files: z.array(z.union([MagnetFileSchema, MagnetDirSchema])),\n});\nexport type MagnetReady = z.infer<typeof MagnetReadySchema>;\n\n// PROCESSING\nconst MagnetProcessingBaseSchema = MagnetBaseSchema.extend({\n  downloaded: z.int().gte(0),\n  size: z.int().gte(0),\n  uploaded: z.int().gte(0),\n  seeders: z.int().gte(0),\n  downloadSpeed: z.int().gte(0),\n  processingPerc: z.int().gte(0).optional(),\n  uploadSpeed: z.int().gte(0),\n});\n\nexport const MagnetListedProcessingQueuedSchema =\n  MagnetProcessingBaseSchema.extend({\n    status: z.literal(\"In Queue\"),\n    statusCode: z.literal(0),\n    uploadDate: z\n      .int()\n      .gt(0)\n      .transform((num) => DateTime.fromSeconds(num)),\n    completionDate: z.literal(0).transform(() => undefined),\n  });\nexport type MagnetListedProcessingQueued = z.infer<\n  typeof MagnetListedProcessingQueuedSchema\n>;\nexport const MagnetProcessingQueuedSchema = MagnetListedProcessingQueuedSchema;\nexport type MagnetProcessingQueued = z.infer<\n  typeof MagnetProcessingQueuedSchema\n>;\n\nexport const MagnetListedProcessingDownloadingSchema =\n  MagnetProcessingQueuedSchema.extend({\n    status: z.literal(\"Downloading\"),\n    statusCode: z.literal(1),\n  });\nexport type MagnetListedProcessingDownloading = z.infer<\n  typeof MagnetListedProcessingDownloadingSchema\n>;\nexport const MagnetProcessingDownloadingSchema =\n  MagnetListedProcessingDownloadingSchema;\nexport type MagnetProcessingDownloading = z.infer<\n  typeof MagnetProcessingDownloadingSchema\n>;\n\nexport const MagnetListedProcessingUploadingSchema =\n  MagnetProcessingQueuedSchema.extend({\n    status: z.literal(\"Uploading\"),\n    statusCode: z.literal(3),\n  });\nexport type MagnetListedProcessingUploading = z.infer<\n  typeof MagnetListedProcessingUploadingSchema\n>;\n\nexport const MagnetProcessingUploadingSchema =\n  MagnetListedProcessingUploadingSchema;\nexport type MagnetProcessingUploading = z.infer<\n  typeof MagnetProcessingUploadingSchema\n>;\n\nexport const MagnetListedProcessingSchema = z.discriminatedUnion(\"statusCode\", [\n  MagnetListedProcessingDownloadingSchema,\n  MagnetListedProcessingQueuedSchema,\n  MagnetListedProcessingUploadingSchema,\n]);\nexport type MagnetListedProcessing = z.infer<\n  typeof MagnetListedProcessingSchema\n>;\nexport const MagnetProcessingSchema = z.discriminatedUnion(\"statusCode\", [\n  MagnetProcessingDownloadingSchema,\n  MagnetProcessingQueuedSchema,\n  MagnetProcessingUploadingSchema,\n]);\nexport type MagnetProcessing = z.infer<typeof MagnetProcessingSchema>;\n\n// ERROR\nexport const MagnetListedErrorSchema = MagnetBaseSchema.extend({\n  status: z.string(),\n  statusCode: z.union([\n    z.literal(5),\n    z.literal(6),\n    z.literal(7),\n    z.literal(8),\n    z.literal(9),\n    z.literal(10),\n    z.literal(12),\n    z.literal(13),\n    z.literal(14),\n    z.literal(15),\n  ]),\n  size: z\n    .int()\n    .gte(0)\n    .optional()\n    .transform(() => undefined),\n  uploadDate: z\n    .int()\n    .transform((num) => (num === 0 ? undefined : DateTime.fromSeconds(num))),\n  completionDate: z\n    .int()\n    .optional()\n    .transform((num) => (!num ? undefined : DateTime.fromSeconds(num))),\n});\nexport type MagnetListedError = z.infer<typeof MagnetListedErrorSchema>;\nexport const MagnetErrorSchema = MagnetListedErrorSchema;\nexport type MagnetError = z.infer<typeof MagnetErrorSchema>;\n\n// EXPIRED\nexport const MagnetListedExpiredSchema = MagnetListedErrorSchema.extend({\n  statusCode: z.literal(11),\n  size: z.int().gt(0),\n});\nexport type MagnetListedExpired = z.infer<typeof MagnetListedExpiredSchema>;\nexport const MagnetExpiredSchema = MagnetListedExpiredSchema;\nexport type MagnetExpired = z.infer<typeof MagnetExpiredSchema>;\n\n// GENERAL\nexport const MagnetListedSchema = z.discriminatedUnion(\"statusCode\", [\n  MagnetListedReadySchema,\n  MagnetListedProcessingQueuedSchema,\n  MagnetListedProcessingDownloadingSchema,\n  MagnetListedProcessingUploadingSchema,\n  MagnetListedExpiredSchema,\n  MagnetListedErrorSchema,\n]);\nexport type MagnetListed = z.infer<typeof MagnetListedSchema>;\n\nexport const MagnetSchema = z.discriminatedUnion(\"statusCode\", [\n  MagnetReadySchema,\n  MagnetProcessingQueuedSchema,\n  MagnetProcessingDownloadingSchema,\n  MagnetProcessingUploadingSchema,\n  MagnetExpiredSchema,\n  MagnetErrorSchema,\n]);\nexport type Magnet = z.infer<typeof MagnetSchema>;\n\n// UPLOAD TORRENT MAGNETS AND FILES\nconst UploadTorrentSuccessBaseSchema = z.object({\n  name: z.string(),\n  id: z.int().gte(0),\n  hash: z.string(),\n  size: z.int().gte(0),\n  ready: z.boolean(),\n});\nexport const UploadedMagnetSuccessSchema =\n  UploadTorrentSuccessBaseSchema.extend({\n    magnet: z.string(),\n  });\nexport type UploadedMagnetSuccess = z.infer<typeof UploadedMagnetSuccessSchema>;\nexport const UploadedFileSuccessSchema = UploadTorrentSuccessBaseSchema.extend({\n  file: z.string(),\n});\nexport type UploadedFileSuccess = z.infer<typeof UploadedFileSuccessSchema>;\n\nexport const UploadedTorrentErroredBaseSchema = z.object({\n  error: z.object({\n    code: z.enum([\n      \"MAGNET_NO_URI\",\n      \"MAGNET_INVALID_URI\",\n      \"MAGNET_MUST_BE_PREMIUM\",\n      \"MAGNET_NO_SERVER\",\n      \"MAGNET_TOO_MANY_ACTIVE\",\n    ]),\n    message: z.string(),\n  }),\n});\nexport const UploadedMagnetErroredSchema =\n  UploadedTorrentErroredBaseSchema.extend({ magnet: z.string() });\nexport type UploadedMagnetErrored = z.infer<typeof UploadedMagnetErroredSchema>;\nexport const UploadedFileErroredSchema =\n  UploadedTorrentErroredBaseSchema.extend({ file: z.string() });\nexport type UploadedFileErrored = z.infer<typeof UploadedFileErroredSchema>;\n\nexport const UploadedMagnetSchema = z.union([\n  UploadedMagnetSuccessSchema,\n  UploadedMagnetErroredSchema,\n]);\nexport type UploadedMagnet = z.infer<typeof UploadedMagnetSchema>;\n\nexport const UploadedFileSchema = z.union([\n  UploadedFileSuccessSchema,\n  UploadedFileErroredSchema,\n]);\nexport type UploadedFile = z.infer<typeof UploadedFileSchema>;\n\n// DELETE\nexport const DeleteMagnetResponseSchema = z.object({\n  message: z.string(),\n});\nexport type DeleteMagnetResponse = z.infer<typeof DeleteMagnetResponseSchema>;\n\n// RESTART\nexport const RestartMagnetSuccessSchema = z.object({\n  magnet: z.string(),\n  message: z.string(),\n});\nexport type RestartMagnetSuccess = z.infer<typeof RestartMagnetSuccessSchema>;\n\nexport const RestartMagnetErroredSchema = z.object({\n  magnet: z.string(),\n  error: z.object({\n    code: z.enum([\"MAGNET_INVALID_ID\", \"MAGNET_PROCESSING\"]),\n    message: z.string(),\n  }),\n});\nexport type RestartMagnetErrored = z.infer<typeof RestartMagnetErroredSchema>;\n","import { AlldebridHttpClient } from \"../../core/http/client\";\nimport { z } from \"zod\";\nimport {\n  MagnetListedSchema,\n  UploadedMagnetSchema,\n  type UploadedMagnetSuccess,\n  type UploadedMagnetErrored,\n  UploadedFileSchema,\n  type UploadedFileErrored,\n  type UploadedFileSuccess,\n  DeleteMagnetResponseSchema,\n  type DeleteMagnetResponse,\n  MagnetSchema,\n  type Magnet,\n  type RestartMagnetSuccess,\n  type RestartMagnetErrored,\n  RestartMagnetSuccessSchema,\n  RestartMagnetErroredSchema,\n} from \"./types\";\nimport type {\n  MagnetListed,\n  MagnetListedError,\n  MagnetListedExpired,\n  MagnetListedReady,\n} from \"./types\";\nimport {\n  type BatchResult,\n  createBatchResult,\n  createConfigurationError,\n} from \"../../core/errors\";\n\nexport type MagnetListStatusFilters = \"active\" | \"ready\" | \"expired\" | \"error\";\ntype InputTorrentFile = { fileName: string; blob: Blob };\n\nexport class MagnetResource {\n  constructor(private readonly client: AlldebridHttpClient) {}\n\n  async list(status: \"active\"): Promise<MagnetListedReady[]>;\n  async list(status: \"ready\"): Promise<MagnetListedReady[]>;\n  async list(status: \"expired\"): Promise<MagnetListedExpired[]>;\n  async list(status: \"error\"): Promise<MagnetListedError[]>;\n  async list(): Promise<MagnetListed[]>;\n  async list(status?: MagnetListStatusFilters): Promise<MagnetListed[]> {\n    const MagnetsListedResponseDataSchema = z.object({\n      magnets: z.preprocess((entry) => {\n        if (Array.isArray(entry)) return entry;\n        return Object.values(entry as Record<string, unknown>);\n      }, z.array(MagnetListedSchema)),\n    });\n\n    const response = await this.client.postRequest(\n      \"v4.1/magnet/status\",\n      MagnetsListedResponseDataSchema,\n      status\n        ? {\n            requestType: \"postFormData\",\n            method: \"POST\",\n            formData: { status },\n          }\n        : { requestType: \"simplePost\", method: \"POST\" },\n    );\n\n    return response.data.magnets;\n  }\n\n  async get(id: number): Promise<Magnet> {\n    const MagnetResponseData = z.object({\n      magnets: z.preprocess(\n        (val) => (Array.isArray(val) ? val[0] : val),\n        MagnetSchema,\n      ),\n    });\n\n    const response = await this.client.postRequest(\n      \"v4.1/magnet/status\",\n      MagnetResponseData,\n      { requestType: \"simplePost\", method: \"POST\", queryParams: { id } },\n    );\n\n    return response.data.magnets;\n  }\n\n  async upload(\n    magnets: string,\n  ): Promise<UploadedMagnetSuccess | UploadedMagnetErrored>;\n  async upload(\n    magnets: string[],\n  ): Promise<BatchResult<UploadedMagnetSuccess | UploadedMagnetErrored>>;\n  async upload(\n    magnets: string | string[],\n  ): Promise<\n    | (UploadedMagnetSuccess | UploadedMagnetErrored)\n    | BatchResult<UploadedMagnetSuccess | UploadedMagnetErrored>\n  > {\n    const isArray = Array.isArray(magnets);\n    const UploadMagnetResponseDataSchema = z.object({\n      magnets: z.array(UploadedMagnetSchema),\n    });\n    const magnetArray = isArray ? magnets : [magnets];\n\n    const response = await this.client.postRequest(\n      \"v4/magnet/upload\",\n      UploadMagnetResponseDataSchema,\n      {\n        requestType: \"postFormData\",\n        method: \"POST\",\n        formData: { magnets: magnetArray },\n      },\n    );\n\n    if (!response.data.magnets[0])\n      throw createConfigurationError(\"No magnets returned from upload\");\n\n    if (isArray) {\n      const results = response.data.magnets.map(\n        (magnet: UploadedMagnetSuccess | UploadedMagnetErrored) => ({\n          ok: true as const,\n          data: magnet,\n        }),\n      );\n\n      return createBatchResult(results);\n    }\n\n    return response.data.magnets[0];\n  }\n\n  async uploadFile(\n    torrentFiles: InputTorrentFile,\n  ): Promise<UploadedFileSuccess | UploadedFileErrored>;\n  async uploadFile(\n    torrentFiles: InputTorrentFile[],\n  ): Promise<BatchResult<UploadedFileSuccess | UploadedFileErrored>>;\n  async uploadFile(\n    torrentFiles: InputTorrentFile | InputTorrentFile[],\n  ): Promise<\n    | (UploadedFileSuccess | UploadedFileErrored)\n    | BatchResult<UploadedFileSuccess | UploadedFileErrored>\n  > {\n    const isArray = Array.isArray(torrentFiles);\n    const UploadTorrentFileResponseData = z.object({\n      files: z.array(UploadedFileSchema),\n    });\n\n    const formData = new FormData();\n    const filesArray = isArray ? torrentFiles : [torrentFiles];\n    filesArray.forEach((file, i) =>\n      formData.append(`files[${i}]`, file.blob, file.fileName),\n    );\n\n    const response = await this.client.postRequest(\n      \"v4/magnet/upload/file\",\n      UploadTorrentFileResponseData,\n      { method: \"POST\", formData, requestType: \"postFormData\" },\n    );\n\n    if (!response.data.files[0])\n      throw createConfigurationError(\"No files returned from upload\");\n\n    if (isArray) {\n      const results = response.data.files.map(\n        (file: UploadedFileSuccess | UploadedFileErrored) => ({\n          ok: true as const,\n          data: file,\n        }),\n      );\n\n      return createBatchResult(results);\n    }\n\n    return response.data.files[0];\n  }\n\n  async delete(id: number): Promise<DeleteMagnetResponse> {\n    const response = await this.client.postRequest(\n      \"v4/magnet/delete\",\n      DeleteMagnetResponseSchema,\n      {\n        requestType: \"postFormData\",\n        method: \"POST\",\n        formData: { id: id.toString() },\n      },\n    );\n\n    return response.data;\n  }\n\n  async restart(\n    id: number,\n  ): Promise<RestartMagnetSuccess | RestartMagnetErrored>;\n  async restart(\n    ids: number[],\n  ): Promise<(RestartMagnetSuccess | RestartMagnetErrored)[]>;\n  async restart(\n    idOrIds: number | number[],\n  ): Promise<\n    | RestartMagnetSuccess\n    | RestartMagnetErrored\n    | (RestartMagnetSuccess | RestartMagnetErrored)[]\n  > {\n    const isArray = Array.isArray(idOrIds);\n\n    if (isArray) {\n      const response = await this.client.postRequest(\n        \"v4/magnet/restart\",\n        z.object({\n          magnets: z.array(\n            z.union([RestartMagnetSuccessSchema, RestartMagnetErroredSchema]),\n          ),\n        }),\n        {\n          requestType: \"postFormData\",\n          method: \"POST\",\n          formData: { ids: idOrIds.map((id) => id.toString()) },\n        },\n      );\n\n      return response.data.magnets;\n    } else {\n      const id = idOrIds;\n      const response = await this.client.postRequest(\n        \"v4/magnet/restart\",\n        z.object({ message: z.string() }),\n        {\n          requestType: \"postFormData\",\n          method: \"POST\",\n          formData: { id: id.toString() },\n        },\n      );\n\n      return { magnet: id.toString(), message: response.data.message };\n    }\n  }\n}\n","import { z } from \"zod\";\n\n// HOST INFO\nexport const HostSchema = z.object({\n  name: z.string(),\n  type: z.enum([\"premium\", \"free\"]),\n  domains: z.array(z.string()),\n  regexps: z.array(z.string()),\n  regexp: z.union([z.string(), z.array(z.string())]),\n  status: z.boolean().optional(),\n});\nexport type Host = z.infer<typeof HostSchema>;\n","import { z } from \"zod\";\nimport { DateTime } from \"luxon\";\nimport { HostSchema } from \"../hosts/types\";\n\n// USER INFO\nexport const UserSchema = z.object({\n  username: z.string(),\n  email: z.email(),\n  isPremium: z.boolean(),\n  isSubscribed: z.boolean(),\n  isTrial: z.boolean(),\n  premiumUntil: z\n    .int()\n    .transform((num) => (num === 0 ? null : DateTime.fromSeconds(num))),\n  lang: z.string(),\n  preferedDomain: z.string(),\n  fidelityPoints: z.int(),\n  limitedHostersQuotas: z.record(z.string(), z.int()),\n  remainingTrialQuota: z.int().optional(),\n  notifications: z.array(z.string()),\n});\nexport type User = z.infer<typeof UserSchema>;\n\n// USER HOSTS\nexport const UserHostSchema = HostSchema.extend({\n  quota: z.int().optional(),\n  quotaMax: z.int().optional(),\n  quotaType: z.string().optional(),\n  limitSimuDl: z.int().optional(),\n});\nexport type UserHost = z.infer<typeof UserHostSchema>;\n\n// USER VERIFICATION\nexport const VerificationEmailStatusSchema = z.object({\n  verif: z.enum([\"waiting\", \"allowed\", \"denied\"]),\n  resendable: z.boolean().optional(),\n  apikey: z.string().optional(),\n});\nexport type VarificationEmailStatus = z.infer<\n  typeof VerificationEmailStatusSchema\n>;\n\n// USER LINKS\nexport const SavedLinkSchema = z.object({\n  link: z.url(),\n  filename: z.string(),\n  date: z\n    .int()\n    .transform((num) => (num === 0 ? null : DateTime.fromSeconds(num))),\n  size: z.int(),\n  host: z.string(),\n});\nexport type SavedLink = z.infer<typeof SavedLinkSchema>;\n","import { AlldebridHttpClient } from \"../../core/http/client\";\nimport { z } from \"zod\";\nimport {\n  UserSchema,\n  type User,\n  VerificationEmailStatusSchema,\n  type VarificationEmailStatus,\n  type UserHost,\n  UserHostSchema,\n  type SavedLink,\n  SavedLinkSchema,\n} from \"./types\";\n\nexport class UserResource {\n  constructor(private readonly client: AlldebridHttpClient) {}\n\n  async get(): Promise<User> {\n    const response = await this.client.getRequest(\n      \"v4/user\",\n      z.object({ user: UserSchema }),\n    );\n    return response.data.user;\n  }\n\n  async getHosts(): Promise<Record<string, UserHost>> {\n    const response = await this.client.getRequest(\n      \"v4.1/user/hosts\",\n      z.object({ hosts: z.record(z.string(), UserHostSchema) }),\n    );\n    return response.data.hosts;\n  }\n\n  async checkVerificationToken(\n    token: string,\n  ): Promise<VarificationEmailStatus> {\n    const response = await this.client.postRequest(\n      \"v4/user/verif\",\n      VerificationEmailStatusSchema,\n      { requestType: \"postFormData\", method: \"POST\", formData: { token } },\n    );\n    return response.data;\n  }\n\n  async resendVerification(token: string): Promise<{ sent: boolean }> {\n    const response = await this.client.postRequest(\n      \"v4/user/verif/resend\",\n      z.object({ sent: z.boolean() }),\n      { requestType: \"postFormData\", method: \"POST\", formData: { token } },\n    );\n    return response.data;\n  }\n\n  async clearNotifications(\n    code: string,\n  ): Promise<{ code: string; cleared: boolean }> {\n    const response = await this.client.postRequest(\n      \"v4/user/notification/clear\",\n      z.object({ message: z.literal(\"Notification was cleared\") }),\n      { requestType: \"postFormData\", method: \"POST\", formData: { code } },\n    );\n    return {\n      code,\n      cleared: response.data.message === \"Notification was cleared\",\n    };\n  }\n\n  async listSavedLinks(): Promise<SavedLink[]> {\n    const response = await this.client.getRequest(\n      \"v4/user/links\",\n      z.object({ links: z.array(SavedLinkSchema) }),\n    );\n    return response.data.links;\n  }\n\n  async saveLinks(links: string[]): Promise<{ saved: boolean }> {\n    const response = await this.client.postRequest(\n      \"v4/user/links/save\",\n      z.object({ message: z.string() }),\n      {\n        requestType: \"postFormData\",\n        method: \"POST\",\n        formData: { links },\n      },\n    );\n    return { saved: /succ?essfully saved$/gi.test(response.data.message) };\n  }\n\n  async deleteLinks(links: string[]): Promise<{ deleted: boolean }> {\n    const response = await this.client.postRequest(\n      \"v4/user/links/delete\",\n      z.object({ message: z.string() }),\n      {\n        requestType: \"postFormData\",\n        method: \"POST\",\n        formData: { links },\n      },\n    );\n    return { deleted: /succ?essfully deleted$/gi.test(response.data.message) };\n  }\n\n  async listRecentLinks(): Promise<SavedLink[]> {\n    const response = await this.client.getRequest(\n      \"v4/user/history\",\n      z.object({ links: z.array(SavedLinkSchema) }),\n    );\n    return response.data.links;\n  }\n\n  async purgeRecentLinks(): Promise<{ deleted: boolean }> {\n    const response = await this.client.postRequest(\n      \"v4/user/history/delete\",\n      z.object({ message: z.string() }),\n      { requestType: \"simplePost\", method: \"POST\" },\n    );\n    return { deleted: /successfully purged$/gi.test(response.data.message) };\n  }\n}\n","import { z } from \"zod\";\nimport { AlldebridHttpClient } from \"../../core/http/client\";\nimport { HostSchema } from \"./types\";\n\nexport const ListHostResponseSchema = z.object({\n  hosts: z.record(z.string(), HostSchema),\n  streams: z.record(z.string(), HostSchema),\n  redirectors: z.record(z.string(), HostSchema),\n});\nexport type ListHostResponse = z.infer<typeof ListHostResponseSchema>;\n\nexport const ListDomainsResponseSchema = z.object({\n  hosts: z.array(z.string()),\n  streams: z.array(z.string()),\n  redirectors: z.array(z.string()),\n});\nexport type ListDomainsResponse = z.infer<typeof ListDomainsResponseSchema>;\n\nexport class HostResource {\n  constructor(private readonly client: AlldebridHttpClient) {}\n\n  async list(): Promise<ListHostResponse> {\n    const response = await this.client.getRequest(\n      \"v4/hosts\",\n      ListHostResponseSchema,\n      { publicEndpoint: true },\n    );\n    return response.data;\n  }\n\n  async listDomains(): Promise<ListDomainsResponse> {\n    const response = await this.client.getRequest(\n      \"v4/hosts/domains\",\n      ListDomainsResponseSchema,\n      { publicEndpoint: true },\n    );\n    return response.data;\n  }\n\n  async listHostPriorities(): Promise<Record<string, number>> {\n    const response = await this.client.getRequest(\n      \"v4/hosts/priority\",\n      z.object({ hosts: z.record(z.string(), z.int()) }),\n      { publicEndpoint: true },\n    );\n    return response.data.hosts;\n  }\n}\n","import { z } from \"zod\";\n\n// LINK INFO\nexport const LinkInfoSuccessSchema = z.object({\n  link: z.url(),\n  filename: z.string(),\n  size: z.int(),\n  host: z.string(),\n  hostDomain: z.string(),\n});\nexport type LinkInfoSuccess = z.infer<typeof LinkInfoSuccessSchema>;\nexport const LinkInfoErrorSchema = z.object({\n  link: z.url(),\n  error: z.object({\n    code: z.string(),\n    message: z.string(),\n  }),\n});\nexport type LinkInfoError = z.infer<typeof LinkInfoErrorSchema>;\nexport const LinkInfoSchema = z.union([\n  LinkInfoSuccessSchema,\n  LinkInfoErrorSchema,\n]);\nexport type LinkInfo = z.infer<typeof LinkInfoSchema>;\n\n// UNLOCK LINK\nexport const DebridLinkResponseSchema = z.object({\n  link: z.url(),\n  filename: z.string(),\n  host: z.string(),\n  streaming: z\n    .array(\n      z.object({\n        id: z.string(),\n        ext: z.string(),\n        quality: z.union([z.string(), z.int()]),\n        filesize: z.int(),\n        proto: z.string(),\n        name: z.string(),\n      }),\n    )\n    .optional(),\n  paws: z.boolean().optional(),\n  filesize: z.int(),\n  id: z.string(),\n  hostDomain: z.string(),\n  delayed: z.int().optional(),\n});\nexport type DebridLinkResponse = z.infer<typeof DebridLinkResponseSchema>;\n","import { z } from \"zod\";\nimport { AlldebridHttpClient } from \"../../core/http/client\";\nimport {\n  LinkInfoSchema,\n  type LinkInfo,\n  DebridLinkResponseSchema,\n  type DebridLinkResponse,\n} from \"./types\";\n\nexport class LinkResource {\n  constructor(private readonly client: AlldebridHttpClient) {}\n\n  async getInfo(link: string, password?: string): Promise<LinkInfo>;\n  async getInfo(links: string[], password?: string): Promise<LinkInfo[]>;\n  async getInfo(\n    linkOrLinks: string | string[],\n    password?: string,\n  ): Promise<LinkInfo | LinkInfo[]> {\n    const isArray = Array.isArray(linkOrLinks);\n    const linkArray = isArray ? linkOrLinks : [linkOrLinks];\n    const response = await this.client.postRequest(\n      \"v4/link/infos\",\n      z.object({ infos: z.array(LinkInfoSchema) }),\n      {\n        requestType: \"postFormData\",\n        method: \"POST\",\n        formData: { ...{ link: linkArray }, ...(password ? { password } : {}) },\n      },\n    );\n    if (!response.data.infos[0])\n      throw new Error(\"Api returned a successful but empty response\");\n    return isArray ? response.data.infos : response.data.infos[0];\n  }\n\n  async debrid(link: string, password?: string): Promise<DebridLinkResponse> {\n    const response = await this.client.postRequest(\n      \"v4/link/unlock\",\n      DebridLinkResponseSchema,\n      {\n        requestType: \"postFormData\",\n        method: \"POST\",\n        formData: { ...{ link }, ...(password ? { password } : {}) },\n      },\n    );\n    return response.data;\n  }\n}\n","import { AlldebridHttpClient } from \"./core/http/client\";\nimport type { ClientOptions } from \"./core/http/client\";\nimport { logger } from \"./core/logger\";\nimport { MagnetResource } from \"./resources/magnets\";\nimport { UserResource } from \"./resources/users\";\nimport { HostResource } from \"./resources/hosts\";\nimport { LinkResource } from \"./resources/links\";\n\nexport type { ClientOptions } from \"./core/http/client\";\n\n// Re-export error classes and batch result utilities\nexport {\n  SdkError,\n  NetworkError,\n  ApiError,\n  ValidationError,\n  ConfigurationError,\n  type BatchResult,\n  createBatchResult,\n} from \"./core/errors\";\n\n// Re-export magnet types\nexport type {\n  MagnetListed,\n  MagnetListedError,\n  MagnetListedExpired,\n  MagnetListedReady,\n  MagnetFile,\n  MagnetDir,\n  UploadedMagnetSuccess,\n  UploadedMagnetErrored,\n  UploadedFileSuccess,\n  UploadedFileErrored,\n  DeleteMagnetResponse,\n  RestartMagnetSuccess,\n  RestartMagnetErrored,\n} from \"./resources/magnets/types\";\n\n// Re-export user types\nexport type {\n  User,\n  UserHost,\n  VarificationEmailStatus,\n  SavedLink,\n} from \"./resources/users/types\";\n\n// Re-export host types\nexport type { Host } from \"./resources/hosts/types\";\n\n// Re-export link types\nexport type { LinkInfo, DebridLinkResponse } from \"./resources/links/types\";\n\nexport class Alldebrid {\n  private readonly httpClient: AlldebridHttpClient;\n  readonly magnet: MagnetResource;\n  readonly user: UserResource;\n  readonly host: HostResource;\n  readonly link: LinkResource;\n\n  constructor(opts: ClientOptions) {\n    logger.level = opts.logLevel ?? \"warn\";\n    this.httpClient = new AlldebridHttpClient();\n    this.httpClient.configure(opts);\n    this.magnet = new MagnetResource(this.httpClient);\n    this.user = new UserResource(this.httpClient);\n    this.host = new HostResource(this.httpClient);\n    this.link = new LinkResource(this.httpClient);\n  }\n}\n"]}