@comic-vine/client
Version:
A JS/TS client for the Comic Vine API
1 lines • 87.9 kB
Source Map (JSON)
{"version":3,"sources":["../src/errors/base-error.ts","../src/errors/generic-error.ts","../src/errors/custom-error.ts","../src/errors/filter-error.ts","../src/errors/generic-request-error.ts","../src/errors/jsonp-callback-missing-error.ts","../src/errors/object-not-found-error.ts","../src/errors/options-validation-error.ts","../src/errors/subscriber-only-error.ts","../src/errors/unauthorized-error.ts","../src/errors/url-format-error.ts","../src/stores/rate-limit-store.ts","../src/stores/request-hasher.ts","../src/stores/rate-limit-config.ts","../src/stores/adaptive-capacity-calculator.ts","../src/utils/is-object.ts","../src/utils/case-converter.ts","../src/http-client/http-client.ts","../src/resources/resource-list.ts","../src/resources/base-resource.ts","../src/resources/character/character.ts","../src/resources/concept/concept.ts","../src/resources/episode/episode.ts","../src/resources/issue/issue.ts","../src/resources/location/location.ts","../src/resources/movie/movie.ts","../src/resources/origin/origin.ts","../src/resources/person/person.ts","../src/resources/power/power.ts","../src/resources/promo/promo.ts","../src/resources/publisher/publisher.ts","../src/resources/series/series.ts","../src/resources/story-arc/story-arc.ts","../src/resources/team/team.ts","../src/resources/thing/thing.ts","../src/resources/video/video.ts","../src/resources/video-category/video-category.ts","../src/resources/video-type/video-type.ts","../src/resources/volume/volume.ts","../src/resources/resource-factory.ts","../src/resources/resource-map.ts","../src/http-client/url-builder.ts","../src/http-client/http-client-factory.ts","../src/options/index.ts","../src/comic-vine.ts","../src/index.ts"],"names":["z","createHash","baseUserCapacity","options","axios","_a","ZodError"],"mappings":"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","file":"index.cjs","sourcesContent":["interface ErrorDetails {\n message: string;\n help: string;\n}\n\nexport abstract class BaseError extends Error {\n public help: string;\n\n constructor(details: ErrorDetails) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(details.message);\n this.name = this.constructor.name;\n\n // Remove constructor invocation from the stack trace. Only available in V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n // Custom debugging information\n this.help = details.help;\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class GenericError extends BaseError {\n constructor(message?: string) {\n super({\n message: `An unexpected error occurred: ${message || 'Unknown Error'}`,\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { GenericError } from './generic-error.js';\n\nexport const customError = (error: unknown) => {\n if (error instanceof Error) {\n return new GenericError(error.message);\n }\n return new GenericError();\n};\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineFilterError extends BaseError {\n constructor() {\n super({\n message: 'There was a problem trying to filter the API results',\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\n/**\n * @deprecated will be removed in the next major version, use ComicVineGenericRequestError instead!\n */\nexport class ComicVineGenericError extends BaseError {\n constructor(message?: string) {\n super({\n message: `Request to comic vine failed: ${message ?? 'Unknown Error'}`,\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n\nexport class ComicVineGenericRequestError extends ComicVineGenericError {\n constructor(message?: string) {\n super(message);\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicJsonpCallbackMissingError extends BaseError {\n constructor() {\n super({\n message: 'JSONP format requires a callback',\n help: 'This library does not use JSONP, please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineObjectNotFoundError extends BaseError {\n constructor() {\n super({\n message:\n 'The requested resource could not be found in the Comic Vine API',\n help: 'Ensure you have used a valid resource Id',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class OptionsValidationError extends BaseError {\n constructor(path: Array<string | number>, message: string) {\n super({\n message: `Property: ${path.join('.')}, Problem: ${message}`,\n help: 'If the error message does not provide enough information or you believe there is a bug, please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineSubscriberOnlyError extends BaseError {\n constructor() {\n super({\n message: 'The requested video is for subscribers only',\n help: 'Subscriber videos are part of a paid service, if you wish to upgrade you can do so here: https://comicvine.gamespot.com/upgrade/',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineUnauthorizedError extends BaseError {\n constructor() {\n super({\n message: 'Unauthorized response received when calling the Comic Vine API',\n help: 'Ensure you have a valid API key, you can get one from: https://comicvine.gamespot.com/api/',\n });\n }\n}\n","import { BaseError } from './base-error.js';\n\nexport class ComicVineUrlFormatError extends BaseError {\n constructor() {\n super({\n message: 'The url for the request was not in the correct format',\n help: 'Please open a Github issue with steps to reproduce: https://github.com/AllyMurray/comic-vine/issues',\n });\n }\n}\n","import { z } from 'zod';\n\n/**\n * Priority level for API requests\n */\nexport type RequestPriority = 'user' | 'background';\n\n/**\n * Adaptive configuration schema with validation and defaults\n */\nexport const AdaptiveConfigSchema = z\n .object({\n monitoringWindowMs: z\n .number()\n .positive()\n .default(15 * 60 * 1000), // 15 minutes\n highActivityThreshold: z.number().min(0).default(10), // requests per window\n moderateActivityThreshold: z.number().min(0).default(3),\n recalculationIntervalMs: z.number().positive().default(30000), // 30 seconds\n sustainedInactivityThresholdMs: z\n .number()\n .positive()\n .default(30 * 60 * 1000), // 30 minutes\n backgroundPauseOnIncreasingTrend: z.boolean().default(true),\n maxUserScaling: z.number().positive().default(2.0), // don't exceed 2x capacity\n minUserReserved: z.number().min(0).default(5), // requests minimum\n })\n .refine(\n (data) => {\n return data.moderateActivityThreshold < data.highActivityThreshold;\n },\n {\n message:\n 'moderateActivityThreshold must be less than highActivityThreshold',\n },\n );\n\n/**\n * Configuration for adaptive rate limiting\n */\nexport type AdaptiveConfig = z.infer<typeof AdaptiveConfigSchema>;\n\n/**\n * Interface for rate limiting API requests per resource\n */\nexport interface RateLimitStore {\n /**\n * Check if a request to a resource can proceed based on rate limits\n * @param resource The resource name (e.g., 'issues', 'characters')\n * @returns True if the request can proceed, false if rate limited\n */\n canProceed(resource: string): Promise<boolean>;\n\n /**\n * Record a request to a resource for rate limiting tracking\n * @param resource The resource name (e.g., 'issues', 'characters')\n */\n record(resource: string): Promise<void>;\n\n /**\n * Get the current rate limit status for a resource\n * @param resource The resource name\n * @returns Rate limit information including remaining requests and reset time\n */\n getStatus(resource: string): Promise<{\n remaining: number;\n resetTime: Date;\n limit: number;\n }>;\n\n /**\n * Reset rate limits for a resource (useful for testing)\n * @param resource The resource name\n */\n reset(resource: string): Promise<void>;\n\n /**\n * Get the time in milliseconds until the next request can be made\n * @param resource The resource name\n * @returns Milliseconds to wait, or 0 if no waiting is needed\n */\n getWaitTime(resource: string): Promise<number>;\n}\n\n/**\n * Enhanced interface for adaptive rate limiting stores with priority support\n */\nexport interface AdaptiveRateLimitStore extends RateLimitStore {\n /**\n * Check if a request to a resource can proceed based on rate limits\n * @param resource The resource name (e.g., 'issues', 'characters')\n * @param priority The priority level of the request (defaults to 'background')\n * @returns True if the request can proceed, false if rate limited\n */\n canProceed(resource: string, priority?: RequestPriority): Promise<boolean>;\n\n /**\n * Record a request to a resource for rate limiting tracking\n * @param resource The resource name (e.g., 'issues', 'characters')\n * @param priority The priority level of the request (defaults to 'background')\n */\n record(resource: string, priority?: RequestPriority): Promise<void>;\n\n /**\n * Get the current rate limit status for a resource\n * @param resource The resource name\n * @returns Rate limit information including remaining requests and reset time\n */\n getStatus(resource: string): Promise<{\n remaining: number;\n resetTime: Date;\n limit: number;\n adaptive?: {\n userReserved: number;\n backgroundMax: number;\n backgroundPaused: boolean;\n recentUserActivity: number;\n reason: string;\n };\n }>;\n\n /**\n * Get the time in milliseconds until the next request can be made\n * @param resource The resource name\n * @param priority The priority level of the request (defaults to 'background')\n * @returns Milliseconds to wait, or 0 if no waiting is needed\n */\n getWaitTime(resource: string, priority?: RequestPriority): Promise<number>;\n}\n","import { createHash } from 'crypto';\n\n/**\n * Creates a consistent hash for API requests to use as cache/dedupe keys\n * @param endpoint The API endpoint\n * @param params The request parameters\n * @returns A SHA-256 hash of the request\n */\nexport function hashRequest(\n endpoint: string,\n params: Record<string, unknown> = {},\n): string {\n const requestString = JSON.stringify({\n endpoint,\n params: sortObject(params),\n });\n\n return createHash('sha256').update(requestString).digest('hex');\n}\n\n/**\n * Normalises and sorts an object for hashing purposes.\n *\n * The ComicVine API transmits all query parameters as strings. To avoid cache\n * misses caused by treating `10` and `'10'` as different values we normalise\n * primitive types (number and boolean) to their string representation **before**\n * sorting. `undefined` values are intentionally kept as `undefined` so that\n * they are dropped by `JSON.stringify`, maintaining the existing behaviour\n * where an omitted parameter and an `undefined` parameter produce the same\n * hash.\n */\nfunction sortObject(obj: unknown): unknown {\n // Handle primitives first\n if (obj === null) {\n return null;\n }\n\n const objType = typeof obj;\n\n if (objType === 'undefined' || objType === 'string') {\n return obj;\n }\n\n if (objType === 'number' || objType === 'boolean') {\n // Convert to string so that 10 and '10' (or true and 'true') hash equally\n return String(obj);\n }\n\n // Recursively process arrays\n if (Array.isArray(obj)) {\n return obj.map(sortObject);\n }\n\n // For objects – sort keys and recurse\n const sorted: Record<string, unknown> = {};\n const keys = Object.keys(obj as Record<string, unknown>).sort();\n\n for (const key of keys) {\n const value = (obj as Record<string, unknown>)[key];\n const normalisedValue = sortObject(value);\n\n // Skip keys whose value normalises to undefined so omitted & undefined match\n if (normalisedValue !== undefined) {\n sorted[key] = normalisedValue;\n }\n }\n\n return sorted;\n}\n","/**\n * Configuration for per-resource rate limiting.\n *\n * This interface is shared by all store implementations (e.g. in-memory,\n * SQLite) so that callers can use a single canonical type.\n */\nexport interface RateLimitConfig {\n /** Number of requests allowed per time window */\n limit: number;\n /** Duration of the window in milliseconds */\n windowMs: number;\n}\n\n/**\n * Default rate-limit window: 60 requests per minute.\n *\n * Store implementations can reference this to avoid duplicating magic numbers.\n */\nexport const DEFAULT_RATE_LIMIT: RateLimitConfig = {\n limit: 60,\n windowMs: 60_000,\n};\n","import { z } from 'zod';\nimport { AdaptiveConfigSchema } from './rate-limit-store.js';\n\ninterface ActivityMetrics {\n recentUserRequests: Array<number>;\n recentBackgroundRequests: Array<number>;\n userActivityTrend: 'increasing' | 'stable' | 'decreasing' | 'none';\n}\n\ninterface DynamicCapacityResult {\n userReserved: number;\n backgroundMax: number;\n backgroundPaused: boolean;\n reason: string;\n}\n\n/**\n * Calculates dynamic capacity allocation based on real-time user activity patterns\n */\nexport class AdaptiveCapacityCalculator {\n public readonly config: z.infer<typeof AdaptiveConfigSchema>;\n\n constructor(config: Partial<z.input<typeof AdaptiveConfigSchema>> = {}) {\n // Zod handles validation and applies defaults automatically\n this.config = AdaptiveConfigSchema.parse(config);\n }\n\n calculateDynamicCapacity(\n resource: string,\n totalLimit: number,\n activityMetrics: ActivityMetrics,\n ): DynamicCapacityResult {\n const recentUserActivity = this.getRecentActivity(\n activityMetrics.recentUserRequests,\n );\n const activityTrend = this.calculateActivityTrend(\n activityMetrics.recentUserRequests,\n );\n\n // Strategy 1: High Activity - Pause Background\n if (recentUserActivity >= this.config.highActivityThreshold) {\n const userCapacity = Math.min(\n totalLimit * 0.9,\n Math.floor(totalLimit * 0.5 * this.config.maxUserScaling), // 50% base * scaling factor\n );\n\n return {\n userReserved: userCapacity,\n backgroundMax: totalLimit - userCapacity,\n backgroundPaused:\n this.config.backgroundPauseOnIncreasingTrend &&\n activityTrend === 'increasing',\n reason: `High user activity (${recentUserActivity} requests/${this.config.monitoringWindowMs / 60000}min) - prioritizing users`,\n };\n }\n\n // Strategy 2: Moderate Activity - Balanced Scaling\n if (recentUserActivity >= this.config.moderateActivityThreshold) {\n const userMultiplier = this.getUserMultiplier(\n recentUserActivity,\n activityTrend,\n );\n const baseUserCapacity = Math.floor(totalLimit * 0.4); // 40% base allocation\n const dynamicUserCapacity = Math.min(\n totalLimit * 0.7,\n baseUserCapacity * userMultiplier,\n );\n\n return {\n userReserved: dynamicUserCapacity,\n backgroundMax: totalLimit - dynamicUserCapacity,\n backgroundPaused: false,\n reason: `Moderate user activity - dynamic scaling (${userMultiplier.toFixed(1)}x user capacity)`,\n };\n }\n\n // Strategy 3: Low/No Activity - Background Scale Up\n if (recentUserActivity === 0) {\n // If there have never been any requests at all (fresh start), use default capacity allocation\n if (\n activityMetrics.recentUserRequests.length === 0 &&\n activityMetrics.recentBackgroundRequests.length === 0\n ) {\n const baseUserCapacity = Math.floor(totalLimit * 0.3); // 30% base for initial state\n return {\n userReserved: Math.max(baseUserCapacity, this.config.minUserReserved),\n backgroundMax:\n totalLimit -\n Math.max(baseUserCapacity, this.config.minUserReserved),\n backgroundPaused: false,\n reason: 'Initial state - default capacity allocation',\n };\n }\n\n // If there have never been user requests (only background), use background scale up\n if (activityMetrics.recentUserRequests.length === 0) {\n return {\n userReserved: this.config.minUserReserved, // Minimal safety buffer\n backgroundMax: totalLimit - this.config.minUserReserved,\n backgroundPaused: false,\n reason:\n 'No user activity yet - background scale up with minimal user buffer',\n };\n }\n\n // There have been user requests before, check for sustained inactivity\n const sustainedInactivity = this.getSustainedInactivityPeriod(\n activityMetrics.recentUserRequests,\n );\n\n if (sustainedInactivity > this.config.sustainedInactivityThresholdMs) {\n return {\n userReserved: 0, // No reservation - background gets everything!\n backgroundMax: totalLimit, // Full capacity available\n backgroundPaused: false,\n reason: `Sustained zero activity (${Math.floor(sustainedInactivity / 60000)}+ min) - full capacity to background`,\n };\n } else {\n return {\n userReserved: this.config.minUserReserved, // Minimal safety buffer\n backgroundMax: totalLimit - this.config.minUserReserved,\n backgroundPaused: false,\n reason:\n 'Recent zero activity - background scale up with minimal user buffer',\n };\n }\n }\n\n // Strategy 4: Very Low Activity - Gradual Background Scale Up\n const baseUserCapacity = Math.floor(totalLimit * 0.3); // 30% base for very low activity\n return {\n userReserved: Math.max(baseUserCapacity, this.config.minUserReserved),\n backgroundMax:\n totalLimit - Math.max(baseUserCapacity, this.config.minUserReserved),\n backgroundPaused: false,\n reason: `Low user activity (${recentUserActivity} requests/${this.config.monitoringWindowMs / 60000}min) - background scale up`,\n };\n }\n\n getRecentActivity(requests: Array<number>): number {\n const cutoff = Date.now() - this.config.monitoringWindowMs;\n return requests.filter((timestamp) => timestamp > cutoff).length;\n }\n\n calculateActivityTrend(\n requests: Array<number>,\n ): 'increasing' | 'stable' | 'decreasing' | 'none' {\n const now = Date.now();\n const windowSize = this.config.monitoringWindowMs / 3; // Use 1/3 of monitoring window for trend\n const recent = requests.filter((t) => t > now - windowSize).length;\n const previous = requests.filter(\n (t) => t > now - 2 * windowSize && t <= now - windowSize,\n ).length;\n\n if (recent === 0 && previous === 0) return 'none';\n if (recent > pre