fix(ai): typings for functionDeclaration.parameters.
Fixes #8944
This fix allows passing an ObjectSchema created by Schema.object() to functionDeclaration.parameters without any TS errors. It also forbids passing a plain JSON object to functionDeclaration.parameters if it has an optionalProperties property, as that is a convenience input method and should not be passed to the backend request. Users can still use the required property.
I experimented with intercepting plain JSON objects passed to functionDeclaration.parameters and processing the optionalProperties into a required array but concluded there are too many places this needs to be done (on getGenerativeModel and on each of its methods, possibly on getImagenModel and others in the future) and it adds a lot of unneeded code for a case that can be handled simply by using Schema.object() or manually filling out the required field.
🦋 Changeset detected
Latest commit: e449914f15b4123f8796e39654b62d95a00a0d6c
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 2 packages
| Name | Type |
|---|---|
| @firebase/ai | Patch |
| firebase | Patch |
Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR
Size Report 1
Affected Products
@firebase/appType Base (30de503) Merge (afd1de3) Diff react-native ? 20.4 kB ? (?) @firebase/authType Base (30de503) Merge (afd1de3) Diff browser 193 kB 193 kB +122 B (+0.1%) cordova 166 kB 166 kB +122 B (+0.1%) main 147 kB 147 kB +127 B (+0.1%) module 193 kB 193 kB +122 B (+0.1%) react-native 165 kB 165 kB +127 B (+0.1%) @firebase/auth-cordovaType Base (30de503) Merge (afd1de3) Diff browser 166 kB 166 kB +122 B (+0.1%) module 166 kB 166 kB +122 B (+0.1%) @firebase/auth-web-extensionType Base (30de503) Merge (afd1de3) Diff browser 142 kB 142 kB +122 B (+0.1%) main 159 kB 160 kB +129 B (+0.1%) module 142 kB 142 kB +122 B (+0.1%) @firebase/auth/internalType Base (30de503) Merge (afd1de3) Diff browser 204 kB 204 kB +122 B (+0.1%) main 174 kB 174 kB +129 B (+0.1%) module 204 kB 204 kB +122 B (+0.1%) @firebase/firestoreType Base (30de503) Merge (afd1de3) Diff browser 385 kB 395 kB +9.56 kB (+2.5%) main 596 kB 615 kB +19.4 kB (+3.3%) module 385 kB 395 kB +9.56 kB (+2.5%) react-native 386 kB 395 kB +9.56 kB (+2.5%) @firebase/firestore-liteType Base (30de503) Merge (afd1de3) Diff browser 114 kB 116 kB +2.21 kB (+1.9%) main 157 kB 159 kB +2.31 kB (+1.5%) module 114 kB 116 kB +2.21 kB (+1.9%) react-native 114 kB 116 kB +2.21 kB (+1.9%) @firebase/performanceType Base (30de503) Merge (afd1de3) Diff browser 30.6 kB 31.5 kB +939 B (+3.1%) main 31.0 kB 32.0 kB +939 B (+3.0%) module 30.6 kB 31.5 kB +939 B (+3.1%) @firebase/storageType Base (30de503) Merge (afd1de3) Diff browser 58.5 kB 58.5 kB +2 B (+0.0%) main 60.0 kB 60.0 kB +2 B (+0.0%) module 58.5 kB 58.5 kB +2 B (+0.0%) @firebase/utilType Base (30de503) Merge (afd1de3) Diff browser 29.3 kB 29.4 kB +118 B (+0.4%) main 35.7 kB 35.8 kB +118 B (+0.3%) module 29.3 kB 29.4 kB +118 B (+0.4%) bundle40 size changes
Type Base (30de503) Merge (afd1de3) Diff auth (Anonymous) 77.8 kB 78.0 kB +188 B (+0.2%) auth (EmailAndPassword) 87.9 kB 88.1 kB +188 B (+0.2%) auth (GoogleFBTwitterGitHubPopup) 109 kB 109 kB +188 B (+0.2%) auth (GooglePopup) 102 kB 102 kB +188 B (+0.2%) auth (GoogleRedirect) 102 kB 102 kB +188 B (+0.2%) auth (Phone) 95.3 kB 95.5 kB +188 B (+0.2%) database (Append to a list of data) 154 kB 154 kB +107 B (+0.1%) database (Filtering data) 153 kB 153 kB +107 B (+0.1%) database (Listen for child events) 170 kB 170 kB +107 B (+0.1%) database (Listen for value events + Detach listeners) 170 kB 170 kB +107 B (+0.1%) database (Listen for value events) 170 kB 170 kB +107 B (+0.1%) database (Read data once) 169 kB 169 kB +107 B (+0.1%) database (Save data as transactions) 172 kB 172 kB +107 B (+0.1%) database (Sort data) 155 kB 155 kB +107 B (+0.1%) database (Write data) 154 kB 154 kB +107 B (+0.1%) firestore (CSI Auto Indexing Disable and Delete) 280 kB 290 kB +10.8 kB (+3.8%) firestore (CSI Auto Indexing Enable) 280 kB 290 kB +10.8 kB (+3.8%) firestore (Persistence) 311 kB 322 kB +10.5 kB (+3.4%) firestore (Query Cursors) 256 kB 260 kB +3.86 kB (+1.5%) firestore (Query) 254 kB 258 kB +3.86 kB (+1.5%) firestore (Read data once) 242 kB 247 kB +5.78 kB (+2.4%) firestore (Read Write w Persistence) 336 kB 342 kB +5.97 kB (+1.8%) firestore (Realtime updates) 244 kB 248 kB +3.99 kB (+1.6%) firestore (Transaction) 221 kB 227 kB +5.62 kB (+2.5%) firestore (Write data) 220 kB 228 kB +7.24 kB (+3.3%) firestore-lite (Query Cursors) 109 kB 111 kB +1.92 kB (+1.8%) firestore-lite (Query) 105 kB 107 kB +1.92 kB (+1.8%) firestore-lite (Read data once) 80.6 kB 82.7 kB +2.05 kB (+2.5%) firestore-lite (Transaction) 106 kB 108 kB +1.92 kB (+1.8%) firestore-lite (Write data) 90.2 kB 92.1 kB +1.92 kB (+2.1%) functions (call) 39.4 kB 39.5 kB +107 B (+0.3%) performance (trace) 62.4 kB 63.0 kB +587 B (+0.9%) storage (getBytes) 47.2 kB 47.3 kB +109 B (+0.2%) storage (getDownloadURL) 49.2 kB 49.4 kB +109 B (+0.2%) storage (getMetadata) 48.7 kB 48.8 kB +109 B (+0.2%) storage (list + listAll) 48.1 kB 48.2 kB +109 B (+0.2%) storage (updateMetadata) 49.0 kB 49.1 kB +109 B (+0.2%) storage (uploadBytes) 53.8 kB 53.9 kB +109 B (+0.2%) storage (uploadBytesResumable) 63.8 kB 63.9 kB +109 B (+0.2%) storage (uploadString) 54.0 kB 54.1 kB +109 B (+0.2%) firebase18 size changes
Type Base (30de503) Merge (afd1de3) Diff firebase-auth-compat.js 145 kB 146 kB +162 B (+0.1%) firebase-auth-cordova.js 142 kB 143 kB +191 B (+0.1%) firebase-auth-web-extension.js 125 kB 125 kB +191 B (+0.2%) firebase-auth.js 163 kB 163 kB +191 B (+0.1%) firebase-compat.js 802 kB 807 kB +4.67 kB (+0.6%) firebase-data-connect.js 22.7 kB 22.8 kB +94 B (+0.4%) firebase-database-compat.js 168 kB 168 kB +94 B (+0.1%) firebase-database.js 192 kB 192 kB +94 B (+0.0%) firebase-firestore-compat.js 347 kB 351 kB +4.07 kB (+1.2%) firebase-firestore-lite.js 137 kB 139 kB +2.30 kB (+1.7%) firebase-firestore.js 449 kB 458 kB +9.62 kB (+2.1%) firebase-functions-compat.js 14.7 kB 14.8 kB +94 B (+0.6%) firebase-functions.js 19.5 kB 19.6 kB +94 B (+0.5%) firebase-performance-compat.js 40.0 kB 40.5 kB +501 B (+1.3%) firebase-performance-standalone-compat.js 105 kB 105 kB +530 B (+0.5%) firebase-performance.js 45.5 kB 46.0 kB +565 B (+1.2%) firebase-storage-compat.js 44.2 kB 44.3 kB +98 B (+0.2%) firebase-storage.js 51.1 kB 51.2 kB +96 B (+0.2%)
Test Logs
Size Analysis Report 1
This report is too large (1,400,200 characters) to be displayed here in a GitHub comment. Please use the below link to see the full report on Google Cloud Storage.Test Logs
Changeset File Check :white_check_mark:
- No modified packages are missing from the changeset file.
- No changeset formatting errors detected.