UNPKG

@markvivanco/app-version-checker

Version:

React App version checking and update prompts for React, React Native, and web applications

1 lines 86.8 kB
{"version":3,"sources":["../src/core/types.ts","../src/core/version-compare.ts","../src/core/version-formatter.ts","../src/core/stores.ts","../src/core/version-checker.ts","../src/providers/data-provider.interface.ts","../src/providers/storage-provider.interface.ts","../src/adapters/stores/local-storage-provider.ts","../src/adapters/stores/async-storage-provider.ts","../src/adapters/react/VersionCheckContext.tsx","../src/adapters/react/hooks.ts"],"names":["error","useState","useEffect","useCallback","isUpdateAvailable"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Core types for version checking\n */\n\nexport type Platform = 'ios' | 'android' | 'web';\n\nexport interface VersionInfo {\n currentVersion: string;\n latestVersion: string | null;\n updateAvailable: boolean;\n storeUrl: string | null;\n platform: Platform;\n}\n\nexport interface VersionCheckOptions {\n /** Minimum time between version checks in milliseconds */\n minCheckInterval?: number;\n /** Duration to wait after user selects \"Remind Me Later\" in milliseconds */\n remindLaterDuration?: number;\n /** Whether to skip version checking on web platform */\n skipWebPlatform?: boolean;\n /** Custom platform detection function */\n getPlatform?: () => Platform;\n}\n\nexport interface VersionCheckTimestamps {\n lastCheckTime: number | null;\n remindLaterTime: number | null;\n}\n\nexport interface AppStoreConfig {\n /** iOS App Store ID */\n iosAppStoreId?: string;\n /** Android package name */\n androidPackageName?: string;\n /** Custom iOS App Store URL */\n iosStoreUrl?: string;\n /** Custom Android Play Store URL */\n androidStoreUrl?: string;\n}\n\nexport interface VersionCheckResult {\n /** Whether an update is available */\n shouldShowPrompt: boolean;\n /** Version information */\n versionInfo: VersionInfo;\n /** Reason for not showing prompt (if applicable) */\n skipReason?: 'no_update' | 'web_platform' | 'remind_later' | 'too_soon' | 'error';\n}\n\n/** Version check intervals (in milliseconds) */\nexport const DEFAULT_CHECK_INTERVALS = {\n MIN_CHECK_INTERVAL: 60 * 60 * 1000, // 1 hour minimum between checks\n REMIND_LATER_DURATION: 24 * 60 * 60 * 1000, // 24 hours for \"remind me later\"\n} as const;","/**\n * Core version comparison utilities\n * Pure functions with no external dependencies\n */\n\n/**\n * Compare two semantic version strings\n * Returns: -1 if v1 < v2, 0 if v1 == v2, 1 if v1 > v2\n */\nexport function compareVersions(v1: string, v2: string): number {\n const parts1 = v1.split('.').map(num => parseInt(num, 10));\n const parts2 = v2.split('.').map(num => parseInt(num, 10));\n\n // Pad arrays to same length\n const maxLength = Math.max(parts1.length, parts2.length);\n while (parts1.length < maxLength) parts1.push(0);\n while (parts2.length < maxLength) parts2.push(0);\n\n for (let i = 0; i < maxLength; i++) {\n if (parts1[i] < parts2[i]) return -1;\n if (parts1[i] > parts2[i]) return 1;\n }\n\n return 0;\n}\n\n/**\n * Check if an update is available by comparing versions\n */\nexport function isUpdateAvailable(currentVersion: string, latestVersion: string): boolean {\n return compareVersions(currentVersion, latestVersion) < 0;\n}\n\n/**\n * Parse a version string into its components\n */\nexport function parseVersion(version: string): {\n major: number;\n minor: number;\n patch: number;\n build?: number;\n} {\n const parts = version.split('.').map(num => parseInt(num, 10));\n return {\n major: parts[0] || 0,\n minor: parts[1] || 0,\n patch: parts[2] || 0,\n build: parts[3] // Optional build number\n };\n}\n\n/**\n * Format version components back into a string\n */\nexport function formatVersion(\n major: number,\n minor: number,\n patch: number,\n build?: number\n): string {\n const parts = [major, minor, patch];\n if (build !== undefined) {\n parts.push(build);\n }\n return parts.join('.');\n}\n\n/**\n * Get the major version from a version string\n */\nexport function getMajorVersion(version: string): number {\n return parseVersion(version).major;\n}\n\n/**\n * Get the minor version from a version string\n */\nexport function getMinorVersion(version: string): number {\n return parseVersion(version).minor;\n}\n\n/**\n * Get the patch version from a version string\n */\nexport function getPatchVersion(version: string): number {\n return parseVersion(version).patch;\n}\n\n/**\n * Check if version is a valid semantic version string\n */\nexport function isValidVersion(version: string): boolean {\n const regex = /^\\d+\\.\\d+\\.\\d+(\\.\\d+)?$/;\n return regex.test(version);\n}\n\n/**\n * Get the difference between two versions\n * Returns an object describing what changed\n */\nexport function getVersionDiff(v1: string, v2: string): {\n type: 'major' | 'minor' | 'patch' | 'build' | 'none';\n fromVersion: string;\n toVersion: string;\n} {\n const comparison = compareVersions(v1, v2);\n\n if (comparison === 0) {\n return { type: 'none', fromVersion: v1, toVersion: v2 };\n }\n\n const parsed1 = parseVersion(v1);\n const parsed2 = parseVersion(v2);\n\n let type: 'major' | 'minor' | 'patch' | 'build' = 'build';\n\n if (parsed1.major !== parsed2.major) {\n type = 'major';\n } else if (parsed1.minor !== parsed2.minor) {\n type = 'minor';\n } else if (parsed1.patch !== parsed2.patch) {\n type = 'patch';\n }\n\n return {\n type,\n fromVersion: comparison < 0 ? v1 : v2,\n toVersion: comparison < 0 ? v2 : v1\n };\n}","/**\n * Version formatting utilities\n * Pure functions for formatting version strings\n */\n\n/**\n * Format a version with optional build number\n * @param platformVersion The platform-specific version (e.g., \"1.0.36\")\n * @param buildNumber Optional build number (e.g., \"349\")\n * @returns Formatted version string (e.g., \"1.0.36.349\")\n */\nexport function formatVersionWithBuild(\n platformVersion: string,\n buildNumber?: string | number\n): string {\n if (buildNumber !== undefined && buildNumber !== null && buildNumber !== '') {\n return `${platformVersion}.${buildNumber}`;\n }\n return platformVersion;\n}\n\n/**\n * Extract build number from version string\n * @param version Version string that may contain build number\n * @returns Build number or undefined\n */\nexport function extractBuildNumber(version: string): string | undefined {\n const parts = version.split('.');\n if (parts.length > 3) {\n return parts[3];\n }\n return undefined;\n}\n\n/**\n * Extract base version without build number\n * @param version Version string (e.g., \"1.0.36.349\")\n * @returns Base version without build (e.g., \"1.0.36\")\n */\nexport function extractBaseVersion(version: string): string {\n const parts = version.split('.');\n return parts.slice(0, 3).join('.');\n}\n\n/**\n * Normalize version string to ensure consistent format\n * @param version Version string to normalize\n * @param padToLength Minimum number of segments (default: 3)\n * @returns Normalized version string\n */\nexport function normalizeVersion(version: string, padToLength: number = 3): string {\n const parts = version.split('.');\n\n // Ensure all parts are valid numbers\n const numericParts = parts\n .map(part => parseInt(part, 10))\n .filter(num => !isNaN(num));\n\n // Pad with zeros if needed\n while (numericParts.length < padToLength) {\n numericParts.push(0);\n }\n\n return numericParts.join('.');\n}\n\n/**\n * Create a display-friendly version string\n * @param version Version string\n * @param includePrefix Whether to include \"v\" prefix\n * @returns Display version (e.g., \"v1.0.36\")\n */\nexport function formatDisplayVersion(\n version: string,\n includePrefix: boolean = true\n): string {\n const normalized = normalizeVersion(version, 3);\n return includePrefix ? `v${normalized}` : normalized;\n}\n\n/**\n * Compare version strings for sorting\n * @param versions Array of version strings\n * @param descending Sort in descending order (latest first)\n * @returns Sorted array of versions\n */\nexport function sortVersions(versions: string[], descending: boolean = true): string[] {\n const sorted = [...versions].sort((a, b) => {\n const aParts = a.split('.').map(num => parseInt(num, 10));\n const bParts = b.split('.').map(num => parseInt(num, 10));\n\n const maxLength = Math.max(aParts.length, bParts.length);\n\n for (let i = 0; i < maxLength; i++) {\n const aPart = aParts[i] || 0;\n const bPart = bParts[i] || 0;\n\n if (aPart !== bPart) {\n return descending ? bPart - aPart : aPart - bPart;\n }\n }\n\n return 0;\n });\n\n return sorted;\n}\n\n/**\n * Get the latest version from an array of versions\n * @param versions Array of version strings\n * @returns Latest version string or null if array is empty\n */\nexport function getLatestVersion(versions: string[]): string | null {\n if (!versions || versions.length === 0) {\n return null;\n }\n\n const sorted = sortVersions(versions, true);\n return sorted[0];\n}","/**\n * App store utilities\n * Functions for generating app store URLs and handling store-specific logic\n */\n\nimport { Platform, AppStoreConfig } from './types';\n\n/**\n * Generate iOS App Store URL\n * @param appStoreId The iOS App Store ID\n * @param customUrl Optional custom URL to override default\n */\nexport function getIosStoreUrl(appStoreId?: string, customUrl?: string): string | null {\n if (customUrl) {\n return customUrl;\n }\n\n if (!appStoreId) {\n return null;\n }\n\n return `https://apps.apple.com/app/id${appStoreId}`;\n}\n\n/**\n * Generate Android Play Store URL\n * @param packageName The Android package name\n * @param customUrl Optional custom URL to override default\n */\nexport function getAndroidStoreUrl(packageName?: string, customUrl?: string): string | null {\n if (customUrl) {\n return customUrl;\n }\n\n if (!packageName) {\n return null;\n }\n\n return `https://play.google.com/store/apps/details?id=${packageName}`;\n}\n\n/**\n * Get the appropriate store URL for a platform\n */\nexport function getStoreUrl(platform: Platform, config: AppStoreConfig): string | null {\n switch (platform) {\n case 'ios':\n return getIosStoreUrl(config.iosAppStoreId, config.iosStoreUrl);\n case 'android':\n return getAndroidStoreUrl(config.androidPackageName, config.androidStoreUrl);\n case 'web':\n return null;\n default:\n return null;\n }\n}\n\n/**\n * Validate an iOS App Store ID\n */\nexport function isValidIosAppStoreId(appStoreId: string): boolean {\n // iOS App Store IDs are typically 9-10 digit numbers\n return /^\\d{9,10}$/.test(appStoreId);\n}\n\n/**\n * Validate an Android package name\n */\nexport function isValidAndroidPackageName(packageName: string): boolean {\n // Android package names follow reverse domain name notation\n // e.g., com.example.app\n return /^[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)+$/.test(packageName);\n}\n\n/**\n * Extract app ID from store URL\n */\nexport function extractAppIdFromUrl(url: string, platform: Platform): string | null {\n if (platform === 'ios') {\n // Extract from URLs like: https://apps.apple.com/app/id123456789\n const match = url.match(/\\/id(\\d+)/);\n return match ? match[1] : null;\n }\n\n if (platform === 'android') {\n // Extract from URLs like: https://play.google.com/store/apps/details?id=com.example.app\n const match = url.match(/[?&]id=([^&]+)/);\n return match ? match[1] : null;\n }\n\n return null;\n}\n\n/**\n * Get store name for display\n */\nexport function getStoreName(platform: Platform): string {\n switch (platform) {\n case 'ios':\n return 'App Store';\n case 'android':\n return 'Google Play Store';\n case 'web':\n return 'Web';\n default:\n return 'Unknown';\n }\n}\n\n/**\n * Get store badge image URL (for documentation/UI purposes)\n */\nexport function getStoreBadgeUrl(platform: Platform, _locale: string = 'en-US'): string | null {\n switch (platform) {\n case 'ios':\n return `https://developer.apple.com/app-store/marketing/guidelines/images/badge-download-on-the-app-store.svg`;\n case 'android':\n return `https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png`;\n default:\n return null;\n }\n}","/**\n * Main VersionChecker class\n * Coordinates version checking using pluggable providers\n */\n\nimport {\n Platform,\n VersionInfo,\n VersionCheckOptions,\n VersionCheckResult,\n DEFAULT_CHECK_INTERVALS,\n} from './types';\nimport { isUpdateAvailable } from './version-compare';\nimport { getStoreUrl } from './stores';\nimport { IVersionDataProvider } from '../providers/data-provider.interface';\nimport { IStorageProvider } from '../providers/storage-provider.interface';\n\nexport class VersionChecker {\n private dataProvider: IVersionDataProvider;\n private storageProvider: IStorageProvider;\n private options: Required<VersionCheckOptions>;\n private initialized: boolean = false;\n\n constructor(\n dataProvider: IVersionDataProvider,\n storageProvider: IStorageProvider,\n options: VersionCheckOptions = {}\n ) {\n this.dataProvider = dataProvider;\n this.storageProvider = storageProvider;\n\n // Merge with default options\n this.options = {\n minCheckInterval: options.minCheckInterval ?? DEFAULT_CHECK_INTERVALS.MIN_CHECK_INTERVAL,\n remindLaterDuration: options.remindLaterDuration ?? DEFAULT_CHECK_INTERVALS.REMIND_LATER_DURATION,\n skipWebPlatform: options.skipWebPlatform ?? true,\n getPlatform: options.getPlatform ?? (() => this.detectPlatform()),\n };\n }\n\n /**\n * Initialize the version checker\n */\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n // Initialize providers if they have initialization logic\n if (this.dataProvider.initialize) {\n await this.dataProvider.initialize();\n }\n\n if (this.storageProvider.initialize) {\n await this.storageProvider.initialize();\n }\n\n this.initialized = true;\n }\n\n /**\n * Detect the current platform\n */\n private detectPlatform(): Platform {\n // Use provider's platform detection if available\n if (this.dataProvider.getCurrentPlatform) {\n return this.dataProvider.getCurrentPlatform();\n }\n\n // Basic platform detection\n if (typeof window !== 'undefined') {\n const userAgent = window.navigator?.userAgent || '';\n\n if (/android/i.test(userAgent)) {\n return 'android';\n }\n\n if (/iPad|iPhone|iPod/.test(userAgent)) {\n return 'ios';\n }\n\n return 'web';\n }\n\n // Default to web if we can't determine\n return 'web';\n }\n\n /**\n * Get the current platform\n */\n getPlatform(): Platform {\n return this.options.getPlatform();\n }\n\n /**\n * Get version information\n */\n async getVersionInfo(): Promise<VersionInfo> {\n const platform = this.getPlatform();\n const currentVersion = await this.dataProvider.getCurrentVersion();\n const latestVersion = await this.dataProvider.getLatestVersion(platform);\n const appStoreConfig = await this.dataProvider.getAppStoreConfig();\n\n const updateAvailable = latestVersion\n ? isUpdateAvailable(currentVersion, latestVersion)\n : false;\n\n const storeUrl = getStoreUrl(platform, appStoreConfig);\n\n return {\n currentVersion,\n latestVersion,\n updateAvailable,\n storeUrl,\n platform,\n };\n }\n\n /**\n * Check if an update is available\n */\n async isUpdateAvailable(): Promise<boolean> {\n const platform = this.getPlatform();\n\n // Skip check for web platform if configured\n if (platform === 'web' && this.options.skipWebPlatform) {\n return false;\n }\n\n const versionInfo = await this.getVersionInfo();\n return versionInfo.updateAvailable;\n }\n\n /**\n * Check if we should show the update prompt\n */\n async shouldShowUpdatePrompt(): Promise<VersionCheckResult> {\n const platform = this.getPlatform();\n\n // Skip for web platform if configured\n if (platform === 'web' && this.options.skipWebPlatform) {\n const versionInfo = await this.getVersionInfo();\n return {\n shouldShowPrompt: false,\n versionInfo,\n skipReason: 'web_platform',\n };\n }\n\n try {\n const versionInfo = await this.getVersionInfo();\n\n // No update available\n if (!versionInfo.updateAvailable) {\n return {\n shouldShowPrompt: false,\n versionInfo,\n skipReason: 'no_update',\n };\n }\n\n // Check if we're in \"remind me later\" period\n const remindLaterTime = await this.storageProvider.getRemindLaterTime();\n if (remindLaterTime && Date.now() < remindLaterTime) {\n return {\n shouldShowPrompt: false,\n versionInfo,\n skipReason: 'remind_later',\n };\n }\n\n // Check minimum interval between checks\n const lastCheckTime = await this.storageProvider.getLastCheckTime();\n if (lastCheckTime && Date.now() - lastCheckTime < this.options.minCheckInterval) {\n return {\n shouldShowPrompt: false,\n versionInfo,\n skipReason: 'too_soon',\n };\n }\n\n // Check if this version was already shown (optional)\n if (this.storageProvider.getLastShownVersion) {\n const lastShownVersion = await this.storageProvider.getLastShownVersion();\n if (lastShownVersion === versionInfo.latestVersion) {\n // Still check mandatory updates\n if (this.dataProvider.isUpdateMandatory) {\n const isMandatory = await this.dataProvider.isUpdateMandatory(\n versionInfo.curren