From a75f2fc90c5783a3a685a4f2ff6f85a9ea73cf2e Mon Sep 17 00:00:00 2001 From: Rosalyn Tan Date: Thu, 8 Aug 2024 14:41:50 -0700 Subject: [PATCH 01/11] Bump FDC local toolkit to v1.3.3. --- CHANGELOG.md | 1 + src/emulator/downloadableEmulators.ts | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86bacfcb204..e2c22ac1935 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,3 +2,4 @@ - Fixed bug where `esbuild` execution was throwing an error saying "Command line too long" on Windows (#7250, #6193). (#7395) - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) +- Update Firebase Data Connect toolkit to v1.3.3, which includes minor bug fixes. () diff --git a/src/emulator/downloadableEmulators.ts b/src/emulator/downloadableEmulators.ts index d792cfc53ab..a27c1aa40f3 100755 --- a/src/emulator/downloadableEmulators.ts +++ b/src/emulator/downloadableEmulators.ts @@ -57,20 +57,20 @@ const EMULATOR_UPDATE_DETAILS: { [s in DownloadableEmulators]: EmulatorUpdateDet dataconnect: process.platform === "darwin" ? { - version: "1.3.2", - expectedSize: 24195840, - expectedChecksum: "b60f4501c657bec4dc8df3f3ec7ab3fd", + version: "1.3.3", + expectedSize: 24216320, + expectedChecksum: "5cb594adc43af60f295cd38d03394d8b", } : process.platform === "win32" ? { - version: "1.3.2", - expectedSize: 24610304, - expectedChecksum: "37d5e08f4df5e07b41160b8f2fd90135", + version: "1.3.3", + expectedSize: 24631296, + expectedChecksum: "fcfabb147438c8a7e4a1dc5e526e2f1a", } : { - version: "1.3.2", - expectedSize: 24109208, - expectedChecksum: "52b09c69bc9a3a84b01a3a7311817229", + version: "1.3.3", + expectedSize: 24129688, + expectedChecksum: "b9f5d5daa94f21ceec1ccd81b4c48390", }, }; From b7f1cb053d7beb1fb126f4bdc6ccec0e033134bf Mon Sep 17 00:00:00 2001 From: Rosalyn Tan Date: Thu, 8 Aug 2024 14:42:53 -0700 Subject: [PATCH 02/11] Add PR number to changelog. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2c22ac1935..09a3dad15ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,4 +2,4 @@ - Fixed bug where `esbuild` execution was throwing an error saying "Command line too long" on Windows (#7250, #6193). (#7395) - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) -- Update Firebase Data Connect toolkit to v1.3.3, which includes minor bug fixes. () +- Update Firebase Data Connect toolkit to v1.3.3, which includes minor bug fixes. (#7544) From 9178f70958426cf298b8f7b032c0bd2bda9b8049 Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Thu, 8 Aug 2024 23:37:20 +0000 Subject: [PATCH 03/11] changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09a3dad15ab..2fb4b7cbcb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,4 +2,5 @@ - Fixed bug where `esbuild` execution was throwing an error saying "Command line too long" on Windows (#7250, #6193). (#7395) - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) -- Update Firebase Data Connect toolkit to v1.3.3, which includes minor bug fixes. (#7544) +- Update Firebase Data Connect toolkit to v1.3.4, which supports `offset`, cascade delete support, always all foreign fields and multiple generated SDK options. (#7544) + From 38010934d52cb5c16f3fe4fa262dfe1d1b051965 Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Thu, 8 Aug 2024 23:42:05 +0000 Subject: [PATCH 04/11] bump --- src/emulator/downloadableEmulators.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/emulator/downloadableEmulators.ts b/src/emulator/downloadableEmulators.ts index a27c1aa40f3..c867d849798 100755 --- a/src/emulator/downloadableEmulators.ts +++ b/src/emulator/downloadableEmulators.ts @@ -57,20 +57,20 @@ const EMULATOR_UPDATE_DETAILS: { [s in DownloadableEmulators]: EmulatorUpdateDet dataconnect: process.platform === "darwin" ? { - version: "1.3.3", + version: "1.3.4", expectedSize: 24216320, - expectedChecksum: "5cb594adc43af60f295cd38d03394d8b", + expectedChecksum: "f57bc0b9a10837ecb4f2808c49ae3ff5", } : process.platform === "win32" ? { - version: "1.3.3", + version: "1.3.4", expectedSize: 24631296, - expectedChecksum: "fcfabb147438c8a7e4a1dc5e526e2f1a", + expectedChecksum: "c8f1433fbff26f5e9da30cf205f2af78", } : { - version: "1.3.3", - expectedSize: 24129688, - expectedChecksum: "b9f5d5daa94f21ceec1ccd81b4c48390", + version: "1.3.4", + expectedSize: 24125592, + expectedChecksum: "a7b9a79d66fa5ebfb1a0f65e535d5c33", }, }; From 4308c66d69f4a278a63bb227c7e77ca574680ba9 Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Thu, 8 Aug 2024 16:43:08 -0700 Subject: [PATCH 05/11] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fb4b7cbcb5..ab3b5c6ba1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,5 +2,5 @@ - Fixed bug where `esbuild` execution was throwing an error saying "Command line too long" on Windows (#7250, #6193). (#7395) - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) -- Update Firebase Data Connect toolkit to v1.3.4, which supports `offset`, cascade delete support, always all foreign fields and multiple generated SDK options. (#7544) +- Update Firebase Data Connect toolkit to v1.3.4, which supports `offset`, cascade delete support, always all foreign fields and multiple generated SDK options. (#7545) From 714ceed0e8a938209c6d3fa89b0177fa1719c781 Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Thu, 8 Aug 2024 16:55:46 -0700 Subject: [PATCH 06/11] m --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab3b5c6ba1d..95e7d1dd8f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,4 +3,3 @@ - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) - Update Firebase Data Connect toolkit to v1.3.4, which supports `offset`, cascade delete support, always all foreign fields and multiple generated SDK options. (#7545) - From a5c3099e1681ba932acc9e2e093d6943ba5cac0d Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Thu, 8 Aug 2024 17:18:24 -0700 Subject: [PATCH 07/11] Update FDC SDK init defaults --- CHANGELOG.md | 1 + src/init/features/dataconnect/sdk.ts | 17 ++++++----------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95e7d1dd8f3..445c8434883 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,3 +3,4 @@ - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) - Update Firebase Data Connect toolkit to v1.3.4, which supports `offset`, cascade delete support, always all foreign fields and multiple generated SDK options. (#7545) +- Update Data Connect SDK Options Default to avoid duplicate output path. (#7545) diff --git a/src/init/features/dataconnect/sdk.ts b/src/init/features/dataconnect/sdk.ts index 36d02f46b09..efbc34cabab 100644 --- a/src/init/features/dataconnect/sdk.ts +++ b/src/init/features/dataconnect/sdk.ts @@ -110,7 +110,7 @@ async function askQuestions(setup: Setup, config: Config): Promise { newConnectorYaml.generate.swiftSdk?.outputDir || path.relative( connectorInfo.directory, - path.join(appDir, `generated/${newConnectorYaml.connectorId}`), + path.join(appDir, `generated/${newConnectorYaml.connectorId}/swift`), ); const pkg = newConnectorYaml.generate.swiftSdk?.package ?? camelCase(newConnectorYaml.connectorId); @@ -124,7 +124,7 @@ async function askQuestions(setup: Setup, config: Config): Promise { newConnectorYaml.generate.javascriptSdk?.outputDir || path.relative( connectorInfo.directory, - path.join(appDir, `generated/${newConnectorYaml.connectorId}`), + path.join(appDir, `generated/${newConnectorYaml.connectorId}/javascript`), ); const pkg = newConnectorYaml.generate.javascriptSdk?.package ?? @@ -150,17 +150,12 @@ async function askQuestions(setup: Setup, config: Config): Promise { // app/src/main/kotlin and app/src/main/java are conventional for Android, // but not required or enforced. If one of them is present (preferring the // "kotlin" directory), use it. Otherwise, fall back to the app directory. - let baseDir = path.join(appDir, "generated"); - for (const candidateSubdir of ["app/src/main/java", "app/src/main/kotlin"]) { - const candidateDir = path.join(appDir, candidateSubdir); - if (fs.existsSync(candidateDir)) { - baseDir = candidateDir; - } - } - const outputDir = newConnectorYaml.generate.kotlinSdk?.outputDir || - path.relative(connectorInfo.directory, baseDir); + path.relative( + connectorInfo.directory, + path.join(appDir, `generated/${newConnectorYaml.connectorId}/kotlin`), + ); const pkg = newConnectorYaml.generate.kotlinSdk?.package ?? `connectors.${snakeCase(connectorInfo.connectorYaml.connectorId)}`; From a998b4bc25d9be323f98fb63599b957cc883ca12 Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Thu, 8 Aug 2024 17:38:03 -0700 Subject: [PATCH 08/11] m --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f7007425f6..445c8434883 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,4 +3,4 @@ - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) - Update Firebase Data Connect toolkit to v1.3.4, which supports `offset`, cascade delete support, always all foreign fields and multiple generated SDK options. (#7545) -- Update Data Connect SDK Options Default to avoid duplicate output path. (#7545) \ No newline at end of file +- Update Data Connect SDK Options Default to avoid duplicate output path. (#7545) From f1ca9ed210da32eefa5e12a5523102f63831ac53 Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Thu, 8 Aug 2024 17:48:32 -0700 Subject: [PATCH 09/11] PascalCase for swift --- src/init/features/dataconnect/sdk.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/init/features/dataconnect/sdk.ts b/src/init/features/dataconnect/sdk.ts index efbc34cabab..41258b45723 100644 --- a/src/init/features/dataconnect/sdk.ts +++ b/src/init/features/dataconnect/sdk.ts @@ -21,7 +21,7 @@ import { } from "../../../dataconnect/types"; import { DataConnectEmulator } from "../../../emulator/dataconnectEmulator"; import { FirebaseError } from "../../../error"; -import { camelCase, snakeCase } from "lodash"; +import { camelCase, snakeCase, upperFirst } from "lodash"; import { logSuccess, logBullet } from "../../../utils"; export type SDKInfo = { @@ -113,7 +113,8 @@ async function askQuestions(setup: Setup, config: Config): Promise { path.join(appDir, `generated/${newConnectorYaml.connectorId}/swift`), ); const pkg = - newConnectorYaml.generate.swiftSdk?.package ?? camelCase(newConnectorYaml.connectorId); + newConnectorYaml.generate.swiftSdk?.package ?? + upperFirst(camelCase(newConnectorYaml.connectorId)); const swiftSdk = { outputDir, package: pkg }; newConnectorYaml.generate.swiftSdk = swiftSdk; displayIOSWarning = true; From e5978e795f362760c191d72741a709481215bdc6 Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Fri, 9 Aug 2024 10:11:20 -0700 Subject: [PATCH 10/11] add /app/src/main/kotlin logic back --- src/init/features/dataconnect/sdk.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/init/features/dataconnect/sdk.ts b/src/init/features/dataconnect/sdk.ts index 41258b45723..974fc61af15 100644 --- a/src/init/features/dataconnect/sdk.ts +++ b/src/init/features/dataconnect/sdk.ts @@ -151,12 +151,17 @@ async function askQuestions(setup: Setup, config: Config): Promise { // app/src/main/kotlin and app/src/main/java are conventional for Android, // but not required or enforced. If one of them is present (preferring the // "kotlin" directory), use it. Otherwise, fall back to the app directory. + let baseDir = path.join(appDir, `generated/${newConnectorYaml.connectorId}/kotlin`); + for (const candidateSubdir of ["app/src/main/java", "app/src/main/kotlin"]) { + const candidateDir = path.join(appDir, candidateSubdir); + if (fs.existsSync(candidateDir)) { + baseDir = candidateDir; + } + } + const outputDir = newConnectorYaml.generate.kotlinSdk?.outputDir || - path.relative( - connectorInfo.directory, - path.join(appDir, `generated/${newConnectorYaml.connectorId}/kotlin`), - ); + path.relative(connectorInfo.directory, baseDir); const pkg = newConnectorYaml.generate.kotlinSdk?.package ?? `connectors.${snakeCase(connectorInfo.connectorYaml.connectorId)}`; From 8d7b577b430ea1f490ef33bbc730bcc9a799d94e Mon Sep 17 00:00:00 2001 From: Fred Zhang Date: Fri, 9 Aug 2024 10:34:39 -0700 Subject: [PATCH 11/11] default path --- src/init/features/dataconnect/sdk.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/init/features/dataconnect/sdk.ts b/src/init/features/dataconnect/sdk.ts index 974fc61af15..362a8422e7e 100644 --- a/src/init/features/dataconnect/sdk.ts +++ b/src/init/features/dataconnect/sdk.ts @@ -108,10 +108,7 @@ async function askQuestions(setup: Setup, config: Config): Promise { if (targetPlatform === Platform.IOS) { const outputDir = newConnectorYaml.generate.swiftSdk?.outputDir || - path.relative( - connectorInfo.directory, - path.join(appDir, `generated/${newConnectorYaml.connectorId}/swift`), - ); + path.relative(connectorInfo.directory, path.join(appDir, `generated/swift`)); const pkg = newConnectorYaml.generate.swiftSdk?.package ?? upperFirst(camelCase(newConnectorYaml.connectorId)); @@ -125,7 +122,7 @@ async function askQuestions(setup: Setup, config: Config): Promise { newConnectorYaml.generate.javascriptSdk?.outputDir || path.relative( connectorInfo.directory, - path.join(appDir, `generated/${newConnectorYaml.connectorId}/javascript`), + path.join(appDir, `generated/javascript/${newConnectorYaml.connectorId}`), ); const pkg = newConnectorYaml.generate.javascriptSdk?.package ?? @@ -151,7 +148,7 @@ async function askQuestions(setup: Setup, config: Config): Promise { // app/src/main/kotlin and app/src/main/java are conventional for Android, // but not required or enforced. If one of them is present (preferring the // "kotlin" directory), use it. Otherwise, fall back to the app directory. - let baseDir = path.join(appDir, `generated/${newConnectorYaml.connectorId}/kotlin`); + let baseDir = path.join(appDir, `generated/kotlin`); for (const candidateSubdir of ["app/src/main/java", "app/src/main/kotlin"]) { const candidateDir = path.join(appDir, candidateSubdir); if (fs.existsSync(candidateDir)) {