@exyconn/common 2.3.4 → 2.3.6

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/dist/client/http/index.js +1 -3
  2. package/dist/client/http/index.js.map +1 -1
  3. package/dist/client/http/index.mjs +1 -3
  4. package/dist/client/http/index.mjs.map +1 -1
  5. package/dist/client/index.js +4 -4
  6. package/dist/client/index.js.map +1 -1
  7. package/dist/client/index.mjs +4 -4
  8. package/dist/client/index.mjs.map +1 -1
  9. package/dist/client/logger/index.js +3 -1
  10. package/dist/client/logger/index.js.map +1 -1
  11. package/dist/client/logger/index.mjs +3 -1
  12. package/dist/client/logger/index.mjs.map +1 -1
  13. package/dist/client/utils/index.js +3 -3
  14. package/dist/client/utils/index.js.map +1 -1
  15. package/dist/client/utils/index.mjs +3 -3
  16. package/dist/client/utils/index.mjs.map +1 -1
  17. package/dist/{index-Ckhm_HaX.d.mts → index-B8O4iu6q.d.mts} +7 -2
  18. package/dist/{index-br6POSyA.d.ts → index-MpV0UNTq.d.ts} +7 -2
  19. package/dist/index.d.mts +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.js +171 -18
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +168 -17
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/server/configs/index.js +3 -0
  26. package/dist/server/configs/index.js.map +1 -1
  27. package/dist/server/configs/index.mjs +3 -0
  28. package/dist/server/configs/index.mjs.map +1 -1
  29. package/dist/server/index.d.mts +1 -1
  30. package/dist/server/index.d.ts +1 -1
  31. package/dist/server/index.js +161 -8
  32. package/dist/server/index.js.map +1 -1
  33. package/dist/server/index.mjs +156 -8
  34. package/dist/server/index.mjs.map +1 -1
  35. package/dist/server/middleware/index.js +3 -3
  36. package/dist/server/middleware/index.js.map +1 -1
  37. package/dist/server/middleware/index.mjs +3 -3
  38. package/dist/server/middleware/index.mjs.map +1 -1
  39. package/dist/server/utils/index.d.mts +99 -1
  40. package/dist/server/utils/index.d.ts +99 -1
  41. package/dist/server/utils/index.js +154 -0
  42. package/dist/server/utils/index.js.map +1 -1
  43. package/dist/server/utils/index.mjs +148 -3
  44. package/dist/server/utils/index.mjs.map +1 -1
  45. package/package.json +25 -25
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/client/utils/date.ts","../../../src/client/utils/clipboard.ts","../../../src/client/utils/slug.ts","../../../src/client/utils/events.ts","../../../src/client/utils/api-urls.ts","../../../src/client/utils/response-parser.ts","../../../src/client/utils/packageCheck.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\r\n * Format date to readable string\r\n * @param date - Date to format\r\n * @param locale - Locale for formatting (default: 'en-US')\r\n */\r\nexport const formatDate = (\r\n date: Date | string | number,\r\n locale: string = 'en-US'\r\n): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toLocaleDateString(locale, {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n });\r\n};\r\n\r\n/**\r\n * Format date with time\r\n */\r\nexport const formatDateTime = (\r\n date: Date | string | number,\r\n locale: string = 'en-US'\r\n): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toLocaleDateString(locale, {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n};\r\n\r\n/**\r\n * Format date as relative time (e.g., \"2 hours ago\")\r\n */\r\nexport const formatRelativeTime = (date: Date | string | number): string => {\r\n const dateObj = new Date(date);\r\n const now = new Date();\r\n const diffInSeconds = Math.floor((now.getTime() - dateObj.getTime()) / 1000);\r\n\r\n const intervals: { label: string; seconds: number }[] = [\r\n { label: 'year', seconds: 31536000 },\r\n { label: 'month', seconds: 2592000 },\r\n { label: 'week', seconds: 604800 },\r\n { label: 'day', seconds: 86400 },\r\n { label: 'hour', seconds: 3600 },\r\n { label: 'minute', seconds: 60 },\r\n { label: 'second', seconds: 1 },\r\n ];\r\n\r\n for (const interval of intervals) {\r\n const count = Math.floor(diffInSeconds / interval.seconds);\r\n if (count >= 1) {\r\n return `${count} ${interval.label}${count !== 1 ? 's' : ''} ago`;\r\n }\r\n }\r\n\r\n return 'just now';\r\n};\r\n\r\n/**\r\n * Format date for input[type=\"date\"]\r\n */\r\nexport const formatDateForInput = (date: Date | string | number): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toISOString().split('T')[0];\r\n};\r\n\r\n/**\r\n * Format date for input[type=\"datetime-local\"]\r\n */\r\nexport const formatDateTimeForInput = (date: Date | string | number): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toISOString().slice(0, 16);\r\n};\r\n\r\n/**\r\n * Check if date is today\r\n */\r\nexport const isToday = (date: Date | string | number): boolean => {\r\n const dateObj = new Date(date);\r\n const today = new Date();\r\n return (\r\n dateObj.getDate() === today.getDate() &&\r\n dateObj.getMonth() === today.getMonth() &&\r\n dateObj.getFullYear() === today.getFullYear()\r\n );\r\n};\r\n\r\n/**\r\n * Check if date is in the past\r\n */\r\nexport const isPast = (date: Date | string | number): boolean => {\r\n return new Date(date).getTime() < Date.now();\r\n};\r\n\r\n/**\r\n * Check if date is in the future\r\n */\r\nexport const isFuture = (date: Date | string | number): boolean => {\r\n return new Date(date).getTime() > Date.now();\r\n};\r\n\r\n/**\r\n * Add days to a date\r\n */\r\nexport const addDays = (date: Date | string | number, days: number): Date => {\r\n const dateObj = new Date(date);\r\n dateObj.setDate(dateObj.getDate() + days);\r\n return dateObj;\r\n};\r\n\r\n/**\r\n * Get start of day\r\n */\r\nexport const startOfDay = (date: Date | string | number): Date => {\r\n const dateObj = new Date(date);\r\n dateObj.setHours(0, 0, 0, 0);\r\n return dateObj;\r\n};\r\n\r\n/**\r\n * Get end of day\r\n */\r\nexport const endOfDay = (date: Date | string | number): Date => {\r\n const dateObj = new Date(date);\r\n dateObj.setHours(23, 59, 59, 999);\r\n return dateObj;\r\n};\r\n\r\nexport default {\r\n formatDate,\r\n formatDateTime,\r\n formatRelativeTime,\r\n formatDateForInput,\r\n formatDateTimeForInput,\r\n isToday,\r\n isPast,\r\n isFuture,\r\n addDays,\r\n startOfDay,\r\n endOfDay,\r\n};\r\n","/**\r\n * Copy text to clipboard\r\n * @returns Promise<boolean> - true if successful\r\n */\r\nexport const copyToClipboard = async (text: string): Promise<boolean> => {\r\n try {\r\n // Modern API (preferred)\r\n if (navigator.clipboard && window.isSecureContext) {\r\n await navigator.clipboard.writeText(text);\r\n return true;\r\n }\r\n\r\n // Fallback for older browsers or non-secure contexts\r\n const textArea = document.createElement('textarea');\r\n textArea.value = text;\r\n textArea.style.position = 'fixed';\r\n textArea.style.left = '-999999px';\r\n textArea.style.top = '-999999px';\r\n document.body.appendChild(textArea);\r\n textArea.focus();\r\n textArea.select();\r\n\r\n const success = document.execCommand('copy');\r\n document.body.removeChild(textArea);\r\n return success;\r\n } catch (error) {\r\n console.error('Failed to copy to clipboard:', error);\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * Read text from clipboard\r\n * @returns Promise<string | null>\r\n */\r\nexport const readFromClipboard = async (): Promise<string | null> => {\r\n try {\r\n if (navigator.clipboard && window.isSecureContext) {\r\n return await navigator.clipboard.readText();\r\n }\r\n return null;\r\n } catch (error) {\r\n console.error('Failed to read from clipboard:', error);\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Check if clipboard API is available\r\n */\r\nexport const isClipboardAvailable = (): boolean => {\r\n return !!(navigator.clipboard && window.isSecureContext);\r\n};\r\n\r\nexport default {\r\n copyToClipboard,\r\n readFromClipboard,\r\n isClipboardAvailable,\r\n};\r\n","/**\r\n * Generate URL-friendly slug from text\r\n */\r\nexport const slugify = (text: string): string => {\r\n return text\r\n .toString()\r\n .toLowerCase()\r\n .trim()\r\n .replace(/\\s+/g, '-') // Replace spaces with -\r\n .replace(/[^\\w\\-]+/g, '') // Remove non-word chars\r\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n .replace(/^-+/, '') // Trim - from start\r\n .replace(/-+$/, ''); // Trim - from end\r\n};\r\n\r\n/**\r\n * Generate slug with unique suffix\r\n */\r\nexport const slugifyUnique = (text: string): string => {\r\n const baseSlug = slugify(text);\r\n const uniqueSuffix = Date.now().toString(36) + Math.random().toString(36).substring(2, 5);\r\n return `${baseSlug}-${uniqueSuffix}`;\r\n};\r\n\r\n/**\r\n * Convert slug back to readable text\r\n */\r\nexport const unslugify = (slug: string): string => {\r\n return slug\r\n .replace(/-/g, ' ')\r\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\r\n};\r\n\r\n/**\r\n * Truncate text to specified length with ellipsis\r\n */\r\nexport const truncate = (\r\n text: string,\r\n maxLength: number,\r\n suffix: string = '...'\r\n): string => {\r\n if (text.length <= maxLength) return text;\r\n return text.substring(0, maxLength - suffix.length).trim() + suffix;\r\n};\r\n\r\n/**\r\n * Truncate text by words\r\n */\r\nexport const truncateWords = (\r\n text: string,\r\n maxWords: number,\r\n suffix: string = '...'\r\n): string => {\r\n const words = text.split(/\\s+/);\r\n if (words.length <= maxWords) return text;\r\n return words.slice(0, maxWords).join(' ') + suffix;\r\n};\r\n\r\n/**\r\n * Capitalize first letter of each word\r\n */\r\nexport const capitalizeWords = (text: string): string => {\r\n return text.replace(/\\b\\w/g, (char) => char.toUpperCase());\r\n};\r\n\r\n/**\r\n * Capitalize first letter only\r\n */\r\nexport const capitalize = (text: string): string => {\r\n if (!text) return '';\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n};\r\n\r\n/**\r\n * Convert camelCase to kebab-case\r\n */\r\nexport const camelToKebab = (text: string): string => {\r\n return text.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\r\n};\r\n\r\n/**\r\n * Convert kebab-case to camelCase\r\n */\r\nexport const kebabToCamel = (text: string): string => {\r\n return text.replace(/-([a-z])/g, (_, char) => char.toUpperCase());\r\n};\r\n\r\nexport default {\r\n slugify,\r\n slugifyUnique,\r\n unslugify,\r\n truncate,\r\n truncateWords,\r\n capitalizeWords,\r\n capitalize,\r\n camelToKebab,\r\n kebabToCamel,\r\n};\r\n","/**\r\n * Event Emitter for client-side event handling\r\n */\r\n\r\ntype EventHandler<T = unknown> = (data: T) => void;\r\n\r\ninterface EventMap {\r\n [event: string]: unknown;\r\n}\r\n\r\n/**\r\n * Simple typed event emitter for browser use\r\n */\r\nexport class EventEmitter<Events extends EventMap = EventMap> {\r\n private handlers: Map<keyof Events, Set<EventHandler<unknown>>> = new Map();\r\n\r\n /**\r\n * Subscribe to an event\r\n * @returns Unsubscribe function\r\n */\r\n on<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): () => void {\r\n if (!this.handlers.has(event)) {\r\n this.handlers.set(event, new Set());\r\n }\r\n this.handlers.get(event)!.add(handler as EventHandler<unknown>);\r\n\r\n // Return unsubscribe function\r\n return () => this.off(event, handler);\r\n }\r\n\r\n /**\r\n * Subscribe to an event once\r\n */\r\n once<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): () => void {\r\n const wrappedHandler: EventHandler<Events[K]> = (data) => {\r\n this.off(event, wrappedHandler);\r\n handler(data);\r\n };\r\n return this.on(event, wrappedHandler);\r\n }\r\n\r\n /**\r\n * Unsubscribe from an event\r\n */\r\n off<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): void {\r\n const eventHandlers = this.handlers.get(event);\r\n if (eventHandlers) {\r\n eventHandlers.delete(handler as EventHandler<unknown>);\r\n }\r\n }\r\n\r\n /**\r\n * Emit an event\r\n */\r\n emit<K extends keyof Events>(event: K, data: Events[K]): void {\r\n const eventHandlers = this.handlers.get(event);\r\n if (eventHandlers) {\r\n eventHandlers.forEach((handler) => {\r\n try {\r\n handler(data);\r\n } catch (error) {\r\n console.error(`Error in event handler for \"${String(event)}\":`, error);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Remove all handlers for an event (or all events)\r\n */\r\n removeAllListeners(event?: keyof Events): void {\r\n if (event) {\r\n this.handlers.delete(event);\r\n } else {\r\n this.handlers.clear();\r\n }\r\n }\r\n\r\n /**\r\n * Get count of listeners for an event\r\n */\r\n listenerCount(event: keyof Events): number {\r\n return this.handlers.get(event)?.size ?? 0;\r\n }\r\n}\r\n\r\n/**\r\n * Create a new event emitter instance\r\n */\r\nexport const createEventEmitter = <Events extends EventMap = EventMap>(): EventEmitter<Events> => {\r\n return new EventEmitter<Events>();\r\n};\r\n\r\n/**\r\n * Global app event emitter (singleton)\r\n */\r\nexport const appEvents = new EventEmitter<{\r\n 'auth:login': { userId: string };\r\n 'auth:logout': void;\r\n 'notification:show': { message: string; type: 'success' | 'error' | 'warning' | 'info' };\r\n 'theme:change': 'light' | 'dark';\r\n [key: string]: unknown;\r\n}>();\r\n\r\nexport default {\r\n EventEmitter,\r\n createEventEmitter,\r\n appEvents,\r\n};\r\n","/**\r\n * API URL Builder\r\n * Centralized API endpoint management\r\n */\r\n\r\nexport interface ApiUrlConfig {\r\n baseUrl: string;\r\n version?: string;\r\n}\r\n\r\n/**\r\n * API URL builder class\r\n */\r\nexport class ApiUrlBuilder {\r\n private baseUrl: string;\r\n private version: string;\r\n\r\n constructor(config: ApiUrlConfig) {\r\n this.baseUrl = config.baseUrl.replace(/\\/$/, ''); // Remove trailing slash\r\n this.version = config.version || '';\r\n }\r\n\r\n /**\r\n * Build full URL from path\r\n */\r\n build(path: string): string {\r\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\r\n const versionPath = this.version ? `/${this.version}` : '';\r\n return `${this.baseUrl}${versionPath}${normalizedPath}`;\r\n }\r\n\r\n /**\r\n * Build URL with query parameters\r\n */\r\n buildWithParams(path: string, params: Record<string, string | number | boolean | undefined>): string {\r\n const url = this.build(path);\r\n const filteredParams = Object.entries(params)\r\n .filter(([, value]) => value !== undefined)\r\n .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)\r\n .join('&');\r\n\r\n return filteredParams ? `${url}?${filteredParams}` : url;\r\n }\r\n\r\n /**\r\n * Build URL with path parameters\r\n */\r\n buildWithPathParams(template: string, params: Record<string, string | number>): string {\r\n let path = template;\r\n Object.entries(params).forEach(([key, value]) => {\r\n path = path.replace(`:${key}`, String(value));\r\n path = path.replace(`{${key}}`, String(value));\r\n });\r\n return this.build(path);\r\n }\r\n\r\n /**\r\n * Get base URL\r\n */\r\n getBaseUrl(): string {\r\n return this.baseUrl;\r\n }\r\n\r\n /**\r\n * Set new base URL\r\n */\r\n setBaseUrl(baseUrl: string): void {\r\n this.baseUrl = baseUrl.replace(/\\/$/, '');\r\n }\r\n}\r\n\r\n/**\r\n * Create API URL builder\r\n */\r\nexport const createApiUrlBuilder = (config: ApiUrlConfig): ApiUrlBuilder => {\r\n return new ApiUrlBuilder(config);\r\n};\r\n\r\n/**\r\n * Common API endpoints factory\r\n */\r\nexport const createApiEndpoints = (builder: ApiUrlBuilder) => ({\r\n // Auth endpoints\r\n auth: {\r\n login: () => builder.build('/auth/login'),\r\n register: () => builder.build('/auth/register'),\r\n logout: () => builder.build('/auth/logout'),\r\n refresh: () => builder.build('/auth/refresh'),\r\n me: () => builder.build('/auth/me'),\r\n forgotPassword: () => builder.build('/auth/forgot-password'),\r\n resetPassword: () => builder.build('/auth/reset-password'),\r\n },\r\n\r\n // User endpoints\r\n users: {\r\n list: () => builder.build('/users'),\r\n get: (id: string) => builder.buildWithPathParams('/users/:id', { id }),\r\n create: () => builder.build('/users'),\r\n update: (id: string) => builder.buildWithPathParams('/users/:id', { id }),\r\n delete: (id: string) => builder.buildWithPathParams('/users/:id', { id }),\r\n },\r\n\r\n // Generic CRUD factory\r\n crud: (resource: string) => ({\r\n list: () => builder.build(`/${resource}`),\r\n get: (id: string) => builder.buildWithPathParams(`/${resource}/:id`, { id }),\r\n create: () => builder.build(`/${resource}`),\r\n update: (id: string) => builder.buildWithPathParams(`/${resource}/:id`, { id }),\r\n delete: (id: string) => builder.buildWithPathParams(`/${resource}/:id`, { id }),\r\n }),\r\n});\r\n\r\nexport default {\r\n ApiUrlBuilder,\r\n createApiUrlBuilder,\r\n createApiEndpoints,\r\n};\r\n","/**\n * Response Parser Utilities\n * Common patterns for parsing API responses\n */\nimport type { ApiResponse, PaginatedResponse, PaginationMeta } from '../../shared/types';\n\n/**\n * Check if response is successful\n */\nexport const isSuccessResponse = <T>(response: ApiResponse<T>): response is ApiResponse<T> & { success: true } => {\n return response.success === true;\n};\n\n/**\n * Check if response is an error\n */\nexport const isErrorResponse = <T>(response: ApiResponse<T>): response is ApiResponse<T> & { success: false } => {\n return response.success === false;\n};\n\n/**\n * Extract data from response or return default\n */\nexport const getResponseData = <T>(response: ApiResponse<T>, defaultValue: T): T => {\n if (isSuccessResponse(response) && response.data !== undefined) {\n return response.data;\n }\n return defaultValue;\n};\n\n/**\n * Extract error message from response\n */\nexport const getErrorMessage = <T>(response: ApiResponse<T>, defaultMessage: string = 'An error occurred'): string => {\n if (response.error) {\n return response.error;\n }\n if (response.message) {\n return response.message;\n }\n return defaultMessage;\n};\n\n/**\n * Check if response has data\n */\nexport const hasData = <T>(response: ApiResponse<T>): response is ApiResponse<T> & { data: NonNullable<T> } => {\n return response.data !== null && response.data !== undefined;\n};\n\n/**\n * Check if paginated response has more pages\n */\nexport const hasMorePages = <T>(response: PaginatedResponse<T>): boolean => {\n return response.pagination.hasNextPage;\n};\n\n/**\n * Get next page number from paginated response\n */\nexport const getNextPage = <T>(response: PaginatedResponse<T>): number | null => {\n if (response.pagination.hasNextPage) {\n return response.pagination.page + 1;\n }\n return null;\n};\n\n/**\n * Get previous page number from paginated response\n */\nexport const getPrevPage = <T>(response: PaginatedResponse<T>): number | null => {\n if (response.pagination.hasPrevPage) {\n return response.pagination.page - 1;\n }\n return null;\n};\n\n/**\n * Create empty pagination meta\n */\nexport const createEmptyPaginationMeta = (): PaginationMeta => ({\n total: 0,\n page: 1,\n limit: 10,\n totalPages: 0,\n hasNextPage: false,\n hasPrevPage: false,\n});\n\n/**\n * Create success response\n */\nexport const createSuccessResponse = <T>(data: T, message: string = 'Success'): ApiResponse<T> => ({\n success: true,\n message,\n data,\n statusCode: 200,\n});\n\n/**\n * Create error response\n */\nexport const createErrorResponse = (\n message: string,\n statusCode: number = 400,\n error?: string\n): ApiResponse<never> => ({\n success: false,\n message,\n error,\n statusCode,\n});\n\nexport default {\n isSuccessResponse,\n isErrorResponse,\n getResponseData,\n getErrorMessage,\n hasData,\n hasMorePages,\n getNextPage,\n getPrevPage,\n createEmptyPaginationMeta,\n createSuccessResponse,\n createErrorResponse,\n};\n","/**\r\n * Package Check Utility\r\n * Analyzes package.json dependencies and checks for updates\r\n * \r\n * Features:\r\n * - Fetches package.json from URL or file path\r\n * - Checks all dependency types (dependencies, devDependencies, peerDependencies, optionalDependencies)\r\n * - Compares versions with npm registry\r\n * - Provides update suggestions\r\n * - Supports auto mode with npm-check-updates\r\n */\r\n\r\nexport interface PackageVersion {\r\n /** Package name */\r\n name: string;\r\n /** Current version in package.json */\r\n current: string;\r\n /** Latest version available on npm */\r\n latest: string;\r\n /** Is update available? */\r\n hasUpdate: boolean;\r\n /** Update type: major, minor, patch, or none */\r\n updateType: 'major' | 'minor' | 'patch' | 'prerelease' | 'none';\r\n /** Dependency type */\r\n dependencyType: 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies';\r\n}\r\n\r\nexport interface PackageCheckResult {\r\n /** Package name from package.json */\r\n packageName: string;\r\n /** Current package version */\r\n packageVersion: string;\r\n /** Total dependencies checked */\r\n totalDependencies: number;\r\n /** Dependencies with updates available */\r\n outdatedCount: number;\r\n /** All dependency information */\r\n dependencies: PackageVersion[];\r\n /** Dependencies grouped by type */\r\n byType: {\r\n dependencies: PackageVersion[];\r\n devDependencies: PackageVersion[];\r\n peerDependencies: PackageVersion[];\r\n optionalDependencies: PackageVersion[];\r\n };\r\n /** Dependencies grouped by update type */\r\n byUpdateType: {\r\n major: PackageVersion[];\r\n minor: PackageVersion[];\r\n patch: PackageVersion[];\r\n prerelease: PackageVersion[];\r\n };\r\n /** Timestamp of check */\r\n checkedAt: Date;\r\n /** Errors encountered */\r\n errors: string[];\r\n}\r\n\r\nexport interface PackageJson {\r\n name?: string;\r\n version?: string;\r\n dependencies?: Record<string, string>;\r\n devDependencies?: Record<string, string>;\r\n peerDependencies?: Record<string, string>;\r\n optionalDependencies?: Record<string, string>;\r\n}\r\n\r\nexport interface NpmRegistryResponse {\r\n 'dist-tags': {\r\n latest: string;\r\n [key: string]: string;\r\n };\r\n versions: Record<string, unknown>;\r\n}\r\n\r\n/**\r\n * Parse version string, removing range operators\r\n */\r\nfunction parseVersion(version: string): string {\r\n // Remove range operators: ^, ~, >=, <=, >, <, =, ||, etc.\r\n return version.replace(/[\\^~>=<|*x\\s]/g, '').split(' ')[0] || '0.0.0';\r\n}\r\n\r\n/**\r\n * Compare two semver versions\r\n */\r\nfunction compareVersions(current: string, latest: string): 'major' | 'minor' | 'patch' | 'prerelease' | 'none' {\r\n const currentClean = parseVersion(current);\r\n const latestClean = parseVersion(latest);\r\n\r\n if (currentClean === latestClean) return 'none';\r\n\r\n const [curMajor, curMinor, curPatch] = currentClean.split('.').map(Number);\r\n const [latMajor, latMinor, latPatch] = latestClean.split('.').map(Number);\r\n\r\n // Check for prerelease\r\n if (latest.includes('-')) return 'prerelease';\r\n\r\n if (latMajor > curMajor) return 'major';\r\n if (latMinor > curMinor) return 'minor';\r\n if (latPatch > curPatch) return 'patch';\r\n\r\n return 'none';\r\n}\r\n\r\n/**\r\n * Fetch latest version from npm registry\r\n */\r\nasync function fetchLatestVersion(packageName: string): Promise<string | null> {\r\n try {\r\n // Handle scoped packages\r\n const encodedName = packageName.startsWith('@')\r\n ? `@${encodeURIComponent(packageName.slice(1))}`\r\n : encodeURIComponent(packageName);\r\n\r\n const response = await fetch(`https://registry.npmjs.org/${encodedName}`);\r\n\r\n if (!response.ok) {\r\n return null;\r\n }\r\n\r\n const data = (await response.json()) as NpmRegistryResponse;\r\n return data['dist-tags']?.latest || null;\r\n } catch {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Fetch package.json from URL or return parsed object\r\n */\r\nasync function fetchPackageJson(source: string | PackageJson): Promise<PackageJson> {\r\n if (typeof source === 'object') {\r\n return source;\r\n }\r\n\r\n // If it's a URL, fetch it\r\n if (source.startsWith('http://') || source.startsWith('https://')) {\r\n const response = await fetch(source);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch package.json from ${source}: ${response.status}`);\r\n }\r\n return response.json() as Promise<PackageJson>;\r\n }\r\n\r\n // For file paths, we need to use dynamic import or Node.js fs\r\n // In browser context, this won't work - throw helpful error\r\n throw new Error(\r\n 'File path support requires Node.js environment. Use URL or pass package.json object directly.'\r\n );\r\n}\r\n\r\n/**\r\n * Check a single dependency type\r\n */\r\nasync function checkDependencyType(\r\n deps: Record<string, string> | undefined,\r\n type: PackageVersion['dependencyType'],\r\n errors: string[]\r\n): Promise<PackageVersion[]> {\r\n if (!deps) return [];\r\n\r\n const results: PackageVersion[] = [];\r\n const entries = Object.entries(deps);\r\n\r\n // Process in parallel with concurrency limit\r\n const concurrencyLimit = 10;\r\n for (let i = 0; i < entries.length; i += concurrencyLimit) {\r\n const batch = entries.slice(i, i + concurrencyLimit);\r\n const batchResults = await Promise.all(\r\n batch.map(async ([name, currentVersion]) => {\r\n try {\r\n const latest = await fetchLatestVersion(name);\r\n\r\n if (!latest) {\r\n errors.push(`Could not fetch latest version for ${name}`);\r\n return {\r\n name,\r\n current: currentVersion,\r\n latest: 'unknown',\r\n hasUpdate: false,\r\n updateType: 'none' as const,\r\n dependencyType: type,\r\n };\r\n }\r\n\r\n const updateType = compareVersions(currentVersion, latest);\r\n\r\n return {\r\n name,\r\n current: currentVersion,\r\n latest,\r\n hasUpdate: updateType !== 'none',\r\n updateType,\r\n dependencyType: type,\r\n };\r\n } catch (err) {\r\n errors.push(`Error checking ${name}: ${err}`);\r\n return {\r\n name,\r\n current: currentVersion,\r\n latest: 'error',\r\n hasUpdate: false,\r\n updateType: 'none' as const,\r\n dependencyType: type,\r\n };\r\n }\r\n })\r\n );\r\n results.push(...batchResults);\r\n }\r\n\r\n return results;\r\n}\r\n\r\n/**\r\n * Main function to check package.json for updates\r\n * \r\n * @example\r\n * // From URL\r\n * const result = await checkPackage('https://raw.githubusercontent.com/user/repo/main/package.json');\r\n * \r\n * @example\r\n * // From object\r\n * const result = await checkPackage({\r\n * name: 'my-package',\r\n * dependencies: { 'lodash': '^4.17.0' }\r\n * });\r\n * \r\n * @example\r\n * // In Node.js, read file first\r\n * import fs from 'fs';\r\n * const pkg = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));\r\n * const result = await checkPackage(pkg);\r\n */\r\nexport async function checkPackage(\r\n source: string | PackageJson\r\n): Promise<PackageCheckResult> {\r\n const errors: string[] = [];\r\n\r\n // Fetch package.json\r\n let pkg: PackageJson;\r\n try {\r\n pkg = await fetchPackageJson(source);\r\n } catch (err) {\r\n throw new Error(`Failed to load package.json: ${err}`);\r\n }\r\n\r\n // Check all dependency types in parallel\r\n const [dependencies, devDependencies, peerDependencies, optionalDependencies] =\r\n await Promise.all([\r\n checkDependencyType(pkg.dependencies, 'dependencies', errors),\r\n checkDependencyType(pkg.devDependencies, 'devDependencies', errors),\r\n checkDependencyType(pkg.peerDependencies, 'peerDependencies', errors),\r\n checkDependencyType(pkg.optionalDependencies, 'optionalDependencies', errors),\r\n ]);\r\n\r\n const allDeps = [...dependencies, ...devDependencies, ...peerDependencies, ...optionalDependencies];\r\n\r\n return {\r\n packageName: pkg.name || 'unknown',\r\n packageVersion: pkg.version || '0.0.0',\r\n totalDependencies: allDeps.length,\r\n outdatedCount: allDeps.filter((d) => d.hasUpdate).length,\r\n dependencies: allDeps,\r\n byType: {\r\n dependencies,\r\n devDependencies,\r\n peerDependencies,\r\n optionalDependencies,\r\n },\r\n byUpdateType: {\r\n major: allDeps.filter((d) => d.updateType === 'major'),\r\n minor: allDeps.filter((d) => d.updateType === 'minor'),\r\n patch: allDeps.filter((d) => d.updateType === 'patch'),\r\n prerelease: allDeps.filter((d) => d.updateType === 'prerelease'),\r\n },\r\n checkedAt: new Date(),\r\n errors,\r\n };\r\n}\r\n\r\n/**\r\n * Format check result as human-readable string\r\n */\r\nexport function formatPackageCheckResult(result: PackageCheckResult): string {\r\n const lines: string[] = [];\r\n\r\n lines.push(`📦 Package: ${result.packageName}@${result.packageVersion}`);\r\n lines.push(`📅 Checked: ${result.checkedAt.toISOString()}`);\r\n lines.push(`📊 Total: ${result.totalDependencies} | Outdated: ${result.outdatedCount}`);\r\n lines.push('');\r\n\r\n if (result.byUpdateType.major.length > 0) {\r\n lines.push('🔴 MAJOR Updates:');\r\n result.byUpdateType.major.forEach((d) => {\r\n lines.push(` ${d.name}: ${d.current} → ${d.latest}`);\r\n });\r\n lines.push('');\r\n }\r\n\r\n if (result.byUpdateType.minor.length > 0) {\r\n lines.push('🟡 MINOR Updates:');\r\n result.byUpdateType.minor.forEach((d) => {\r\n lines.push(` ${d.name}: ${d.current} → ${d.latest}`);\r\n });\r\n lines.push('');\r\n }\r\n\r\n if (result.byUpdateType.patch.length > 0) {\r\n lines.push('🟢 PATCH Updates:');\r\n result.byUpdateType.patch.forEach((d) => {\r\n lines.push(` ${d.name}: ${d.current} → ${d.latest}`);\r\n });\r\n lines.push('');\r\n }\r\n\r\n if (result.errors.length > 0) {\r\n lines.push('⚠️ Errors:');\r\n result.errors.forEach((e) => {\r\n lines.push(` ${e}`);\r\n });\r\n }\r\n\r\n return lines.join('\\n');\r\n}\r\n\r\n/**\r\n * Generate ncu (npm-check-updates) command\r\n */\r\nexport function generateNcuCommand(\r\n result: PackageCheckResult,\r\n options: {\r\n updateType?: 'major' | 'minor' | 'patch' | 'all';\r\n interactive?: boolean;\r\n upgrade?: boolean;\r\n } = {}\r\n): string {\r\n const { updateType = 'all', interactive = false, upgrade = false } = options;\r\n\r\n let packages: string[] = [];\r\n\r\n switch (updateType) {\r\n case 'major':\r\n packages = result.byUpdateType.major.map((d) => d.name);\r\n break;\r\n case 'minor':\r\n packages = result.byUpdateType.minor.map((d) => d.name);\r\n break;\r\n case 'patch':\r\n packages = result.byUpdateType.patch.map((d) => d.name);\r\n break;\r\n default:\r\n packages = result.dependencies.filter((d) => d.hasUpdate).map((d) => d.name);\r\n }\r\n\r\n if (packages.length === 0) {\r\n return '# No updates available';\r\n }\r\n\r\n let cmd = 'npx npm-check-updates';\r\n\r\n if (packages.length > 0 && packages.length < result.dependencies.length) {\r\n cmd += ` --filter \"${packages.join(',')}\"`;\r\n }\r\n\r\n if (interactive) {\r\n cmd += ' --interactive';\r\n }\r\n\r\n if (upgrade) {\r\n cmd += ' --upgrade';\r\n }\r\n\r\n return cmd;\r\n}\r\n\r\n/**\r\n * Package check utilities for client-side usage\r\n */\r\nexport const packageCheck = {\r\n check: checkPackage,\r\n format: formatPackageCheckResult,\r\n generateNcuCommand,\r\n parseVersion,\r\n compareVersions,\r\n} as const;\r\n\r\nexport default packageCheck;\r\n"]}
1
+ {"version":3,"sources":["../../../src/client/utils/date.ts","../../../src/client/utils/clipboard.ts","../../../src/client/utils/slug.ts","../../../src/client/utils/events.ts","../../../src/client/utils/api-urls.ts","../../../src/client/utils/response-parser.ts","../../../src/client/utils/packageCheck.ts"],"names":[],"mappings":";AAKO,IAAM,UAAA,GAAa,CACxB,IAAA,EACA,MAAA,GAAiB,OAAA,KACN;AACX,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,OAAO,OAAA,CAAQ,mBAAmB,MAAA,EAAQ;AAAA,IACxC,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,MAAA;AAAA,IACP,GAAA,EAAK;AAAA,GACN,CAAA;AACH;AAKO,IAAM,cAAA,GAAiB,CAC5B,IAAA,EACA,MAAA,GAAiB,OAAA,KACN;AACX,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,OAAO,OAAA,CAAQ,mBAAmB,MAAA,EAAQ;AAAA,IACxC,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,OAAA;AAAA,IACP,GAAA,EAAK,SAAA;AAAA,IACL,IAAA,EAAM,SAAA;AAAA,IACN,MAAA,EAAQ;AAAA,GACT,CAAA;AACH;AAKO,IAAM,kBAAA,GAAqB,CAAC,IAAA,KAAyC;AAC1E,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AACrB,EAAA,MAAM,aAAA,GAAgB,KAAK,KAAA,CAAA,CAAO,GAAA,CAAI,SAAQ,GAAI,OAAA,CAAQ,OAAA,EAAQ,IAAK,GAAI,CAAA;AAE3E,EAAA,MAAM,SAAA,GAAkD;AAAA,IACtD,EAAE,KAAA,EAAO,MAAA,EAAQ,OAAA,EAAS,OAAA,EAAS;AAAA,IACnC,EAAE,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,MAAA,EAAQ;AAAA,IACnC,EAAE,KAAA,EAAO,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAO;AAAA,IACjC,EAAE,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,KAAA,EAAM;AAAA,IAC/B,EAAE,KAAA,EAAO,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAK;AAAA,IAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,OAAA,EAAS,EAAA,EAAG;AAAA,IAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,OAAA,EAAS,CAAA;AAAE,GAChC;AAEA,EAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,aAAA,GAAgB,SAAS,OAAO,CAAA;AACzD,IAAA,IAAI,SAAS,CAAA,EAAG;AACd,MAAA,OAAO,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,QAAA,CAAS,KAAK,CAAA,EAAG,KAAA,KAAU,CAAA,GAAI,GAAA,GAAM,EAAE,CAAA,IAAA,CAAA;AAAA,IAC5D;AAAA,EACF;AAEA,EAAA,OAAO,UAAA;AACT;AAKO,IAAM,kBAAA,GAAqB,CAAC,IAAA,KAAyC;AAC1E,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,OAAO,QAAQ,WAAA,EAAY,CAAE,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAC3C;AAKO,IAAM,sBAAA,GAAyB,CAAC,IAAA,KAAyC;AAC9E,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,OAAO,OAAA,CAAQ,WAAA,EAAY,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AAC1C;AAKO,IAAM,OAAA,GAAU,CAAC,IAAA,KAA0C;AAChE,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,MAAM,KAAA,uBAAY,IAAA,EAAK;AACvB,EAAA,OACE,QAAQ,OAAA,EAAQ,KAAM,KAAA,CAAM,OAAA,MAC5B,OAAA,CAAQ,QAAA,EAAS,KAAM,KAAA,CAAM,UAAS,IACtC,OAAA,CAAQ,WAAA,EAAY,KAAM,MAAM,WAAA,EAAY;AAEhD;AAKO,IAAM,MAAA,GAAS,CAAC,IAAA,KAA0C;AAC/D,EAAA,OAAO,IAAI,IAAA,CAAK,IAAI,EAAE,OAAA,EAAQ,GAAI,KAAK,GAAA,EAAI;AAC7C;AAKO,IAAM,QAAA,GAAW,CAAC,IAAA,KAA0C;AACjE,EAAA,OAAO,IAAI,IAAA,CAAK,IAAI,EAAE,OAAA,EAAQ,GAAI,KAAK,GAAA,EAAI;AAC7C;AAKO,IAAM,OAAA,GAAU,CAAC,IAAA,EAA8B,IAAA,KAAuB;AAC3E,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,OAAA,CAAQ,OAAA,CAAQ,OAAA,CAAQ,OAAA,EAAQ,GAAI,IAAI,CAAA;AACxC,EAAA,OAAO,OAAA;AACT;AAKO,IAAM,UAAA,GAAa,CAAC,IAAA,KAAuC;AAChE,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,OAAA,CAAQ,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AAC3B,EAAA,OAAO,OAAA;AACT;AAKO,IAAM,QAAA,GAAW,CAAC,IAAA,KAAuC;AAC9D,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,OAAA,CAAQ,QAAA,CAAS,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAChC,EAAA,OAAO,OAAA;AACT;;;AC9HO,IAAM,eAAA,GAAkB,OAAO,IAAA,KAAmC;AACvE,EAAA,IAAI;AAEF,IAAA,IAAI,SAAA,CAAU,SAAA,IAAa,MAAA,CAAO,eAAA,EAAiB;AACjD,MAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA;AACxC,MAAA,OAAO,IAAA;AAAA,IACT;AAGA,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,aAAA,CAAc,UAAU,CAAA;AAClD,IAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AACjB,IAAA,QAAA,CAAS,MAAM,QAAA,GAAW,OAAA;AAC1B,IAAA,QAAA,CAAS,MAAM,IAAA,GAAO,WAAA;AACtB,IAAA,QAAA,CAAS,MAAM,GAAA,GAAM,WAAA;AACrB,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,QAAQ,CAAA;AAClC,IAAA,QAAA,CAAS,KAAA,EAAM;AACf,IAAA,QAAA,CAAS,MAAA,EAAO;AAEhB,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,WAAA,CAAY,MAAM,CAAA;AAC3C,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,QAAQ,CAAA;AAClC,IAAA,OAAO,OAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,gCAAgC,KAAK,CAAA;AACnD,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAMO,IAAM,oBAAoB,YAAoC;AACnE,EAAA,IAAI;AACF,IAAA,IAAI,SAAA,CAAU,SAAA,IAAa,MAAA,CAAO,eAAA,EAAiB;AACjD,MAAA,OAAO,MAAM,SAAA,CAAU,SAAA,CAAU,QAAA,EAAS;AAAA,IAC5C;AACA,IAAA,OAAO,IAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,kCAAkC,KAAK,CAAA;AACrD,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAKO,IAAM,uBAAuB,MAAe;AACjD,EAAA,OAAO,CAAC,EAAE,SAAA,CAAU,SAAA,IAAa,MAAA,CAAO,eAAA,CAAA;AAC1C;;;ACjDO,IAAM,OAAA,GAAU,CAAC,IAAA,KAAyB;AAC/C,EAAA,OAAO,IAAA,CACJ,QAAA,EAAS,CACT,WAAA,EAAY,CACZ,MAAK,CACL,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA,CACnB,OAAA,CAAQ,aAAa,EAAE,CAAA,CACvB,OAAA,CAAQ,QAAA,EAAU,GAAG,CAAA,CACrB,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CACjB,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AACtB;AAKO,IAAM,aAAA,GAAgB,CAAC,IAAA,KAAyB;AACrD,EAAA,MAAM,QAAA,GAAW,QAAQ,IAAI,CAAA;AAC7B,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,GAAA,EAAI,CAAE,SAAS,EAAE,CAAA,GAAI,IAAA,CAAK,MAAA,GAAS,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,GAAG,CAAC,CAAA;AACxF,EAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA;AACpC;AAKO,IAAM,SAAA,GAAY,CAAC,IAAA,KAAyB;AACjD,EAAA,OAAO,IAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,GAAG,CAAA,CACjB,OAAA,CAAQ,OAAA,EAAS,CAAC,IAAA,KAAS,IAAA,CAAK,WAAA,EAAa,CAAA;AAClD;AAKO,IAAM,QAAA,GAAW,CACtB,IAAA,EACA,SAAA,EACA,SAAiB,KAAA,KACN;AACX,EAAA,IAAI,IAAA,CAAK,MAAA,IAAU,SAAA,EAAW,OAAO,IAAA;AACrC,EAAA,OAAO,IAAA,CAAK,UAAU,CAAA,EAAG,SAAA,GAAY,OAAO,MAAM,CAAA,CAAE,MAAK,GAAI,MAAA;AAC/D;AAKO,IAAM,aAAA,GAAgB,CAC3B,IAAA,EACA,QAAA,EACA,SAAiB,KAAA,KACN;AACX,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAC9B,EAAA,IAAI,KAAA,CAAM,MAAA,IAAU,QAAA,EAAU,OAAO,IAAA;AACrC,EAAA,OAAO,MAAM,KAAA,CAAM,CAAA,EAAG,QAAQ,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,MAAA;AAC9C;AAKO,IAAM,eAAA,GAAkB,CAAC,IAAA,KAAyB;AACvD,EAAA,OAAO,KAAK,OAAA,CAAQ,OAAA,EAAS,CAAC,IAAA,KAAS,IAAA,CAAK,aAAa,CAAA;AAC3D;AAKO,IAAM,UAAA,GAAa,CAAC,IAAA,KAAyB;AAClD,EAAA,IAAI,CAAC,MAAM,OAAO,EAAA;AAClB,EAAA,OAAO,IAAA,CAAK,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,IAAA,CAAK,MAAM,CAAC,CAAA;AACpD;AAKO,IAAM,YAAA,GAAe,CAAC,IAAA,KAAyB;AACpD,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,oBAAA,EAAsB,OAAO,EAAE,WAAA,EAAY;AACjE;AAKO,IAAM,YAAA,GAAe,CAAC,IAAA,KAAyB;AACpD,EAAA,OAAO,IAAA,CAAK,QAAQ,WAAA,EAAa,CAAC,GAAG,IAAA,KAAS,IAAA,CAAK,aAAa,CAAA;AAClE;;;ACxEO,IAAM,eAAN,MAAuD;AAAA,EACpD,QAAA,uBAA8D,GAAA,EAAI;AAAA;AAAA;AAAA;AAAA;AAAA,EAM1E,EAAA,CAA2B,OAAU,OAAA,EAA8C;AACjF,IAAA,IAAI,CAAC,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA,EAAG;AAC7B,MAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAA,kBAAO,IAAI,KAAK,CAAA;AAAA,IACpC;AACA,IAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA,CAAG,IAAI,OAAgC,CAAA;AAG9D,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,OAAO,CAAA;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAA,CAA6B,OAAU,OAAA,EAA8C;AACnF,IAAA,MAAM,cAAA,GAA0C,CAAC,IAAA,KAAS;AACxD,MAAA,IAAA,CAAK,GAAA,CAAI,OAAO,cAAc,CAAA;AAC9B,MAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,IACd,CAAA;AACA,IAAA,OAAO,IAAA,CAAK,EAAA,CAAG,KAAA,EAAO,cAAc,CAAA;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,GAAA,CAA4B,OAAU,OAAA,EAAwC;AAC5E,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA;AAC7C,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,aAAA,CAAc,OAAO,OAAgC,CAAA;AAAA,IACvD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAA,CAA6B,OAAU,IAAA,EAAuB;AAC5D,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA;AAC7C,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,aAAA,CAAc,OAAA,CAAQ,CAAC,OAAA,KAAY;AACjC,QAAA,IAAI;AACF,UAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,QACd,SAAS,KAAA,EAAO;AACd,UAAA,OAAA,CAAQ,MAAM,CAAA,4BAAA,EAA+B,MAAA,CAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAAA,QACvE;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB,KAAA,EAA4B;AAC7C,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,IAAA,CAAK,QAAA,CAAS,OAAO,KAAK,CAAA;AAAA,IAC5B,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,SAAS,KAAA,EAAM;AAAA,IACtB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,KAAA,EAA6B;AACzC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,KAAK,GAAG,IAAA,IAAQ,CAAA;AAAA,EAC3C;AACF;AAKO,IAAM,qBAAqB,MAAgE;AAChG,EAAA,OAAO,IAAI,YAAA,EAAqB;AAClC;AAKO,IAAM,SAAA,GAAY,IAAI,YAAA;;;ACnFtB,IAAM,gBAAN,MAAoB;AAAA,EACjB,OAAA;AAAA,EACA,OAAA;AAAA,EAER,YAAY,MAAA,EAAsB;AAChC,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,OAAA,CAAQ,OAAO,EAAE,CAAA;AAC/C,IAAA,IAAA,CAAK,OAAA,GAAU,OAAO,OAAA,IAAW,EAAA;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,IAAA,EAAsB;AAC1B,IAAA,MAAM,iBAAiB,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC7D,IAAA,MAAM,cAAc,IAAA,CAAK,OAAA,GAAU,CAAA,CAAA,EAAI,IAAA,CAAK,OAAO,CAAA,CAAA,GAAK,EAAA;AACxD,IAAA,OAAO,GAAG,IAAA,CAAK,OAAO,CAAA,EAAG,WAAW,GAAG,cAAc,CAAA,CAAA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA,EAKA,eAAA,CAAgB,MAAc,MAAA,EAAuE;AACnG,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAC3B,IAAA,MAAM,cAAA,GAAiB,MAAA,CAAO,OAAA,CAAQ,MAAM,EACzC,MAAA,CAAO,CAAC,GAAG,KAAK,CAAA,KAAM,KAAA,KAAU,MAAS,EACzC,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM,CAAA,EAAG,kBAAA,CAAmB,GAAG,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmB,MAAA,CAAO,KAAK,CAAC,CAAC,CAAA,CAAE,CAAA,CACvF,KAAK,GAAG,CAAA;AAEX,IAAA,OAAO,cAAA,GAAiB,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,GAAK,GAAA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAA,CAAoB,UAAkB,MAAA,EAAiD;AACrF,IAAA,IAAI,IAAA,GAAO,QAAA;AACX,IAAA,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC/C,MAAA,IAAA,GAAO,KAAK,OAAA,CAAQ,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,MAAA,CAAO,KAAK,CAAC,CAAA;AAC5C,MAAA,IAAA,GAAO,KAAK,OAAA,CAAQ,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAA,EAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,IAC/C,CAAC,CAAA;AACD,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,UAAA,GAAqB;AACnB,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,OAAA,EAAuB;AAChC,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAAA,EAC1C;AACF;AAKO,IAAM,mBAAA,GAAsB,CAAC,MAAA,KAAwC;AAC1E,EAAA,OAAO,IAAI,cAAc,MAAM,CAAA;AACjC;AAKO,IAAM,kBAAA,GAAqB,CAAC,OAAA,MAA4B;AAAA;AAAA,EAE7D,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,MAAM,OAAA,CAAQ,KAAA,CAAM,aAAa,CAAA;AAAA,IACxC,QAAA,EAAU,MAAM,OAAA,CAAQ,KAAA,CAAM,gBAAgB,CAAA;AAAA,IAC9C,MAAA,EAAQ,MAAM,OAAA,CAAQ,KAAA,CAAM,cAAc,CAAA;AAAA,IAC1C,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAA,CAAM,eAAe,CAAA;AAAA,IAC5C,EAAA,EAAI,MAAM,OAAA,CAAQ,KAAA,CAAM,UAAU,CAAA;AAAA,IAClC,cAAA,EAAgB,MAAM,OAAA,CAAQ,KAAA,CAAM,uBAAuB,CAAA;AAAA,IAC3D,aAAA,EAAe,MAAM,OAAA,CAAQ,KAAA,CAAM,sBAAsB;AAAA,GAC3D;AAAA;AAAA,EAGA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,MAAM,OAAA,CAAQ,KAAA,CAAM,QAAQ,CAAA;AAAA,IAClC,GAAA,EAAK,CAAC,EAAA,KAAe,OAAA,CAAQ,oBAAoB,YAAA,EAAc,EAAE,IAAI,CAAA;AAAA,IACrE,MAAA,EAAQ,MAAM,OAAA,CAAQ,KAAA,CAAM,QAAQ,CAAA;AAAA,IACpC,MAAA,EAAQ,CAAC,EAAA,KAAe,OAAA,CAAQ,oBAAoB,YAAA,EAAc,EAAE,IAAI,CAAA;AAAA,IACxE,MAAA,EAAQ,CAAC,EAAA,KAAe,OAAA,CAAQ,oBAAoB,YAAA,EAAc,EAAE,IAAI;AAAA,GAC1E;AAAA;AAAA,EAGA,IAAA,EAAM,CAAC,QAAA,MAAsB;AAAA,IAC3B,MAAM,MAAM,OAAA,CAAQ,KAAA,CAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CAAA;AAAA,IACxC,GAAA,EAAK,CAAC,EAAA,KAAe,OAAA,CAAQ,mBAAA,CAAoB,IAAI,QAAQ,CAAA,IAAA,CAAA,EAAQ,EAAE,EAAA,EAAI,CAAA;AAAA,IAC3E,QAAQ,MAAM,OAAA,CAAQ,KAAA,CAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CAAA;AAAA,IAC1C,MAAA,EAAQ,CAAC,EAAA,KAAe,OAAA,CAAQ,mBAAA,CAAoB,IAAI,QAAQ,CAAA,IAAA,CAAA,EAAQ,EAAE,EAAA,EAAI,CAAA;AAAA,IAC9E,MAAA,EAAQ,CAAC,EAAA,KAAe,OAAA,CAAQ,mBAAA,CAAoB,IAAI,QAAQ,CAAA,IAAA,CAAA,EAAQ,EAAE,EAAA,EAAI;AAAA,GAChF;AACF,CAAA;;;ACrGO,IAAM,iBAAA,GAAoB,CAAI,QAAA,KAA6E;AAChH,EAAA,OAAO,SAAS,OAAA,KAAY,IAAA;AAC9B;AAKO,IAAM,eAAA,GAAkB,CAAI,QAAA,KAA8E;AAC/G,EAAA,OAAO,SAAS,OAAA,KAAY,KAAA;AAC9B;AAKO,IAAM,eAAA,GAAkB,CAAI,QAAA,EAA0B,YAAA,KAAuB;AAClF,EAAA,IAAI,iBAAA,CAAkB,QAAQ,CAAA,IAAK,QAAA,CAAS,SAAS,MAAA,EAAW;AAC9D,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AACA,EAAA,OAAO,YAAA;AACT;AAKO,IAAM,eAAA,GAAkB,CAAI,QAAA,EAA0B,cAAA,GAAyB,mBAAA,KAAgC;AACpH,EAAA,IAAI,SAAS,KAAA,EAAO;AAClB,IAAA,OAAO,QAAA,CAAS,KAAA;AAAA,EAClB;AACA,EAAA,IAAI,SAAS,OAAA,EAAS;AACpB,IAAA,OAAO,QAAA,CAAS,OAAA;AAAA,EAClB;AACA,EAAA,OAAO,cAAA;AACT;AAKO,IAAM,OAAA,GAAU,CAAI,QAAA,KAAoF;AAC7G,EAAA,OAAO,QAAA,CAAS,IAAA,KAAS,IAAA,IAAQ,QAAA,CAAS,IAAA,KAAS,MAAA;AACrD;AAKO,IAAM,YAAA,GAAe,CAAI,QAAA,KAA4C;AAC1E,EAAA,OAAO,SAAS,UAAA,CAAW,WAAA;AAC7B;AAKO,IAAM,WAAA,GAAc,CAAI,QAAA,KAAkD;AAC/E,EAAA,IAAI,QAAA,CAAS,WAAW,WAAA,EAAa;AACnC,IAAA,OAAO,QAAA,CAAS,WAAW,IAAA,GAAO,CAAA;AAAA,EACpC;AACA,EAAA,OAAO,IAAA;AACT;AAKO,IAAM,WAAA,GAAc,CAAI,QAAA,KAAkD;AAC/E,EAAA,IAAI,QAAA,CAAS,WAAW,WAAA,EAAa;AACnC,IAAA,OAAO,QAAA,CAAS,WAAW,IAAA,GAAO,CAAA;AAAA,EACpC;AACA,EAAA,OAAO,IAAA;AACT;AAKO,IAAM,4BAA4B,OAAuB;AAAA,EAC9D,KAAA,EAAO,CAAA;AAAA,EACP,IAAA,EAAM,CAAA;AAAA,EACN,KAAA,EAAO,EAAA;AAAA,EACP,UAAA,EAAY,CAAA;AAAA,EACZ,WAAA,EAAa,KAAA;AAAA,EACb,WAAA,EAAa;AACf,CAAA;AAKO,IAAM,qBAAA,GAAwB,CAAI,IAAA,EAAS,OAAA,GAAkB,SAAA,MAA+B;AAAA,EACjG,OAAA,EAAS,IAAA;AAAA,EACT,OAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA,EAAY;AACd,CAAA;AAKO,IAAM,mBAAA,GAAsB,CACjC,OAAA,EACA,UAAA,GAAqB,KACrB,KAAA,MACwB;AAAA,EACxB,OAAA,EAAS,KAAA;AAAA,EACT,OAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA;;;ACjCA,SAAS,aAAa,OAAA,EAAyB;AAE7C,EAAA,OAAO,OAAA,CAAQ,QAAQ,gBAAA,EAAkB,EAAE,EAAE,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,OAAA;AAChE;AAKA,SAAS,eAAA,CAAgB,SAAiB,MAAA,EAAqE;AAC7G,EAAA,MAAM,YAAA,GAAe,aAAa,OAAO,CAAA;AACzC,EAAA,MAAM,WAAA,GAAc,aAAa,MAAM,CAAA;AAEvC,EAAA,IAAI,YAAA,KAAiB,aAAa,OAAO,MAAA;AAEzC,EAAA,MAAM,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA,GAAI,aAAa,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzE,EAAA,MAAM,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA,GAAI,YAAY,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AAGxE,EAAA,IAAI,MAAA,CAAO,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,YAAA;AAEjC,EAAA,IAAI,QAAA,GAAW,UAAU,OAAO,OAAA;AAChC,EAAA,IAAI,QAAA,GAAW,UAAU,OAAO,OAAA;AAChC,EAAA,IAAI,QAAA,GAAW,UAAU,OAAO,OAAA;AAEhC,EAAA,OAAO,MAAA;AACT;AAKA,eAAe,mBAAmB,WAAA,EAA6C;AAC7E,EAAA,IAAI;AAEF,IAAA,MAAM,WAAA,GAAc,WAAA,CAAY,UAAA,CAAW,GAAG,IAC1C,CAAA,CAAA,EAAI,kBAAA,CAAmB,WAAA,CAAY,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA,CAAA,GAC5C,mBAAmB,WAAW,CAAA;AAElC,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,2BAAA,EAA8B,WAAW,CAAA,CAAE,CAAA;AAExE,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,IAAA,GAAQ,MAAM,QAAA,CAAS,IAAA,EAAK;AAClC,IAAA,OAAO,IAAA,CAAK,WAAW,CAAA,EAAG,MAAA,IAAU,IAAA;AAAA,EACtC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAKA,eAAe,iBAAiB,MAAA,EAAoD;AAClF,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,IAAI,OAAO,UAAA,CAAW,SAAS,KAAK,MAAA,CAAO,UAAA,CAAW,UAAU,CAAA,EAAG;AACjE,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,MAAM,CAAA;AACnC,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,kCAAA,EAAqC,MAAM,CAAA,EAAA,EAAK,QAAA,CAAS,MAAM,CAAA,CAAE,CAAA;AAAA,IACnF;AACA,IAAA,OAAO,SAAS,IAAA,EAAK;AAAA,EACvB;AAIA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF;AAKA,eAAe,mBAAA,CACb,IAAA,EACA,IAAA,EACA,MAAA,EAC2B;AAC3B,EAAA,IAAI,CAAC,IAAA,EAAM,OAAO,EAAC;AAEnB,EAAA,MAAM,UAA4B,EAAC;AACnC,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA;AAGnC,EAAA,MAAM,gBAAA,GAAmB,EAAA;AACzB,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,MAAA,EAAQ,KAAK,gBAAA,EAAkB;AACzD,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,IAAI,gBAAgB,CAAA;AACnD,IAAA,MAAM,YAAA,GAAe,MAAM,OAAA,CAAQ,GAAA;AAAA,MACjC,MAAM,GAAA,CAAI,OAAO,CAAC,IAAA,EAAM,cAAc,CAAA,KAAM;AAC1C,QAAA,IAAI;AACF,UAAA,MAAM,MAAA,GAAS,MAAM,kBAAA,CAAmB,IAAI,CAAA;AAE5C,UAAA,IAAI,CAAC,MAAA,EAAQ;AACX,YAAA,MAAA,CAAO,IAAA,CAAK,CAAA,mCAAA,EAAsC,IAAI,CAAA,CAAE,CAAA;AACxD,YAAA,OAAO;AAAA,cACL,IAAA;AAAA,cACA,OAAA,EAAS,cAAA;AAAA,cACT,MAAA,EAAQ,SAAA;AAAA,cACR,SAAA,EAAW,KAAA;AAAA,cACX,UAAA,EAAY,MAAA;AAAA,cACZ,cAAA,EAAgB;AAAA,aAClB;AAAA,UACF;AAEA,UAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,cAAA,EAAgB,MAAM,CAAA;AAEzD,UAAA,OAAO;AAAA,YACL,IAAA;AAAA,YACA,OAAA,EAAS,cAAA;AAAA,YACT,MAAA;AAAA,YACA,WAAW,UAAA,KAAe,MAAA;AAAA,YAC1B,UAAA;AAAA,YACA,cAAA,EAAgB;AAAA,WAClB;AAAA,QACF,SAAS,GAAA,EAAK;AACZ,UAAA,MAAA,CAAO,IAAA,CAAK,CAAA,eAAA,EAAkB,IAAI,CAAA,EAAA,EAAK,GAAG,CAAA,CAAE,CAAA;AAC5C,UAAA,OAAO;AAAA,YACL,IAAA;AAAA,YACA,OAAA,EAAS,cAAA;AAAA,YACT,MAAA,EAAQ,OAAA;AAAA,YACR,SAAA,EAAW,KAAA;AAAA,YACX,UAAA,EAAY,MAAA;AAAA,YACZ,cAAA,EAAgB;AAAA,WAClB;AAAA,QACF;AAAA,MACF,CAAC;AAAA,KACH;AACA,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,YAAY,CAAA;AAAA,EAC9B;AAEA,EAAA,OAAO,OAAA;AACT;AAsBA,eAAsB,aACpB,MAAA,EAC6B;AAC7B,EAAA,MAAM,SAAmB,EAAC;AAG1B,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI;AACF,IAAA,GAAA,GAAM,MAAM,iBAAiB,MAAM,CAAA;AAAA,EACrC,SAAS,GAAA,EAAK;AACZ,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,6BAAA,EAAgC,GAAG,CAAA,CAAE,CAAA;AAAA,EACvD;AAGA,EAAA,MAAM,CAAC,cAAc,eAAA,EAAiB,gBAAA,EAAkB,oBAAoB,CAAA,GAC1E,MAAM,QAAQ,GAAA,CAAI;AAAA,IAChB,mBAAA,CAAoB,GAAA,CAAI,YAAA,EAAc,cAAA,EAAgB,MAAM,CAAA;AAAA,IAC5D,mBAAA,CAAoB,GAAA,CAAI,eAAA,EAAiB,iBAAA,EAAmB,MAAM,CAAA;AAAA,IAClE,mBAAA,CAAoB,GAAA,CAAI,gBAAA,EAAkB,kBAAA,EAAoB,MAAM,CAAA;AAAA,IACpE,mBAAA,CAAoB,GAAA,CAAI,oBAAA,EAAsB,sBAAA,EAAwB,MAAM;AAAA,GAC7E,CAAA;AAEH,EAAA,MAAM,OAAA,GAAU,CAAC,GAAG,YAAA,EAAc,GAAG,eAAA,EAAiB,GAAG,gBAAA,EAAkB,GAAG,oBAAoB,CAAA;AAElG,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,IAAI,IAAA,IAAQ,SAAA;AAAA,IACzB,cAAA,EAAgB,IAAI,OAAA,IAAW,OAAA;AAAA,IAC/B,mBAAmB,OAAA,CAAQ,MAAA;AAAA,IAC3B,eAAe,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,CAAA,CAAE,MAAA;AAAA,IAClD,YAAA,EAAc,OAAA;AAAA,IACd,MAAA,EAAQ;AAAA,MACN,YAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,OAAO,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,eAAe,OAAO,CAAA;AAAA,MACrD,OAAO,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,eAAe,OAAO,CAAA;AAAA,MACrD,OAAO,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,eAAe,OAAO,CAAA;AAAA,MACrD,YAAY,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,eAAe,YAAY;AAAA,KACjE;AAAA,IACA,SAAA,sBAAe,IAAA,EAAK;AAAA,IACpB;AAAA,GACF;AACF;AAKO,SAAS,yBAAyB,MAAA,EAAoC;AAC3E,EAAA,MAAM,QAAkB,EAAC;AAEzB,EAAA,KAAA,CAAM,KAAK,CAAA,mBAAA,EAAe,MAAA,CAAO,WAAW,CAAA,CAAA,EAAI,MAAA,CAAO,cAAc,CAAA,CAAE,CAAA;AACvE,EAAA,KAAA,CAAM,KAAK,CAAA,mBAAA,EAAe,MAAA,CAAO,SAAA,CAAU,WAAA,EAAa,CAAA,CAAE,CAAA;AAC1D,EAAA,KAAA,CAAM,KAAK,CAAA,iBAAA,EAAa,MAAA,CAAO,iBAAiB,CAAA,aAAA,EAAgB,MAAA,CAAO,aAAa,CAAA,CAAE,CAAA;AACtF,EAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AAEb,EAAA,IAAI,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACxC,IAAA,KAAA,CAAM,KAAK,0BAAmB,CAAA;AAC9B,IAAA,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,KAAM;AACvC,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,GAAA,EAAM,CAAA,CAAE,IAAI,CAAA,EAAA,EAAK,EAAE,OAAO,CAAA,QAAA,EAAM,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA;AAAA,IACvD,CAAC,CAAA;AACD,IAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AAAA,EACf;AAEA,EAAA,IAAI,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACxC,IAAA,KAAA,CAAM,KAAK,0BAAmB,CAAA;AAC9B,IAAA,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,KAAM;AACvC,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,GAAA,EAAM,CAAA,CAAE,IAAI,CAAA,EAAA,EAAK,EAAE,OAAO,CAAA,QAAA,EAAM,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA;AAAA,IACvD,CAAC,CAAA;AACD,IAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AAAA,EACf;AAEA,EAAA,IAAI,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACxC,IAAA,KAAA,CAAM,KAAK,0BAAmB,CAAA;AAC9B,IAAA,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,KAAM;AACvC,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,GAAA,EAAM,CAAA,CAAE,IAAI,CAAA,EAAA,EAAK,EAAE,OAAO,CAAA,QAAA,EAAM,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA;AAAA,IACvD,CAAC,CAAA;AACD,IAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AAAA,EACf;AAEA,EAAA,IAAI,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC5B,IAAA,KAAA,CAAM,KAAK,uBAAa,CAAA;AACxB,IAAA,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAA,KAAM;AAC3B,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,GAAA,EAAM,CAAC,CAAA,CAAE,CAAA;AAAA,IACtB,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,KAAA,CAAM,KAAK,IAAI,CAAA;AACxB;AAKO,SAAS,kBAAA,CACd,MAAA,EACA,OAAA,GAII,EAAC,EACG;AACR,EAAA,MAAM,EAAE,UAAA,GAAa,KAAA,EAAO,cAAc,KAAA,EAAO,OAAA,GAAU,OAAM,GAAI,OAAA;AAErE,EAAA,IAAI,WAAqB,EAAC;AAE1B,EAAA,QAAQ,UAAA;AAAY,IAClB,KAAK,OAAA;AACH,MAAA,QAAA,GAAW,OAAO,YAAA,CAAa,KAAA,CAAM,IAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AACtD,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAA,QAAA,GAAW,OAAO,YAAA,CAAa,KAAA,CAAM,IAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AACtD,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAA,QAAA,GAAW,OAAO,YAAA,CAAa,KAAA,CAAM,IAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AACtD,MAAA;AAAA,IACF;AACE,MAAA,QAAA,GAAW,MAAA,CAAO,YAAA,CAAa,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAI,CAAA;AAAA;AAG/E,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,IAAA,OAAO,wBAAA;AAAA,EACT;AAEA,EAAA,IAAI,GAAA,GAAM,uBAAA;AAEV,EAAA,IAAI,SAAS,MAAA,GAAS,CAAA,IAAK,SAAS,MAAA,GAAS,MAAA,CAAO,aAAa,MAAA,EAAQ;AACvE,IAAA,GAAA,IAAO,CAAA,WAAA,EAAc,QAAA,CAAS,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,EACzC;AAEA,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,GAAA,IAAO,gBAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,GAAA,IAAO,YAAA;AAAA,EACT;AAEA,EAAA,OAAO,GAAA;AACT;AAKO,IAAM,YAAA,GAAe;AAAA,EAC1B,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ,wBAAA;AAAA,EACR,kBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF","file":"index.mjs","sourcesContent":["/**\r\n * Format date to readable string\r\n * @param date - Date to format\r\n * @param locale - Locale for formatting (default: 'en-US')\r\n */\r\nexport const formatDate = (\r\n date: Date | string | number,\r\n locale: string = 'en-US'\r\n): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toLocaleDateString(locale, {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n });\r\n};\r\n\r\n/**\r\n * Format date with time\r\n */\r\nexport const formatDateTime = (\r\n date: Date | string | number,\r\n locale: string = 'en-US'\r\n): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toLocaleDateString(locale, {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n};\r\n\r\n/**\r\n * Format date as relative time (e.g., \"2 hours ago\")\r\n */\r\nexport const formatRelativeTime = (date: Date | string | number): string => {\r\n const dateObj = new Date(date);\r\n const now = new Date();\r\n const diffInSeconds = Math.floor((now.getTime() - dateObj.getTime()) / 1000);\r\n\r\n const intervals: { label: string; seconds: number }[] = [\r\n { label: 'year', seconds: 31536000 },\r\n { label: 'month', seconds: 2592000 },\r\n { label: 'week', seconds: 604800 },\r\n { label: 'day', seconds: 86400 },\r\n { label: 'hour', seconds: 3600 },\r\n { label: 'minute', seconds: 60 },\r\n { label: 'second', seconds: 1 },\r\n ];\r\n\r\n for (const interval of intervals) {\r\n const count = Math.floor(diffInSeconds / interval.seconds);\r\n if (count >= 1) {\r\n return `${count} ${interval.label}${count !== 1 ? 's' : ''} ago`;\r\n }\r\n }\r\n\r\n return 'just now';\r\n};\r\n\r\n/**\r\n * Format date for input[type=\"date\"]\r\n */\r\nexport const formatDateForInput = (date: Date | string | number): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toISOString().split('T')[0];\r\n};\r\n\r\n/**\r\n * Format date for input[type=\"datetime-local\"]\r\n */\r\nexport const formatDateTimeForInput = (date: Date | string | number): string => {\r\n const dateObj = new Date(date);\r\n return dateObj.toISOString().slice(0, 16);\r\n};\r\n\r\n/**\r\n * Check if date is today\r\n */\r\nexport const isToday = (date: Date | string | number): boolean => {\r\n const dateObj = new Date(date);\r\n const today = new Date();\r\n return (\r\n dateObj.getDate() === today.getDate() &&\r\n dateObj.getMonth() === today.getMonth() &&\r\n dateObj.getFullYear() === today.getFullYear()\r\n );\r\n};\r\n\r\n/**\r\n * Check if date is in the past\r\n */\r\nexport const isPast = (date: Date | string | number): boolean => {\r\n return new Date(date).getTime() < Date.now();\r\n};\r\n\r\n/**\r\n * Check if date is in the future\r\n */\r\nexport const isFuture = (date: Date | string | number): boolean => {\r\n return new Date(date).getTime() > Date.now();\r\n};\r\n\r\n/**\r\n * Add days to a date\r\n */\r\nexport const addDays = (date: Date | string | number, days: number): Date => {\r\n const dateObj = new Date(date);\r\n dateObj.setDate(dateObj.getDate() + days);\r\n return dateObj;\r\n};\r\n\r\n/**\r\n * Get start of day\r\n */\r\nexport const startOfDay = (date: Date | string | number): Date => {\r\n const dateObj = new Date(date);\r\n dateObj.setHours(0, 0, 0, 0);\r\n return dateObj;\r\n};\r\n\r\n/**\r\n * Get end of day\r\n */\r\nexport const endOfDay = (date: Date | string | number): Date => {\r\n const dateObj = new Date(date);\r\n dateObj.setHours(23, 59, 59, 999);\r\n return dateObj;\r\n};\r\n\r\nexport default {\r\n formatDate,\r\n formatDateTime,\r\n formatRelativeTime,\r\n formatDateForInput,\r\n formatDateTimeForInput,\r\n isToday,\r\n isPast,\r\n isFuture,\r\n addDays,\r\n startOfDay,\r\n endOfDay,\r\n};\r\n","/**\r\n * Copy text to clipboard\r\n * @returns Promise<boolean> - true if successful\r\n */\r\nexport const copyToClipboard = async (text: string): Promise<boolean> => {\r\n try {\r\n // Modern API (preferred)\r\n if (navigator.clipboard && window.isSecureContext) {\r\n await navigator.clipboard.writeText(text);\r\n return true;\r\n }\r\n\r\n // Fallback for older browsers or non-secure contexts\r\n const textArea = document.createElement('textarea');\r\n textArea.value = text;\r\n textArea.style.position = 'fixed';\r\n textArea.style.left = '-999999px';\r\n textArea.style.top = '-999999px';\r\n document.body.appendChild(textArea);\r\n textArea.focus();\r\n textArea.select();\r\n\r\n const success = document.execCommand('copy');\r\n document.body.removeChild(textArea);\r\n return success;\r\n } catch (error) {\r\n console.error('Failed to copy to clipboard:', error);\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * Read text from clipboard\r\n * @returns Promise<string | null>\r\n */\r\nexport const readFromClipboard = async (): Promise<string | null> => {\r\n try {\r\n if (navigator.clipboard && window.isSecureContext) {\r\n return await navigator.clipboard.readText();\r\n }\r\n return null;\r\n } catch (error) {\r\n console.error('Failed to read from clipboard:', error);\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Check if clipboard API is available\r\n */\r\nexport const isClipboardAvailable = (): boolean => {\r\n return !!(navigator.clipboard && window.isSecureContext);\r\n};\r\n\r\nexport default {\r\n copyToClipboard,\r\n readFromClipboard,\r\n isClipboardAvailable,\r\n};\r\n","/**\r\n * Generate URL-friendly slug from text\r\n */\r\nexport const slugify = (text: string): string => {\r\n return text\r\n .toString()\r\n .toLowerCase()\r\n .trim()\r\n .replace(/\\s+/g, '-') // Replace spaces with -\r\n .replace(/[^\\w\\-]+/g, '') // Remove non-word chars\r\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n .replace(/^-+/, '') // Trim - from start\r\n .replace(/-+$/, ''); // Trim - from end\r\n};\r\n\r\n/**\r\n * Generate slug with unique suffix\r\n */\r\nexport const slugifyUnique = (text: string): string => {\r\n const baseSlug = slugify(text);\r\n const uniqueSuffix = Date.now().toString(36) + Math.random().toString(36).substring(2, 5);\r\n return `${baseSlug}-${uniqueSuffix}`;\r\n};\r\n\r\n/**\r\n * Convert slug back to readable text\r\n */\r\nexport const unslugify = (slug: string): string => {\r\n return slug\r\n .replace(/-/g, ' ')\r\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\r\n};\r\n\r\n/**\r\n * Truncate text to specified length with ellipsis\r\n */\r\nexport const truncate = (\r\n text: string,\r\n maxLength: number,\r\n suffix: string = '...'\r\n): string => {\r\n if (text.length <= maxLength) return text;\r\n return text.substring(0, maxLength - suffix.length).trim() + suffix;\r\n};\r\n\r\n/**\r\n * Truncate text by words\r\n */\r\nexport const truncateWords = (\r\n text: string,\r\n maxWords: number,\r\n suffix: string = '...'\r\n): string => {\r\n const words = text.split(/\\s+/);\r\n if (words.length <= maxWords) return text;\r\n return words.slice(0, maxWords).join(' ') + suffix;\r\n};\r\n\r\n/**\r\n * Capitalize first letter of each word\r\n */\r\nexport const capitalizeWords = (text: string): string => {\r\n return text.replace(/\\b\\w/g, (char) => char.toUpperCase());\r\n};\r\n\r\n/**\r\n * Capitalize first letter only\r\n */\r\nexport const capitalize = (text: string): string => {\r\n if (!text) return '';\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n};\r\n\r\n/**\r\n * Convert camelCase to kebab-case\r\n */\r\nexport const camelToKebab = (text: string): string => {\r\n return text.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\r\n};\r\n\r\n/**\r\n * Convert kebab-case to camelCase\r\n */\r\nexport const kebabToCamel = (text: string): string => {\r\n return text.replace(/-([a-z])/g, (_, char) => char.toUpperCase());\r\n};\r\n\r\nexport default {\r\n slugify,\r\n slugifyUnique,\r\n unslugify,\r\n truncate,\r\n truncateWords,\r\n capitalizeWords,\r\n capitalize,\r\n camelToKebab,\r\n kebabToCamel,\r\n};\r\n","/**\r\n * Event Emitter for client-side event handling\r\n */\r\n\r\ntype EventHandler<T = unknown> = (data: T) => void;\r\n\r\ninterface EventMap {\r\n [event: string]: unknown;\r\n}\r\n\r\n/**\r\n * Simple typed event emitter for browser use\r\n */\r\nexport class EventEmitter<Events extends EventMap = EventMap> {\r\n private handlers: Map<keyof Events, Set<EventHandler<unknown>>> = new Map();\r\n\r\n /**\r\n * Subscribe to an event\r\n * @returns Unsubscribe function\r\n */\r\n on<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): () => void {\r\n if (!this.handlers.has(event)) {\r\n this.handlers.set(event, new Set());\r\n }\r\n this.handlers.get(event)!.add(handler as EventHandler<unknown>);\r\n\r\n // Return unsubscribe function\r\n return () => this.off(event, handler);\r\n }\r\n\r\n /**\r\n * Subscribe to an event once\r\n */\r\n once<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): () => void {\r\n const wrappedHandler: EventHandler<Events[K]> = (data) => {\r\n this.off(event, wrappedHandler);\r\n handler(data);\r\n };\r\n return this.on(event, wrappedHandler);\r\n }\r\n\r\n /**\r\n * Unsubscribe from an event\r\n */\r\n off<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): void {\r\n const eventHandlers = this.handlers.get(event);\r\n if (eventHandlers) {\r\n eventHandlers.delete(handler as EventHandler<unknown>);\r\n }\r\n }\r\n\r\n /**\r\n * Emit an event\r\n */\r\n emit<K extends keyof Events>(event: K, data: Events[K]): void {\r\n const eventHandlers = this.handlers.get(event);\r\n if (eventHandlers) {\r\n eventHandlers.forEach((handler) => {\r\n try {\r\n handler(data);\r\n } catch (error) {\r\n console.error(`Error in event handler for \"${String(event)}\":`, error);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Remove all handlers for an event (or all events)\r\n */\r\n removeAllListeners(event?: keyof Events): void {\r\n if (event) {\r\n this.handlers.delete(event);\r\n } else {\r\n this.handlers.clear();\r\n }\r\n }\r\n\r\n /**\r\n * Get count of listeners for an event\r\n */\r\n listenerCount(event: keyof Events): number {\r\n return this.handlers.get(event)?.size ?? 0;\r\n }\r\n}\r\n\r\n/**\r\n * Create a new event emitter instance\r\n */\r\nexport const createEventEmitter = <Events extends EventMap = EventMap>(): EventEmitter<Events> => {\r\n return new EventEmitter<Events>();\r\n};\r\n\r\n/**\r\n * Global app event emitter (singleton)\r\n */\r\nexport const appEvents = new EventEmitter<{\r\n 'auth:login': { userId: string };\r\n 'auth:logout': void;\r\n 'notification:show': { message: string; type: 'success' | 'error' | 'warning' | 'info' };\r\n 'theme:change': 'light' | 'dark';\r\n [key: string]: unknown;\r\n}>();\r\n\r\nexport default {\r\n EventEmitter,\r\n createEventEmitter,\r\n appEvents,\r\n};\r\n","/**\r\n * API URL Builder\r\n * Centralized API endpoint management\r\n */\r\n\r\nexport interface ApiUrlConfig {\r\n baseUrl: string;\r\n version?: string;\r\n}\r\n\r\n/**\r\n * API URL builder class\r\n */\r\nexport class ApiUrlBuilder {\r\n private baseUrl: string;\r\n private version: string;\r\n\r\n constructor(config: ApiUrlConfig) {\r\n this.baseUrl = config.baseUrl.replace(/\\/$/, ''); // Remove trailing slash\r\n this.version = config.version || '';\r\n }\r\n\r\n /**\r\n * Build full URL from path\r\n */\r\n build(path: string): string {\r\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\r\n const versionPath = this.version ? `/${this.version}` : '';\r\n return `${this.baseUrl}${versionPath}${normalizedPath}`;\r\n }\r\n\r\n /**\r\n * Build URL with query parameters\r\n */\r\n buildWithParams(path: string, params: Record<string, string | number | boolean | undefined>): string {\r\n const url = this.build(path);\r\n const filteredParams = Object.entries(params)\r\n .filter(([, value]) => value !== undefined)\r\n .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)\r\n .join('&');\r\n\r\n return filteredParams ? `${url}?${filteredParams}` : url;\r\n }\r\n\r\n /**\r\n * Build URL with path parameters\r\n */\r\n buildWithPathParams(template: string, params: Record<string, string | number>): string {\r\n let path = template;\r\n Object.entries(params).forEach(([key, value]) => {\r\n path = path.replace(`:${key}`, String(value));\r\n path = path.replace(`{${key}}`, String(value));\r\n });\r\n return this.build(path);\r\n }\r\n\r\n /**\r\n * Get base URL\r\n */\r\n getBaseUrl(): string {\r\n return this.baseUrl;\r\n }\r\n\r\n /**\r\n * Set new base URL\r\n */\r\n setBaseUrl(baseUrl: string): void {\r\n this.baseUrl = baseUrl.replace(/\\/$/, '');\r\n }\r\n}\r\n\r\n/**\r\n * Create API URL builder\r\n */\r\nexport const createApiUrlBuilder = (config: ApiUrlConfig): ApiUrlBuilder => {\r\n return new ApiUrlBuilder(config);\r\n};\r\n\r\n/**\r\n * Common API endpoints factory\r\n */\r\nexport const createApiEndpoints = (builder: ApiUrlBuilder) => ({\r\n // Auth endpoints\r\n auth: {\r\n login: () => builder.build('/auth/login'),\r\n register: () => builder.build('/auth/register'),\r\n logout: () => builder.build('/auth/logout'),\r\n refresh: () => builder.build('/auth/refresh'),\r\n me: () => builder.build('/auth/me'),\r\n forgotPassword: () => builder.build('/auth/forgot-password'),\r\n resetPassword: () => builder.build('/auth/reset-password'),\r\n },\r\n\r\n // User endpoints\r\n users: {\r\n list: () => builder.build('/users'),\r\n get: (id: string) => builder.buildWithPathParams('/users/:id', { id }),\r\n create: () => builder.build('/users'),\r\n update: (id: string) => builder.buildWithPathParams('/users/:id', { id }),\r\n delete: (id: string) => builder.buildWithPathParams('/users/:id', { id }),\r\n },\r\n\r\n // Generic CRUD factory\r\n crud: (resource: string) => ({\r\n list: () => builder.build(`/${resource}`),\r\n get: (id: string) => builder.buildWithPathParams(`/${resource}/:id`, { id }),\r\n create: () => builder.build(`/${resource}`),\r\n update: (id: string) => builder.buildWithPathParams(`/${resource}/:id`, { id }),\r\n delete: (id: string) => builder.buildWithPathParams(`/${resource}/:id`, { id }),\r\n }),\r\n});\r\n\r\nexport default {\r\n ApiUrlBuilder,\r\n createApiUrlBuilder,\r\n createApiEndpoints,\r\n};\r\n","/**\n * Response Parser Utilities\n * Common patterns for parsing API responses\n */\nimport type { ApiResponse, PaginatedResponse, PaginationMeta } from '../../shared/types';\n\n/**\n * Check if response is successful\n */\nexport const isSuccessResponse = <T>(response: ApiResponse<T>): response is ApiResponse<T> & { success: true } => {\n return response.success === true;\n};\n\n/**\n * Check if response is an error\n */\nexport const isErrorResponse = <T>(response: ApiResponse<T>): response is ApiResponse<T> & { success: false } => {\n return response.success === false;\n};\n\n/**\n * Extract data from response or return default\n */\nexport const getResponseData = <T>(response: ApiResponse<T>, defaultValue: T): T => {\n if (isSuccessResponse(response) && response.data !== undefined) {\n return response.data;\n }\n return defaultValue;\n};\n\n/**\n * Extract error message from response\n */\nexport const getErrorMessage = <T>(response: ApiResponse<T>, defaultMessage: string = 'An error occurred'): string => {\n if (response.error) {\n return response.error;\n }\n if (response.message) {\n return response.message;\n }\n return defaultMessage;\n};\n\n/**\n * Check if response has data\n */\nexport const hasData = <T>(response: ApiResponse<T>): response is ApiResponse<T> & { data: NonNullable<T> } => {\n return response.data !== null && response.data !== undefined;\n};\n\n/**\n * Check if paginated response has more pages\n */\nexport const hasMorePages = <T>(response: PaginatedResponse<T>): boolean => {\n return response.pagination.hasNextPage;\n};\n\n/**\n * Get next page number from paginated response\n */\nexport const getNextPage = <T>(response: PaginatedResponse<T>): number | null => {\n if (response.pagination.hasNextPage) {\n return response.pagination.page + 1;\n }\n return null;\n};\n\n/**\n * Get previous page number from paginated response\n */\nexport const getPrevPage = <T>(response: PaginatedResponse<T>): number | null => {\n if (response.pagination.hasPrevPage) {\n return response.pagination.page - 1;\n }\n return null;\n};\n\n/**\n * Create empty pagination meta\n */\nexport const createEmptyPaginationMeta = (): PaginationMeta => ({\n total: 0,\n page: 1,\n limit: 10,\n totalPages: 0,\n hasNextPage: false,\n hasPrevPage: false,\n});\n\n/**\n * Create success response\n */\nexport const createSuccessResponse = <T>(data: T, message: string = 'Success'): ApiResponse<T> => ({\n success: true,\n message,\n data,\n statusCode: 200,\n});\n\n/**\n * Create error response\n */\nexport const createErrorResponse = (\n message: string,\n statusCode: number = 400,\n error?: string\n): ApiResponse<never> => ({\n success: false,\n message,\n error,\n statusCode,\n});\n\nexport default {\n isSuccessResponse,\n isErrorResponse,\n getResponseData,\n getErrorMessage,\n hasData,\n hasMorePages,\n getNextPage,\n getPrevPage,\n createEmptyPaginationMeta,\n createSuccessResponse,\n createErrorResponse,\n};\n","/**\r\n * Package Check Utility\r\n * Analyzes package.json dependencies and checks for updates\r\n * \r\n * Features:\r\n * - Fetches package.json from URL or file path\r\n * - Checks all dependency types (dependencies, devDependencies, peerDependencies, optionalDependencies)\r\n * - Compares versions with npm registry\r\n * - Provides update suggestions\r\n * - Supports auto mode with npm-check-updates\r\n */\r\n\r\nexport interface PackageVersion {\r\n /** Package name */\r\n name: string;\r\n /** Current version in package.json */\r\n current: string;\r\n /** Latest version available on npm */\r\n latest: string;\r\n /** Is update available? */\r\n hasUpdate: boolean;\r\n /** Update type: major, minor, patch, or none */\r\n updateType: 'major' | 'minor' | 'patch' | 'prerelease' | 'none';\r\n /** Dependency type */\r\n dependencyType: 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies';\r\n}\r\n\r\nexport interface PackageCheckResult {\r\n /** Package name from package.json */\r\n packageName: string;\r\n /** Current package version */\r\n packageVersion: string;\r\n /** Total dependencies checked */\r\n totalDependencies: number;\r\n /** Dependencies with updates available */\r\n outdatedCount: number;\r\n /** All dependency information */\r\n dependencies: PackageVersion[];\r\n /** Dependencies grouped by type */\r\n byType: {\r\n dependencies: PackageVersion[];\r\n devDependencies: PackageVersion[];\r\n peerDependencies: PackageVersion[];\r\n optionalDependencies: PackageVersion[];\r\n };\r\n /** Dependencies grouped by update type */\r\n byUpdateType: {\r\n major: PackageVersion[];\r\n minor: PackageVersion[];\r\n patch: PackageVersion[];\r\n prerelease: PackageVersion[];\r\n };\r\n /** Timestamp of check */\r\n checkedAt: Date;\r\n /** Errors encountered */\r\n errors: string[];\r\n}\r\n\r\nexport interface PackageJson {\r\n name?: string;\r\n version?: string;\r\n dependencies?: Record<string, string>;\r\n devDependencies?: Record<string, string>;\r\n peerDependencies?: Record<string, string>;\r\n optionalDependencies?: Record<string, string>;\r\n}\r\n\r\nexport interface NpmRegistryResponse {\r\n 'dist-tags': {\r\n latest: string;\r\n [key: string]: string;\r\n };\r\n versions: Record<string, unknown>;\r\n}\r\n\r\n/**\r\n * Parse version string, removing range operators\r\n */\r\nfunction parseVersion(version: string): string {\r\n // Remove range operators: ^, ~, >=, <=, >, <, =, ||, etc.\r\n return version.replace(/[\\^~>=<|*x\\s]/g, '').split(' ')[0] || '0.0.0';\r\n}\r\n\r\n/**\r\n * Compare two semver versions\r\n */\r\nfunction compareVersions(current: string, latest: string): 'major' | 'minor' | 'patch' | 'prerelease' | 'none' {\r\n const currentClean = parseVersion(current);\r\n const latestClean = parseVersion(latest);\r\n\r\n if (currentClean === latestClean) return 'none';\r\n\r\n const [curMajor, curMinor, curPatch] = currentClean.split('.').map(Number);\r\n const [latMajor, latMinor, latPatch] = latestClean.split('.').map(Number);\r\n\r\n // Check for prerelease\r\n if (latest.includes('-')) return 'prerelease';\r\n\r\n if (latMajor > curMajor) return 'major';\r\n if (latMinor > curMinor) return 'minor';\r\n if (latPatch > curPatch) return 'patch';\r\n\r\n return 'none';\r\n}\r\n\r\n/**\r\n * Fetch latest version from npm registry\r\n */\r\nasync function fetchLatestVersion(packageName: string): Promise<string | null> {\r\n try {\r\n // Handle scoped packages\r\n const encodedName = packageName.startsWith('@')\r\n ? `@${encodeURIComponent(packageName.slice(1))}`\r\n : encodeURIComponent(packageName);\r\n\r\n const response = await fetch(`https://registry.npmjs.org/${encodedName}`);\r\n\r\n if (!response.ok) {\r\n return null;\r\n }\r\n\r\n const data = (await response.json()) as NpmRegistryResponse;\r\n return data['dist-tags']?.latest || null;\r\n } catch {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Fetch package.json from URL or return parsed object\r\n */\r\nasync function fetchPackageJson(source: string | PackageJson): Promise<PackageJson> {\r\n if (typeof source === 'object') {\r\n return source;\r\n }\r\n\r\n // If it's a URL, fetch it\r\n if (source.startsWith('http://') || source.startsWith('https://')) {\r\n const response = await fetch(source);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch package.json from ${source}: ${response.status}`);\r\n }\r\n return response.json() as Promise<PackageJson>;\r\n }\r\n\r\n // For file paths, we need to use dynamic import or Node.js fs\r\n // In browser context, this won't work - throw helpful error\r\n throw new Error(\r\n 'File path support requires Node.js environment. Use URL or pass package.json object directly.'\r\n );\r\n}\r\n\r\n/**\r\n * Check a single dependency type\r\n */\r\nasync function checkDependencyType(\r\n deps: Record<string, string> | undefined,\r\n type: PackageVersion['dependencyType'],\r\n errors: string[]\r\n): Promise<PackageVersion[]> {\r\n if (!deps) return [];\r\n\r\n const results: PackageVersion[] = [];\r\n const entries = Object.entries(deps);\r\n\r\n // Process in parallel with concurrency limit\r\n const concurrencyLimit = 10;\r\n for (let i = 0; i < entries.length; i += concurrencyLimit) {\r\n const batch = entries.slice(i, i + concurrencyLimit);\r\n const batchResults = await Promise.all(\r\n batch.map(async ([name, currentVersion]) => {\r\n try {\r\n const latest = await fetchLatestVersion(name);\r\n\r\n if (!latest) {\r\n errors.push(`Could not fetch latest version for ${name}`);\r\n return {\r\n name,\r\n current: currentVersion,\r\n latest: 'unknown',\r\n hasUpdate: false,\r\n updateType: 'none' as const,\r\n dependencyType: type,\r\n };\r\n }\r\n\r\n const updateType = compareVersions(currentVersion, latest);\r\n\r\n return {\r\n name,\r\n current: currentVersion,\r\n latest,\r\n hasUpdate: updateType !== 'none',\r\n updateType,\r\n dependencyType: type,\r\n };\r\n } catch (err) {\r\n errors.push(`Error checking ${name}: ${err}`);\r\n return {\r\n name,\r\n current: currentVersion,\r\n latest: 'error',\r\n hasUpdate: false,\r\n updateType: 'none' as const,\r\n dependencyType: type,\r\n };\r\n }\r\n })\r\n );\r\n results.push(...batchResults);\r\n }\r\n\r\n return results;\r\n}\r\n\r\n/**\r\n * Main function to check package.json for updates\r\n * \r\n * @example\r\n * // From URL\r\n * const result = await checkPackage('https://raw.githubusercontent.com/user/repo/main/package.json');\r\n * \r\n * @example\r\n * // From object\r\n * const result = await checkPackage({\r\n * name: 'my-package',\r\n * dependencies: { 'lodash': '^4.17.0' }\r\n * });\r\n * \r\n * @example\r\n * // In Node.js, read file first\r\n * import fs from 'fs';\r\n * const pkg = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));\r\n * const result = await checkPackage(pkg);\r\n */\r\nexport async function checkPackage(\r\n source: string | PackageJson\r\n): Promise<PackageCheckResult> {\r\n const errors: string[] = [];\r\n\r\n // Fetch package.json\r\n let pkg: PackageJson;\r\n try {\r\n pkg = await fetchPackageJson(source);\r\n } catch (err) {\r\n throw new Error(`Failed to load package.json: ${err}`);\r\n }\r\n\r\n // Check all dependency types in parallel\r\n const [dependencies, devDependencies, peerDependencies, optionalDependencies] =\r\n await Promise.all([\r\n checkDependencyType(pkg.dependencies, 'dependencies', errors),\r\n checkDependencyType(pkg.devDependencies, 'devDependencies', errors),\r\n checkDependencyType(pkg.peerDependencies, 'peerDependencies', errors),\r\n checkDependencyType(pkg.optionalDependencies, 'optionalDependencies', errors),\r\n ]);\r\n\r\n const allDeps = [...dependencies, ...devDependencies, ...peerDependencies, ...optionalDependencies];\r\n\r\n return {\r\n packageName: pkg.name || 'unknown',\r\n packageVersion: pkg.version || '0.0.0',\r\n totalDependencies: allDeps.length,\r\n outdatedCount: allDeps.filter((d) => d.hasUpdate).length,\r\n dependencies: allDeps,\r\n byType: {\r\n dependencies,\r\n devDependencies,\r\n peerDependencies,\r\n optionalDependencies,\r\n },\r\n byUpdateType: {\r\n major: allDeps.filter((d) => d.updateType === 'major'),\r\n minor: allDeps.filter((d) => d.updateType === 'minor'),\r\n patch: allDeps.filter((d) => d.updateType === 'patch'),\r\n prerelease: allDeps.filter((d) => d.updateType === 'prerelease'),\r\n },\r\n checkedAt: new Date(),\r\n errors,\r\n };\r\n}\r\n\r\n/**\r\n * Format check result as human-readable string\r\n */\r\nexport function formatPackageCheckResult(result: PackageCheckResult): string {\r\n const lines: string[] = [];\r\n\r\n lines.push(`📦 Package: ${result.packageName}@${result.packageVersion}`);\r\n lines.push(`📅 Checked: ${result.checkedAt.toISOString()}`);\r\n lines.push(`📊 Total: ${result.totalDependencies} | Outdated: ${result.outdatedCount}`);\r\n lines.push('');\r\n\r\n if (result.byUpdateType.major.length > 0) {\r\n lines.push('🔴 MAJOR Updates:');\r\n result.byUpdateType.major.forEach((d) => {\r\n lines.push(` ${d.name}: ${d.current} → ${d.latest}`);\r\n });\r\n lines.push('');\r\n }\r\n\r\n if (result.byUpdateType.minor.length > 0) {\r\n lines.push('🟡 MINOR Updates:');\r\n result.byUpdateType.minor.forEach((d) => {\r\n lines.push(` ${d.name}: ${d.current} → ${d.latest}`);\r\n });\r\n lines.push('');\r\n }\r\n\r\n if (result.byUpdateType.patch.length > 0) {\r\n lines.push('🟢 PATCH Updates:');\r\n result.byUpdateType.patch.forEach((d) => {\r\n lines.push(` ${d.name}: ${d.current} → ${d.latest}`);\r\n });\r\n lines.push('');\r\n }\r\n\r\n if (result.errors.length > 0) {\r\n lines.push('⚠️ Errors:');\r\n result.errors.forEach((e) => {\r\n lines.push(` ${e}`);\r\n });\r\n }\r\n\r\n return lines.join('\\n');\r\n}\r\n\r\n/**\r\n * Generate ncu (npm-check-updates) command\r\n */\r\nexport function generateNcuCommand(\r\n result: PackageCheckResult,\r\n options: {\r\n updateType?: 'major' | 'minor' | 'patch' | 'all';\r\n interactive?: boolean;\r\n upgrade?: boolean;\r\n } = {}\r\n): string {\r\n const { updateType = 'all', interactive = false, upgrade = false } = options;\r\n\r\n let packages: string[] = [];\r\n\r\n switch (updateType) {\r\n case 'major':\r\n packages = result.byUpdateType.major.map((d) => d.name);\r\n break;\r\n case 'minor':\r\n packages = result.byUpdateType.minor.map((d) => d.name);\r\n break;\r\n case 'patch':\r\n packages = result.byUpdateType.patch.map((d) => d.name);\r\n break;\r\n default:\r\n packages = result.dependencies.filter((d) => d.hasUpdate).map((d) => d.name);\r\n }\r\n\r\n if (packages.length === 0) {\r\n return '# No updates available';\r\n }\r\n\r\n let cmd = 'npx npm-check-updates';\r\n\r\n if (packages.length > 0 && packages.length < result.dependencies.length) {\r\n cmd += ` --filter \"${packages.join(',')}\"`;\r\n }\r\n\r\n if (interactive) {\r\n cmd += ' --interactive';\r\n }\r\n\r\n if (upgrade) {\r\n cmd += ' --upgrade';\r\n }\r\n\r\n return cmd;\r\n}\r\n\r\n/**\r\n * Package check utilities for client-side usage\r\n */\r\nexport const packageCheck = {\r\n check: checkPackage,\r\n format: formatPackageCheckResult,\r\n generateNcuCommand,\r\n parseVersion,\r\n compareVersions,\r\n} as const;\r\n\r\nexport default packageCheck;\r\n"]}
@@ -3,7 +3,7 @@ import { StatusCode, StatusMessage, statusCode, statusMessage } from './server/e
3
3
  import { LoggerConfig, createLogger, createMorganStream, logger, simpleLogger, stream } from './server/logger/index.mjs';
4
4
  import { DbConnectionOptions, connectDB, disconnectDB, getConnectionStatus } from './server/db/index.mjs';
5
5
  import { AuthRequest, BulkDeleteRequest, ColumnMeta, CrudConfig, JWTPayload, OrgRequest, PaginatedRequest, PaginatedResponse, PaginatedResult, PaginationMeta, ParsedQuery, SortConfig, SortOrder, authenticateApiKey, authenticateJWT, buildDeleteFilter, createBulkDeleteHandler, createCrudControllers, createPaginationMiddleware, extractOrganization, extractSchemaMeta, optionalAuthenticateJWT, parseBulkDelete, queryPagination, queryParser, requireOrganization } from './server/middleware/index.mjs';
6
- import { FilterOptions, PackageCheckResult, PackageJson, PackageVersion, PaginationOptions, PaginationResult, buildFilter, buildPagination, buildPaginationMeta, checkPackageServer, formatPackageCheckResult, generateNcuCommand, omitFields, packageCheckServer, pickFields, printPackageCheckSummary, sanitizeDocument, sanitizeUser } from './server/utils/index.mjs';
6
+ import { FilterOptions, HealthConfig, HealthResponse, PackageCheckResult, PackageJson, PackageVersion, PaginationOptions, PaginationResult, buildFilter, buildPagination, buildPaginationMeta, checkPackageServer, createHealthHandler, createRootHandler, formatPackageCheckResult, generateHealthResponse, generateNcuCommand, omitFields, packageCheckServer, pickFields, printPackageCheckSummary, sanitizeDocument, sanitizeUser } from './server/utils/index.mjs';
7
7
  import { AppConfig, AuthConfig, ConfigBuilder, CorsConfig, CorsOriginsConfig, DEFAULT_AUTH_CONFIG, DEFAULT_CORS_CONFIG, DEFAULT_CORS_ORIGINS, DEFAULT_DATABASE_CONFIG, DEFAULT_LOGGING_CONFIG, DEFAULT_RATE_LIMIT_CONFIG, DEFAULT_RATE_LIMIT_TIERS, DEFAULT_SERVER_CONFIG, DatabaseConfig, EXYCONN_CORS_CONFIG, Environment, LogLevel, LoggingConfig, PERMISSIVE_CORS_CONFIG, RATE_LIMIT_CONFIG, RateLimitConfig, RateLimitResponse, RateLimitTier, RateLimitTierConfig, RateLimiterBuilder, RateLimiterConfig, STRICT_CORS_CONFIG, ServerConfig, buildConfig, corsOptions, createApiKeyGenerator, createApiRateLimiter, createBrandCorsOptions, createConfig, createCorsOptions, createDdosRateLimiter, createMultiBrandCorsOptions, createPrefixedKeyGenerator, createRateLimiter, createStandardRateLimiter, createStrictRateLimiter, createUserKeyGenerator, ddosProtectionLimiter, defaultKeyGenerator, getDatabaseOptions, isDevelopment, isProduction, isTest, rateLimiter, standardRateLimiter, strictRateLimiter } from './server/configs/index.mjs';
8
8
 
9
9
  declare const index_ApiResponse: typeof ApiResponse;
@@ -30,6 +30,8 @@ declare const index_DbConnectionOptions: typeof DbConnectionOptions;
30
30
  declare const index_EXYCONN_CORS_CONFIG: typeof EXYCONN_CORS_CONFIG;
31
31
  declare const index_Environment: typeof Environment;
32
32
  declare const index_FilterOptions: typeof FilterOptions;
33
+ declare const index_HealthConfig: typeof HealthConfig;
34
+ declare const index_HealthResponse: typeof HealthResponse;
33
35
  declare const index_JWTPayload: typeof JWTPayload;
34
36
  declare const index_LogLevel: typeof LogLevel;
35
37
  declare const index_LoggerConfig: typeof LoggerConfig;
@@ -80,12 +82,14 @@ declare const index_createConfig: typeof createConfig;
80
82
  declare const index_createCorsOptions: typeof createCorsOptions;
81
83
  declare const index_createCrudControllers: typeof createCrudControllers;
82
84
  declare const index_createDdosRateLimiter: typeof createDdosRateLimiter;
85
+ declare const index_createHealthHandler: typeof createHealthHandler;
83
86
  declare const index_createLogger: typeof createLogger;
84
87
  declare const index_createMorganStream: typeof createMorganStream;
85
88
  declare const index_createMultiBrandCorsOptions: typeof createMultiBrandCorsOptions;
86
89
  declare const index_createPaginationMiddleware: typeof createPaginationMiddleware;
87
90
  declare const index_createPrefixedKeyGenerator: typeof createPrefixedKeyGenerator;
88
91
  declare const index_createRateLimiter: typeof createRateLimiter;
92
+ declare const index_createRootHandler: typeof createRootHandler;
89
93
  declare const index_createStandardRateLimiter: typeof createStandardRateLimiter;
90
94
  declare const index_createStrictRateLimiter: typeof createStrictRateLimiter;
91
95
  declare const index_createUserKeyGenerator: typeof createUserKeyGenerator;
@@ -99,6 +103,7 @@ declare const index_extractOrganization: typeof extractOrganization;
99
103
  declare const index_extractSchemaMeta: typeof extractSchemaMeta;
100
104
  declare const index_forbiddenResponse: typeof forbiddenResponse;
101
105
  declare const index_formatPackageCheckResult: typeof formatPackageCheckResult;
106
+ declare const index_generateHealthResponse: typeof generateHealthResponse;
102
107
  declare const index_generateNcuCommand: typeof generateNcuCommand;
103
108
  declare const index_getConnectionStatus: typeof getConnectionStatus;
104
109
  declare const index_getDatabaseOptions: typeof getDatabaseOptions;
@@ -132,7 +137,7 @@ declare const index_successResponseArr: typeof successResponseArr;
132
137
  declare const index_unauthorizedResponse: typeof unauthorizedResponse;
133
138
  declare const index_validationErrorResponse: typeof validationErrorResponse;
134
139
  declare namespace index {
135
- export { index_ApiResponse as ApiResponse, index_AppConfig as AppConfig, index_AuthConfig as AuthConfig, index_AuthRequest as AuthRequest, index_BulkDeleteRequest as BulkDeleteRequest, index_ColumnMeta as ColumnMeta, index_ColumnMetadata as ColumnMetadata, index_ConfigBuilder as ConfigBuilder, index_CorsConfig as CorsConfig, index_CorsOriginsConfig as CorsOriginsConfig, index_CrudConfig as CrudConfig, index_DEFAULT_AUTH_CONFIG as DEFAULT_AUTH_CONFIG, index_DEFAULT_CORS_CONFIG as DEFAULT_CORS_CONFIG, index_DEFAULT_CORS_ORIGINS as DEFAULT_CORS_ORIGINS, index_DEFAULT_DATABASE_CONFIG as DEFAULT_DATABASE_CONFIG, index_DEFAULT_LOGGING_CONFIG as DEFAULT_LOGGING_CONFIG, index_DEFAULT_RATE_LIMIT_CONFIG as DEFAULT_RATE_LIMIT_CONFIG, index_DEFAULT_RATE_LIMIT_TIERS as DEFAULT_RATE_LIMIT_TIERS, index_DEFAULT_SERVER_CONFIG as DEFAULT_SERVER_CONFIG, index_DatabaseConfig as DatabaseConfig, index_DbConnectionOptions as DbConnectionOptions, index_EXYCONN_CORS_CONFIG as EXYCONN_CORS_CONFIG, index_Environment as Environment, index_FilterOptions as FilterOptions, index_JWTPayload as JWTPayload, index_LogLevel as LogLevel, index_LoggerConfig as LoggerConfig, index_LoggingConfig as LoggingConfig, index_OrgRequest as OrgRequest, index_PERMISSIVE_CORS_CONFIG as PERMISSIVE_CORS_CONFIG, index_PackageCheckResult as PackageCheckResult, index_PackageJson as PackageJson, index_PackageVersion as PackageVersion, index_PaginatedRequest as PaginatedRequest, index_PaginatedResponse as PaginatedResponse, index_PaginatedResult as PaginatedResult, index_PaginationData as PaginationData, index_PaginationMeta as PaginationMeta, index_PaginationOptions as PaginationOptions, index_PaginationResult as PaginationResult, index_ParsedQuery as ParsedQuery, index_RATE_LIMIT_CONFIG as RATE_LIMIT_CONFIG, index_RateLimitConfig as RateLimitConfig, index_RateLimitResponse as RateLimitResponse, index_RateLimitTier as RateLimitTier, index_RateLimitTierConfig as RateLimitTierConfig, index_RateLimiterBuilder as RateLimiterBuilder, index_RateLimiterConfig as RateLimiterConfig, index_STRICT_CORS_CONFIG as STRICT_CORS_CONFIG, index_ServerConfig as ServerConfig, index_SortConfig as SortConfig, index_SortOrder as SortOrder, index_StatusCode as StatusCode, index_StatusMessage as StatusMessage, index_authenticateApiKey as authenticateApiKey, index_authenticateJWT as authenticateJWT, index_badRequestResponse as badRequestResponse, index_buildConfig as buildConfig, index_buildDeleteFilter as buildDeleteFilter, index_buildFilter as buildFilter, index_buildPagination as buildPagination, index_buildPaginationMeta as buildPaginationMeta, index_checkPackageServer as checkPackageServer, index_conflictResponse as conflictResponse, index_connectDB as connectDB, index_corsOptions as corsOptions, index_createApiKeyGenerator as createApiKeyGenerator, index_createApiRateLimiter as createApiRateLimiter, index_createBrandCorsOptions as createBrandCorsOptions, index_createBulkDeleteHandler as createBulkDeleteHandler, index_createConfig as createConfig, index_createCorsOptions as createCorsOptions, index_createCrudControllers as createCrudControllers, index_createDdosRateLimiter as createDdosRateLimiter, index_createLogger as createLogger, index_createMorganStream as createMorganStream, index_createMultiBrandCorsOptions as createMultiBrandCorsOptions, index_createPaginationMiddleware as createPaginationMiddleware, index_createPrefixedKeyGenerator as createPrefixedKeyGenerator, index_createRateLimiter as createRateLimiter, index_createStandardRateLimiter as createStandardRateLimiter, index_createStrictRateLimiter as createStrictRateLimiter, index_createUserKeyGenerator as createUserKeyGenerator, index_createdResponse as createdResponse, index_ddosProtectionLimiter as ddosProtectionLimiter, index_defaultKeyGenerator as defaultKeyGenerator, index_disconnectDB as disconnectDB, index_errorResponse as errorResponse, index_extractColumns as extractColumns, index_extractOrganization as extractOrganization, index_extractSchemaMeta as extractSchemaMeta, index_forbiddenResponse as forbiddenResponse, index_formatPackageCheckResult as formatPackageCheckResult, index_generateNcuCommand as generateNcuCommand, index_getConnectionStatus as getConnectionStatus, index_getDatabaseOptions as getDatabaseOptions, index_isDevelopment as isDevelopment, index_isProduction as isProduction, index_isTest as isTest, index_logger as logger, index_noContentResponse as noContentResponse, index_notFoundResponse as notFoundResponse, index_omitFields as omitFields, index_optionalAuthenticateJWT as optionalAuthenticateJWT, index_packageCheckServer as packageCheckServer, index_parseBulkDelete as parseBulkDelete, index_pickFields as pickFields, index_printPackageCheckSummary as printPackageCheckSummary, index_queryPagination as queryPagination, index_queryParser as queryParser, index_rateLimitResponse as rateLimitResponse, index_rateLimiter as rateLimiter, index_requireOrganization as requireOrganization, index_sanitizeDocument as sanitizeDocument, index_sanitizeUser as sanitizeUser, index_simpleLogger as simpleLogger, index_standardRateLimiter as standardRateLimiter, index_statusCode as statusCode, index_statusMessage as statusMessage, index_stream as stream, index_strictRateLimiter as strictRateLimiter, index_successResponse as successResponse, index_successResponseArr as successResponseArr, index_unauthorizedResponse as unauthorizedResponse, index_validationErrorResponse as validationErrorResponse };
140
+ export { index_ApiResponse as ApiResponse, index_AppConfig as AppConfig, index_AuthConfig as AuthConfig, index_AuthRequest as AuthRequest, index_BulkDeleteRequest as BulkDeleteRequest, index_ColumnMeta as ColumnMeta, index_ColumnMetadata as ColumnMetadata, index_ConfigBuilder as ConfigBuilder, index_CorsConfig as CorsConfig, index_CorsOriginsConfig as CorsOriginsConfig, index_CrudConfig as CrudConfig, index_DEFAULT_AUTH_CONFIG as DEFAULT_AUTH_CONFIG, index_DEFAULT_CORS_CONFIG as DEFAULT_CORS_CONFIG, index_DEFAULT_CORS_ORIGINS as DEFAULT_CORS_ORIGINS, index_DEFAULT_DATABASE_CONFIG as DEFAULT_DATABASE_CONFIG, index_DEFAULT_LOGGING_CONFIG as DEFAULT_LOGGING_CONFIG, index_DEFAULT_RATE_LIMIT_CONFIG as DEFAULT_RATE_LIMIT_CONFIG, index_DEFAULT_RATE_LIMIT_TIERS as DEFAULT_RATE_LIMIT_TIERS, index_DEFAULT_SERVER_CONFIG as DEFAULT_SERVER_CONFIG, index_DatabaseConfig as DatabaseConfig, index_DbConnectionOptions as DbConnectionOptions, index_EXYCONN_CORS_CONFIG as EXYCONN_CORS_CONFIG, index_Environment as Environment, index_FilterOptions as FilterOptions, index_HealthConfig as HealthConfig, index_HealthResponse as HealthResponse, index_JWTPayload as JWTPayload, index_LogLevel as LogLevel, index_LoggerConfig as LoggerConfig, index_LoggingConfig as LoggingConfig, index_OrgRequest as OrgRequest, index_PERMISSIVE_CORS_CONFIG as PERMISSIVE_CORS_CONFIG, index_PackageCheckResult as PackageCheckResult, index_PackageJson as PackageJson, index_PackageVersion as PackageVersion, index_PaginatedRequest as PaginatedRequest, index_PaginatedResponse as PaginatedResponse, index_PaginatedResult as PaginatedResult, index_PaginationData as PaginationData, index_PaginationMeta as PaginationMeta, index_PaginationOptions as PaginationOptions, index_PaginationResult as PaginationResult, index_ParsedQuery as ParsedQuery, index_RATE_LIMIT_CONFIG as RATE_LIMIT_CONFIG, index_RateLimitConfig as RateLimitConfig, index_RateLimitResponse as RateLimitResponse, index_RateLimitTier as RateLimitTier, index_RateLimitTierConfig as RateLimitTierConfig, index_RateLimiterBuilder as RateLimiterBuilder, index_RateLimiterConfig as RateLimiterConfig, index_STRICT_CORS_CONFIG as STRICT_CORS_CONFIG, index_ServerConfig as ServerConfig, index_SortConfig as SortConfig, index_SortOrder as SortOrder, index_StatusCode as StatusCode, index_StatusMessage as StatusMessage, index_authenticateApiKey as authenticateApiKey, index_authenticateJWT as authenticateJWT, index_badRequestResponse as badRequestResponse, index_buildConfig as buildConfig, index_buildDeleteFilter as buildDeleteFilter, index_buildFilter as buildFilter, index_buildPagination as buildPagination, index_buildPaginationMeta as buildPaginationMeta, index_checkPackageServer as checkPackageServer, index_conflictResponse as conflictResponse, index_connectDB as connectDB, index_corsOptions as corsOptions, index_createApiKeyGenerator as createApiKeyGenerator, index_createApiRateLimiter as createApiRateLimiter, index_createBrandCorsOptions as createBrandCorsOptions, index_createBulkDeleteHandler as createBulkDeleteHandler, index_createConfig as createConfig, index_createCorsOptions as createCorsOptions, index_createCrudControllers as createCrudControllers, index_createDdosRateLimiter as createDdosRateLimiter, index_createHealthHandler as createHealthHandler, index_createLogger as createLogger, index_createMorganStream as createMorganStream, index_createMultiBrandCorsOptions as createMultiBrandCorsOptions, index_createPaginationMiddleware as createPaginationMiddleware, index_createPrefixedKeyGenerator as createPrefixedKeyGenerator, index_createRateLimiter as createRateLimiter, index_createRootHandler as createRootHandler, index_createStandardRateLimiter as createStandardRateLimiter, index_createStrictRateLimiter as createStrictRateLimiter, index_createUserKeyGenerator as createUserKeyGenerator, index_createdResponse as createdResponse, index_ddosProtectionLimiter as ddosProtectionLimiter, index_defaultKeyGenerator as defaultKeyGenerator, index_disconnectDB as disconnectDB, index_errorResponse as errorResponse, index_extractColumns as extractColumns, index_extractOrganization as extractOrganization, index_extractSchemaMeta as extractSchemaMeta, index_forbiddenResponse as forbiddenResponse, index_formatPackageCheckResult as formatPackageCheckResult, index_generateHealthResponse as generateHealthResponse, index_generateNcuCommand as generateNcuCommand, index_getConnectionStatus as getConnectionStatus, index_getDatabaseOptions as getDatabaseOptions, index_isDevelopment as isDevelopment, index_isProduction as isProduction, index_isTest as isTest, index_logger as logger, index_noContentResponse as noContentResponse, index_notFoundResponse as notFoundResponse, index_omitFields as omitFields, index_optionalAuthenticateJWT as optionalAuthenticateJWT, index_packageCheckServer as packageCheckServer, index_parseBulkDelete as parseBulkDelete, index_pickFields as pickFields, index_printPackageCheckSummary as printPackageCheckSummary, index_queryPagination as queryPagination, index_queryParser as queryParser, index_rateLimitResponse as rateLimitResponse, index_rateLimiter as rateLimiter, index_requireOrganization as requireOrganization, index_sanitizeDocument as sanitizeDocument, index_sanitizeUser as sanitizeUser, index_simpleLogger as simpleLogger, index_standardRateLimiter as standardRateLimiter, index_statusCode as statusCode, index_statusMessage as statusMessage, index_stream as stream, index_strictRateLimiter as strictRateLimiter, index_successResponse as successResponse, index_successResponseArr as successResponseArr, index_unauthorizedResponse as unauthorizedResponse, index_validationErrorResponse as validationErrorResponse };
136
141
  }
137
142
 
138
143
  export { index as i };
@@ -3,7 +3,7 @@ import { StatusCode, StatusMessage, statusCode, statusMessage } from './server/e
3
3
  import { LoggerConfig, createLogger, createMorganStream, logger, simpleLogger, stream } from './server/logger/index.js';
4
4
  import { DbConnectionOptions, connectDB, disconnectDB, getConnectionStatus } from './server/db/index.js';
5
5
  import { AuthRequest, BulkDeleteRequest, ColumnMeta, CrudConfig, JWTPayload, OrgRequest, PaginatedRequest, PaginatedResponse, PaginatedResult, PaginationMeta, ParsedQuery, SortConfig, SortOrder, authenticateApiKey, authenticateJWT, buildDeleteFilter, createBulkDeleteHandler, createCrudControllers, createPaginationMiddleware, extractOrganization, extractSchemaMeta, optionalAuthenticateJWT, parseBulkDelete, queryPagination, queryParser, requireOrganization } from './server/middleware/index.js';
6
- import { FilterOptions, PackageCheckResult, PackageJson, PackageVersion, PaginationOptions, PaginationResult, buildFilter, buildPagination, buildPaginationMeta, checkPackageServer, formatPackageCheckResult, generateNcuCommand, omitFields, packageCheckServer, pickFields, printPackageCheckSummary, sanitizeDocument, sanitizeUser } from './server/utils/index.js';
6
+ import { FilterOptions, HealthConfig, HealthResponse, PackageCheckResult, PackageJson, PackageVersion, PaginationOptions, PaginationResult, buildFilter, buildPagination, buildPaginationMeta, checkPackageServer, createHealthHandler, createRootHandler, formatPackageCheckResult, generateHealthResponse, generateNcuCommand, omitFields, packageCheckServer, pickFields, printPackageCheckSummary, sanitizeDocument, sanitizeUser } from './server/utils/index.js';
7
7
  import { AppConfig, AuthConfig, ConfigBuilder, CorsConfig, CorsOriginsConfig, DEFAULT_AUTH_CONFIG, DEFAULT_CORS_CONFIG, DEFAULT_CORS_ORIGINS, DEFAULT_DATABASE_CONFIG, DEFAULT_LOGGING_CONFIG, DEFAULT_RATE_LIMIT_CONFIG, DEFAULT_RATE_LIMIT_TIERS, DEFAULT_SERVER_CONFIG, DatabaseConfig, EXYCONN_CORS_CONFIG, Environment, LogLevel, LoggingConfig, PERMISSIVE_CORS_CONFIG, RATE_LIMIT_CONFIG, RateLimitConfig, RateLimitResponse, RateLimitTier, RateLimitTierConfig, RateLimiterBuilder, RateLimiterConfig, STRICT_CORS_CONFIG, ServerConfig, buildConfig, corsOptions, createApiKeyGenerator, createApiRateLimiter, createBrandCorsOptions, createConfig, createCorsOptions, createDdosRateLimiter, createMultiBrandCorsOptions, createPrefixedKeyGenerator, createRateLimiter, createStandardRateLimiter, createStrictRateLimiter, createUserKeyGenerator, ddosProtectionLimiter, defaultKeyGenerator, getDatabaseOptions, isDevelopment, isProduction, isTest, rateLimiter, standardRateLimiter, strictRateLimiter } from './server/configs/index.js';
8
8
 
9
9
  declare const index_ApiResponse: typeof ApiResponse;
@@ -30,6 +30,8 @@ declare const index_DbConnectionOptions: typeof DbConnectionOptions;
30
30
  declare const index_EXYCONN_CORS_CONFIG: typeof EXYCONN_CORS_CONFIG;
31
31
  declare const index_Environment: typeof Environment;
32
32
  declare const index_FilterOptions: typeof FilterOptions;
33
+ declare const index_HealthConfig: typeof HealthConfig;
34
+ declare const index_HealthResponse: typeof HealthResponse;
33
35
  declare const index_JWTPayload: typeof JWTPayload;
34
36
  declare const index_LogLevel: typeof LogLevel;
35
37
  declare const index_LoggerConfig: typeof LoggerConfig;
@@ -80,12 +82,14 @@ declare const index_createConfig: typeof createConfig;
80
82
  declare const index_createCorsOptions: typeof createCorsOptions;
81
83
  declare const index_createCrudControllers: typeof createCrudControllers;
82
84
  declare const index_createDdosRateLimiter: typeof createDdosRateLimiter;
85
+ declare const index_createHealthHandler: typeof createHealthHandler;
83
86
  declare const index_createLogger: typeof createLogger;
84
87
  declare const index_createMorganStream: typeof createMorganStream;
85
88
  declare const index_createMultiBrandCorsOptions: typeof createMultiBrandCorsOptions;
86
89
  declare const index_createPaginationMiddleware: typeof createPaginationMiddleware;
87
90
  declare const index_createPrefixedKeyGenerator: typeof createPrefixedKeyGenerator;
88
91
  declare const index_createRateLimiter: typeof createRateLimiter;
92
+ declare const index_createRootHandler: typeof createRootHandler;
89
93
  declare const index_createStandardRateLimiter: typeof createStandardRateLimiter;
90
94
  declare const index_createStrictRateLimiter: typeof createStrictRateLimiter;
91
95
  declare const index_createUserKeyGenerator: typeof createUserKeyGenerator;
@@ -99,6 +103,7 @@ declare const index_extractOrganization: typeof extractOrganization;
99
103
  declare const index_extractSchemaMeta: typeof extractSchemaMeta;
100
104
  declare const index_forbiddenResponse: typeof forbiddenResponse;
101
105
  declare const index_formatPackageCheckResult: typeof formatPackageCheckResult;
106
+ declare const index_generateHealthResponse: typeof generateHealthResponse;
102
107
  declare const index_generateNcuCommand: typeof generateNcuCommand;
103
108
  declare const index_getConnectionStatus: typeof getConnectionStatus;
104
109
  declare const index_getDatabaseOptions: typeof getDatabaseOptions;
@@ -132,7 +137,7 @@ declare const index_successResponseArr: typeof successResponseArr;
132
137
  declare const index_unauthorizedResponse: typeof unauthorizedResponse;
133
138
  declare const index_validationErrorResponse: typeof validationErrorResponse;
134
139
  declare namespace index {
135
- export { index_ApiResponse as ApiResponse, index_AppConfig as AppConfig, index_AuthConfig as AuthConfig, index_AuthRequest as AuthRequest, index_BulkDeleteRequest as BulkDeleteRequest, index_ColumnMeta as ColumnMeta, index_ColumnMetadata as ColumnMetadata, index_ConfigBuilder as ConfigBuilder, index_CorsConfig as CorsConfig, index_CorsOriginsConfig as CorsOriginsConfig, index_CrudConfig as CrudConfig, index_DEFAULT_AUTH_CONFIG as DEFAULT_AUTH_CONFIG, index_DEFAULT_CORS_CONFIG as DEFAULT_CORS_CONFIG, index_DEFAULT_CORS_ORIGINS as DEFAULT_CORS_ORIGINS, index_DEFAULT_DATABASE_CONFIG as DEFAULT_DATABASE_CONFIG, index_DEFAULT_LOGGING_CONFIG as DEFAULT_LOGGING_CONFIG, index_DEFAULT_RATE_LIMIT_CONFIG as DEFAULT_RATE_LIMIT_CONFIG, index_DEFAULT_RATE_LIMIT_TIERS as DEFAULT_RATE_LIMIT_TIERS, index_DEFAULT_SERVER_CONFIG as DEFAULT_SERVER_CONFIG, index_DatabaseConfig as DatabaseConfig, index_DbConnectionOptions as DbConnectionOptions, index_EXYCONN_CORS_CONFIG as EXYCONN_CORS_CONFIG, index_Environment as Environment, index_FilterOptions as FilterOptions, index_JWTPayload as JWTPayload, index_LogLevel as LogLevel, index_LoggerConfig as LoggerConfig, index_LoggingConfig as LoggingConfig, index_OrgRequest as OrgRequest, index_PERMISSIVE_CORS_CONFIG as PERMISSIVE_CORS_CONFIG, index_PackageCheckResult as PackageCheckResult, index_PackageJson as PackageJson, index_PackageVersion as PackageVersion, index_PaginatedRequest as PaginatedRequest, index_PaginatedResponse as PaginatedResponse, index_PaginatedResult as PaginatedResult, index_PaginationData as PaginationData, index_PaginationMeta as PaginationMeta, index_PaginationOptions as PaginationOptions, index_PaginationResult as PaginationResult, index_ParsedQuery as ParsedQuery, index_RATE_LIMIT_CONFIG as RATE_LIMIT_CONFIG, index_RateLimitConfig as RateLimitConfig, index_RateLimitResponse as RateLimitResponse, index_RateLimitTier as RateLimitTier, index_RateLimitTierConfig as RateLimitTierConfig, index_RateLimiterBuilder as RateLimiterBuilder, index_RateLimiterConfig as RateLimiterConfig, index_STRICT_CORS_CONFIG as STRICT_CORS_CONFIG, index_ServerConfig as ServerConfig, index_SortConfig as SortConfig, index_SortOrder as SortOrder, index_StatusCode as StatusCode, index_StatusMessage as StatusMessage, index_authenticateApiKey as authenticateApiKey, index_authenticateJWT as authenticateJWT, index_badRequestResponse as badRequestResponse, index_buildConfig as buildConfig, index_buildDeleteFilter as buildDeleteFilter, index_buildFilter as buildFilter, index_buildPagination as buildPagination, index_buildPaginationMeta as buildPaginationMeta, index_checkPackageServer as checkPackageServer, index_conflictResponse as conflictResponse, index_connectDB as connectDB, index_corsOptions as corsOptions, index_createApiKeyGenerator as createApiKeyGenerator, index_createApiRateLimiter as createApiRateLimiter, index_createBrandCorsOptions as createBrandCorsOptions, index_createBulkDeleteHandler as createBulkDeleteHandler, index_createConfig as createConfig, index_createCorsOptions as createCorsOptions, index_createCrudControllers as createCrudControllers, index_createDdosRateLimiter as createDdosRateLimiter, index_createLogger as createLogger, index_createMorganStream as createMorganStream, index_createMultiBrandCorsOptions as createMultiBrandCorsOptions, index_createPaginationMiddleware as createPaginationMiddleware, index_createPrefixedKeyGenerator as createPrefixedKeyGenerator, index_createRateLimiter as createRateLimiter, index_createStandardRateLimiter as createStandardRateLimiter, index_createStrictRateLimiter as createStrictRateLimiter, index_createUserKeyGenerator as createUserKeyGenerator, index_createdResponse as createdResponse, index_ddosProtectionLimiter as ddosProtectionLimiter, index_defaultKeyGenerator as defaultKeyGenerator, index_disconnectDB as disconnectDB, index_errorResponse as errorResponse, index_extractColumns as extractColumns, index_extractOrganization as extractOrganization, index_extractSchemaMeta as extractSchemaMeta, index_forbiddenResponse as forbiddenResponse, index_formatPackageCheckResult as formatPackageCheckResult, index_generateNcuCommand as generateNcuCommand, index_getConnectionStatus as getConnectionStatus, index_getDatabaseOptions as getDatabaseOptions, index_isDevelopment as isDevelopment, index_isProduction as isProduction, index_isTest as isTest, index_logger as logger, index_noContentResponse as noContentResponse, index_notFoundResponse as notFoundResponse, index_omitFields as omitFields, index_optionalAuthenticateJWT as optionalAuthenticateJWT, index_packageCheckServer as packageCheckServer, index_parseBulkDelete as parseBulkDelete, index_pickFields as pickFields, index_printPackageCheckSummary as printPackageCheckSummary, index_queryPagination as queryPagination, index_queryParser as queryParser, index_rateLimitResponse as rateLimitResponse, index_rateLimiter as rateLimiter, index_requireOrganization as requireOrganization, index_sanitizeDocument as sanitizeDocument, index_sanitizeUser as sanitizeUser, index_simpleLogger as simpleLogger, index_standardRateLimiter as standardRateLimiter, index_statusCode as statusCode, index_statusMessage as statusMessage, index_stream as stream, index_strictRateLimiter as strictRateLimiter, index_successResponse as successResponse, index_successResponseArr as successResponseArr, index_unauthorizedResponse as unauthorizedResponse, index_validationErrorResponse as validationErrorResponse };
140
+ export { index_ApiResponse as ApiResponse, index_AppConfig as AppConfig, index_AuthConfig as AuthConfig, index_AuthRequest as AuthRequest, index_BulkDeleteRequest as BulkDeleteRequest, index_ColumnMeta as ColumnMeta, index_ColumnMetadata as ColumnMetadata, index_ConfigBuilder as ConfigBuilder, index_CorsConfig as CorsConfig, index_CorsOriginsConfig as CorsOriginsConfig, index_CrudConfig as CrudConfig, index_DEFAULT_AUTH_CONFIG as DEFAULT_AUTH_CONFIG, index_DEFAULT_CORS_CONFIG as DEFAULT_CORS_CONFIG, index_DEFAULT_CORS_ORIGINS as DEFAULT_CORS_ORIGINS, index_DEFAULT_DATABASE_CONFIG as DEFAULT_DATABASE_CONFIG, index_DEFAULT_LOGGING_CONFIG as DEFAULT_LOGGING_CONFIG, index_DEFAULT_RATE_LIMIT_CONFIG as DEFAULT_RATE_LIMIT_CONFIG, index_DEFAULT_RATE_LIMIT_TIERS as DEFAULT_RATE_LIMIT_TIERS, index_DEFAULT_SERVER_CONFIG as DEFAULT_SERVER_CONFIG, index_DatabaseConfig as DatabaseConfig, index_DbConnectionOptions as DbConnectionOptions, index_EXYCONN_CORS_CONFIG as EXYCONN_CORS_CONFIG, index_Environment as Environment, index_FilterOptions as FilterOptions, index_HealthConfig as HealthConfig, index_HealthResponse as HealthResponse, index_JWTPayload as JWTPayload, index_LogLevel as LogLevel, index_LoggerConfig as LoggerConfig, index_LoggingConfig as LoggingConfig, index_OrgRequest as OrgRequest, index_PERMISSIVE_CORS_CONFIG as PERMISSIVE_CORS_CONFIG, index_PackageCheckResult as PackageCheckResult, index_PackageJson as PackageJson, index_PackageVersion as PackageVersion, index_PaginatedRequest as PaginatedRequest, index_PaginatedResponse as PaginatedResponse, index_PaginatedResult as PaginatedResult, index_PaginationData as PaginationData, index_PaginationMeta as PaginationMeta, index_PaginationOptions as PaginationOptions, index_PaginationResult as PaginationResult, index_ParsedQuery as ParsedQuery, index_RATE_LIMIT_CONFIG as RATE_LIMIT_CONFIG, index_RateLimitConfig as RateLimitConfig, index_RateLimitResponse as RateLimitResponse, index_RateLimitTier as RateLimitTier, index_RateLimitTierConfig as RateLimitTierConfig, index_RateLimiterBuilder as RateLimiterBuilder, index_RateLimiterConfig as RateLimiterConfig, index_STRICT_CORS_CONFIG as STRICT_CORS_CONFIG, index_ServerConfig as ServerConfig, index_SortConfig as SortConfig, index_SortOrder as SortOrder, index_StatusCode as StatusCode, index_StatusMessage as StatusMessage, index_authenticateApiKey as authenticateApiKey, index_authenticateJWT as authenticateJWT, index_badRequestResponse as badRequestResponse, index_buildConfig as buildConfig, index_buildDeleteFilter as buildDeleteFilter, index_buildFilter as buildFilter, index_buildPagination as buildPagination, index_buildPaginationMeta as buildPaginationMeta, index_checkPackageServer as checkPackageServer, index_conflictResponse as conflictResponse, index_connectDB as connectDB, index_corsOptions as corsOptions, index_createApiKeyGenerator as createApiKeyGenerator, index_createApiRateLimiter as createApiRateLimiter, index_createBrandCorsOptions as createBrandCorsOptions, index_createBulkDeleteHandler as createBulkDeleteHandler, index_createConfig as createConfig, index_createCorsOptions as createCorsOptions, index_createCrudControllers as createCrudControllers, index_createDdosRateLimiter as createDdosRateLimiter, index_createHealthHandler as createHealthHandler, index_createLogger as createLogger, index_createMorganStream as createMorganStream, index_createMultiBrandCorsOptions as createMultiBrandCorsOptions, index_createPaginationMiddleware as createPaginationMiddleware, index_createPrefixedKeyGenerator as createPrefixedKeyGenerator, index_createRateLimiter as createRateLimiter, index_createRootHandler as createRootHandler, index_createStandardRateLimiter as createStandardRateLimiter, index_createStrictRateLimiter as createStrictRateLimiter, index_createUserKeyGenerator as createUserKeyGenerator, index_createdResponse as createdResponse, index_ddosProtectionLimiter as ddosProtectionLimiter, index_defaultKeyGenerator as defaultKeyGenerator, index_disconnectDB as disconnectDB, index_errorResponse as errorResponse, index_extractColumns as extractColumns, index_extractOrganization as extractOrganization, index_extractSchemaMeta as extractSchemaMeta, index_forbiddenResponse as forbiddenResponse, index_formatPackageCheckResult as formatPackageCheckResult, index_generateHealthResponse as generateHealthResponse, index_generateNcuCommand as generateNcuCommand, index_getConnectionStatus as getConnectionStatus, index_getDatabaseOptions as getDatabaseOptions, index_isDevelopment as isDevelopment, index_isProduction as isProduction, index_isTest as isTest, index_logger as logger, index_noContentResponse as noContentResponse, index_notFoundResponse as notFoundResponse, index_omitFields as omitFields, index_optionalAuthenticateJWT as optionalAuthenticateJWT, index_packageCheckServer as packageCheckServer, index_parseBulkDelete as parseBulkDelete, index_pickFields as pickFields, index_printPackageCheckSummary as printPackageCheckSummary, index_queryPagination as queryPagination, index_queryParser as queryParser, index_rateLimitResponse as rateLimitResponse, index_rateLimiter as rateLimiter, index_requireOrganization as requireOrganization, index_sanitizeDocument as sanitizeDocument, index_sanitizeUser as sanitizeUser, index_simpleLogger as simpleLogger, index_standardRateLimiter as standardRateLimiter, index_statusCode as statusCode, index_statusMessage as statusMessage, index_stream as stream, index_strictRateLimiter as strictRateLimiter, index_successResponse as successResponse, index_successResponseArr as successResponseArr, index_unauthorizedResponse as unauthorizedResponse, index_validationErrorResponse as validationErrorResponse };
136
141
  }
137
142
 
138
143
  export { index as i };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export { i as server } from './index-Ckhm_HaX.mjs';
1
+ export { i as server } from './index-B8O4iu6q.mjs';
2
2
  export { i as client } from './index-guYdqefq.mjs';
3
3
  export { i as shared } from './index-NS8dS0p9.mjs';
4
4
  export { i as data } from './index-jBi3V6e5.mjs';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { i as server } from './index-br6POSyA.js';
1
+ export { i as server } from './index-MpV0UNTq.js';
2
2
  export { i as client } from './index-CdbQ8YPt.js';
3
3
  export { i as shared } from './index-DKn4raO7.js';
4
4
  export { i as data } from './index-Nqm5_lwT.js';