mirror of
https://github.com/hanzoai/firebase-js-sdk.git
synced 2026-09-24 16:59:10 +00:00
* Split storage and storage-compat (#5271) * separate storage-compat from storage * commit * fix tests * wat? * build storage-compat * save * fixing some compat tests * format * update import path * format * get compat tests to work * format * update package json * cleanup * format * address comments * Update packages/storage-compat/test/unit/service.test.ts Co-authored-by: Christina Holland <[email protected]> * add missing dev dep * Update packages/storage-compat/package.json * Update packages/storage-compat/package.json * Update deps after v8 release * update compat version * Split database and database-compat (#5276) * compile database * pass database tests * compile and test database-compat * pass all tests * prettier * cleanup * fix lint * address comments * what is going on with ci * use correct case in import path * uppercase * rename * fix component name * Repo refactoring for v9 (#5325) * rename folders * rename folders * migrate app and app-compat * migrate installations and analytics * migrate app check * migrate auth * migrate functions * migrate messaging * migrate performance * migrate remoteconfig * remove v8 code * update versions * migrate firebase * fix merge issues * save * fix firebase builds * update changeset config * update build scripts * update release script * fix functions typings * remove redundant typings * update path * treat external dependencies correctly * fix lint * remove firestore-compat references * fix build issues * update build scripts * update pkg json * fix test * fix some tests * fix some tests * fix integration tests * fixes * fix dep * update ci tests * resolve todos * remove exp references * docgen build * export FirebaseError (#5349) * firebase packaging update (#5348) * Fei v9 main firestore (#5319) * compile firestore * update typings path * compile firestore compat * lint compat * make test work * get most tests work * build * remove special paths * update firestore-compat pkg json * fix merge issues * Simplify bundles * Prettier * Fix Bundle compile * Fix build * address comments * console build * Fix all tests * Prettier * fix merge issues * fix typo * update paths * app-exp * fix lint * correct path * fix * fix compat lint * fix firestore integration * fix workflow * update dep * Always block on Auth (#5340) * Always block on Auth * Don't block on token if already recevied * fix lint * build firestore * remove memory only tests * fix firebase integration tests * enable more build and tests * add firestore-compat to firebase dep * fix auth compat class * enable auth test * auth package doc * Update API reports Co-authored-by: Sebastian Schmidt <[email protected]> Co-authored-by: Feiyang1 <[email protected]> * rebasing * Create registerMessagingCompat.ts * Add changeset for v9 (#5350) * add changeset * publish messaging interop * add firestore bumps * update changeset * Revert "Create registerMessagingCompat.ts" This reverts commit 0b95a5167e403ffc0dbcd9dd7dcb7cda754e510d. * Revert "rebasing" This reverts commit a8bf697157aaa29e8450acb626aae81ad5b542e1. * Update index.d.ts (#5355) * Fix Context Check in `Messaging-Compat` (#5353) * Add Rules Unit Testing v2 skeleton for v9 release (#5352) * Reset package for next major version. * Switch emulator script to node-fetch. * Migrate the other request call to fetch. * Update packages/rules-unit-testing/package.json Co-authored-by: Feiyang <[email protected]> * Create stale-ducks-live.md * Revert version change. Co-authored-by: Feiyang <[email protected]> * fix import path (#5356) * Add new types and function stubs for RUT vNext. (#5316) * Add new types and function stubs. * Fix types for testEnv.emulators. * Add util functions. * Add withFunctionTriggersDisabled overloads. * Improve typing for EmulatorConfig. * Fix tests. * Rename test_environment.ts to initialize.ts. * Add a dummy test to make CI pass. * Implement emulators discovery in RUTv2. (#5334) * Add new types and function stubs. * Fix types for testEnv.emulators. * Add util functions. * Add withFunctionTriggersDisabled overloads. * Improve typing for EmulatorConfig. * Fix tests. * Rename test_environment.ts to initialize.ts. * Add a dummy test to make CI pass. * Implement emulators discovery. * Use URL object from global. * Fix unreachable error code. * Implement most of RUTv2 features. (#5343) * Implement most of RUTv2 features. * Switch to compat instances. * Remove legacy code. * Use public typings for release (#5358) * use public typings for storage * use public typings for database * Implement rest of RUTv2 features. (#5360) * Implement loading rules and withFunctionTriggersDisabled. * Implement clearFirestore and storage. * Add missing await. * Add default bucketUrl. * Use alternative method to clear bucket. * Use default param (review feedback). * Storage typing updates (#5359) * rename to StorageError * more type safety * Update API reports * update api report Co-authored-by: Feiyang1 <[email protected]> * correct component name * fix installtions-compat typing * remove rules-unit-testing from ignore list * reenable things * support mjs files * correct matching pattern * transform only @firebase/util * use public types for database doc * transform all but compat packages Co-authored-by: Sebastian Schmidt <[email protected]> Co-authored-by: Feiyang1 <[email protected]> Co-authored-by: kai <[email protected]> Co-authored-by: Yuchen Shi <[email protected]> Co-authored-by: Kai Wu <[email protected]>
114 lines
3.1 KiB
JavaScript
114 lines
3.1 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright 2019 Google LLC
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
const DATABASE_NAME = 'firebase-installations-database';
|
|
const DATABASE_VERSION = 1;
|
|
const OBJECT_STORE_NAME = 'firebase-installations-store';
|
|
|
|
const requestLogs = [];
|
|
let db;
|
|
|
|
window.indexedDB.open(DATABASE_NAME, DATABASE_VERSION).onsuccess = event => {
|
|
db = event.target.result;
|
|
setInterval(refreshDatabase, 1000);
|
|
};
|
|
|
|
function refreshDatabase() {
|
|
const request = db
|
|
.transaction(OBJECT_STORE_NAME, 'readwrite')
|
|
.objectStore(OBJECT_STORE_NAME)
|
|
.getAll();
|
|
|
|
request.onsuccess = () => {
|
|
const dbElement = getElement('database');
|
|
dbElement.innerHTML = request.result
|
|
.map(v => `<p>${format(v)}</p>`)
|
|
.join('');
|
|
};
|
|
}
|
|
|
|
function clearDb() {
|
|
const request = db
|
|
.transaction(OBJECT_STORE_NAME, 'readwrite')
|
|
.objectStore(OBJECT_STORE_NAME)
|
|
.clear();
|
|
request.onsuccess = refreshDatabase;
|
|
}
|
|
|
|
function getElement(id) {
|
|
const element = document.getElementById(id);
|
|
if (!element) {
|
|
throw new Error(`Element not found: ${id}`);
|
|
}
|
|
return element;
|
|
}
|
|
|
|
function getInputValue(elementId) {
|
|
const element = getElement(elementId);
|
|
return element.value;
|
|
}
|
|
|
|
function getId() {
|
|
printRequest('Get ID', FirebaseInstallations.getId(getApp()));
|
|
}
|
|
|
|
function getToken() {
|
|
printRequest('Get Token', FirebaseInstallations.getToken(getApp()));
|
|
}
|
|
|
|
function deleteInstallation() {
|
|
printRequest(
|
|
'Delete Installation',
|
|
FirebaseInstallations.deleteInstallation(getApp())
|
|
);
|
|
}
|
|
|
|
async function printRequest(requestInfo, promise) {
|
|
const requestsElement = getElement('requests');
|
|
requestsElement.innerHTML = '<p><b>Loading...</b></p>' + requestLogs.join('');
|
|
let result;
|
|
try {
|
|
const request = await promise;
|
|
result = request ? format(request) : 'Completed successfully';
|
|
} catch (e) {
|
|
result = e.toString();
|
|
}
|
|
requestLogs.unshift(`<p><b>${requestInfo}:</b><br>${result}</p>`);
|
|
requestsElement.innerHTML = requestLogs.join('');
|
|
}
|
|
|
|
function format(o) {
|
|
const escapedString = JSON.stringify(o, null, 2);
|
|
return `<span class="formatted-content">${escapedString}</span>`;
|
|
}
|
|
|
|
function getApp() {
|
|
const appName = getInputValue('appName');
|
|
const projectId = getInputValue('projectId');
|
|
const apiKey = getInputValue('apiKey');
|
|
const appId = getInputValue('appId');
|
|
return {
|
|
name: appName,
|
|
appConfig: { appName, projectId, apiKey, appId }
|
|
};
|
|
}
|
|
|
|
getElement('getId').onclick = getId;
|
|
getElement('getToken').onclick = getToken;
|
|
getElement('deleteInstallation').onclick = deleteInstallation;
|
|
getElement('clearDb').onclick = clearDb;
|