Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@hot-updater/plugin-core

gronxb19.2kMIT0.20.8TypeScript support: included

React Native OTA solution for self-hosted

react-native, react-native-code-push, code-push, eas, eas-update, expo, expo-update, self-hosted

readme

Hot Updater

NPM

A self-hostable OTA update solution for React Native (Alternative to CodePush)

hot-updater

Documentation

Full documentation is available at: https://hot-updater.dev

Key Features

  • Self-Hosted: Complete control over your update infrastructure
  • Multi-Platform: Support for both iOS and Android
  • Web Console: Intuitive update management interface
  • Plugin System: Support for various storage providers (AWS S3, Cloudflare R2 + D1, etc.)
  • Version Control: Robust app version management through semantic versioning
  • New Architecture: Support for new architecture like React Native

Plugin System

Hot Updater provides high extensibility through its plugin system. Each functionality like build, storage, and database is separated into plugins, allowing users to configure them according to their needs.

Plugin Types

  • Build Plugin: Support for bundlers like Metro, Re.Pack, Expo
  • Storage Plugin: Support for bundle storage like AWS S3, Supabase Storage, Cloudflare R2 Storage
  • Database Plugin: Support for metadata storage like Supabase Database, PostgreSQL, Cloudflare D1

    Configuration Example

  • Supabase

    import { bare } from "@hot-updater/bare";
    import { supabaseDatabase, supabaseStorage } from "@hot-updater/supabase";
    import { config } from "dotenv";
    import { defineConfig } from "hot-updater";
    
    config({ path: ".env.hotupdater" });
    
    export default defineConfig({
    build: bare({ enableHermes: true }),
    storage: supabaseStorage({
      supabaseUrl: process.env.HOT_UPDATER_SUPABASE_URL!,
      supabaseAnonKey: process.env.HOT_UPDATER_SUPABASE_ANON_KEY!,
      bucketName: process.env.HOT_UPDATER_SUPABASE_BUCKET_NAME!,
    }),
    database: supabaseDatabase({
      supabaseUrl: process.env.HOT_UPDATER_SUPABASE_URL!,
      supabaseAnonKey: process.env.HOT_UPDATER_SUPABASE_ANON_KEY!,
    }),
    });
  • Cloudflare `tsx import { bare } from "@hot-updater/bare"; import { d1Database, r2Storage } from "@hot-updater/cloudflare"; import { config } from "dotenv"; import { defineConfig } from "hot-updater";

config({ path: ".env.hotupdater" });

export default defineConfig({ build: bare({ enableHermes: true }), storage: r2Storage({ bucketName: process.env.HOT_UPDATER_CLOUDFLARE_R2_BUCKET_NAME!, accountId: process.env.HOT_UPDATER_CLOUDFLARE_ACCOUNT_ID!, cloudflareApiToken: process.env.HOT_UPDATER_CLOUDFLARE_API_TOKEN!, }), database: d1Database({ databaseId: process.env.HOT_UPDATER_CLOUDFLARE_D1_DATABASE_ID!, accountId: process.env.HOT_UPDATER_CLOUDFLARE_ACCOUNT_ID!, cloudflareApiToken: process.env.HOT_UPDATER_CLOUDFLARE_API_TOKEN!, }), });


* [AWS S3 + Lambda@Edge](https://hot-updater.dev/guide/providers/3_aws-s3-lambda-edge.html)
```tsx
import { bare } from "@hot-updater/bare";
import { s3Storage, s3Database } from "@hot-updater/aws";
import { config } from "dotenv";
import { defineConfig } from "hot-updater";

config({ path: ".env.hotupdater" });

const options = {
  bucketName: process.env.HOT_UPDATER_S3_BUCKET_NAME!,
  region: process.env.HOT_UPDATER_S3_REGION!,
  credentials: {
    accessKeyId: process.env.HOT_UPDATER_S3_ACCESS_KEY_ID!,
    secretAccessKey: process.env.HOT_UPDATER_S3_SECRET_ACCESS_KEY!,
  },
};

export default defineConfig({
  build: bare({ enableHermes: true }),
  storage: s3Storage(options),
  database: s3Database(options),
});
  • Firebase `tsx import { bare } from '@hot-updater/bare'; import {firebaseStorage, firebaseDatabase} from '@hot-updater/firebase'; import * as admin from 'firebase-admin'; import { config } from "dotenv"; import { defineConfig } from "hot-updater";

config({ path: ".env.hotupdater" });

// https://firebase.google.com/docs/admin/setup?hl=en#initialize_the_sdk_in_non-google_environments // Check your .env file and add the credentials // Set the GOOGLE_APPLICATION_CREDENTIALS environment variable to your credentials file path // Example: GOOGLE_APPLICATION_CREDENTIALS=./firebase-adminsdk-credentials.json const credential = admin.credential.applicationDefault();

export default defineConfig({ build: bare({ enableHermes: true, }), storage: firebaseStorage({ projectId: process.env.HOT_UPDATER_FIREBASE_PROJECT_ID!, storageBucket: process.env.HOT_UPDATER_FIREBASE_STORAGE_BUCKET!, credential, }), database: firebaseDatabase({ projectId: process.env.HOT_UPDATER_FIREBASE_PROJECT_ID!, credential, }), }); `

changelog

0.17.0 (2025-04-30)

🚀 Features

  • init commands hint (b0ef3e9a)
  • bare: migration metro to bare (#299)
  • cli: init after config builder (RNEF) (#305)
  • expo: @hot-updater/expo build plugin (#310)
  • firebase: supports firebase (#212)
  • firebase: makeEnv with GOOGLE_APPLICATION_CREDENTIALS (e3edaeb9)
  • hermes: minify false when enable hermes (#309)
  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • react-native: source allow async function (#274)
  • react-native: add expo-config-plugin (#287)
  • rnef: supports @hot-updater/repack / @hot-updater/rnef build plugin (#300)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f526598)
  • types (0469e97b)
  • docs (d56bbbb1)
  • pnpm lock (8dabcedb)
  • android: loading assetLoader synchronously, cause crash, load async instead (#281)
  • android: supports expo 52 (#312)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0c)
  • firebase: package.json to _package.json (#286)
  • firebase: fix authentication method and region selection errors (#284)
  • firebase: init-first (42b6b65f)
  • firebase: print template (ae3e55c3)
  • firebase: edit URL for next step (#294)
  • firebase: supports windows init (#302)
  • firebase: execa shell (e47fb0f6)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)
  • react-native: HotUpdater.wrap pass origin props (#273)
  • supabase: init correct supabase workdir (#296)

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • OskarAtJoint @OskarAtJoint
  • Sungyu Kang
  • 阿邦 @BANG88

0.16.7-0 (2025-04-30)

🚀 Features

  • init commands hint (b0ef3e9a)
  • bare: migration metro to bare (#299)
  • cli: init after config builder (RNEF) (#305)
  • expo: @hot-updater/expo build plugin (#310)
  • firebase: supports firebase (#212)
  • firebase: makeEnv with GOOGLE_APPLICATION_CREDENTIALS (e3edaeb9)
  • hermes: minify false when enable hermes (#309)
  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • react-native: source allow async function (#274)
  • react-native: add expo-config-plugin (#287)
  • rnef: supports @hot-updater/repack / @hot-updater/rnef build plugin (#300)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f526598)
  • types (0469e97b)
  • docs (d56bbbb1)
  • pnpm lock (8dabcedb)
  • android: loading assetLoader synchronously, cause crash, load async instead (#281)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0c)
  • firebase: package.json to _package.json (#286)
  • firebase: fix authentication method and region selection errors (#284)
  • firebase: init-first (42b6b65f)
  • firebase: print template (ae3e55c3)
  • firebase: edit URL for next step (#294)
  • firebase: supports windows init (#302)
  • firebase: execa shell (e47fb0f6)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)
  • react-native: HotUpdater.wrap pass origin props (#273)
  • supabase: init correct supabase workdir (#296)

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • OskarAtJoint @OskarAtJoint
  • Sungyu Kang
  • 阿邦 @BANG88

0.16.6 (2025-04-27)

🚀 Features

  • init commands hint (b0ef3e9)
  • bare: migration metro to bare (#299)
  • cli: init after config builder (RNEF) (#305)
  • firebase: supports firebase (#212)
  • firebase: makeEnv with GOOGLE_APPLICATION_CREDENTIALS (e3edaeb)
  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • react-native: source allow async function (#274)
  • rnef: supports @hot-updater/repack / @hot-updater/rnef build plugin (#300)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • docs (d56bbbb)
  • android: loading assetLoader synchronously, cause crash, load async instead (#281)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0)
  • firebase: package.json to _package.json (#286)
  • firebase: fix authentication method and region selection errors (#284)
  • firebase: init-first (42b6b65)
  • firebase: print template (ae3e55c)
  • firebase: edit URL for next step (#294)
  • firebase: supports windows init (#302)
  • firebase: execa shell (e47fb0f)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)
  • react-native: HotUpdater.wrap pass origin props (#273)
  • supabase: init correct supabase workdir (#296)

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • OskarAtJoint @OskarAtJoint
  • Sungyu Kang

0.16.5 (2025-04-27)

🚀 Features

  • init commands hint (b0ef3e9)
  • bare: migration metro to bare (#299)
  • firebase: supports firebase (#212)
  • firebase: makeEnv with GOOGLE_APPLICATION_CREDENTIALS (e3edaeb)
  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • react-native: source allow async function (#274)
  • rnef: supports @hot-updater/repack / @hot-updater/rnef build plugin (#300)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • android: loading assetLoader synchronously, cause crash, load async instead (#281)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0)
  • firebase: package.json to _package.json (#286)
  • firebase: fix authentication method and region selection errors (#284)
  • firebase: init-first (42b6b65)
  • firebase: print template (ae3e55c)
  • firebase: edit URL for next step (#294)
  • firebase: supports windows init (#302)
  • firebase: execa shell (e47fb0f)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)
  • react-native: HotUpdater.wrap pass origin props (#273)
  • supabase: init correct supabase workdir (#296)

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • OskarAtJoint @OskarAtJoint
  • Sungyu Kang

0.16.4 (2025-04-26)

🚀 Features

  • init commands hint (b0ef3e9)
  • bare: migration metro to bare (#299)
  • firebase: supports firebase (#212)
  • firebase: makeEnv with GOOGLE_APPLICATION_CREDENTIALS (e3edaeb)
  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • react-native: source allow async function (#274)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • android: loading assetLoader synchronously, cause crash, load async instead (#281)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0)
  • firebase: package.json to _package.json (#286)
  • firebase: fix authentication method and region selection errors (#284)
  • firebase: init-first (42b6b65)
  • firebase: print template (ae3e55c)
  • firebase: edit URL for next step (#294)
  • firebase: supports windows init (#302)
  • firebase: execa shell (e47fb0f)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)
  • react-native: HotUpdater.wrap pass origin props (#273)
  • supabase: init correct supabase workdir (#296)

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • OskarAtJoint @OskarAtJoint
  • Sungyu Kang

0.16.3 (2025-04-17)

🚀 Features

  • firebase: supports firebase (#212)
  • firebase: makeEnv with GOOGLE_APPLICATION_CREDENTIALS (e3edaeb)
  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • react-native: source allow async function (#274)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • android: loading assetLoader synchronously, cause crash, load async instead (#281)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0)
  • firebase: package.json to _package.json (#286)
  • firebase: fix authentication method and region selection errors (#284)
  • firebase: init-first (42b6b65)
  • firebase: print template (ae3e55c)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)
  • react-native: HotUpdater.wrap pass origin props (#273)

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • OskarAtJoint @OskarAtJoint
  • Sungyu Kang

0.16.2 (2025-04-10)

🚀 Features

  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • react-native: source allow async function (#274)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)
  • react-native: HotUpdater.wrap pass origin props (#273)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.16.1 (2025-04-09)

🚀 Features

  • react-native: fetchUpdateInfo timeout default 5000 (#270)
  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • cli: warning To load an ES module (#251)
  • cli: windows os createZip incorrect assets (#269)
  • examples: types (c7d2ae0)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.16.0 (2025-04-07)

🚀 Features

  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • cli: warning To load an ES module (#251)
  • examples: types (c7d2ae0)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)
  • native: store data separately for each version of the native app (#261)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.15.1 (2025-04-06)

🚀 Features

  • sentry: sourcemap upload plugin (#255)

🩹 Fixes

  • jsdoc (1f52659)
  • types (0469e97)
  • cli: warning To load an ES module (#251)
  • ios: HotUpdater.reload should work properly even in debug mode (#254)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.15.0 (2025-04-03)

🩹 Fixes

  • ios: stable getMinBundleId (#247)

❤️ Thank You

  • Sungyu Kang

0.14.0 (2025-04-01)

This was a version bump only, there were no code changes.

0.13.5 (2025-03-29)

🩹 Fixes

  • cli: prevent update failure due to incorrect ZIP file generation during hot-updater deploy (#237)

❤️ Thank You

  • Sungyu Kang

0.13.4 (2025-03-29)

🩹 Fixes

  • plugin-core: using ts-morph and not typescript peerDeps (#236)

❤️ Thank You

  • Sungyu Kang

0.13.3 (2025-03-28)

🚀 Features

  • postgresql: getUpdateInfo node util (#215)

🩹 Fixes

  • aws: create s3 region us-east-1 (#231)
  • cli: banner version not showing (#226)

❤️ Thank You

  • miso-kyoungminkim
  • Sungyu Kang

0.13.2 (2025-03-28)

🩹 Fixes

  • supabase: exports edge-functions entryPoint (#224)

❤️ Thank You

  • Sungyu Kang

0.13.1 (2025-03-27)

🩹 Fixes

  • cli: getDefaultTargetAppVersion from info.plist (#218)
  • metro: ensure bundle.map is generated correctly when enableHermes is set to true (#219)

❤️ Thank You

  • Sungyu Kang

0.13.0 (2025-03-26)

This was a version bump only, there were no code changes.

0.12.7 (2025-03-19)

🚀 Features

  • console: icon colorful (#189)

🩹 Fixes

  • cli: windows migration command blocking (#195)

🔥 Performance

  • console: migrate typia schema (#188)

❤️ Thank You

  • Sungyu Kang

0.12.6 (2025-03-17)

🩹 Fixes

  • react-native: compat react 17 (#186)
  • react-native: wrap selector (1a511d4)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.12.5 (2025-03-17)

🚀 Features

  • standalone: add standaloneStorage plugin (#173)

🩹 Fixes

  • cloudflare: supports wrangler 4.0.0 (#185)

❤️ Thank You

  • Sungyu Kang
  • Tanuj Sharma @tanujs95

0.12.4 (2025-03-03)

🚀 Features

  • firebase: integration firebaseStorage (#149)
  • firebase: integration firebaseDatabase (#156)

🩹 Fixes

  • aws: fetch the correct S3 bucket regardless of region (#162)
  • aws: catch null S3 JSON retrieval (294063a)

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • Sungyu Kang

0.12.3 (2025-02-24)

🚀 Features

  • config: platform injected to config (#143)

❤️ Thank You

  • Sungyu Kang

0.12.2 (2025-02-23)

🩹 Fixes

  • aws: Lambda@Edge ARN version append (#140)

❤️ Thank You

  • Sungyu Kang

0.12.1 (2025-02-23)

🚀 Features

  • aws: introduce AWS S3 + Lambda@Edge infra (#85)
  • console: Improve UX by preventing screen flickering (#133)
  • console: improve sidebar with animation when save (#137)
  • console: Modify to support HMR by migrating from Rsbuild to Vite (#138)
  • mock: add delay to api calls (#139)

🩹 Fixes

❤️ Thank You

  • gronxb
  • jingjinge @jingjing2222
  • max.cha @Coreight98
  • Sungyu Kang

0.12.0 (2025-02-21)

🚀 Features

  • native: manage up to two bundles for immediate rollback (#130)

🩹 Fixes

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.11.0 (2025-02-20)

🩹 Fixes

  • ios: warn requiresMainQueueSetup (#127)
  • react-native: wrap reload in requestAnimationFrame (#129)

❤️ Thank You

  • Sungyu Kang

0.10.2 (2025-02-20)

🚀 Features

  • standalone: api-based standaloneRepository database plugin (#83)

🩹 Fixes

  • cli: getCwd bundle failed on cloudflareD1R2Worker (#126)

❤️ Thank You

  • Hieu Do @minhhieu76qng
  • Neil Agarwal

0.10.1 (2025-02-19)

🚀 Features

  • console: after clicking save, show loading icon (#117)
  • metro: enableHermes options compile binary (#120)

🩹 Fixes

  • sets bundleUrl before reload for custom RCTBridges for brownfield app (#119)
  • android: UI Blocking code in Android when fetching JS Bundle && Add kotlin config in to 0.71 sample (#122)

❤️ Thank You

  • HyunWoo Lee (Nunu Lee) @l2hyunwoo
  • jingjinge @jingjing2222
  • Sungyu Kang
  • wes4m

0.10.0 (2025-02-19)

🚀 Features

  • console: after clicking save, show loading icon (#117)
  • metro: enableHermes options compile binary (#120)

🩹 Fixes

  • sets bundleUrl before reload for custom RCTBridges for brownfield app (#119)
  • android: UI Blocking code in Android when fetching JS Bundle && Add kotlin config in to 0.71 sample (#122)

❤️ Thank You

  • HyunWoo Lee (Nunu Lee) @l2hyunwoo
  • jingjinge @jingjing2222
  • Sungyu Kang
  • wes4m

0.9.0 (2025-02-17)

🩹 Fixes

  • ios: ensure UI thread is not blocked by sending events, spreading out by 200ms (#111)
  • ios: Improve KVO observer management for download tasks (#112)

❤️ Thank You

  • Elijah Windsor
  • Sungyu Kang

0.8.0 (2025-02-16)

🩹 Fixes

  • ensure that the UI thread is not blocked when updating (#106)
  • android: Prevent bundle loading when URL is null (#103)
  • android: prevent ProGuard from blocking access to mBundleLoader (#107)
  • android: new arch ProGuard (#108)
  • ios: Add progress tracking for download tasks in HotUpdater (#109)

❤️ Thank You

  • Elijah Windsor
  • mustafa MEDENi @mstfmedeni
  • Sungyu Kang

0.7.0 (2025-02-14)

🩹 Fixes

  • android: Prevent bundle loading when URL is null (#103)

❤️ Thank You

  • Sungyu Kang

0.6.7 (2025-02-14)

🚀 Features

  • database: changeset-based commitBundle and remove setBundles interface (#93)
  • mock: mockDatabase for console development (#89)
  • react-native: change default reloadOnForceUpdate to true (#100)

🩹 Fixes

  • cloudflare: change cloudflare 4.1.0 api spec (#98)
  • react-native: If shouldForceUpdate is false, fallbackComponent pass (#102)

❤️ Thank You

  • max.cha @Coreight98
  • Sungyu Kang

0.6.6 (2025-02-13)

🚀 Features

  • database: changeset-based commitBundle and remove setBundles interface (#93)
  • mock: mockDatabase for console development (#89)

🩹 Fixes

  • loop (27789a4)
  • cloudflare: change cloudflare 4.1.0 api spec (3128f05)

❤️ Thank You

  • gronxb
  • max.cha @Coreight98
  • Sungyu Kang

0.6.5 (2025-02-05)

🩹 Fixes

  • react-native: compatibility with TypeScript 4 (#82)

❤️ Thank You

  • Sungyu Kang

0.6.4 (2025-02-04)

🩹 Fixes

  • clouflare: set cloudflare account id (#81)
  • deploy: improve error handling for storage and database plugins (bbaffa5)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.6.3 (2025-02-04)

🚀 Features

  • cloudflare: improve error handling for Cloudflare API calls (09f7ef7)

🩹 Fixes

  • supabase: improve error handling for Supabase upload (#77)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.6.2 (2025-02-02)

This was a version bump only, there were no code changes.

0.6.1 (2025-02-02)

🚀 Features

  • introduce cloudflare d1 + r2 + wokrer (#60)
  • aws: extendable s3Database config (#74)

❤️ Thank You

  • Sungyu Kang

0.6.1-rc.6 (2025-02-02)

🩹 Fixes

❤️ Thank You

  • gronxb

0.6.1-rc.5 (2025-02-02)

🩹 Fixes

❤️ Thank You

  • gronxb

0.6.1-rc.4 (2025-02-02)

🚀 Features

🩹 Fixes

❤️ Thank You

  • gronxb

0.6.1-rc.3 (2025-02-02)

🩹 Fixes

❤️ Thank You

  • gronxb

0.6.1-rc.2 (2025-02-02)

🩹 Fixes

❤️ Thank You

  • gronxb

0.6.1-rc.1 (2025-02-02)

🩹 Fixes

❤️ Thank You

  • gronxb

0.6.1-rc.0 (2025-02-02)

🚀 Features

🩹 Fixes

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.6.0 (2025-01-23)

🚀 Features

  • react-native: support 0.77.0 swift template (#72)

🩹 Fixes

  • supabase: improve error message for upload failures in supabaseStorage (#71)

❤️ Thank You

  • Sungyu Kang

0.5.10 (2025-01-22)

🩹 Fixes

  • supabase: improve error message for upload failures in supabaseStorage (ab6f9f5)

❤️ Thank You

  • gronxb

0.5.9 (2025-01-22)

🚀 Features

  • cli: get-plugin-env (#70)
  • metro: add entryFile, sourcemap parameter to metro() (#69)

❤️ Thank You

  • Sungyu Kang

0.5.8 (2025-01-21)

🩹 Fixes

  • hot-updater: move Metro package to devDependencies and remove unused dependencies (#66)
  • supabase: update log messages for generated configuration files (#65)

❤️ Thank You

  • Sungyu Kang

0.5.7 (2025-01-21)

🩹 Fixes

  • supabase: db pushing stdio inherit (#64)

❤️ Thank You

  • Sungyu Kang

0.5.6 (2025-01-21)

🩹 Fixes

  • cli: yarn add (#62)

❤️ Thank You

  • Sungyu Kang

0.5.5 (2025-01-18)

This was a version bump only, there were no code changes.

0.5.4 (2025-01-18)

🩹 Fixes

  • postgres: semver_match more test (#57)

❤️ Thank You

  • Sungyu Kang

0.5.3 (2025-01-17)

🚀 Features

  • console: always show gitCommitHash (#56)

❤️ Thank You

  • Sungyu Kang

0.5.2 (2025-01-17)

🚀 Features

  • react-native: HotUpdater.runUpdateProcess (#55)

❤️ Thank You

  • Sungyu Kang

0.5.0 (2025-01-16)

🩹 Fixes

  • android: set bundle (#54)

❤️ Thank You

  • Sungyu Kang

0.4.1-5 (2025-01-16)

🩹 Fixes

  • react-native: wrap progress (0ab3201)

❤️ Thank You

  • gronxb

0.4.1-4 (2025-01-16)

🚀 Features

🩹 Fixes

  • metro: bundleId throw kind error (09b56f4)
  • react-native: wrap (26c926b)

❤️ Thank You

  • gronxb

0.4.1-3 (2025-01-16)

🩹 Fixes

❤️ Thank You

  • gronxb

0.4.1-2 (2025-01-16)

🩹 Fixes

  • ensure install package (fb6aa8f)
  • hot-updater: metro select install (f9af86c)

❤️ Thank You

  • gronxb

0.4.1-1 (2025-01-16)

🩹 Fixes

  • lock (ce85e37)
  • hot-updater: supabase peer deps (#53)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.4.1-0 (2025-01-16)

🩹 Fixes

  • lock (ce85e37)
  • hot-updater: supabase peer deps (#53)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.4.0 (2025-01-16)

🚀 Features

  • react-native: HotUpdater.wrap add onCheckUpdateCompleted (#50)

🩹 Fixes

  • ios: old arch build (#52)

❤️ Thank You

  • Sungyu Kang

0.3.1 (2025-01-16)

🚀 Features

  • init command change templates (#44)
  • init video (9a31d14)
  • providers (54a38e2)
  • react-native: HotUpdater.wrap Component (#41)
  • supabase: init supabase command (#40)

🩹 Fixes

  • remove generate-secret-key (#45)
  • docs: order (a9fe3c6)

❤️ Thank You

  • gronxb
  • Sungyu Kang

0.3.0 (2025-01-13)

🚀 Features

  • react-native: HotUpdater.wrap Component (#41)
  • supabase: init supabase command (#40)

❤️ Thank You

  • Sungyu Kang

0.2.0 (2025-01-02)

🚀 Features

  • postgres get_update_info qurery and ensure test (#34)
  • improve deploy command (#35)
  • console config (#37)

🩹 Fixes

  • semver valid and chore deps (#36)
  • babel out dir (#38)

❤️ Thank You

  • Sungyu Kang

0.1.6-0 (2024-12-30)

🚀 Features

🩹 Fixes

❤️ Thank You

  • gronxb

0.1.5 (2024-12-27)

This was a version bump only, there were no code changes.

0.1.4 (2024-11-04)

🚀 Features

🩹 Fixes

❤️ Thank You

  • Sungyu Kang @gronxb

0.1.3 (2024-11-04)

🚀 Features

  • support types (f6e7a42)
  • downloadAndSave (bbd5909)
  • init (59e4a2f)
  • rollback check (f1a8348)
  • snapshot test bundle (ecb47fc)
  • cli (b5fc0f5)
  • already update guard (#5)
  • bundle version format date (7364eb9)
  • migration @clack/prompts (d7ba630)
  • support zip (#9)
  • manage update source (#15)
  • console gui (#16)
  • trpc (#19)
  • deps (7dc65cc)
  • rename rn version example (74950f4)
  • dev pass (6872508)
  • android: support android (5aefa4a)
  • android: support android reload (33f1f6a)
  • cli: rollback command (#6)
  • cli: list command (#7)
  • cli: prune command (484b1aa)
  • cli: perf rollback (#10)
  • console: check user-agent (4a737ae)
  • console: link hot-updater.config.ts (#20)
  • console: migrate solid & hono (#24)
  • docs: setup vitepress (5059fb5)
  • node: intergration backend core func (af2aecb)
  • node: s3 base url (56b8299)
  • node: support reloadAfterUpdate (4ceb067)
  • react-native: native modules (b473098)
  • react-native: default bundle url (91da142)
  • react-native: support assets push (e7ca528)
  • react-native: multiple download interface (9d6d05c)
  • react-native: log Downloaded all files (2e60990)
  • react-native: failover when download failed (26bc530)
  • react-native: bundleURLWithoutFallback (9317f8c)
  • react-native: reloadAfterUpdate (7c7beaa)

🩹 Fixes

❤️ Thank You

  • gronxb @gronxb
  • Sungyu Kang @gronxb