@atomic-solutions/wordpress-api-client 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +295 -0
  3. package/dist/calculatePagination-WUlN3OdM.d.cts +19 -0
  4. package/dist/calculatePagination-WUlN3OdM.d.ts +19 -0
  5. package/dist/client/index.cjs +1143 -0
  6. package/dist/client/index.cjs.map +1 -0
  7. package/dist/client/index.d.cts +10 -0
  8. package/dist/client/index.d.ts +10 -0
  9. package/dist/client/index.js +1137 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/http/index.cjs +674 -0
  12. package/dist/http/index.cjs.map +1 -0
  13. package/dist/http/index.d.cts +12 -0
  14. package/dist/http/index.d.ts +12 -0
  15. package/dist/http/index.js +667 -0
  16. package/dist/http/index.js.map +1 -0
  17. package/dist/index.cjs +1251 -0
  18. package/dist/index.cjs.map +1 -0
  19. package/dist/index.d.cts +51 -0
  20. package/dist/index.d.ts +51 -0
  21. package/dist/index.js +1205 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/schemas/index.cjs +414 -0
  24. package/dist/schemas/index.cjs.map +1 -0
  25. package/dist/schemas/index.d.cts +1339 -0
  26. package/dist/schemas/index.d.ts +1339 -0
  27. package/dist/schemas/index.js +376 -0
  28. package/dist/schemas/index.js.map +1 -0
  29. package/dist/testing/index.cjs +1435 -0
  30. package/dist/testing/index.cjs.map +1 -0
  31. package/dist/testing/index.d.cts +50 -0
  32. package/dist/testing/index.d.ts +50 -0
  33. package/dist/testing/index.js +1426 -0
  34. package/dist/testing/index.js.map +1 -0
  35. package/dist/types-8pbwmNdu.d.ts +154 -0
  36. package/dist/types-BTo088EY.d.cts +154 -0
  37. package/dist/user.schema-eeUHQ4sI.d.cts +10614 -0
  38. package/dist/user.schema-eeUHQ4sI.d.ts +10614 -0
  39. package/dist/utils/index.cjs +47 -0
  40. package/dist/utils/index.cjs.map +1 -0
  41. package/dist/utils/index.d.cts +10 -0
  42. package/dist/utils/index.d.ts +10 -0
  43. package/dist/utils/index.js +44 -0
  44. package/dist/utils/index.js.map +1 -0
  45. package/package.json +103 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/errors/classes/BaseError.ts","../../src/errors/mapping/auth.ts","../../src/errors/mapping/resources.ts","../../src/errors/mapping/server.ts","../../src/errors/mapping/constants.ts","../../src/errors/mapping/index.ts","../../src/errors/classes/WordPressApiError.ts","../../src/errors/classes/WordPressDataValidationError.ts","../../src/http/handleApiResponse.ts","../../src/utils/calculatePagination.ts","../../src/utils/getPaginationMeta.ts","../../src/http/handlePaginatedApiResponse.ts","../../src/logging/logger.ts","../../src/http/interceptors/request.ts","../../src/http/interceptors/response.ts","../../src/http/interceptors/error.ts"],"names":["error"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Base error class for all package errors\n *\n * Generic over:\n * - TOptions: The options type for this error class\n * - TReportable: The reportable data structure for error tracking\n */\nimport type { BaseErrorOptions, BaseReportableData } from './types';\n\nexport class BaseError<\n TOptions extends BaseErrorOptions = BaseErrorOptions,\n TReportable extends BaseReportableData = BaseReportableData,\n> extends Error {\n constructor(public readonly options: TOptions) {\n super(options.message);\n\n // Maintain proper prototype chain\n Object.setPrototypeOf(this, new.target.prototype);\n\n // Set error name\n this.name = this.constructor.name;\n\n // Capture stack trace (excluding constructor call)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n // If there's a cause with a stack, preserve it\n if (this.options.cause instanceof Error && this.options.cause.stack) {\n this.stack = `${this.stack}\\nCaused by: ${this.options.cause.stack}`;\n }\n }\n\n /**\n * Get reportable data for error tracking/logging\n * Subclasses should override this to add their own reportable fields\n */\n getReportableData(): TReportable {\n const { code, operation, userMessage, retryable } = this.options;\n return {\n code,\n operation,\n userMessage,\n retryable,\n } as TReportable;\n }\n\n /**\n * Custom JSON serialization\n * Makes the error properly serializable for logging/reporting\n */\n toJSON(): Record<string, unknown> {\n return {\n ...this.getReportableData(),\n name: this.name,\n message: this.message,\n stack: this.stack,\n } as unknown as Record<string, unknown>;\n }\n}\n","/**\n * Authentication and authorization error codes\n */\n\nexport const AUTH_CODE_TRANSFORMATIONS = {\n // Authentication\n jwt_auth_failed: 'auth_failed',\n jwt_auth_invalid_token: 'token_expired',\n jwt_auth_bad_request: 'invalid_auth_request',\n\n // Authorization\n rest_forbidden: 'forbidden',\n rest_cannot_read: 'cannot_read',\n rest_cannot_edit: 'cannot_edit',\n rest_cannot_create: 'cannot_create',\n rest_cannot_delete: 'cannot_delete',\n} as const;\n\nexport const AUTH_ERROR_METADATA = {\n // Authentication\n auth_failed: {\n operation: 'authenticate',\n retryable: false,\n userMessage: 'Invalid username or password',\n },\n token_expired: {\n operation: 'validate_token',\n retryable: false,\n userMessage: 'Your session has expired. Please sign in again.',\n },\n invalid_auth_request: {\n operation: 'authenticate',\n retryable: false,\n userMessage: 'Invalid login request',\n },\n\n // Authorization\n forbidden: {\n operation: 'authorize',\n retryable: false,\n userMessage: 'You do not have permission to access this resource',\n },\n cannot_read: {\n operation: 'read_resource',\n retryable: false,\n userMessage: 'You do not have permission to view this content',\n },\n cannot_edit: {\n operation: 'edit_resource',\n retryable: false,\n userMessage: 'You do not have permission to edit this content',\n },\n cannot_create: {\n operation: 'create_resource',\n retryable: false,\n userMessage: 'You do not have permission to create content',\n },\n cannot_delete: {\n operation: 'delete_resource',\n retryable: false,\n userMessage: 'You do not have permission to delete this content',\n },\n} as const;\n","/**\n * Resource not found error codes\n */\n\nexport const RESOURCE_CODE_TRANSFORMATIONS = {\n rest_post_invalid_id: 'post_not_found',\n rest_term_invalid: 'term_not_found',\n rest_user_invalid_id: 'user_not_found',\n rest_no_route: 'route_not_found',\n} as const;\n\nexport const RESOURCE_ERROR_METADATA = {\n post_not_found: {\n operation: 'get_post',\n retryable: false,\n userMessage: 'Post not found',\n },\n term_not_found: {\n operation: 'get_term',\n retryable: false,\n userMessage: 'Category or tag not found',\n },\n user_not_found: {\n operation: 'get_user',\n retryable: false,\n userMessage: 'User not found',\n },\n route_not_found: {\n operation: 'api_request',\n retryable: false,\n userMessage: 'The requested resource was not found',\n },\n} as const;\n","/**\n * Server error codes\n */\n\nexport const SERVER_CODE_TRANSFORMATIONS = {\n rest_cookie_invalid_nonce: 'invalid_nonce',\n internal_error: 'server_error',\n} as const;\n\nexport const SERVER_ERROR_METADATA = {\n invalid_nonce: {\n operation: 'api_request',\n retryable: true,\n userMessage: 'Session expired. Please try again.',\n },\n server_error: {\n operation: 'api_request',\n retryable: true,\n userMessage: 'An unexpected error occurred. Please try again.',\n },\n unknown_error: {\n operation: 'api_request',\n retryable: false,\n userMessage: 'An error occurred',\n },\n} as const;\n","/**\n * WordPress error metadata constants\n */\n\nimport { AUTH_ERROR_METADATA } from './auth';\nimport type { WordPressErrorCode } from './index';\nimport { RESOURCE_ERROR_METADATA } from './resources';\nimport { SERVER_ERROR_METADATA } from './server';\nimport type { WordPressErrorMetadata } from './types';\n\nexport const VALIDATION_CODE_TRANSFORMATIONS = {\n rest_invalid_param: 'invalid_params',\n rest_missing_callback_param: 'missing_params',\n} as const;\n\nexport const VALIDATION_ERROR_METADATA = {\n invalid_params: {\n operation: 'api_request',\n retryable: false,\n userMessage: 'Invalid request parameters',\n },\n missing_params: {\n operation: 'api_request',\n retryable: false,\n userMessage: 'Missing required parameters',\n },\n} as const;\n\n/**\n * Combined error metadata for all WordPress error codes\n * Maps error codes to their operation, retryable status, and user message\n */\nexport const WORDPRESS_ERROR_METADATA: Record<WordPressErrorCode, WordPressErrorMetadata> = {\n ...AUTH_ERROR_METADATA,\n ...RESOURCE_ERROR_METADATA,\n ...VALIDATION_ERROR_METADATA,\n ...SERVER_ERROR_METADATA,\n};\n\n/**\n * Validation error codes\n */\n","import { AUTH_CODE_TRANSFORMATIONS, AUTH_ERROR_METADATA } from './auth';\nimport { VALIDATION_CODE_TRANSFORMATIONS, VALIDATION_ERROR_METADATA } from './constants';\nimport { RESOURCE_CODE_TRANSFORMATIONS, RESOURCE_ERROR_METADATA } from './resources';\nimport { SERVER_CODE_TRANSFORMATIONS, SERVER_ERROR_METADATA } from './server';\n\n/**\n * WordPress REST API error code mapping\n */\n\nexport { WORDPRESS_ERROR_METADATA } from './constants';\nexport type { WordPressErrorMetadata } from './types';\n\n/**\n * Application-level error code\n * Clean, semantic codes for use in application logic\n */\nexport type WordPressErrorCode =\n // Authentication\n | 'auth_failed'\n | 'token_expired'\n | 'invalid_auth_request'\n // Authorization\n | 'forbidden'\n | 'cannot_read'\n | 'cannot_edit'\n | 'cannot_create'\n | 'cannot_delete'\n // Not found\n | 'post_not_found'\n | 'term_not_found'\n | 'user_not_found'\n | 'route_not_found'\n // Validation\n | 'invalid_params'\n | 'missing_params'\n // Server\n | 'invalid_nonce'\n | 'server_error'\n // Fallback\n | 'unknown_error';\n\n/**\n * Mapped error with transformed code\n */\nexport interface MappedError {\n code: WordPressErrorCode;\n retryable: boolean;\n userMessage: string;\n}\n\n/**\n * Combined code transformations\n */\nconst CODE_TRANSFORMATIONS: Record<string, WordPressErrorCode> = {\n ...AUTH_CODE_TRANSFORMATIONS,\n ...RESOURCE_CODE_TRANSFORMATIONS,\n ...VALIDATION_CODE_TRANSFORMATIONS,\n ...SERVER_CODE_TRANSFORMATIONS,\n};\n\n/**\n * Combined error metadata\n */\nconst ERROR_METADATA: Record<WordPressErrorCode, Omit<MappedError, 'code'>> = {\n ...AUTH_ERROR_METADATA,\n ...RESOURCE_ERROR_METADATA,\n ...VALIDATION_ERROR_METADATA,\n ...SERVER_ERROR_METADATA,\n};\n\n/**\n * Transform WordPress API error code to application-level code\n *\n * @param apiCode - WordPress REST API error code (e.g., \"rest_post_invalid_id\")\n * @param status - HTTP status code\n * @returns Application-level error code with metadata\n *\n * @example\n * // Direct transformation\n * mapWordPressCode('rest_post_invalid_id', 404)\n * // Returns: { code: 'post_not_found', retryable: false, userMessage: 'Post not found' }\n *\n * // Pattern matching\n * mapWordPressCode('rest_comment_invalid_id', 404)\n * // Returns: { code: 'route_not_found', retryable: false, userMessage: '...' }\n */\nexport const mapWordPressCode = (apiCode: string, status: number): MappedError => {\n // Direct transformation mapping\n const appCode = CODE_TRANSFORMATIONS[apiCode];\n\n if (appCode) {\n const metadata = ERROR_METADATA[appCode];\n return {\n code: appCode,\n ...metadata,\n };\n }\n\n // Pattern matching for unmapped codes\n if (apiCode.includes('invalid_id') || apiCode.includes('not_found')) {\n return {\n code: 'route_not_found',\n ...ERROR_METADATA.route_not_found,\n };\n }\n\n if (apiCode.includes('cannot_') || apiCode.includes('forbidden')) {\n return {\n code: 'forbidden',\n ...ERROR_METADATA.forbidden,\n };\n }\n\n if (apiCode.includes('invalid_param') || apiCode.includes('missing_')) {\n return {\n code: 'invalid_params',\n ...ERROR_METADATA.invalid_params,\n };\n }\n\n if (apiCode.includes('nonce')) {\n return {\n code: 'invalid_nonce',\n ...ERROR_METADATA.invalid_nonce,\n };\n }\n\n // Fallback based on status code\n if (status === 401) {\n return {\n code: 'auth_failed',\n retryable: false,\n userMessage: 'Authentication required',\n };\n }\n\n if (status === 403) {\n return {\n code: 'forbidden',\n ...ERROR_METADATA.forbidden,\n };\n }\n\n if (status === 404) {\n return {\n code: 'route_not_found',\n ...ERROR_METADATA.route_not_found,\n };\n }\n\n if (status >= 500) {\n return {\n code: 'server_error',\n ...ERROR_METADATA.server_error,\n };\n }\n\n // Ultimate fallback\n return {\n code: 'unknown_error',\n ...ERROR_METADATA.unknown_error,\n };\n};\n","/**\n * WordPress API Error\n */\n\nimport { WORDPRESS_ERROR_METADATA, type WordPressErrorCode } from '../mapping';\nimport { BaseError } from './BaseError';\nimport type { ApiReportableData, WordPressApiErrorOptions } from './types';\n\n/**\n * WordPress-specific error class\n *\n * Extends BaseError to provide:\n * - Code transformation (WordPress API codes → clean app codes)\n * - WordPress-specific error categorization\n * - HTTP context (status, URL, method)\n */\nexport class WordPressApiError extends BaseError<WordPressApiErrorOptions, ApiReportableData> {\n constructor(options: WordPressApiErrorOptions) {\n const metadata = WORDPRESS_ERROR_METADATA[options.code] ?? {\n operation: 'wordpress_api_request',\n retryable: false,\n };\n\n // Enrich options with metadata defaults\n const enrichedOptions: WordPressApiErrorOptions = {\n ...options,\n operation: options.operation || metadata.operation,\n userMessage: options.userMessage || metadata.userMessage,\n retryable: options.retryable ?? metadata.retryable,\n };\n\n super(enrichedOptions);\n }\n\n // Convenient getters for frequently accessed fields (no duplication)\n get wpCode(): WordPressErrorCode {\n return this.options.code;\n }\n\n get originalCode(): string {\n return this.options.originalCode;\n }\n\n get statusCode(): number {\n return this.options.statusCode;\n }\n\n get url(): string {\n return this.options.url;\n }\n\n get method(): string {\n return this.options.method;\n }\n\n get requestBody(): unknown | undefined {\n return this.options.requestBody;\n }\n\n get responseBody(): unknown | undefined {\n return this.options.responseBody;\n }\n\n get data(): Record<string, unknown> | undefined {\n return this.options.data;\n }\n\n /**\n * Check if error is an authentication error\n */\n get isAuthError(): boolean {\n return (\n this.statusCode === 401 ||\n this.wpCode === 'auth_failed' ||\n this.wpCode === 'token_expired' ||\n this.wpCode === 'invalid_auth_request'\n );\n }\n\n /**\n * Check if error is a not found error\n */\n get isNotFoundError(): boolean {\n return (\n this.statusCode === 404 ||\n this.wpCode === 'route_not_found' ||\n this.wpCode === 'post_not_found' ||\n this.wpCode === 'term_not_found' ||\n this.wpCode === 'user_not_found'\n );\n }\n\n /**\n * Get reportable data for error tracking/logging\n * Includes HTTP context and WordPress-specific fields\n */\n override getReportableData(): ApiReportableData {\n return {\n code: this.options.code,\n operation: this.options.operation,\n userMessage: this.options.userMessage,\n retryable: this.options.retryable,\n statusCode: this.options.statusCode,\n url: this.options.url,\n method: this.options.method,\n wpCode: this.options.code,\n originalCode: this.options.originalCode,\n };\n }\n}\n","/**\n * WordPress validation error class\n * Thrown when API response validation fails\n */\n\nimport type { ZodError } from 'zod';\n\nimport { BaseError } from './BaseError';\nimport type {\n BaseErrorOptions,\n ValidationReportableData,\n WordPressDataValidationErrorOptions,\n} from './types';\n\n/**\n * Internal options type that combines user options with computed fields\n */\ninterface WordPressDataValidationErrorInternalOptions extends BaseErrorOptions {\n url?: string;\n zodError?: ZodError;\n value?: unknown;\n fieldErrors?: Record<string, string[]>;\n}\n\n/**\n * WordPress validation error\n *\n * Thrown when API response validation fails using Zod schemas\n */\nexport class WordPressDataValidationError extends BaseError<\n WordPressDataValidationErrorInternalOptions,\n ValidationReportableData\n> {\n constructor(options: WordPressDataValidationErrorOptions) {\n // Extract field errors from Zod error if provided\n const fieldErrors = options.zodError\n ? WordPressDataValidationError.extractFieldErrorsFromZod(options.zodError)\n : undefined;\n\n super({\n code: 'validation_error',\n message: options.message,\n operation: options.operation,\n userMessage: options.userMessage || 'Received unexpected data from WordPress',\n retryable: false,\n cause: options.cause,\n url: options.url,\n zodError: options.zodError,\n value: options.value,\n fieldErrors,\n });\n }\n\n // Convenient getters for validation-specific fields (no duplication)\n get url(): string | undefined {\n return this.options.url;\n }\n\n get zodError(): ZodError | undefined {\n return this.options.zodError;\n }\n\n get invalidValue(): unknown | undefined {\n return this.options.value;\n }\n\n get fieldErrors(): Record<string, string[]> | undefined {\n return this.options.fieldErrors;\n }\n\n /**\n * Get reportable data for error tracking/logging\n * Includes validation-specific fields\n */\n override getReportableData(): ValidationReportableData {\n return {\n code: this.options.code,\n operation: this.options.operation,\n userMessage: this.options.userMessage,\n retryable: false,\n fieldErrors: this.options.fieldErrors,\n url: this.options.url,\n };\n }\n\n /**\n * Extract field errors from Zod error\n */\n private static extractFieldErrorsFromZod(\n zodError: ZodError\n ): Record<string, string[]> | undefined {\n if (!zodError?.errors) {\n return undefined;\n }\n\n const fieldErrors: Record<string, string[]> = {};\n\n for (const issue of zodError.errors) {\n const path = issue.path.join('.');\n if (!fieldErrors[path]) {\n fieldErrors[path] = [];\n }\n fieldErrors[path].push(issue.message);\n }\n\n return fieldErrors;\n }\n\n /**\n * Get all error messages as a flat array\n */\n getMessages(): string[] {\n if (!this.fieldErrors) {\n return [this.message];\n }\n\n const messages: string[] = [];\n for (const fieldMessages of Object.values(this.fieldErrors)) {\n messages.push(...fieldMessages);\n }\n\n return messages;\n }\n\n /**\n * Check if a specific field has errors\n */\n hasFieldError(field: string): boolean {\n return this.fieldErrors ? field in this.fieldErrors : false;\n }\n\n /**\n * Get error messages for a specific field\n */\n getFieldError(field: string): string[] | undefined {\n return this.fieldErrors?.[field];\n }\n}\n","/**\n * Response validation utilities\n */\n\nimport type { AxiosResponse } from 'axios';\nimport type { ZodError, ZodSchema } from 'zod';\n\nimport { WordPressDataValidationError } from '../errors/classes';\n\n/**\n * Validation mode for API responses\n * - 'strict': Throw error on validation failure (default)\n * - 'warn': Log warning and continue on validation failure\n */\nexport type ValidationMode = 'strict' | 'warn';\n\n/**\n * Options for response handling\n */\nexport interface ResponseOptions {\n /** Validation mode */\n validationMode?: ValidationMode;\n\n /** Error reporter for validation errors */\n errorReporter?: (error: Error) => void;\n\n /** Optional validation error handler (called before errorReporter) */\n onValidationError?: (error: Error) => void;\n}\n\n/**\n * Handle and validate API response\n *\n * @param response - Axios response\n * @param schema - Zod schema for validation\n * @param options - Response handling options\n * @returns Validated data\n * @throws ValidationError if validation fails in strict mode\n */\nexport const handleApiResponse = <T>(\n response: AxiosResponse,\n schema: ZodSchema<T>,\n options?: ResponseOptions\n): T => {\n const validationMode = options?.validationMode ?? 'strict';\n\n // Warn mode - use safeParse and continue on validation failure\n if (validationMode === 'warn') {\n const result = schema.safeParse(response.data);\n\n if (!result.success) {\n const validationError = new WordPressDataValidationError({\n message: `WordPress API response validation failed for ${response.config.url || 'unknown endpoint'}`,\n url: response.config.url,\n zodError: result.error,\n value: response.data,\n userMessage: 'Received unexpected data from WordPress',\n });\n\n // Call optional validation error handler\n options?.onValidationError?.(validationError);\n\n // Report to error tracker (if provided)\n options?.errorReporter?.(validationError);\n\n // Log warning to console in warn mode\n console.warn('[wordpress-utils] Validation warning:', validationError.message);\n\n // Return raw data to allow app to continue\n return response.data as T;\n }\n\n return result.data;\n }\n\n // Strict mode - throw on validation failure\n try {\n return schema.parse(response.data);\n } catch (error) {\n if (error && typeof error === 'object' && 'issues' in error) {\n const validationError = new WordPressDataValidationError({\n message: `WordPress API response validation failed for ${response.config.url || 'unknown endpoint'}`,\n url: response.config.url,\n zodError: error as ZodError,\n value: response.data,\n userMessage: 'Received unexpected data from WordPress',\n });\n\n // Call optional validation error handler\n options?.onValidationError?.(validationError);\n\n // Report to error tracker (if provided)\n options?.errorReporter?.(validationError);\n\n throw validationError;\n }\n throw error;\n }\n};\n\n/**\n * Check if error is a Zod validation error\n */\nexport const isZodError = (error: unknown): error is ZodError => {\n return error instanceof Error && error.name === 'ZodError';\n};\n","/**\n * Calculate pagination navigation\n */\n\nexport interface Pagination {\n page: number;\n perPage: number;\n total: number;\n totalPages: number;\n hasNextPage: boolean;\n hasPrevPage: boolean;\n nextPage: number | null;\n prevPage: number | null;\n}\n\nexport interface CalculatePaginationInput {\n page: number;\n perPage: number;\n total: number;\n totalPages: number;\n}\n\n/**\n * Calculate pagination navigation from WordPress pagination metadata\n *\n * @param input - Current pagination state\n * @returns Full pagination object with navigation helpers\n */\nexport const calculatePagination = (input: CalculatePaginationInput): Pagination => {\n const { page, perPage, total, totalPages } = input;\n\n const hasNextPage = page < totalPages;\n const hasPrevPage = page > 1;\n\n return {\n page,\n perPage,\n total,\n totalPages,\n hasNextPage,\n hasPrevPage,\n nextPage: hasNextPage ? page + 1 : null,\n prevPage: hasPrevPage ? page - 1 : null,\n };\n};\n","/**\n * Extract pagination metadata from WordPress response headers\n */\n\nimport type { AxiosResponse } from 'axios';\n\nexport interface PaginationMeta {\n total: number;\n totalPages: number;\n}\n\n/**\n * Extract pagination metadata from WordPress REST API headers\n *\n * WordPress uses x-wp-total and x-wp-totalpages headers for pagination\n *\n * @param headers - Axios response headers\n * @returns Pagination metadata object\n */\nexport const getPaginationMeta = (headers: AxiosResponse['headers']): PaginationMeta => {\n // Handle undefined/null headers\n if (!headers) {\n return {\n total: 0,\n totalPages: 0,\n };\n }\n\n const wpTotal = headers['x-wp-total'];\n const wpTotalPages = headers['x-wp-totalpages'];\n\n if (!wpTotal || !wpTotalPages) {\n return {\n total: 0,\n totalPages: 0,\n };\n }\n\n const total = parseInt(wpTotal, 10);\n const totalPages = parseInt(wpTotalPages, 10);\n\n return {\n total,\n totalPages,\n };\n};\n","/**\n * Pagination utilities for WordPress API responses\n */\n\nimport type { AxiosResponse } from 'axios';\nimport type { ZodError, ZodSchema } from 'zod';\n\nimport { WordPressDataValidationError } from '../errors/classes';\nimport { calculatePagination, type Pagination } from '../utils/calculatePagination';\nimport { getPaginationMeta } from '../utils/getPaginationMeta';\nimport type { ResponseOptions } from './handleApiResponse';\n\n/**\n * Paginated response wrapper\n */\nexport interface PaginatedResponse<T> {\n data: T[];\n pagination: Pagination;\n}\n\n/**\n * Handle paginated API response\n *\n * @param response - Axios response\n * @param schema - Zod schema for validating array items\n * @param params - Request parameters (page, per_page)\n * @param options - Response handling options\n * @returns Paginated response with validated data\n * @throws ValidationError if validation fails in strict mode\n */\nexport const handlePaginatedApiResponse = <T>(\n response: AxiosResponse,\n schema: ZodSchema<T[]>,\n params: { page?: number; per_page?: number } = {},\n options?: ResponseOptions\n): PaginatedResponse<T> => {\n const validationMode = options?.validationMode ?? 'strict';\n let data: T[];\n\n // Warn mode - use safeParse and continue on validation failure\n if (validationMode === 'warn') {\n const result = schema.safeParse(response.data);\n\n if (!result.success) {\n const validationError = new WordPressDataValidationError({\n message: `WordPress API response validation failed for ${response.config.url || 'unknown endpoint'}`,\n url: response.config.url,\n zodError: result.error,\n value: response.data,\n userMessage: 'Received unexpected data from WordPress',\n });\n\n // Call optional validation error handler\n options?.onValidationError?.(validationError);\n\n // Report to error tracker (if provided)\n options?.errorReporter?.(validationError);\n\n // Log warning to console in warn mode\n console.warn('[wordpress-utils] Validation warning:', validationError.message);\n\n // Return raw data as array (best effort)\n data = Array.isArray(response.data) ? response.data : [];\n } else {\n data = result.data;\n }\n } else {\n // Strict mode - throw on validation failure\n try {\n data = schema.parse(response.data);\n } catch (error) {\n if (error && typeof error === 'object' && 'issues' in error) {\n const validationError = new WordPressDataValidationError({\n message: `WordPress API response validation failed for ${response.config.url || 'unknown endpoint'}`,\n url: response.config.url,\n zodError: error as ZodError,\n value: response.data,\n userMessage: 'Received unexpected data from WordPress',\n });\n\n // Call optional validation error handler\n options?.onValidationError?.(validationError);\n\n // Report to error tracker (if provided)\n options?.errorReporter?.(validationError);\n\n throw validationError;\n }\n throw error;\n }\n }\n\n const { total, totalPages } = getPaginationMeta(response.headers);\n const page = params.page || 1;\n const perPage = params.per_page || 10;\n\n const pagination = calculatePagination({\n page,\n perPage,\n total,\n totalPages,\n });\n\n return {\n data,\n pagination,\n };\n};\n","/**\n * Debug logger for WordPress utils\n */\n\nconst DEBUG_PREFIX = '[wordpress-utils]';\n\n/**\n * Check if debug mode is enabled\n */\nexport const isDebugEnabled = (): boolean => {\n if (typeof process !== 'undefined' && process.env) {\n return process.env.DEBUG === 'true' || process.env.DEBUG === '1';\n }\n return false;\n};\n\n/**\n * Log debug message (only if DEBUG is enabled)\n */\nexport const debug = (...args: unknown[]): void => {\n if (isDebugEnabled()) {\n console.log(DEBUG_PREFIX, ...args);\n }\n};\n\n/**\n * Log warning message\n */\nexport const warn = (...args: unknown[]): void => {\n console.warn(DEBUG_PREFIX, ...args);\n};\n\n/**\n * Log error message\n */\nexport const error = (...args: unknown[]): void => {\n console.error(DEBUG_PREFIX, ...args);\n};\n","/**\n * Axios request interceptor for WordPress API\n */\n\nimport type { AxiosInstance, InternalAxiosRequestConfig } from 'axios';\n\nimport type { WordPressClient, WordPressConfig } from '../../client/types';\nimport { debug } from '../../logging/logger';\n\n/**\n * Setup request interceptor\n *\n * - Injects JWT Bearer token for authenticated requests\n * - Calls optional onRequest hook\n * - Passes client instance to callbacks\n */\nexport const setupRequestInterceptor = (\n axiosInstance: AxiosInstance,\n config: WordPressConfig,\n client: WordPressClient\n): void => {\n axiosInstance.interceptors.request.use(\n async (requestConfig: InternalAxiosRequestConfig) => {\n // Inject JWT token if adapter is provided\n if (config.jwtToken) {\n const token = await config.jwtToken.get();\n if (token) {\n requestConfig.headers.Authorization = `Bearer ${token}`;\n debug('JWT token injected');\n }\n }\n\n // Call optional onRequest hook\n if (config.onRequest) {\n return config.onRequest(requestConfig, client);\n }\n\n return requestConfig;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n};\n","/**\n * Axios response interceptor for WordPress API\n */\n\nimport type { AxiosInstance, AxiosResponse } from 'axios';\n\nimport type { WordPressClient, WordPressConfig } from '../../client/types';\nimport { debug } from '../../logging/logger';\n\n/**\n * Setup response interceptor\n *\n * - Logs responses in debug mode\n * - Calls optional onResponse hook\n * - Passes client instance to callbacks\n */\nexport const setupResponseInterceptor = (\n axiosInstance: AxiosInstance,\n config: WordPressConfig,\n client: WordPressClient\n): void => {\n axiosInstance.interceptors.response.use(\n async (response: AxiosResponse) => {\n debug('Response:', response.config.url, response.status);\n\n // Call optional onResponse hook\n if (config.onResponse) {\n return config.onResponse(response, client);\n }\n\n return response;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n};\n","/**\n * Axios error interceptor for WordPress API\n */\n\nimport { isAxiosError, type AxiosError, type AxiosInstance } from 'axios';\n\nimport type { WordPressClient, WordPressConfig } from '../../client/types';\nimport { WordPressApiError } from '../../errors/classes';\nimport { mapWordPressCode } from '../../errors/mapping';\nimport { debug, error as logError } from '../../logging/logger';\n\ninterface WordPressErrorData {\n code?: string;\n message?: string;\n data?: {\n status?: number;\n };\n}\n\n/**\n * Setup error interceptor\n *\n * - Transforms WordPress errors into WordPressApiError instances\n * - Calls optional onError hook\n * - Passes client instance to callbacks\n */\nexport const setupErrorInterceptor = (\n axiosInstance: AxiosInstance,\n config: WordPressConfig,\n client: WordPressClient\n): void => {\n axiosInstance.interceptors.response.use(\n (response) => response,\n async (axiosError: AxiosError<WordPressErrorData>) => {\n const status = axiosError.response?.status || 500;\n const errorData = axiosError.response?.data;\n\n // Extract WordPress error details\n const apiCode = errorData?.code || 'unknown_error';\n const wpMessage = errorData?.message || axiosError.message || 'Unknown error';\n\n // Transform WordPress API code to application-level code\n // e.g., \"rest_post_invalid_id\" → \"post_not_found\"\n const mappedError = mapWordPressCode(apiCode, status);\n\n // Create WordPressApiError with full context\n const wpError = new WordPressApiError({\n message: wpMessage,\n statusCode: status,\n code: mappedError.code, // Transformed app-level code\n originalCode: apiCode, // Original WordPress API code\n retryable: mappedError.retryable,\n userMessage: mappedError.userMessage,\n operation: axiosError.config?.url || 'wordpress_api_request',\n url: axiosError.config?.url || '',\n method: axiosError.config?.method?.toUpperCase() || 'GET',\n requestBody: axiosError.config?.data,\n responseBody: errorData,\n cause: axiosError,\n });\n\n if (config.debug) {\n debug('WordPress error:', apiCode, status, wpMessage);\n logError(wpError);\n }\n\n // Handle authentication errors (401/403)\n if (\n (status === 401 || status === 403) &&\n config.onAuthError &&\n isAxiosError(axiosError) &&\n !axiosError.config?._retry\n ) {\n if (config.debug) {\n debug('Auth error detected, calling onAuthError handler');\n }\n\n try {\n const shouldRetry = await config.onAuthError(wpError, client);\n\n if (shouldRetry) {\n if (config.debug) {\n debug('Retrying request after auth error');\n }\n\n // Mark as retry to prevent infinite loops\n axiosError.config!._retry = true;\n\n // Retry the request\n return axiosInstance.request(axiosError.config!);\n }\n } catch (authErrorHandlerError) {\n // If onAuthError handler throws, fall through to error reporting\n if (config.debug) {\n debug('onAuthError handler threw error', authErrorHandlerError);\n }\n }\n }\n\n // Call optional onError hook\n if (config.onError) {\n config.onError(wpError, client);\n }\n\n // Report error to configured error reporter (Sentry, etc.)\n config.errorReporter?.report(wpError);\n\n return Promise.reject(wpError);\n }\n );\n};\n\n// Augment AxiosRequestConfig to include _retry flag\ndeclare module 'axios' {\n export interface AxiosRequestConfig {\n _retry?: boolean;\n }\n}\n"]}