From 3b4fb974d6c69024e8a7f2865d41d16121e33e9b Mon Sep 17 00:00:00 2001 From: James Daniels Date: Fri, 11 May 2018 18:17:25 -0700 Subject: [PATCH] feat(): Support Firebase JS SDK 5.0 --- karma.conf.js | 1 - package.json | 24 ++-- src/firestore/collection/changes.ts | 4 +- src/storage/storage.spec.ts | 15 +- src/storage/task.ts | 2 - yarn.lock | 208 ++++++++++------------------ 6 files changed, 93 insertions(+), 161 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 6244a67db..6ef35087e 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -26,7 +26,6 @@ module.exports = function(config) { 'karma-test-shim.js', 'node_modules/firebase/firebase.js', - 'node_modules/firebase/firebase-firestore.js', 'dist/packages-dist/bundles/core.umd.{js,map}', 'dist/packages-dist/bundles/auth.umd.{js,map}', 'dist/packages-dist/bundles/database.umd.{js,map}', diff --git a/package.json b/package.json index a43132183..245deb689 100644 --- a/package.json +++ b/package.json @@ -34,19 +34,19 @@ "@angular/core": "^5.0.0", "@angular/platform-browser": "^5.0.0", "@angular/platform-browser-dynamic": "^5.0.0", - "@firebase/app": "^0.1.6", - "@firebase/app-types": "^0.1.1", - "@firebase/auth": "^0.3.2", - "@firebase/auth-types": "^0.1.1", - "@firebase/database": "^0.1.7", - "@firebase/database-types": "^0.1.1", - "@firebase/firestore": "^0.2.3", - "@firebase/firestore-types": "^0.1.1", - "@firebase/messaging-types": "^0.1.1", - "@firebase/storage": "^0.1.6", - "@firebase/storage-types": "^0.1.1", + "@firebase/app": "^0.3.1", + "@firebase/app-types": "^0.3.1", + "@firebase/auth": "^0.5.2", + "@firebase/auth-types": "^0.3.2", + "@firebase/database": "^0.3.1", + "@firebase/database-types": "^0.3.1", + "@firebase/firestore": "^0.5.2", + "@firebase/firestore-types": "^0.4.1", + "@firebase/messaging-types": "^0.2.2", + "@firebase/storage": "^0.2.2", + "@firebase/storage-types": "^0.2.2", "bufferutil": "^3.0.3", - "firebase": "^4.8.2", + "firebase": "^5.0.2", "rxjs": "^5.5.4", "utf-8-validate": "^4.0.0", "ws": "^3.3.2", diff --git a/src/firestore/collection/changes.ts b/src/firestore/collection/changes.ts index 998347df3..c7135b66f 100644 --- a/src/firestore/collection/changes.ts +++ b/src/firestore/collection/changes.ts @@ -14,7 +14,7 @@ export function docChanges(query: Query): Observable { return fromCollectionRef(query) .pipe( map(action => - action.payload.docChanges + action.payload.docChanges() .map(change => ({ type: change.type, payload: change })))); } @@ -25,7 +25,7 @@ export function docChanges(query: Query): Observable { export function sortedChanges(query: Query, events: DocumentChangeType[]): Observable { return fromCollectionRef(query) .pipe( - map(changes => changes.payload.docChanges), + map(changes => changes.payload.docChanges()), scan((current, changes) => combineChanges(current, changes, events), []), map(changes => changes.map(c => ({ type: c.type, payload: c })))); } diff --git a/src/storage/storage.spec.ts b/src/storage/storage.spec.ts index 06fb8c8a8..8259324d7 100644 --- a/src/storage/storage.spec.ts +++ b/src/storage/storage.spec.ts @@ -60,13 +60,14 @@ describe('AngularFireStorage', () => { const data = { angular: "fire" }; const blob = new Blob([JSON.stringify(data)], { type : 'application/json' }); const ref = afStorage.ref('af.json'); - const task = ref.put(blob); - const url$ = task.downloadURL(); - url$.subscribe( - url => { expect(url).toBeDefined(); }, - e => { done.fail(); }, - () => { ref.delete().subscribe(done, done.fail); } - ); + const task = ref.put(blob).then(() => {; + const url$ = ref.getDownloadURL(); + url$.subscribe( + url => { expect(url).toBeDefined(); }, + e => { done.fail(); }, + () => { ref.delete().subscribe(done, done.fail); } + ); + }); }); it('should resolve the task as a promise', (done) => { diff --git a/src/storage/task.ts b/src/storage/task.ts index 194758efd..30a5ca7ba 100644 --- a/src/storage/task.ts +++ b/src/storage/task.ts @@ -8,7 +8,6 @@ export interface AngularFireUploadTask { task: UploadTask, snapshotChanges(): Observable; percentageChanges(): Observable; - downloadURL(): Observable; pause(): boolean; cancel(): boolean; resume(): boolean; @@ -35,7 +34,6 @@ export function createUploadTask(task: UploadTask): AngularFireUploadTask { cancel: task.cancel.bind(task), resume: task.resume.bind(task), snapshotChanges: () => inner$, - downloadURL: () => from(task.then(s => s.downloadURL)), percentageChanges: () => inner$.pipe( map(s => s.bytesTransferred / s.totalBytes * 100) ) diff --git a/yarn.lock b/yarn.lock index 0d95ea185..dfd43c809 100644 --- a/yarn.lock +++ b/yarn.lock @@ -49,129 +49,84 @@ tslib "^1.7.1" xhr2 "^0.1.4" -"@firebase/app-types@0.1.2", "@firebase/app-types@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.1.2.tgz#a20cb346e3be374c0bdee6b102de0ea5e8e6fa27" - -"@firebase/app-types@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.2.0.tgz#2a0e9c433d5f39e428358c5cd8065010d5a07985" +"@firebase/app-types@0.3.1", "@firebase/app-types@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.3.1.tgz#df4e79c38f759e606a421e866cecb7da4577b606" -"@firebase/app@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.2.0.tgz#015c270f07be2b01cf64129a2d0f9b3b87f3c135" +"@firebase/app@0.3.1", "@firebase/app@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.3.1.tgz#282a217bc904fd5168e43c3e2d30e6658ceca278" dependencies: - "@firebase/app-types" "0.2.0" - "@firebase/util" "0.1.11" + "@firebase/app-types" "0.3.1" + "@firebase/util" "0.2.0" + dom-storage "2.1.0" tslib "1.9.0" + xmlhttprequest "1.8.0" -"@firebase/app@^0.1.6": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.1.10.tgz#fc80c62dbe4d601cad1495bc095309adb9074f85" - dependencies: - "@firebase/app-types" "0.1.2" - "@firebase/util" "0.1.10" - tslib "^1.9.0" - -"@firebase/auth-types@0.1.2", "@firebase/auth-types@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.1.2.tgz#15415ed12b038356f79f22f9059002a29873a15a" - -"@firebase/auth-types@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.2.1.tgz#83a03939358ce8a59de85404b9ed7ca13a51548f" - -"@firebase/auth@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.4.2.tgz#63044e6ca6fb98ddc2de5a442f56f9d612ed1903" - dependencies: - "@firebase/auth-types" "0.2.1" +"@firebase/auth-types@0.3.2", "@firebase/auth-types@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.3.2.tgz#fc636084eb82cb098e4e76efc5fffd315e22abdd" -"@firebase/auth@^0.3.2": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.3.4.tgz#79dd0b9d86d51fd6874fa2fff2e3c06ceef07d41" +"@firebase/auth@0.5.2", "@firebase/auth@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.5.2.tgz#f4d7b699e21523b412f5af21a5507f44625d056c" dependencies: - "@firebase/auth-types" "0.1.2" - -"@firebase/database-types@0.1.2", "@firebase/database-types@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.1.2.tgz#c6a23b8aa721ca16951c752430167ee764659916" + "@firebase/auth-types" "0.3.2" -"@firebase/database-types@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.2.1.tgz#f83a6d03af5f8c93276ceb89e1f31e4664c9df1b" +"@firebase/database-types@0.3.1", "@firebase/database-types@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.3.1.tgz#4a15423f3b2cb3bed111f5a353c5c1bb2e2787ba" -"@firebase/database@0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.2.2.tgz#a8a0709644d7f281b400e983c71c8c65fba90c70" +"@firebase/database@0.3.1", "@firebase/database@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.3.1.tgz#1ca0797b8e9a243d383d31b1873373b84a2048b9" dependencies: - "@firebase/database-types" "0.2.1" + "@firebase/database-types" "0.3.1" "@firebase/logger" "0.1.1" - "@firebase/util" "0.1.11" + "@firebase/util" "0.2.0" faye-websocket "0.11.1" tslib "1.9.0" -"@firebase/database@^0.1.7": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.1.11.tgz#652731bfd844bb858ab616e3dc8a3d5b8181101c" - dependencies: - "@firebase/database-types" "0.1.2" - "@firebase/util" "0.1.10" - faye-websocket "0.11.1" - tslib "^1.9.0" - -"@firebase/firestore-types@0.1.1", "@firebase/firestore-types@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-0.1.1.tgz#c711a0dcc440cdc668662b6017b1f730cc124586" - -"@firebase/firestore-types@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-0.3.0.tgz#9df0af784145c568c6d306eda1dd25198b5a2b50" - -"@firebase/firestore@0.4.1": +"@firebase/firestore-types@0.4.1", "@firebase/firestore-types@^0.4.1": version "0.4.1" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.4.1.tgz#c42e0c7aebab96eecec5e8ac4a3fe944d573458f" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-0.4.1.tgz#9a96dff26f0537b13ff119b5e7ab4bddad2068d1" + +"@firebase/firestore@0.5.2", "@firebase/firestore@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.5.2.tgz#92dcbc604e41d97d371e115280f917dbdeaab21a" dependencies: - "@firebase/firestore-types" "0.3.0" + "@firebase/firestore-types" "0.4.1" "@firebase/logger" "0.1.1" "@firebase/webchannel-wrapper" "0.2.8" grpc "1.10.1" tslib "1.9.0" -"@firebase/firestore@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-0.2.3.tgz#1d0bc56319b9eb17db449d85d47cd46290604dc5" - dependencies: - "@firebase/firestore-types" "0.1.1" - "@firebase/webchannel-wrapper" "0.2.6" - grpc "^1.7.1" - -"@firebase/functions-types@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.1.1.tgz#3b2176bdb30a4682321eb2ff79e796f6d9c010e0" +"@firebase/functions-types@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.1.2.tgz#f291b2945218a97d9ab0e20f2fdec2cef6f90f94" -"@firebase/functions@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.1.1.tgz#5b351c24de82db823dda1c82d25b76fe5c176141" +"@firebase/functions@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.2.2.tgz#fd919deede5ec48870ecf751e4300066fc9424dc" dependencies: - "@firebase/functions-types" "0.1.1" - "@firebase/messaging-types" "0.1.3" + "@firebase/functions-types" "0.1.2" + "@firebase/messaging-types" "0.2.2" isomorphic-fetch "2.2.1" "@firebase/logger@0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.1.1.tgz#af5df54253286993f4b367c3dabe569c848860d3" -"@firebase/messaging-types@0.1.3", "@firebase/messaging-types@^0.1.1": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.1.3.tgz#0a80c69c8f791e3aa94b28f4d2e296d0ea2571bc" +"@firebase/messaging-types@0.2.2", "@firebase/messaging-types@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@firebase/messaging-types/-/messaging-types-0.2.2.tgz#7d97abb87b599445f09df0085cbd89e9405984c6" -"@firebase/messaging@0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.2.4.tgz#f6404c82f7cb86538f5fa62b4549b28a4edb9f90" +"@firebase/messaging@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.3.2.tgz#4851b41773deb890f6919a67270d3fd34863756b" dependencies: - "@firebase/messaging-types" "0.1.3" - "@firebase/util" "0.1.11" + "@firebase/messaging-types" "0.2.2" + "@firebase/util" "0.2.0" tslib "1.9.0" "@firebase/polyfill@0.3.1": @@ -182,33 +137,23 @@ promise-polyfill "7.1.2" whatwg-fetch "2.0.4" -"@firebase/storage-types@0.1.3", "@firebase/storage-types@^0.1.1": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.1.3.tgz#3e68942c5aab9f5f7180a797dff22d239821668e" +"@firebase/storage-types@0.2.2", "@firebase/storage-types@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.2.2.tgz#14b56a3b61005e72dfd9ac3ec6bcb160bc3736d3" -"@firebase/storage@0.1.9", "@firebase/storage@^0.1.6": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.1.9.tgz#1a32bd3f48a98f7eb1472cb3e5e4e37e04464c48" +"@firebase/storage@0.2.2", "@firebase/storage@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.2.2.tgz#97a90e41b008f6c3b6193e7fed1f4afd3cfda8b4" dependencies: - "@firebase/storage-types" "0.1.3" + "@firebase/storage-types" "0.2.2" tslib "1.9.0" -"@firebase/util@0.1.10": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.1.10.tgz#7898f6e36c8231c287c4024c313000df677b1363" - dependencies: - tslib "^1.9.0" - -"@firebase/util@0.1.11": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.1.11.tgz#9990dff53930aa9fcae31494ebe8de5c5b8e815c" +"@firebase/util@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-0.2.0.tgz#b9e176703deda671b823522759f88f8356aaf624" dependencies: tslib "1.9.0" -"@firebase/webchannel-wrapper@0.2.6": - version "0.2.6" - resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.6.tgz#a4b81ca8cdeb1acbc7923289a4a514f61b59db86" - "@firebase/webchannel-wrapper@0.2.8": version "0.2.8" resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz#38a936b60b898a1ad0f3719543ff1a1031f60f8b" @@ -1961,20 +1906,18 @@ fined@^1.0.1: object.pick "^1.2.0" parse-filepath "^1.0.1" -firebase@^4.8.2: - version "4.13.1" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-4.13.1.tgz#87ab64bbb7f707244fb878f2a28235b0e3aed3ec" - dependencies: - "@firebase/app" "0.2.0" - "@firebase/auth" "0.4.2" - "@firebase/database" "0.2.2" - "@firebase/firestore" "0.4.1" - "@firebase/functions" "0.1.1" - "@firebase/messaging" "0.2.4" +firebase@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-5.0.2.tgz#5c0d647acc10552d15169e5f8482413aff1264cb" + dependencies: + "@firebase/app" "0.3.1" + "@firebase/auth" "0.5.2" + "@firebase/database" "0.3.1" + "@firebase/firestore" "0.5.2" + "@firebase/functions" "0.2.2" + "@firebase/messaging" "0.3.2" "@firebase/polyfill" "0.3.1" - "@firebase/storage" "0.1.9" - dom-storage "2.1.0" - xmlhttprequest "1.8.0" + "@firebase/storage" "0.2.2" first-chunk-stream@^1.0.0: version "1.0.0" @@ -2384,15 +2327,6 @@ grpc@1.10.1: node-pre-gyp "0.7.0" protobufjs "^5.0.0" -grpc@^1.7.1: - version "1.11.0" - resolved "https://registry.yarnpkg.com/grpc/-/grpc-1.11.0.tgz#89d761726f1bc2d8485426b762e70308efc61b21" - dependencies: - lodash "^4.15.0" - nan "^2.0.0" - node-pre-gyp "0.7.0" - protobufjs "^5.0.0" - gulp-jasmine@^2.2.1: version "2.4.2" resolved "https://registry.yarnpkg.com/gulp-jasmine/-/gulp-jasmine-2.4.2.tgz#5a7f47e27370c3619ac0a2a442be399671409db3" @@ -3778,7 +3712,7 @@ multipipe@^0.1.2: dependencies: duplexer2 "0.0.2" -nan@^2.0.0, nan@^2.0.5, nan@^2.10.0, nan@^2.9.2, nan@~2.10.0: +nan@^2.0.5, nan@^2.10.0, nan@^2.9.2, nan@~2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" @@ -5571,7 +5505,7 @@ tsickle@^0.27.2: source-map "^0.6.0" source-map-support "^0.5.0" -tslib@1.9.0, tslib@^1.7.1, tslib@^1.9.0: +tslib@1.9.0, tslib@^1.7.1: version "1.9.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"