From 1d5798f6f2a2082b8acfd993cc2607121b356900 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Thu, 12 Dec 2024 18:52:14 +0100 Subject: [PATCH 01/11] refactor(core)!: Remove deprecated platforms code (#7796) --- core/src/definitions-internal.ts | 5 --- core/src/index.ts | 3 -- core/src/platforms.ts | 68 -------------------------------- core/src/runtime.ts | 20 +++------- 4 files changed, 5 insertions(+), 91 deletions(-) delete mode 100644 core/src/platforms.ts diff --git a/core/src/definitions-internal.ts b/core/src/definitions-internal.ts index a9179b5f4..abe73d313 100644 --- a/core/src/definitions-internal.ts +++ b/core/src/definitions-internal.ts @@ -1,5 +1,4 @@ import type { CapacitorGlobal, PluginCallback, PluginResultData, PluginResultError } from './definitions'; -import type { CapacitorPlatformsInstance } from './platforms'; export interface PluginHeaderMethod { readonly name: string; @@ -148,10 +147,6 @@ export interface WindowCapacitor { CapacitorHttpAndroidInterface?: any; CapacitorWebFetch?: any; CapacitorWebXMLHttpRequest?: any; - /** - * @deprecated Use `CapacitorCustomPlatform` instead - */ - CapacitorPlatforms?: CapacitorPlatformsInstance; CapacitorCustomPlatform?: CapacitorCustomPlatformInstance; Ionic?: { WebView?: { diff --git a/core/src/index.ts b/core/src/index.ts index b189c71f4..b4f9db777 100644 --- a/core/src/index.ts +++ b/core/src/index.ts @@ -10,9 +10,6 @@ export type { PluginResultError, } from './definitions'; -// Platforms Map -export { CapacitorPlatforms, addPlatform, setPlatform } from './platforms'; - // Global APIs export { Capacitor, registerPlugin } from './global'; diff --git a/core/src/platforms.ts b/core/src/platforms.ts deleted file mode 100644 index abe738504..000000000 --- a/core/src/platforms.ts +++ /dev/null @@ -1,68 +0,0 @@ -import type { PluginImplementations } from './definitions'; -import type { PluginHeader } from './definitions-internal'; - -export interface CapacitorPlatform { - name: string; - getPlatform?(): string; - isPluginAvailable?(pluginName: string): boolean; - getPluginHeader?(pluginName: string): PluginHeader | undefined; - registerPlugin?(pluginName: string, jsImplementations: PluginImplementations): any; - isNativePlatform?(): boolean; -} - -export interface CapacitorPlatformsInstance { - currentPlatform: CapacitorPlatform; - platforms: Map; - addPlatform(name: string, platform: CapacitorPlatform): void; - setPlatform(name: string): void; -} - -const createCapacitorPlatforms = (win: any): CapacitorPlatformsInstance => { - const defaultPlatformMap = new Map(); - defaultPlatformMap.set('web', { name: 'web' }); - - const capPlatforms: CapacitorPlatformsInstance = win.CapacitorPlatforms || { - currentPlatform: { name: 'web' }, - platforms: defaultPlatformMap, - }; - - const addPlatform = (name: string, platform: CapacitorPlatform) => { - capPlatforms.platforms.set(name, platform); - }; - - const setPlatform = (name: string) => { - if (capPlatforms.platforms.has(name)) { - capPlatforms.currentPlatform = capPlatforms.platforms.get(name); - } - }; - - capPlatforms.addPlatform = addPlatform; - capPlatforms.setPlatform = setPlatform; - - return capPlatforms; -}; - -const initPlatforms = (win: any) => (win.CapacitorPlatforms = createCapacitorPlatforms(win)); - -/** - * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead - */ -export const CapacitorPlatforms = /*#__PURE__*/ initPlatforms( - (typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}) as any, -); -/** - * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead - */ -export const addPlatform = CapacitorPlatforms.addPlatform; -/** - * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead - */ -export const setPlatform = CapacitorPlatforms.setPlatform; diff --git a/core/src/runtime.ts b/core/src/runtime.ts index db530701f..2b025f245 100644 --- a/core/src/runtime.ts +++ b/core/src/runtime.ts @@ -5,7 +5,6 @@ import type { PluginHeader, WindowCapacitor, } from './definitions-internal'; -import type { CapacitorPlatformsInstance } from './platforms'; import { CapacitorException, getPlatformId, ExceptionCode } from './util'; export interface RegisteredPlugin { @@ -18,20 +17,14 @@ export const createCapacitor = (win: WindowCapacitor): CapacitorInstance => { const capCustomPlatform: CapacitorCustomPlatformInstance = win.CapacitorCustomPlatform || null; const cap: CapacitorInstance = win.Capacitor || ({} as any); const Plugins = (cap.Plugins = cap.Plugins || ({} as any)); - /** - * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object. - */ - const capPlatforms: CapacitorPlatformsInstance = win.CapacitorPlatforms; - const defaultGetPlatform = () => { + const getPlatform = () => { return capCustomPlatform !== null ? capCustomPlatform.name : getPlatformId(win); }; - const getPlatform = capPlatforms?.currentPlatform?.getPlatform || defaultGetPlatform; - const defaultIsNativePlatform = () => getPlatform() !== 'web'; - const isNativePlatform = capPlatforms?.currentPlatform?.isNativePlatform || defaultIsNativePlatform; + const isNativePlatform = () => getPlatform() !== 'web'; - const defaultIsPluginAvailable = (pluginName: string): boolean => { + const isPluginAvailable = (pluginName: string): boolean => { const plugin = registeredPlugins.get(pluginName); if (plugin?.platforms.has(getPlatform())) { @@ -46,17 +39,15 @@ export const createCapacitor = (win: WindowCapacitor): CapacitorInstance => { return false; }; - const isPluginAvailable = capPlatforms?.currentPlatform?.isPluginAvailable || defaultIsPluginAvailable; - const defaultGetPluginHeader = (pluginName: string): PluginHeader | undefined => + const getPluginHeader = (pluginName: string): PluginHeader | undefined => cap.PluginHeaders?.find((h) => h.name === pluginName); - const getPluginHeader = capPlatforms?.currentPlatform?.getPluginHeader || defaultGetPluginHeader; const handleError = (err: Error) => win.console.error(err); const registeredPlugins = new Map(); - const defaultRegisterPlugin = (pluginName: string, jsImplementations: PluginImplementations = {}): any => { + const registerPlugin = (pluginName: string, jsImplementations: PluginImplementations = {}): any => { const registeredPlugin = registeredPlugins.get(pluginName); if (registeredPlugin) { console.warn(`Capacitor plugin "${pluginName}" already registered. Cannot register plugins twice.`); @@ -199,7 +190,6 @@ export const createCapacitor = (win: WindowCapacitor): CapacitorInstance => { return proxy; }; - const registerPlugin = capPlatforms?.currentPlatform?.registerPlugin || defaultRegisterPlugin; // Add in convertFileSrc for web, it will already be available in native context if (!cap.convertFileSrc) { From 96d2799baf161e5d10fd7c2b5180aaf78a3408b0 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Thu, 12 Dec 2024 19:08:23 +0100 Subject: [PATCH 02/11] refactor(android)!: remove BridgeFragment (#7792) --- .../java/com/getcapacitor/BridgeFragment.java | 133 ------------------ .../src/main/res/layout/fragment_bridge.xml | 13 -- .../capacitor/src/main/res/values/attrs.xml | 6 - 3 files changed, 152 deletions(-) delete mode 100644 android/capacitor/src/main/java/com/getcapacitor/BridgeFragment.java delete mode 100644 android/capacitor/src/main/res/layout/fragment_bridge.xml delete mode 100644 android/capacitor/src/main/res/values/attrs.xml diff --git a/android/capacitor/src/main/java/com/getcapacitor/BridgeFragment.java b/android/capacitor/src/main/java/com/getcapacitor/BridgeFragment.java deleted file mode 100644 index eae2fcc4f..000000000 --- a/android/capacitor/src/main/java/com/getcapacitor/BridgeFragment.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.getcapacitor; - -import android.content.Context; -import android.content.res.TypedArray; -import android.os.Bundle; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import androidx.fragment.app.Fragment; -import com.getcapacitor.android.R; -import java.util.ArrayList; -import java.util.List; - -/** - * A simple {@link Fragment} subclass. - * Use the {@link BridgeFragment#newInstance} factory method to - * create an instance of this fragment. - */ -public class BridgeFragment extends Fragment { - - private static final String ARG_START_DIR = "startDir"; - - protected Bridge bridge; - protected boolean keepRunning = true; - - private final List> initialPlugins = new ArrayList<>(); - private CapConfig config = null; - - private final List webViewListeners = new ArrayList<>(); - - public BridgeFragment() { - // Required empty public constructor - } - - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param startDir the directory to serve content from - * @return A new instance of fragment BridgeFragment. - */ - public static BridgeFragment newInstance(String startDir) { - BridgeFragment fragment = new BridgeFragment(); - Bundle args = new Bundle(); - args.putString(ARG_START_DIR, startDir); - fragment.setArguments(args); - return fragment; - } - - public void addPlugin(Class plugin) { - this.initialPlugins.add(plugin); - } - - public void setConfig(CapConfig config) { - this.config = config; - } - - public Bridge getBridge() { - return bridge; - } - - public void addWebViewListener(WebViewListener webViewListener) { - webViewListeners.add(webViewListener); - } - - /** - * Load the WebView and create the Bridge - */ - protected void load(Bundle savedInstanceState) { - Logger.debug("Loading Bridge with BridgeFragment"); - - Bundle args = getArguments(); - String startDir = null; - - if (args != null) { - startDir = getArguments().getString(ARG_START_DIR); - } - - bridge = new Bridge.Builder(this) - .setInstanceState(savedInstanceState) - .setPlugins(initialPlugins) - .setConfig(config) - .addWebViewListeners(webViewListeners) - .create(); - - if (startDir != null) { - bridge.setServerAssetPath(startDir); - } - - this.keepRunning = bridge.shouldKeepRunning(); - } - - @Override - public void onInflate(Context context, AttributeSet attrs, Bundle savedInstanceState) { - super.onInflate(context, attrs, savedInstanceState); - - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.bridge_fragment); - CharSequence c = a.getString(R.styleable.bridge_fragment_start_dir); - - if (c != null) { - String startDir = c.toString(); - Bundle args = new Bundle(); - args.putString(ARG_START_DIR, startDir); - setArguments(args); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_bridge, container, false); - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - this.load(savedInstanceState); - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (this.bridge != null) { - this.bridge.onDestroy(); - } - } -} diff --git a/android/capacitor/src/main/res/layout/fragment_bridge.xml b/android/capacitor/src/main/res/layout/fragment_bridge.xml deleted file mode 100644 index b6123ea83..000000000 --- a/android/capacitor/src/main/res/layout/fragment_bridge.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/android/capacitor/src/main/res/values/attrs.xml b/android/capacitor/src/main/res/values/attrs.xml deleted file mode 100644 index 23a103710..000000000 --- a/android/capacitor/src/main/res/values/attrs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 9fe2256613ffca1668dae37f1e354f32a0995c46 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Mon, 16 Dec 2024 18:43:56 +0100 Subject: [PATCH 03/11] chore(cli): migrate command updates (#7795) --- cli/src/tasks/migrate.ts | 84 ++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 46 deletions(-) diff --git a/cli/src/tasks/migrate.ts b/cli/src/tasks/migrate.ts index 089e167d1..0885ff0d0 100644 --- a/cli/src/tasks/migrate.ts +++ b/cli/src/tasks/migrate.ts @@ -1,7 +1,7 @@ import { writeFileSync, readFileSync, existsSync } from 'fs-extra'; import { join } from 'path'; import rimraf from 'rimraf'; -import { coerce, gt, gte, lt } from 'semver'; +import { coerce, gte, lt } from 'semver'; import { getAndroidPlugins } from '../android/common'; import c from '../colors'; @@ -44,9 +44,9 @@ const plugins = [ '@capacitor/text-zoom', '@capacitor/toast', ]; -const coreVersion = '^6.0.0'; -const pluginVersion = '^6.0.0'; -const gradleVersion = '8.2.1'; +const coreVersion = 'next'; +const pluginVersion = 'next'; +const gradleVersion = '8.11.1'; let installFailed = false; export async function migrateCommand(config: Config, noprompt: boolean, packagemanager: string): Promise { @@ -55,14 +55,14 @@ export async function migrateCommand(config: Config, noprompt: boolean, packagem } const capMajor = await checkCapacitorMajorVersion(config); - if (capMajor < 5) { - fatal('Migrate can only be used on capacitor 5 and above, please use the CLI in Capacitor 5 to upgrade to 5 first'); + if (capMajor < 6) { + fatal('Migrate can only be used on Capacitor 6, please use the CLI in Capacitor 6 to upgrade to 6 first'); } const jdkMajor = await checkJDKMajorVersion(); - if (jdkMajor < 17) { - logger.warn('Capacitor 6 requires JDK 17 or higher. Some steps may fail.'); + if (jdkMajor < 21) { + logger.warn('Capacitor 7 requires JDK 21 or higher. Some steps may fail.'); } const variablesAndClasspaths: @@ -89,7 +89,7 @@ export async function migrateCommand(config: Config, noprompt: boolean, packagem const { migrateconfirm } = noprompt ? { migrateconfirm: 'y' } - : await logPrompt(`Capacitor 6 sets a deployment target of iOS 13 and Android 14 (SDK 34). \n`, { + : await logPrompt(`Capacitor 7 sets a deployment target of iOS 14 and Android 15 (SDK 35). \n`, { type: 'text', name: 'migrateconfirm', message: `Are you sure you want to migrate? (Y/n)`, @@ -147,9 +147,19 @@ export async function migrateCommand(config: Config, noprompt: boolean, packagem // Update iOS Projects if (allDependencies['@capacitor/ios'] && existsSync(config.ios.platformDirAbs)) { // ios template changes - // Remove NSLocationAlwaysUsageDescription - await runTask(`Migrating Info.plist by removing NSLocationAlwaysUsageDescription key.`, () => { - return removeKey(join(config.ios.nativeTargetDirAbs, 'Info.plist'), 'NSLocationAlwaysUsageDescription'); + // Set deployment target to 14.0 + await runTask(`Migrating deployment target to 14.0.`, () => { + return updateFile( + config, + join(config.ios.nativeXcodeProjDirAbs, 'project.pbxproj'), + 'IPHONEOS_DEPLOYMENT_TARGET = ', + ';', + '14.0', + ); + }); + // Update Podfile to 14.0 + await runTask(`Migrating Podfile to 14.0.`, () => { + return updateFile(config, join(config.ios.nativeProjectDirAbs, 'Podfile'), `platform :ios, '`, `'`, '14.0'); }); } @@ -166,8 +176,12 @@ export async function migrateCommand(config: Config, noprompt: boolean, packagem join(config.android.platformDirAbs, 'gradle', 'wrapper', 'gradle-wrapper.properties'), ); - if (!installFailed && gt(gradleVersion, gradleWrapperVersion)) { + if (!installFailed && gte(gradleVersion, gradleWrapperVersion)) { try { + await runTask(`Upgrading gradle wrapper`, () => { + return updateGradleWrapperFiles(config.android.platformDirAbs); + }); + // Run twice as first time it only updates the wrapper properties file await runTask(`Upgrading gradle wrapper files`, () => { return updateGradleWrapperFiles(config.android.platformDirAbs); }); @@ -191,28 +205,6 @@ export async function migrateCommand(config: Config, noprompt: boolean, packagem return updateBuildGradle(join(config.android.platformDirAbs, 'build.gradle'), variablesAndClasspaths); }); - // Replace deprecated compileSdkVersion - await runTask('Replacing deprecated compileSdkVersion from build.gradle', () => { - return (async (): Promise => { - const buildGradleFilename = join(config.android.platformDirAbs, 'app', 'build.gradle'); - const buildGradleText = readFile(buildGradleFilename); - - if (!buildGradleText) { - logger.error(`Could not read ${buildGradleFilename}. Check its permissions and if it exists.`); - return; - } - const compileSdk = `compileSdkVersion rootProject.ext.compileSdkVersion`; - if (buildGradleText.includes(compileSdk)) { - const buildGradleReplaced = buildGradleText.replace( - compileSdk, - `compileSdk rootProject.ext.compileSdkVersion`, - ); - - writeFileSync(buildGradleFilename, buildGradleReplaced, 'utf-8'); - } - })(); - }); - // Variables gradle await runTask(`Migrating variables.gradle file.`, () => { return (async (): Promise => { @@ -261,11 +253,11 @@ export async function migrateCommand(config: Config, noprompt: boolean, packagem } } const pluginVariables: { [key: string]: string } = { - firebaseMessagingVersion: '23.3.1', - playServicesLocationVersion: '21.1.0', - androidxBrowserVersion: '1.7.0', - androidxMaterialVersion: '1.10.0', - androidxExifInterfaceVersion: '1.3.6', + firebaseMessagingVersion: '24.1.0', + playServicesLocationVersion: '21.3.0', + androidxBrowserVersion: '1.8.0', + androidxMaterialVersion: '1.12.0', + androidxExifInterfaceVersion: '1.3.7', androidxCoreKTXVersion: '1.12.0', googleMapsPlayServicesVersion: '18.2.0', googleMapsUtilsVersion: '3.8.2', @@ -360,11 +352,11 @@ async function installLatestLibs(dependencyManager: string, runInstall: boolean, async function writeBreakingChanges() { const breaking = [ - '@capacitor/camera', - '@capacitor/filesystem', - '@capacitor/geolocation', - '@capacitor/google-maps', - '@capacitor/local-notifications', + '@capacitor/app', + '@capacitor/device', + '@capacitor/haptics', + '@capacitor/splash-screen', + '@capacitor/statusbar', ]; const broken = []; for (const lib of breaking) { @@ -374,7 +366,7 @@ async function writeBreakingChanges() { } if (broken.length > 0) { logger.info( - `IMPORTANT: Review https://capacitorjs.com/docs/next/updating/6-0#plugins for breaking changes in these plugins that you use: ${broken.join( + `IMPORTANT: Review https://capacitorjs.com/docs/next/updating/7-0#plugins for breaking changes in these plugins that you use: ${broken.join( ', ', )}.`, ); From 61d01653685d8e3594d2d8a6bd870fa9643ba95c Mon Sep 17 00:00:00 2001 From: Joey Pender Date: Wed, 18 Dec 2024 04:00:38 -0600 Subject: [PATCH 04/11] feat: Add global initialFocus configuration (#7775) Co-authored-by: jcesarmobile --- .../src/main/java/com/getcapacitor/CapConfig.java | 6 +++++- cli/src/declarations.ts | 12 ++++++++++++ ios/Capacitor/Capacitor/CAPInstanceDescriptor.swift | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java b/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java index c621a9b69..5b0e22a6e 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java +++ b/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java @@ -299,7 +299,11 @@ private void deserializeConfig(@Nullable Context context) { loggingEnabled = isDebug; } - initialFocus = JSONUtils.getBoolean(configJSON, "android.initialFocus", initialFocus); + initialFocus = JSONUtils.getBoolean( + configJSON, + "android.initialFocus", + JSONUtils.getBoolean(configJSON, "initialFocus", initialFocus) + ); // Plugins pluginsConfiguration = deserializePluginsConfig(JSONUtils.getObject(configJSON, "plugins")); diff --git a/cli/src/declarations.ts b/cli/src/declarations.ts index a0975a6be..1199463d6 100644 --- a/cli/src/declarations.ts +++ b/cli/src/declarations.ts @@ -77,6 +77,14 @@ export interface CapacitorConfig { */ zoomEnabled?: boolean; + /** + * Whether to give the webview initial focus. + * + * @since 7.0.0 + * @default true + */ + initialFocus?: boolean; + android?: { /** * Specify a custom path to the native Android project. @@ -191,6 +199,8 @@ export interface CapacitorConfig { /** * Whether to give the webview initial focus. * + * Overrides global `initialFocus` option. + * * @since 3.5.1 * @default true */ @@ -453,6 +463,8 @@ export interface CapacitorConfig { /** * Whether to give the webview initial focus. * + * Overrides global `initialFocus` option. + * * @since 7.0.0 * @default true */ diff --git a/ios/Capacitor/Capacitor/CAPInstanceDescriptor.swift b/ios/Capacitor/Capacitor/CAPInstanceDescriptor.swift index 75b990b72..68344d194 100644 --- a/ios/Capacitor/Capacitor/CAPInstanceDescriptor.swift +++ b/ios/Capacitor/Capacitor/CAPInstanceDescriptor.swift @@ -141,7 +141,7 @@ internal extension InstanceDescriptor { isWebDebuggable = true #endif } - if let initialFocus = config[keyPath: "ios.initialFocus"] as? Bool { + if let initialFocus = (config[keyPath: "ios.initialFocus"] as? Bool) ?? (config[keyPath: "initialFocus"] as? Bool) { hasInitialFocus = initialFocus } } From 7880bfc5826f186d629562e1b2d57265d199b4c8 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Wed, 18 Dec 2024 18:40:03 +0100 Subject: [PATCH 05/11] chore(android): bump source/target Compatibility to 21 (#7785) --- android/capacitor/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/capacitor/build.gradle b/android/capacitor/build.gradle index 06a37c36c..caeecebaa 100644 --- a/android/capacitor/build.gradle +++ b/android/capacitor/build.gradle @@ -64,8 +64,8 @@ android { lintConfig file('lint.xml') } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 } publishing { singleVariant("release") From 795cee2cf8b7ddd163537fbd6e484ece6e2e7aab Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Wed, 18 Dec 2024 18:50:41 +0100 Subject: [PATCH 06/11] chore(cli): Update dependencies (#7808) --- cli/package.json | 44 +++++++++++++++++++------------------- cli/src/index.ts | 6 +++--- cli/src/tasks/run.ts | 4 ++-- cli/src/util/subprocess.ts | 2 +- cli/tsconfig.json | 5 ++++- 5 files changed, 32 insertions(+), 29 deletions(-) diff --git a/cli/package.json b/cli/package.json index f20151812..8d1c3b75f 100644 --- a/cli/package.json +++ b/cli/package.json @@ -44,38 +44,38 @@ "watch": "npm run assets && tsc -w" }, "dependencies": { - "@ionic/cli-framework-output": "^2.2.5", - "@ionic/utils-subprocess": "2.1.11", - "@ionic/utils-terminal": "^2.3.3", - "commander": "^9.3.0", - "debug": "^4.3.4", + "@ionic/cli-framework-output": "^2.2.8", + "@ionic/utils-subprocess": "^3.0.1", + "@ionic/utils-terminal": "^2.3.5", + "commander": "^12.1.0", + "debug": "^4.4.0", "env-paths": "^2.2.0", "fs-extra": "^11.2.0", - "kleur": "^4.1.4", - "native-run": "^2.0.0", + "kleur": "^4.1.5", + "native-run": "^2.0.1", "open": "^8.4.0", - "plist": "^3.0.5", + "plist": "^3.1.0", "prompts": "^2.4.2", - "rimraf": "^4.4.1", - "semver": "^7.3.7", + "rimraf": "^6.0.1", + "semver": "^7.6.3", "tar": "^6.1.11", - "tslib": "^2.4.0", - "xml2js": "^0.5.0" + "tslib": "^2.8.1", + "xml2js": "^0.6.2" }, "devDependencies": { - "@types/debug": "^4.1.7", + "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", - "@types/jest": "^29.5.0", - "@types/plist": "^3.0.2", - "@types/prompts": "^2.0.14", - "@types/semver": "^7.3.10", + "@types/jest": "^29.5.14", + "@types/plist": "^3.0.5", + "@types/prompts": "^2.4.9", + "@types/semver": "^7.5.8", "@types/tar": "^6.1.1", - "@types/tmp": "^0.2.3", + "@types/tmp": "^0.2.6", "@types/xml2js": "0.4.5", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", - "jest-jasmine2": "^29.5.0", - "tmp": "^0.2.1", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "jest-jasmine2": "^29.7.0", + "tmp": "^0.2.3", "ts-jest": "^29.0.5", "typescript": "~5.0.2" }, diff --git a/cli/src/index.ts b/cli/src/index.ts index 1c014fbd1..7afede477 100644 --- a/cli/src/index.ts +++ b/cli/src/index.ts @@ -187,8 +187,7 @@ export function runProgram(config: Config): void { .option('--scheme ', 'set the scheme of the iOS project') .option('--flavor ', 'set the flavor of the Android project (flavor dimensions not yet supported)') .option('--list', 'list targets, then quit') - // TODO: remove once --json is a hidden option (https://github.com/tj/commander.js/issues/1106) - .allowUnknownOption(true) + .addOption(new Option('--json').hideHelp()) .option('--target ', 'use a specific target') .option('--no-sync', `do not run ${c.input('sync')}`) .option('--forwardPorts ', 'Automatically run "adb reverse" for better live-reloading support') @@ -202,13 +201,14 @@ export function runProgram(config: Config): void { config, async ( platform, - { scheme, flavor, list, target, sync, forwardPorts, liveReload, host, port, configuration }, + { scheme, flavor, list, json, target, sync, forwardPorts, liveReload, host, port, configuration }, ) => { const { runCommand } = await import('./tasks/run'); await runCommand(config, platform, { scheme, flavor, list, + json, target, sync, forwardPorts, diff --git a/cli/src/tasks/run.ts b/cli/src/tasks/run.ts index 2c3afd8a0..7217d6123 100644 --- a/cli/src/tasks/run.ts +++ b/cli/src/tasks/run.ts @@ -24,6 +24,7 @@ export interface RunCommandOptions { scheme?: string; flavor?: string; list?: boolean; + json?: boolean; target?: string; sync?: boolean; forwardPorts?: string; @@ -67,8 +68,7 @@ export async function runCommand( id: t.id ?? '?', })); - // TODO: make hidden commander option (https://github.com/tj/commander.js/issues/1106) - if (process.argv.includes('--json')) { + if (options.json) { process.stdout.write(`${JSON.stringify(outputTargets)}\n`); } else { const rows = outputTargets.map((t) => [t.name, t.api, t.id]); diff --git a/cli/src/util/subprocess.ts b/cli/src/util/subprocess.ts index b6067c4ec..c4743bdec 100644 --- a/cli/src/util/subprocess.ts +++ b/cli/src/util/subprocess.ts @@ -16,7 +16,7 @@ export async function runCommand( } catch (e) { if (e instanceof SubprocessError) { // old behavior of just throwing the stdout/stderr strings - throw e.output ? e.output : e.code ? e.code : e.error ? e.error.message : 'Unknown error'; + throw e.output ? e.output : e.cause ? `${e.message} ${e.cause.toString()}` : e.code ? e.code : 'Unknown error'; } throw e; diff --git a/cli/tsconfig.json b/cli/tsconfig.json index b254c555c..a36770895 100644 --- a/cli/tsconfig.json +++ b/cli/tsconfig.json @@ -3,7 +3,10 @@ "declaration": true, "esModuleInterop": true, "importHelpers": true, - "lib": ["es2019"], + "lib": [ + "ES2021", + "ES2022.Error" + ], "module": "commonjs", "moduleResolution": "node", "noEmitHelpers": true, From 4999cbefe32491559aa523ec5816bbcc4d1b9acd Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Wed, 18 Dec 2024 19:03:26 +0100 Subject: [PATCH 07/11] feat(android)!: Make service worker requests go through Capacitor bridge (#7764) Co-authored-by: Mark Anderson --- .../src/main/java/com/getcapacitor/Bridge.java | 16 ++++++++++++++++ .../main/java/com/getcapacitor/CapConfig.java | 13 +++++++++++++ .../com/getcapacitor/ConfigBuildingTest.java | 2 ++ cli/src/declarations.ts | 9 +++++++++ 4 files changed, 40 insertions(+) diff --git a/android/capacitor/src/main/java/com/getcapacitor/Bridge.java b/android/capacitor/src/main/java/com/getcapacitor/Bridge.java index dd623ae65..c2de44ef6 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/Bridge.java +++ b/android/capacitor/src/main/java/com/getcapacitor/Bridge.java @@ -15,7 +15,11 @@ import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; +import android.webkit.ServiceWorkerClient; +import android.webkit.ServiceWorkerController; import android.webkit.ValueCallback; +import android.webkit.WebResourceRequest; +import android.webkit.WebResourceResponse; import android.webkit.WebSettings; import android.webkit.WebView; import androidx.activity.result.ActivityResultCallback; @@ -274,6 +278,18 @@ private void loadWebView() { webView.setWebChromeClient(new BridgeWebChromeClient(this)); webView.setWebViewClient(this.webViewClient); + if (Build.VERSION.SDK_INT >= 24 && config.isResolveServiceWorkerRequests()) { + ServiceWorkerController swController = ServiceWorkerController.getInstance(); + swController.setServiceWorkerClient( + new ServiceWorkerClient() { + @Override + public WebResourceResponse shouldInterceptRequest(WebResourceRequest request) { + return getLocalServer().shouldInterceptRequest(request); + } + } + ); + } + if (!isDeployDisabled() && !isNewBinary()) { SharedPreferences prefs = getContext() .getSharedPreferences(com.getcapacitor.plugin.WebView.WEBVIEW_PREFS_NAME, Activity.MODE_PRIVATE); diff --git a/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java b/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java index 5b0e22a6e..9325b3078 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java +++ b/android/capacitor/src/main/java/com/getcapacitor/CapConfig.java @@ -53,6 +53,7 @@ public class CapConfig { private int minHuaweiWebViewVersion = DEFAULT_HUAWEI_WEBVIEW_VERSION; private String errorPath; private boolean zoomableWebView = false; + private boolean resolveServiceWorkerRequests = true; // Embedded private String startPath; @@ -179,6 +180,7 @@ private CapConfig(Builder builder) { this.minHuaweiWebViewVersion = builder.minHuaweiWebViewVersion; this.errorPath = builder.errorPath; this.zoomableWebView = builder.zoomableWebView; + this.resolveServiceWorkerRequests = builder.resolveServiceWorkerRequests; // Embedded this.startPath = builder.startPath; @@ -282,6 +284,7 @@ private void deserializeConfig(@Nullable Context context) { useLegacyBridge = JSONUtils.getBoolean(configJSON, "android.useLegacyBridge", useLegacyBridge); webContentsDebuggingEnabled = JSONUtils.getBoolean(configJSON, "android.webContentsDebuggingEnabled", isDebug); zoomableWebView = JSONUtils.getBoolean(configJSON, "android.zoomEnabled", JSONUtils.getBoolean(configJSON, "zoomEnabled", false)); + resolveServiceWorkerRequests = JSONUtils.getBoolean(configJSON, "android.resolveServiceWorkerRequests", true); String logBehavior = JSONUtils.getString( configJSON, @@ -374,6 +377,10 @@ public boolean isInputCaptured() { return captureInput; } + public boolean isResolveServiceWorkerRequests() { + return resolveServiceWorkerRequests; + } + public boolean isWebContentsDebuggingEnabled() { return webContentsDebuggingEnabled; } @@ -573,6 +580,7 @@ public static class Builder { private int minWebViewVersion = DEFAULT_ANDROID_WEBVIEW_VERSION; private int minHuaweiWebViewVersion = DEFAULT_HUAWEI_WEBVIEW_VERSION; private boolean zoomableWebView = false; + private boolean resolveServiceWorkerRequests = true; // Embedded private String startPath = null; @@ -672,6 +680,11 @@ public Builder setUseLegacyBridge(boolean useLegacyBridge) { return this; } + public Builder setResolveServiceWorkerRequests(boolean resolveServiceWorkerRequests) { + this.resolveServiceWorkerRequests = resolveServiceWorkerRequests; + return this; + } + public Builder setWebContentsDebuggingEnabled(boolean webContentsDebuggingEnabled) { this.webContentsDebuggingEnabled = webContentsDebuggingEnabled; return this; diff --git a/android/capacitor/src/test/java/com/getcapacitor/ConfigBuildingTest.java b/android/capacitor/src/test/java/com/getcapacitor/ConfigBuildingTest.java index 0a21c144a..1af51039d 100644 --- a/android/capacitor/src/test/java/com/getcapacitor/ConfigBuildingTest.java +++ b/android/capacitor/src/test/java/com/getcapacitor/ConfigBuildingTest.java @@ -54,6 +54,7 @@ public void setup() { .setBackgroundColor("red") .setPluginsConfiguration(pluginConfig) .setServerUrl("http://www.google.com") + .setResolveServiceWorkerRequests(false) .create(); } catch (Exception e) { fail(); @@ -73,6 +74,7 @@ public void getCoreConfigValues() { assertTrue(config.isWebContentsDebuggingEnabled()); assertEquals("red", config.getBackgroundColor()); assertEquals("http://www.google.com", config.getServerUrl()); + assertFalse(config.isResolveServiceWorkerRequests()); } @Test diff --git a/cli/src/declarations.ts b/cli/src/declarations.ts index 1199463d6..d12b832bf 100644 --- a/cli/src/declarations.ts +++ b/cli/src/declarations.ts @@ -288,6 +288,15 @@ export interface CapacitorConfig { * @default false */ useLegacyBridge?: boolean; + + /** + * Make service worker requests go through Capacitor bridge. + * Set it to false to use your own handling. + * + * @since 7.0.0 + * @default true + */ + resolveServiceWorkerRequests?: boolean; }; ios?: { From d640638911e29409e5d170eb9a157956438d25ec Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Thu, 19 Dec 2024 12:21:26 +0100 Subject: [PATCH 08/11] chore(cli): bump source/target Compatibility to 21 (#7786) --- capacitor-cordova-android-plugins/build.gradle | 4 ++-- cli/src/android/update.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/capacitor-cordova-android-plugins/build.gradle b/capacitor-cordova-android-plugins/build.gradle index 932a6b5c6..2331d41c1 100644 --- a/capacitor-cordova-android-plugins/build.gradle +++ b/capacitor-cordova-android-plugins/build.gradle @@ -28,8 +28,8 @@ android { abortOnError false } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 } } diff --git a/cli/src/android/update.ts b/cli/src/android/update.ts index 8afc9080f..edb975a43 100644 --- a/cli/src/android/update.ts +++ b/cli/src/android/update.ts @@ -198,8 +198,8 @@ project(':${getGradlePackageName(p.id)}').projectDir = new File('${relativePlugi android { compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 } } From 0891624c46b78a0fd39f617f834d5cdd1f54f5e6 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Thu, 19 Dec 2024 17:08:45 +0100 Subject: [PATCH 09/11] fix(cli): correct rimraf import (#7811) --- cli/src/ios/build.ts | 2 +- cli/src/tasks/migrate.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/src/ios/build.ts b/cli/src/ios/build.ts index 6c88421d3..9f8958c40 100644 --- a/cli/src/ios/build.ts +++ b/cli/src/ios/build.ts @@ -1,6 +1,6 @@ import { writeFileSync, unlinkSync } from 'fs-extra'; import { basename, join } from 'path'; -import rimraf from 'rimraf'; +import { rimraf } from 'rimraf'; import { runTask } from '../common'; import type { Config } from '../definitions'; diff --git a/cli/src/tasks/migrate.ts b/cli/src/tasks/migrate.ts index 0885ff0d0..305951c8c 100644 --- a/cli/src/tasks/migrate.ts +++ b/cli/src/tasks/migrate.ts @@ -1,6 +1,6 @@ import { writeFileSync, readFileSync, existsSync } from 'fs-extra'; import { join } from 'path'; -import rimraf from 'rimraf'; +import { rimraf } from 'rimraf'; import { coerce, gte, lt } from 'semver'; import { getAndroidPlugins } from '../android/common'; From 44b4feb14706f6c9c21654c8cc8705d47a6ba80d Mon Sep 17 00:00:00 2001 From: "Github Workflow (on behalf of jcesarmobile)" Date: Fri, 20 Dec 2024 15:19:38 +0000 Subject: [PATCH 10/11] Release 7.0.0-beta.0 --- CHANGELOG.md | 12 ++++++++++++ android/CHANGELOG.md | 6 ++++++ android/package.json | 4 ++-- cli/CHANGELOG.md | 12 ++++++++++++ cli/package.json | 2 +- core/CHANGELOG.md | 4 ++++ core/package.json | 2 +- ios/CHANGELOG.md | 10 ++++++++++ ios/package.json | 4 ++-- lerna.json | 2 +- 10 files changed, 51 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ced45600..0e95aef60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) + +### Bug Fixes + +- **cli:** correct rimraf import ([#7811](https://github.com/ionic-team/capacitor/issues/7811)) ([0891624](https://github.com/ionic-team/capacitor/commit/0891624c46b78a0fd39f617f834d5cdd1f54f5e6)) +- **cli:** update link to telemetry information ([e922e2b](https://github.com/ionic-team/capacitor/commit/e922e2b718f5c6f2e4062cdccdeb92da3321e67d)) +- **ios:** Make Bridge webView first responder ([#7753](https://github.com/ionic-team/capacitor/issues/7753)) ([77e4668](https://github.com/ionic-team/capacitor/commit/77e4668fa8dbb24b4561387e101547f74e37538e)) + +### Features + +- Add global initialFocus configuration ([#7775](https://github.com/ionic-team/capacitor/issues/7775)) ([61d0165](https://github.com/ionic-team/capacitor/commit/61d01653685d8e3594d2d8a6bd870fa9643ba95c)) + # [7.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.1...7.0.0-alpha.2) (2024-11-19) ### Bug Fixes diff --git a/android/CHANGELOG.md b/android/CHANGELOG.md index 131af91c0..332fe86ea 100644 --- a/android/CHANGELOG.md +++ b/android/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) + +### Features + +- Add global initialFocus configuration ([#7775](https://github.com/ionic-team/capacitor/issues/7775)) ([61d0165](https://github.com/ionic-team/capacitor/commit/61d01653685d8e3594d2d8a6bd870fa9643ba95c)) + # [7.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.1...7.0.0-alpha.2) (2024-11-19) **Note:** Version bump only for package @capacitor/android diff --git a/android/package.json b/android/package.json index 5a05e5ac2..951703b40 100644 --- a/android/package.json +++ b/android/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/android", - "version": "7.0.0-alpha.2", + "version": "7.0.0-beta.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", @@ -23,7 +23,7 @@ "verify": "./gradlew clean lint build test -b capacitor/build.gradle" }, "peerDependencies": { - "@capacitor/core": "^7.0.0-alpha.2" + "@capacitor/core": "^7.0.0-beta.0" }, "publishConfig": { "access": "public" diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index aef04c1c6..6e167aed7 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) + +### Bug Fixes + +- **cli:** correct rimraf import ([#7811](https://github.com/ionic-team/capacitor/issues/7811)) ([0891624](https://github.com/ionic-team/capacitor/commit/0891624c46b78a0fd39f617f834d5cdd1f54f5e6)) +- **cli:** update link to telemetry information ([e922e2b](https://github.com/ionic-team/capacitor/commit/e922e2b718f5c6f2e4062cdccdeb92da3321e67d)) +- **ios:** Make Bridge webView first responder ([#7753](https://github.com/ionic-team/capacitor/issues/7753)) ([77e4668](https://github.com/ionic-team/capacitor/commit/77e4668fa8dbb24b4561387e101547f74e37538e)) + +### Features + +- Add global initialFocus configuration ([#7775](https://github.com/ionic-team/capacitor/issues/7775)) ([61d0165](https://github.com/ionic-team/capacitor/commit/61d01653685d8e3594d2d8a6bd870fa9643ba95c)) + # [7.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.1...7.0.0-alpha.2) (2024-11-19) ### Bug Fixes diff --git a/cli/package.json b/cli/package.json index 8d1c3b75f..c89894b70 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/cli", - "version": "7.0.0-alpha.2", + "version": "7.0.0-beta.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 112d6083c..38217b939 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) + +**Note:** Version bump only for package @capacitor/core + # [7.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.1...7.0.0-alpha.2) (2024-11-19) **Note:** Version bump only for package @capacitor/core diff --git a/core/package.json b/core/package.json index ce14a13eb..4dd3951ea 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/core", - "version": "7.0.0-alpha.2", + "version": "7.0.0-beta.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", diff --git a/ios/CHANGELOG.md b/ios/CHANGELOG.md index a3885d99e..9df3e01a9 100644 --- a/ios/CHANGELOG.md +++ b/ios/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) + +### Bug Fixes + +- **ios:** Make Bridge webView first responder ([#7753](https://github.com/ionic-team/capacitor/issues/7753)) ([77e4668](https://github.com/ionic-team/capacitor/commit/77e4668fa8dbb24b4561387e101547f74e37538e)) + +### Features + +- Add global initialFocus configuration ([#7775](https://github.com/ionic-team/capacitor/issues/7775)) ([61d0165](https://github.com/ionic-team/capacitor/commit/61d01653685d8e3594d2d8a6bd870fa9643ba95c)) + # [7.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.1...7.0.0-alpha.2) (2024-11-19) **Note:** Version bump only for package @capacitor/ios diff --git a/ios/package.json b/ios/package.json index 613f699f2..282215d23 100644 --- a/ios/package.json +++ b/ios/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/ios", - "version": "7.0.0-alpha.2", + "version": "7.0.0-beta.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", @@ -26,7 +26,7 @@ "xc:build:xcframework": "scripts/build.sh xcframework" }, "peerDependencies": { - "@capacitor/core": "^7.0.0-alpha.2" + "@capacitor/core": "^7.0.0-beta.0" }, "publishConfig": { "access": "public" diff --git a/lerna.json b/lerna.json index 0b3b142f3..e574c6744 100644 --- a/lerna.json +++ b/lerna.json @@ -11,6 +11,6 @@ "tagVersionPrefix": "" } }, - "version": "7.0.0-alpha.2", + "version": "7.0.0-beta.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } From 9d08df636019a0f25fb0ccdc25cf543da5b24fef Mon Sep 17 00:00:00 2001 From: "Github Workflow (on behalf of jcesarmobile)" Date: Fri, 20 Dec 2024 17:10:17 +0000 Subject: [PATCH 11/11] Release 7.0.0-rc.0 --- CHANGELOG.md | 4 ++++ android/CHANGELOG.md | 4 ++++ android/package.json | 4 ++-- cli/CHANGELOG.md | 4 ++++ cli/package.json | 2 +- core/CHANGELOG.md | 4 ++++ core/package.json | 2 +- ios/CHANGELOG.md | 4 ++++ ios/package.json | 4 ++-- lerna.json | 2 +- 10 files changed, 27 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e95aef60..ce479c185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/7.0.0-beta.0...7.0.0-rc.0) (2024-12-20) + +**Note:** Version bump only for package capacitor + # [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) ### Bug Fixes diff --git a/android/CHANGELOG.md b/android/CHANGELOG.md index 332fe86ea..7f282c02f 100644 --- a/android/CHANGELOG.md +++ b/android/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/7.0.0-beta.0...7.0.0-rc.0) (2024-12-20) + +**Note:** Version bump only for package @capacitor/android + # [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) ### Features diff --git a/android/package.json b/android/package.json index 951703b40..e95410fce 100644 --- a/android/package.json +++ b/android/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/android", - "version": "7.0.0-beta.0", + "version": "7.0.0-rc.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", @@ -23,7 +23,7 @@ "verify": "./gradlew clean lint build test -b capacitor/build.gradle" }, "peerDependencies": { - "@capacitor/core": "^7.0.0-beta.0" + "@capacitor/core": "^7.0.0-rc.0" }, "publishConfig": { "access": "public" diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 6e167aed7..91e39c722 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/7.0.0-beta.0...7.0.0-rc.0) (2024-12-20) + +**Note:** Version bump only for package @capacitor/cli + # [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) ### Bug Fixes diff --git a/cli/package.json b/cli/package.json index c89894b70..1ddedc278 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/cli", - "version": "7.0.0-beta.0", + "version": "7.0.0-rc.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 38217b939..5a63feefa 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/7.0.0-beta.0...7.0.0-rc.0) (2024-12-20) + +**Note:** Version bump only for package @capacitor/core + # [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) **Note:** Version bump only for package @capacitor/core diff --git a/core/package.json b/core/package.json index 4dd3951ea..ff5389f82 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/core", - "version": "7.0.0-beta.0", + "version": "7.0.0-rc.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", diff --git a/ios/CHANGELOG.md b/ios/CHANGELOG.md index 9df3e01a9..61cc5ab67 100644 --- a/ios/CHANGELOG.md +++ b/ios/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/7.0.0-beta.0...7.0.0-rc.0) (2024-12-20) + +**Note:** Version bump only for package @capacitor/ios + # [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20) ### Bug Fixes diff --git a/ios/package.json b/ios/package.json index 282215d23..029bd1861 100644 --- a/ios/package.json +++ b/ios/package.json @@ -1,6 +1,6 @@ { "name": "@capacitor/ios", - "version": "7.0.0-beta.0", + "version": "7.0.0-rc.0", "description": "Capacitor: Cross-platform apps with JavaScript and the web", "homepage": "https://capacitorjs.com", "author": "Ionic Team (https://ionic.io)", @@ -26,7 +26,7 @@ "xc:build:xcframework": "scripts/build.sh xcframework" }, "peerDependencies": { - "@capacitor/core": "^7.0.0-beta.0" + "@capacitor/core": "^7.0.0-rc.0" }, "publishConfig": { "access": "public" diff --git a/lerna.json b/lerna.json index e574c6744..310d9c5f2 100644 --- a/lerna.json +++ b/lerna.json @@ -11,6 +11,6 @@ "tagVersionPrefix": "" } }, - "version": "7.0.0-beta.0", + "version": "7.0.0-rc.0", "$schema": "node_modules/lerna/schemas/lerna-schema.json" }