Update a lot of dependencies (#8716)

This commit is contained in:
Christina Holland
2025-01-23 10:55:59 -08:00
committed by GitHub
parent 6fb01e0284
commit dbac30bbfc
17 changed files with 2447 additions and 2119 deletions
-1
View File
@@ -10,7 +10,6 @@
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [
"firebase-namespace-integration-test",
"firebase-firestore-integration-test",
"firebase-messaging-integration-test",
"firebase-compat-interop-test",
@@ -1,49 +0,0 @@
# Copyright 2023 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.
name: Test Firebase Namespace
on: pull_request
env:
# Bump Node memory limit
NODE_OPTIONS: "--max_old_space_size=4096"
jobs:
test:
name: Test Firebase Namespace
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
# This makes Actions fetch all Git history so run-changed script can diff properly.
fetch-depth: 0
- name: Set up Node (20)
uses: actions/setup-node@v4
with:
node-version: 22.10.0
- name: install Chrome stable
run: |
sudo apt-get update
sudo apt-get install google-chrome-stable
- name: Test setup and yarn install
run: |
cp config/ci.config.json config/project.json
yarn
- name: build
run: yarn build:changed firebase-integration
- name: Run tests on changed packages
run: yarn test:changed firebase-integration
-36
View File
@@ -1,36 +0,0 @@
/**
* @license
* Copyright 2017 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 karma = require('karma');
const path = require('path');
const karmaBase = require('../../config/karma.base');
const files = ['test/**/*.test.*'];
module.exports = function (config) {
const karmaConfig = Object.assign({}, karmaBase, {
// files to load into karma
files: files,
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['mocha']
});
config.set(karmaConfig);
};
module.exports.files = files;
-28
View File
@@ -1,28 +0,0 @@
{
"name": "firebase-namespace-integration-test",
"private": true,
"version": "0.2.1",
"scripts": {
"test": "karma start",
"test:ci": "node ../../scripts/run_tests_in_ci.js -s test"
},
"devDependencies": {
"firebase": "11.2.0",
"@types/chai": "4.3.14",
"@types/mocha": "9.1.1",
"chai": "4.4.1",
"karma": "6.4.2",
"karma-babel-preprocessor": "8.0.2",
"karma-chrome-launcher": "3.2.0",
"karma-firefox-launcher": "2.1.3",
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-typescript": "5.5.4",
"mocha": "9.2.2",
"npm-run-all2": "5.0.0",
"typescript": "5.5.4"
},
"engines": {
"node": ">=18.0.0"
}
}
@@ -1,38 +0,0 @@
/**
* @license
* Copyright 2017 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.
*/
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/database';
import 'firebase/compat/storage';
import 'firebase/compat/messaging';
import * as namespaceDefinition from './namespaceDefinition.json';
import validateNamespace from './validator';
firebase.initializeApp({
apiKey: 'test-api-key',
authDomain: 'test-project-name.firebaseapp.com',
databaseURL: 'https://test-project-name.firebaseio.com',
projectId: 'test-project-name',
storageBucket: 'test-project-name.appspot.com',
messagingSenderId: '012345678910',
appId: 'myAppId'
});
describe('Firebase Namespace Validation', function () {
validateNamespace(namespaceDefinition, firebase);
});
@@ -1,231 +0,0 @@
{
"initializeApp": {
"__type": "function",
"__args": 2
},
"app": {
"__type": "function",
"__args": 1,
"App": {
"__type": "function"
},
"__return": {
"name": {
"__type": "string"
},
"options": {
"__type": "object"
},
"delete": {
"__type": "function"
},
"INTERNAL": {
"getToken": {
"__type": "function"
},
"addAuthTokenListener": {
"__type": "function"
},
"removeAuthTokenListener": {
"__type": "function"
}
}
}
},
"SDK_VERSION": {
"__type": "string"
},
"apps": {
"__type": "array"
},
"INTERNAL": {
"__type": "object",
"registerComponent": {
"__type": "function"
},
"extendNamespace": {
"__type": "function"
},
"createFirebaseNamespace": {
"__type": "function"
},
"createSubscribe": {
"__type": "function"
},
"removeApp": {
"__type": "function"
},
"ErrorFactory": {
"__type": "function"
},
"deepExtend": {
"__type": "function"
}
},
"auth": {
"__type": "function",
"Auth": {
"__type": "function"
},
"Error": {
"__type": "function"
},
"EmailAuthProvider": {
"__type": "function"
},
"FacebookAuthProvider": {
"__type": "function"
},
"GithubAuthProvider": {
"__type": "function"
},
"GoogleAuthProvider": {
"__type": "function"
},
"TwitterAuthProvider": {
"__type": "function"
},
"__return": {
"app": {
"__type": "object"
},
"INTERNAL": {
"delete": {
"__type": "function"
}
}
}
},
"database": {
"__type": "function",
"Database": {
"__type": "function"
},
"Query": {
"__type": "function"
},
"Reference": {
"__type": "function"
},
"enableLogging": {
"__type": "function"
},
"ServerValue": {
"__type": "object",
"TIMESTAMP": {
"__type": "object"
}
},
"__return": {
"app": {
"__type": "object"
},
"INTERNAL": {
"delete": {
"__type": "function"
}
},
"ref": {
"__type": "function"
},
"refFromURL": {
"__type": "function"
},
"goOnline": {
"__type": "function"
},
"goOffline": {
"__type": "function"
}
}
},
"storage": {
"__type": "function",
"Storage": {
"__type": "function"
},
"Reference": {
"__type": "function"
},
"TaskEvent": {
"__type": "object",
"STATE_CHANGED": {
"__type": "string"
}
},
"TaskState": {
"__type": "object",
"RUNNING": {
"__type": "string"
},
"PAUSED": {
"__type": "string"
},
"SUCCESS": {
"__type": "string"
},
"CANCELED": {
"__type": "string"
},
"ERROR": {
"__type": "string"
}
},
"StringFormat": {
"__type": "object",
"RAW": {
"__type": "string"
},
"BASE64": {
"__type": "string"
},
"BASE64URL": {
"__type": "string"
},
"DATA_URL": {
"__type": "string"
}
},
"__return": {
"app": {
"__type": "object"
},
"INTERNAL": {
"delete": {
"__type": "function"
}
},
"ref": {
"__type": "function"
},
"refFromURL": {
"__type": "function"
}
}
},
"messaging": {
"__type": "function",
"__return": {
"app": {
"__type": "object"
},
"INTERNAL": {
"delete": {
"__type": "function"
}
},
"getToken": {
"__type": "function"
},
"onMessage": {
"__type": "function"
},
"deleteToken": {
"__type": "function"
},
"onBackgroundMessage": {
"__type": "function"
}
}
}
}
-21
View File
@@ -1,21 +0,0 @@
/**
* @license
* Copyright 2017 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.
*/
declare module '*.json' {
const value: any;
export default value;
}
-109
View File
@@ -1,109 +0,0 @@
/**
* @license
* Copyright 2017 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.
*/
let validatedVersion = false;
function validateNamespace(definition, candidate) {
const __expect = require('chai').expect;
const keys = Object.keys(definition).filter(key => !~key.indexOf('__'));
if (!validatedVersion) {
describe('Firebase SDK Version', function () {
it('Should be properly defined', function () {
__expect(candidate.SDK_VERSION).to.equal(
require('../../../packages/firebase/package.json').version
);
});
});
validatedVersion = true;
}
// Validate Keys
keys.forEach(key => {
/**
* This object that we capture here could potentially
* contain multiple layers of APIs. We recursively
* spin up the validations as needed but defer them
* till after we have validated the current API
*/
const definitionChunk = definition[key];
const candidateChunk = candidate[key];
/**
* Grab all of the keys that aren't meta properties and capture
* them for more testing later
*/
const internalKeys = Object.keys(definitionChunk).filter(
iKey => !~iKey.indexOf('__')
);
const returnKeys = Object.keys(definitionChunk).filter(
iKey => ~iKey.indexOf('__return')
);
describe(`${key}`, function () {
/**
* Tests of the actual API
*/
if (definitionChunk.__type) {
it(`Should be a \`${definitionChunk.__type}\``, function () {
__expect(candidateChunk).to.be.a(definitionChunk.__type);
});
}
/**
* If both the definition and candidate pieces are truthy
* then we can continue validation of the nested layers
*/
if (definitionChunk && candidateChunk) {
validateNamespace(definitionChunk, candidateChunk);
}
/**
* Keys marked with `__return` allow us to validate the
* return value of a specific part of the API
*
* e.g.
* {
* ...
* app: {
* __return: {
* <PROPERTIES OF AN APP>
* }
* }
* }
*/
if (
definitionChunk.__type === 'function' &&
definitionChunk.__return &&
typeof candidateChunk === 'function'
) {
try {
candidateChunk();
} catch (e) {
it(`Throws because current browser is unsupported`, () => {
__expect(e.code).to.have.string('unsupported-browser');
});
return;
}
validateNamespace(definitionChunk.__return, candidateChunk());
}
});
});
}
module.exports = validateNamespace;
module.exports.default = validateNamespace;
-19
View File
@@ -1,19 +0,0 @@
{
"extends": "../../config/tsconfig.base.json",
"compileOnSave": false,
"compilerOptions": {
"allowJs": true,
"declaration": false,
"module": "commonjs",
"moduleResolution": "node",
"noImplicitAny": true,
"outDir": "dist",
"target": "es2017",
"sourceMap": true,
"esModuleInterop": true
},
"exclude": [
"node_modules",
"dist"
]
}
-8
View File
@@ -22,15 +22,7 @@
"gulp": "4.0.2",
"gulp-filter": "7.0.0",
"gulp-replace": "1.1.4",
"karma": "6.4.2",
"karma-chrome-launcher": "3.2.0",
"karma-firefox-launcher": "2.1.3",
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"mocha": "9.2.2",
"ts-loader": "9.5.1",
"typescript": "5.5.4",
"webpack": "5.76.0",
"webpack-stream": "7.0.0"
},
"engines": {
+29 -29
View File
@@ -62,17 +62,17 @@
"repo-scripts/*"
],
"devDependencies": {
"@babel/core": "7.24.4",
"@babel/plugin-transform-modules-commonjs": "7.24.1",
"@babel/preset-env": "7.24.4",
"@babel/preset-typescript": "7.24.1",
"@babel/register": "7.23.7",
"@changesets/changelog-github": "0.4.8",
"@changesets/cli": "2.26.2",
"@types/chai": "4.3.14",
"@babel/core": "7.26.0",
"@babel/plugin-transform-modules-commonjs": "7.26.3",
"@babel/preset-env": "7.26.0",
"@babel/preset-typescript": "7.26.0",
"@babel/register": "7.25.9",
"@changesets/changelog-github": "0.5.0",
"@changesets/cli": "2.27.11",
"@types/chai": "4.3.20",
"@types/chai-as-promised": "7.1.8",
"@types/child-process-promise": "2.2.6",
"@types/clone": "2.1.1",
"@types/clone": "2.1.4",
"@types/eslint": "7.29.0",
"@types/inquirer": "8.2.10",
"@types/js-yaml": "4.0.9",
@@ -80,31 +80,31 @@
"@types/long": "4.0.2",
"@types/mocha": "9.1.1",
"@types/mz": "2.7.8",
"@types/node": "18.19.57",
"@types/node": "18.19.71",
"@types/request": "2.48.12",
"@types/sinon": "9.0.11",
"@types/sinon-chai": "3.2.12",
"@types/tmp": "0.2.6",
"@types/trusted-types": "2.0.7",
"@types/yargs": "17.0.32",
"@typescript-eslint/eslint-plugin": "7.16.1",
"@types/yargs": "17.0.33",
"@typescript-eslint/eslint-plugin": "7.18.0",
"@typescript-eslint/eslint-plugin-tslint": "7.0.2",
"@typescript-eslint/parser": "7.16.1",
"@typescript-eslint/parser": "7.18.0",
"api-documenter-me": "0.1.1",
"api-extractor-me": "0.1.2",
"babel-loader": "8.3.0",
"chai": "4.4.1",
"chai-as-promised": "7.1.1",
"babel-loader": "8.4.1",
"chai": "4.5.0",
"chai-as-promised": "7.1.2",
"chalk": "4.1.2",
"child-process-promise": "2.2.1",
"clone": "2.1.2",
"coveralls": "3.1.1",
"del": "6.1.1",
"dependency-graph": "0.11.0",
"eslint": "8.56.0",
"eslint-plugin-import": "2.26.0",
"eslint": "8.57.1",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-unused-imports": "3.2.0",
"express": "4.19.2",
"express": "4.21.2",
"find-free-port": "2.0.0",
"firebase-tools": "11.30.0",
"glob": "7.2.3",
@@ -113,7 +113,7 @@
"inquirer": "8.2.6",
"istanbul-instrumenter-loader": "3.0.1",
"js-yaml": "4.1.0",
"karma": "6.4.2",
"karma": "6.4.4",
"karma-chrome-launcher": "3.2.0",
"karma-cli": "2.0.0",
"karma-coverage-istanbul-reporter": "3.0.3",
@@ -135,30 +135,30 @@
"mocha": "9.2.2",
"mz": "2.7.0",
"node-polyfill-webpack-plugin": "2.0.1",
"npm-run-all2": "5.0.0",
"npm-run-all2": "5.0.2",
"nyc": "15.1.0",
"ora": "5.4.1",
"patch-package": "7.0.2",
"playwright": "1.46.1",
"playwright": "1.49.1",
"postinstall-postinstall": "2.1.0",
"prettier": "2.8.7",
"prettier": "2.8.8",
"protractor": "5.4.2",
"request": "2.88.2",
"semver": "7.5.3",
"simple-git": "3.24.0",
"semver": "7.6.3",
"simple-git": "3.27.0",
"sinon": "9.2.4",
"sinon-chai": "3.7.0",
"source-map-loader": "1.1.3",
"sqlite3": "5.1.6",
"terser": "5.16.1",
"ts-loader": "9.5.1",
"sqlite3": "5.1.7",
"terser": "5.37.0",
"ts-loader": "9.5.2",
"ts-node": "10.9.2",
"tsec": "0.2.8",
"tslint": "6.1.3",
"typedoc": "0.16.11",
"typescript": "5.5.4",
"watch": "1.0.2",
"webpack": "5.76.0",
"webpack": "5.97.1",
"yargs": "17.7.2"
}
}
+1 -1
View File
@@ -31,8 +31,8 @@ import {
Provider
} from '@firebase/component';
import { Database } from '../api.standalone';
import { repoManagerDatabaseFromApp } from '../api/Database';
import { Database } from '../api.standalone';
import { setSDKVersion } from '../core/version';
/**
+16 -4
View File
@@ -207,8 +207,14 @@ describe('Firebase Storage > Upload Task', () => {
}
const fixedAssertEquals = promiseAssertWrapper(assert.equal);
const fixedAssertFalse = promiseAssertWrapper(assert.isFalse);
const fixedAssertTrue = promiseAssertWrapper(assert.isTrue);
const fixedAssertFalse: (
value: unknown,
message?: string
) => asserts value is false = promiseAssertWrapper(assert.isFalse);
const fixedAssertTrue: (
value: unknown,
message?: string
) => asserts value is true = promiseAssertWrapper(assert.isTrue);
const fixedAssertFail = promiseAssertWrapper(assert.fail);
const events: string[] = [];
@@ -391,8 +397,14 @@ describe('Firebase Storage > Upload Task', () => {
}
const fixedAssertEquals = promiseAssertWrapper(assert.equal);
const fixedAssertFalse = promiseAssertWrapper(assert.isFalse);
const fixedAssertTrue = promiseAssertWrapper(assert.isTrue);
const fixedAssertFalse: (
value: unknown,
message?: string
) => asserts value is false = promiseAssertWrapper(assert.isFalse);
const fixedAssertTrue: (
value: unknown,
message?: string
) => asserts value is true = promiseAssertWrapper(assert.isTrue);
const fixedAssertFail = promiseAssertWrapper(assert.fail);
const events: string[] = [];
+2 -2
View File
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import webpack from 'webpack';
import webpack, { OutputFileSystem } from 'webpack';
// @ts-ignore
import virtualModulesPlugin from 'webpack-virtual-modules';
import { createFsFromVolume, IFs, Volume } from 'memfs';
@@ -61,7 +61,7 @@ export async function bundleWithWebpack(
});
// use virtual file system for output to avoid I/O
compiler.outputFileSystem = getMemoryFileSystem();
compiler.outputFileSystem = getMemoryFileSystem() as OutputFileSystem;
return new Promise<string>((res, rej) => {
compiler.run((err, stats) => {
+16 -18
View File
@@ -18,31 +18,29 @@
"test:node": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' nyc --reporter lcovonly -- mocha **/*.test.ts --config ../../config/mocharc.node.js --timeout 60000",
"build": "rollup -c"
},
"dependencies": {
"rollup": "2.79.1",
"license": "Apache-2.0",
"devDependencies": {
"@firebase/app": "0.10.18",
"@firebase/logger": "0.4.4",
"@firebase/util": "1.10.3",
"@rollup/plugin-commonjs": "21.1.0",
"@rollup/plugin-json": "4.1.0",
"@rollup/plugin-node-resolve": "13.3.0",
"@rollup/plugin-virtual": "2.1.0",
"@types/webpack": "5.28.5",
"child-process-promise": "2.2.1",
"glob": "7.2.3",
"gzip-size": "6.0.0",
"memfs": "3.5.3",
"rollup": "2.79.1",
"rollup-plugin-replace": "2.2.0",
"rollup-plugin-typescript2": "0.31.2",
"@rollup/plugin-virtual": "2.1.0",
"webpack": "5.76.0",
"@types/webpack": "5.28.5",
"webpack-virtual-modules": "0.5.0",
"child-process-promise": "2.2.1",
"memfs": "3.5.3",
"terser": "5.16.1",
"tmp": "0.2.1",
"typescript": "5.5.4",
"terser": "5.16.1",
"yargs": "17.7.2",
"@firebase/util": "1.10.3",
"gzip-size": "6.0.0",
"glob": "7.2.3"
},
"license": "Apache-2.0",
"devDependencies": {
"@firebase/logger": "0.4.4",
"@firebase/app": "0.10.18"
"webpack": "5.97.1",
"webpack-virtual-modules": "0.6.2",
"yargs": "17.7.2"
},
"repository": {
"directory": "repo-scripts/size-analysis",
-4
View File
@@ -51,7 +51,6 @@ export const testConfig: {
'@firebase/firestore-compat',
'firebase-firestore-integration-test',
'firebase-messaging-integration-test',
'firebase-namespace-integration-test',
'firebase-compat-typings-test',
'@firebase/rules-unit-testing',
'@firebase/auth',
@@ -71,9 +70,6 @@ export const testConfig: {
'misc': {
'onlyIncludePackages': ['@firebase/rules-unit-testing']
},
'firebase-integration': {
'alwaysIncludePackages': ['firebase-namespace-integration-test']
},
'auth': {
'onlyIncludePackages': ['@firebase/auth', '@firebase/auth-compat']
}
+2383 -1521
View File
File diff suppressed because it is too large Load Diff