{"_id":"@askelephant/firebase-tools","_rev":"8-a107be812ca35b215284abb5ed3bfd70","name":"@askelephant/firebase-tools","dist-tags":{"latest":"15.5.1","alpha":"15.4.1-alpha.2"},"versions":{"15.4.0":{"name":"@askelephant/firebase-tools","version":"15.4.0","keywords":["cdn","cli","ssl","cloud","hosting","firebase","realtime","websockets","synchronization"],"author":{"url":"https://firebase.google.com/","name":"Firebase"},"license":"MIT","_id":"@askelephant/firebase-tools@15.4.0","maintainers":[{"name":"kdawgwilk-elephant","email":"kaden@askelephant.ai"},{"name":"palmerturley34","email":"palmer@askelephant.ai"},{"name":"bryan.lund","email":"bryan@askelephant.ai"}],"homepage":"https://github.com/firebase/firebase-tools","bugs":{"url":"https://github.com/firebase/firebase-tools/issues"},"bin":{"firebase":"lib/bin/firebase.js"},"nyc":{"exclude":["src/**/*.spec.*","src/**/testing/**/*","src/test/**/*"],"require":["ts-node/register"],"reporter":["lcovonly","text"],"extension":[".js",".ts"],"report-dir":"./.coverage"},"dist":{"shasum":"eeb1a1b02d08ebccce94324dd68ab0a778dcf1ec","tarball":"https://registry.npmjs.org/@askelephant/firebase-tools/-/firebase-tools-15.4.0.tgz","fileCount":881,"integrity":"sha512-aPC5EwqZU+psa+Eg/7h+paQyZeJ7UacxPsS/qeG7D25WxRtMlgQTfCoDYkOrP997uCse9KkrZC7FmpMQaYtJNQ==","signatures":[{"sig":"MEUCIQCCPl26n9qQ6gY+6q+ebuf3Pp77iA3qnB508hi5p0sUYwIgGZz7nq2drZW4Ji2OLYqobhE8RCFYhjrS+TMXyU2D+5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4424760},"main":"./lib/index.js","engines":{"node":">=20.0.0 || >=22.0.0 || >=24.0.0"},"gitHead":"750ef356a2a17ddcce94a0e5d2f0e384e2a47bfa","mcpName":"io.github.firebase/firebase-mcp","scripts":{"lint":"npm run lint:ts && npm run lint:other","test":"npm run lint:quiet && npm run test:compile && npm run mocha","build":"tsc && npm run copyfiles","clean":"node -e \"fs.rmSync('lib', { recursive: true, force: true }); fs.rmSync('dev', { recursive: true, force: true });\"","mocha":"nyc --reporter=html mocha 'src/**/*.spec.{ts,js}'","format":"npm run format:ts && npm run format:other","lint:ts":"eslint --config .eslintrc.js --ext .ts,.js .","prepare":"npm run clean && npm run build:publish","copyfiles":"node -e \"const fs = require('fs'); fs.mkdirSync('./lib', {recursive:true}); fs.copyFileSync('./src/dynamicImport.js', './lib/dynamicImport.js')\"","format:ts":"npm run lint:ts -- --fix --quiet","lint:other":"prettier --check '**/*.{md,yaml,yml}'","lint:quiet":"npm run lint:ts -- --quiet && npm run lint:other","mocha:fast":"mocha 'src/**/*.spec.{ts,js}'","build:watch":"npm run build && tsc --watch","format:other":"npm run lint:other -- --write","test:compile":"tsc --project tsconfig.compile.json","test:hosting":"bash ./scripts/hosting-tests/run.sh","build:publish":"tsc --build tsconfig.publish.json && npm run copyfiles","test:emulator":"bash ./scripts/emulator-tests/run.sh","test:apptesting":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/apptesting/*.spec.{ts,js}'","test:frameworks":"bash ./scripts/webframeworks-deploy-tests/run.sh","test:management":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/management/*.spec.{ts,js}'","generate:auth-api":"ts-node scripts/gen-auth-api-spec.ts","lint:changed-files":"ts-node ./scripts/lint-changed-files.ts","test:all-emulators":"npm run test:emulator && npm run test:extensions-emulator && npm run test:import-export && npm run test:storage-emulator-integration","test:import-export":"bash ./scripts/emulator-import-export-tests/run.sh","test:storage-deploy":"bash ./scripts/storage-deploy-tests/run.sh","generate:json-schema":"typescript-json-schema --strictNullChecks --required --noExtraProps --ignoreErrors src/firebaseConfig.ts FirebaseConfig > schema/firebase-config.json","test:appdistribution":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/appdistribution/*.spec.{ts,js}'","test:functions-deploy":"bash ./scripts/functions-deploy-tests/run.sh","test:hosting-rewrites":"bash ./scripts/hosting-tests/rewrites-tests/run.sh","test:extensions-deploy":"bash ./scripts/extensions-deploy-tests/run.sh","test:client-integration":"bash ./scripts/client-integration-tests/run.sh","test:dataconnect-deploy":"bash ./scripts/dataconnect-test/run.sh","test:functions-discover":"bash ./scripts/functions-discover-tests/run.sh","test:extensions-emulator":"bash ./scripts/extensions-emulator-tests/run.sh","test:triggers-end-to-end":"bash ./scripts/triggers-end-to-end-tests/run.sh","test:dataconnect-emulator":"bash ./scripts/dataconnect-emulator-tests/run.sh","test:triggers-end-to-end:inspect":"bash ./scripts/triggers-end-to-end-tests/run.sh inspect","test:storage-emulator-integration":"bash ./scripts/storage-emulator-integration/run.sh"},"_npmUser":{"name":"kdawgwilk-elephant","email":"kaden@askelephant.ai"},"overrides":{"hono":"^4.11.4","node-fetch":{"whatwg-url":"^14.0.0"},"@angular-devkit/core":{"ajv":"^8.17.1","ajv-formats":"3.0.1"}},"repository":{"url":"git+https://github.com/firebase/firebase-tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Command-Line Interface for Firebase","directories":{},"_nodeVersion":"24.11.1","dependencies":{"pg":"^8.11.3","ws":"^7.5.10","ajv":"^8.17.1","ora":"^5.4.1","tmp":"^0.2.3","zod":"^3.24.3","cors":"^2.8.5","glob":"^10.5.0","mime":"^2.5.2","open":"^6.3.0","uuid":"^8.3.2","yaml":"^2.4.1","cjson":"^0.3.1","fuzzy":"^0.1.3","leven":"^3.1.0","lsofi":"1.0.0","retry":"^0.13.1","gaxios":"^6.7.0","ignore":"^7.0.4","lodash":"^4.17.21","marked":"^13.0.2","morgan":"^1.10.0","semver":"^7.5.2","express":"^4.16.4","js-yaml":"^3.14.2","p-limit":"^3.0.1","winston":"^3.0.0","archiver":"^7.0.0","chokidar":"^3.6.0","exegesis":"^4.2.0","filesize":"^6.1.0","fs-extra":"^10.1.0","pglite-2":"npm:@electric-sql/pglite@0.2.17","progress":"^2.0.3","colorette":"^2.0.19","commander":"^5.1.0","cross-env":"^7.0.3","csv-parse":"^5.0.4","form-data":"^4.0.1","minimatch":"^3.0.4","async-lock":"1.4.1","cli-table3":"0.6.5","node-fetch":"^2.6.7","pg-gateway":"^0.3.0-beta.4","portfinder":"^1.0.32","ajv-formats":"3.0.1","body-parser":"^1.19.0","configstore":"^5.0.1","cross-spawn":"^7.0.5","proxy-agent":"^6.3.0","stream-json":"^1.7.3","superstatic":"^10.0.0","triple-beam":"^1.3.0","jsonwebtoken":"^9.0.2","stream-chain":"^2.2.4","sql-formatter":"^15.3.0","tcp-port-used":"^1.0.2","marked-terminal":"^7.0.0","abort-controller":"^3.0.0","exegesis-express":"^4.0.0","@apphosting/build":"^0.1.6","@inquirer/prompts":"^7.10.1","winston-transport":"^4.4.0","@apphosting/common":"^0.0.8","libsodium-wrappers":"^0.7.10","zod-to-json-schema":"^3.24.5","google-auth-library":"^9.11.0","universal-analytics":"^0.5.3","update-notifier-cjs":"^5.1.6","@electric-sql/pglite":"^0.3.3","@google-cloud/pubsub":"^5.2.0","deep-equal-in-any-order":"^2.0.6","@modelcontextprotocol/sdk":"^1.24.0","@electric-sql/pglite-tools":"^0.2.8","@google-cloud/cloud-sql-connector":"^1.3.3"},"preferGlobal":true,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","next":"^14.1.0","nock":"^13.0.5","vite":"^4.2.1","astro":"^2.2.3","mocha":"^11.7.1","proxy":"^1.0.2","sinon":"^9.2.3","eslint":"^8.56.0","mock-fs":"5.2.0","ts-node":"^10.4.0","firebase":"^9.16.0","prettier":"^3.2.4","@types/pg":"^8.11.2","@types/ws":"^7.2.3","puppeteer":"^19.0.0","supertest":"^6.2.3","@types/tmp":"^0.2.3","googleapis":"^105.0.0","sinon-chai":"^3.6.0","typescript":"^5.3.3","@types/chai":"^4.3.0","@types/cors":"^2.8.10","@types/node":"^25.0.3","@types/uuid":"^8.3.1","openapi3-ts":"^3.2.0","@types/cjson":"^0.5.0","@types/lsofi":"1.0.2","@types/mocha":"^9.0.0","@types/react":"^18.2.58","@types/retry":"^0.12.1","@types/sinon":"^9.0.10","@types/lodash":"^4.14.149","@types/multer":"^1.4.3","@types/semver":"^6.0.0","openapi-merge":"^1.0.23","@google/events":"^5.1.1","@types/express":"^4.17.0","@types/js-yaml":"^3.12.2","@types/mock-fs":"4.13.4","firebase-admin":"^11.5.0","@types/archiver":"^6.0.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^8.1.3","@types/progress":"^2.0.3","node-mocks-http":"^1.11.0","swagger2openapi":"^7.0.8","@types/react-dom":"^18.2.19","@types/supertest":"^2.0.12","chai-as-promised":"^7.1.1","@types/async-lock":"^1.4.2","@types/node-fetch":"^2.6.13","@types/sinon-chai":"^3.2.2","@types/body-parser":"^1.17.0","@types/configstore":"^4.0.0","@types/cross-spawn":"^6.0.1","@types/stream-json":"^1.7.2","@types/triple-beam":"^1.3.0","firebase-functions":"^4.3.1","openapi-typescript":"^4.5.0","source-map-support":"^0.5.9","@types/html-escaper":"^3.0.0","@types/jsonwebtoken":"^9.0.5","eslint-plugin-jsdoc":"^48.0.1","@angular-devkit/core":"^14.2.2","@types/tcp-port-used":"^1.0.1","eslint-config-google":"^0.14.0","eslint-plugin-brikke":"^2.2.2","@types/marked-terminal":"^6.1.1","@types/swagger2openapi":"^7.0.0","@types/update-notifier":"^5.1.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","typescript-json-schema":"^0.65.1","@types/chai-as-promised":"^7.1.4","@angular-devkit/architect":"^0.1402.2","@types/libsodium-wrappers":"^0.7.9","@typescript-eslint/parser":"^5.9.0","@types/universal-analytics":"^0.4.5","google-discovery-to-swagger":"^2.1.0","@types/deep-equal-in-any-order":"^1.0.3","@types/express-serve-static-core":"^4.17.8","@typescript-eslint/eslint-plugin":"^5.9.0","@types/inquirer-autocomplete-prompt":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/firebase-tools_15.4.0_1769723799769_0.5297725522809444","host":"s3://npm-registry-packages-npm-production"}},"15.4.1-alpha.0":{"name":"@askelephant/firebase-tools","version":"15.4.1-alpha.0","keywords":["cdn","cli","ssl","cloud","hosting","firebase","realtime","websockets","synchronization"],"author":{"url":"https://firebase.google.com/","name":"Firebase"},"license":"MIT","_id":"@askelephant/firebase-tools@15.4.1-alpha.0","maintainers":[{"name":"mnox","email":"matt.noxon@askelephant.ai"},{"name":"kdawgwilk-elephant","email":"kaden@askelephant.ai"},{"name":"palmerturley34","email":"palmer@askelephant.ai"},{"name":"bryan.lund","email":"bryan@askelephant.ai"}],"homepage":"https://github.com/firebase/firebase-tools","bugs":{"url":"https://github.com/firebase/firebase-tools/issues"},"bin":{"firebase":"lib/bin/firebase.js"},"nyc":{"exclude":["src/**/*.spec.*","src/**/testing/**/*","src/test/**/*"],"require":["ts-node/register"],"reporter":["lcovonly","text"],"extension":[".js",".ts"],"report-dir":"./.coverage"},"dist":{"shasum":"0fc0d35848dd57a7755e72cecf1acf916441281d","tarball":"https://registry.npmjs.org/@askelephant/firebase-tools/-/firebase-tools-15.4.1-alpha.0.tgz","fileCount":888,"integrity":"sha512-03x5lsDLNIHCECdmhcIGHItzUfLcE7dpiDp16/FAxy5YgvTjOzm5dKlZfFPXyOltFIicsjBgWf415mXeIUgbxA==","signatures":[{"sig":"MEQCID/Kxj9m0emg+jcRFMrnzQ48RtE6AjRZArdzNr+h1F6KAiBjbXaK0KhnUHcmc+STzWWtJ3TjuIM1dIh/zfe39nOLnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4442206},"main":"./lib/index.js","engines":{"node":">=20.0.0 || >=22.0.0 || >=24.0.0"},"gitHead":"2d57781fd6c6f828b873d8c8f8a6917e965bf4e9","mcpName":"io.github.firebase/firebase-mcp","scripts":{"lint":"npm run lint:ts && npm run lint:other","test":"npm run lint:quiet && npm run test:compile && npm run mocha","build":"tsc && npm run copyfiles","clean":"node -e \"fs.rmSync('lib', { recursive: true, force: true }); fs.rmSync('dev', { recursive: true, force: true });\"","mocha":"nyc --reporter=html mocha 'src/**/*.spec.{ts,js}'","format":"npm run format:ts && npm run format:other","lint:ts":"eslint --config .eslintrc.js --ext .ts,.js .","prepare":"npm run clean && npm run build:publish","copyfiles":"node -e \"const fs = require('fs'); fs.mkdirSync('./lib', {recursive:true}); fs.copyFileSync('./src/dynamicImport.js', './lib/dynamicImport.js')\"","format:ts":"npm run lint:ts -- --fix --quiet","lint:other":"prettier --check '**/*.{md,yaml,yml}'","lint:quiet":"npm run lint:ts -- --quiet && npm run lint:other","mocha:fast":"mocha 'src/**/*.spec.{ts,js}'","build:watch":"npm run build && tsc --watch","format:other":"npm run lint:other -- --write","test:compile":"tsc --project tsconfig.compile.json","test:hosting":"bash ./scripts/hosting-tests/run.sh","build:publish":"tsc --build tsconfig.publish.json && npm run copyfiles","test:emulator":"bash ./scripts/emulator-tests/run.sh","test:apptesting":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/apptesting/*.spec.{ts,js}'","test:frameworks":"bash ./scripts/webframeworks-deploy-tests/run.sh","test:management":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/management/*.spec.{ts,js}'","generate:auth-api":"ts-node scripts/gen-auth-api-spec.ts","lint:changed-files":"ts-node ./scripts/lint-changed-files.ts","test:all-emulators":"npm run test:emulator && npm run test:extensions-emulator && npm run test:import-export && npm run test:storage-emulator-integration","test:import-export":"bash ./scripts/emulator-import-export-tests/run.sh","test:storage-deploy":"bash ./scripts/storage-deploy-tests/run.sh","generate:json-schema":"typescript-json-schema --strictNullChecks --required --noExtraProps --ignoreErrors src/firebaseConfig.ts FirebaseConfig > schema/firebase-config.json","test:appdistribution":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/appdistribution/*.spec.{ts,js}'","test:functions-deploy":"bash ./scripts/functions-deploy-tests/run.sh","test:hosting-rewrites":"bash ./scripts/hosting-tests/rewrites-tests/run.sh","test:extensions-deploy":"bash ./scripts/extensions-deploy-tests/run.sh","test:client-integration":"bash ./scripts/client-integration-tests/run.sh","test:dataconnect-deploy":"bash ./scripts/dataconnect-test/run.sh","test:functions-discover":"bash ./scripts/functions-discover-tests/run.sh","test:extensions-emulator":"bash ./scripts/extensions-emulator-tests/run.sh","test:triggers-end-to-end":"bash ./scripts/triggers-end-to-end-tests/run.sh","test:dataconnect-emulator":"bash ./scripts/dataconnect-emulator-tests/run.sh","test:triggers-end-to-end:inspect":"bash ./scripts/triggers-end-to-end-tests/run.sh inspect","test:storage-emulator-integration":"bash ./scripts/storage-emulator-integration/run.sh"},"_npmUser":{"name":"mnox","email":"matt.noxon@askelephant.ai"},"overrides":{"hono":"^4.11.4","node-fetch":{"whatwg-url":"^14.0.0"},"@angular-devkit/core":{"ajv":"^8.17.1","ajv-formats":"3.0.1"}},"repository":{"url":"git+https://github.com/firebase/firebase-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Command-Line Interface for Firebase","directories":{},"_nodeVersion":"24.4.1","dependencies":{"pg":"^8.11.3","ws":"^7.5.10","ajv":"^8.17.1","ora":"^5.4.1","tmp":"^0.2.3","zod":"^3.24.3","cors":"^2.8.5","glob":"^10.5.0","mime":"^2.5.2","open":"^6.3.0","uuid":"^8.3.2","yaml":"^2.4.1","cjson":"^0.3.1","fuzzy":"^0.1.3","leven":"^3.1.0","lsofi":"1.0.0","retry":"^0.13.1","gaxios":"^6.7.0","ignore":"^7.0.4","lodash":"^4.17.21","marked":"^13.0.2","morgan":"^1.10.0","semver":"^7.5.2","express":"^4.16.4","js-yaml":"^3.14.2","p-limit":"^3.0.1","winston":"^3.0.0","archiver":"^7.0.0","chokidar":"^3.6.0","exegesis":"^4.2.0","filesize":"^6.1.0","fs-extra":"^10.1.0","pglite-2":"npm:@electric-sql/pglite@0.2.17","progress":"^2.0.3","colorette":"^2.0.19","commander":"^5.1.0","cross-env":"^7.0.3","csv-parse":"^5.0.4","form-data":"^4.0.1","minimatch":"^3.0.4","async-lock":"1.4.1","cli-table3":"0.6.5","node-fetch":"^2.6.7","pg-gateway":"^0.3.0-beta.4","portfinder":"^1.0.32","ajv-formats":"3.0.1","body-parser":"^1.19.0","configstore":"^5.0.1","cross-spawn":"^7.0.5","proxy-agent":"^6.3.0","stream-json":"^1.7.3","superstatic":"^10.0.0","triple-beam":"^1.3.0","jsonwebtoken":"^9.0.2","stream-chain":"^2.2.4","sql-formatter":"^15.3.0","tcp-port-used":"^1.0.2","marked-terminal":"^7.0.0","abort-controller":"^3.0.0","exegesis-express":"^4.0.0","@apphosting/build":"^0.1.6","@inquirer/prompts":"^7.10.1","winston-transport":"^4.4.0","@apphosting/common":"^0.0.8","libsodium-wrappers":"^0.7.10","zod-to-json-schema":"^3.24.5","google-auth-library":"^9.11.0","universal-analytics":"^0.5.3","update-notifier-cjs":"^5.1.6","@electric-sql/pglite":"^0.3.3","@google-cloud/pubsub":"^5.2.0","deep-equal-in-any-order":"^2.0.6","@modelcontextprotocol/sdk":"^1.24.0","@electric-sql/pglite-tools":"^0.2.8","@google-cloud/cloud-sql-connector":"^1.3.3"},"preferGlobal":true,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","next":"^14.1.0","nock":"^13.0.5","vite":"^4.2.1","astro":"^2.2.3","mocha":"^11.7.1","proxy":"^1.0.2","sinon":"^9.2.3","eslint":"^8.56.0","mock-fs":"5.2.0","ts-node":"^10.4.0","firebase":"^9.16.0","prettier":"^3.2.4","@types/pg":"^8.11.2","@types/ws":"^7.2.3","puppeteer":"^19.0.0","supertest":"^6.2.3","@types/tmp":"^0.2.3","googleapis":"^105.0.0","sinon-chai":"^3.6.0","typescript":"^5.3.3","@types/chai":"^4.3.0","@types/cors":"^2.8.10","@types/node":"^25.0.3","@types/uuid":"^8.3.1","openapi3-ts":"^3.2.0","@types/cjson":"^0.5.0","@types/lsofi":"1.0.2","@types/mocha":"^9.0.0","@types/react":"^18.2.58","@types/retry":"^0.12.1","@types/sinon":"^9.0.10","@types/lodash":"^4.14.149","@types/multer":"^1.4.3","@types/semver":"^6.0.0","openapi-merge":"^1.0.23","@google/events":"^5.1.1","@types/express":"^4.17.0","@types/js-yaml":"^3.12.2","@types/mock-fs":"4.13.4","firebase-admin":"^11.5.0","@types/archiver":"^6.0.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^8.1.3","@types/progress":"^2.0.3","node-mocks-http":"^1.11.0","swagger2openapi":"^7.0.8","@types/react-dom":"^18.2.19","@types/supertest":"^2.0.12","chai-as-promised":"^7.1.1","@types/async-lock":"^1.4.2","@types/node-fetch":"^2.6.13","@types/sinon-chai":"^3.2.2","@types/body-parser":"^1.17.0","@types/configstore":"^4.0.0","@types/cross-spawn":"^6.0.1","@types/stream-json":"^1.7.2","@types/triple-beam":"^1.3.0","firebase-functions":"^4.3.1","openapi-typescript":"^4.5.0","source-map-support":"^0.5.9","@types/html-escaper":"^3.0.0","@types/jsonwebtoken":"^9.0.5","eslint-plugin-jsdoc":"^48.0.1","@angular-devkit/core":"^14.2.2","@types/tcp-port-used":"^1.0.1","eslint-config-google":"^0.14.0","eslint-plugin-brikke":"^2.2.2","@types/marked-terminal":"^6.1.1","@types/swagger2openapi":"^7.0.0","@types/update-notifier":"^5.1.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","typescript-json-schema":"^0.65.1","@types/chai-as-promised":"^7.1.4","@angular-devkit/architect":"^0.1402.2","@types/libsodium-wrappers":"^0.7.9","@typescript-eslint/parser":"^5.9.0","@types/universal-analytics":"^0.4.5","google-discovery-to-swagger":"^2.1.0","@types/deep-equal-in-any-order":"^1.0.3","@types/express-serve-static-core":"^4.17.8","@typescript-eslint/eslint-plugin":"^5.9.0","@types/inquirer-autocomplete-prompt":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/firebase-tools_15.4.1-alpha.0_1769731891937_0.4295417550936713","host":"s3://npm-registry-packages-npm-production"}},"15.5.1":{"name":"@askelephant/firebase-tools","version":"15.5.1","keywords":["cdn","cli","ssl","cloud","hosting","firebase","realtime","websockets","synchronization"],"author":{"url":"https://firebase.google.com/","name":"Firebase"},"license":"MIT","_id":"@askelephant/firebase-tools@15.5.1","maintainers":[{"name":"mnox","email":"matt.noxon@askelephant.ai"},{"name":"kdawgwilk-elephant","email":"kaden@askelephant.ai"},{"name":"palmerturley34","email":"palmer@askelephant.ai"},{"name":"bryan.lund","email":"bryan@askelephant.ai"}],"homepage":"https://github.com/firebase/firebase-tools","bugs":{"url":"https://github.com/firebase/firebase-tools/issues"},"bin":{"firebase":"lib/bin/firebase.js"},"nyc":{"exclude":["src/**/*.spec.*","src/**/testing/**/*","src/test/**/*"],"require":["ts-node/register"],"reporter":["lcovonly","text"],"extension":[".js",".ts"],"report-dir":"./.coverage"},"dist":{"shasum":"15882d6686483786157563b382e69e5d0bfad820","tarball":"https://registry.npmjs.org/@askelephant/firebase-tools/-/firebase-tools-15.5.1.tgz","fileCount":881,"integrity":"sha512-tEp1L+PGK8cmfh7ZvlCjzY6Nhtx2D9wfBdpBLIHEEXg05wuv8VnqV3noaSZPL3C8lj20xHP8TXDAfju9b+2JJQ==","signatures":[{"sig":"MEUCIDK8TNom10ZynJ4cBCbPHsHMK6oJEFA2TAGKyvUWrJSbAiEA2ukptIiYN2mrtF72vMNCx4kncCh54t3g7SO106qJhCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4429613},"main":"./lib/index.js","engines":{"node":">=20.0.0 || >=22.0.0 || >=24.0.0"},"gitHead":"cbf6919825ddbd27f90be2d16128b928b5ab6e76","mcpName":"io.github.firebase/firebase-mcp","scripts":{"lint":"npm run lint:ts && npm run lint:other","test":"npm run lint:quiet && npm run test:compile && npm run mocha","build":"tsc && npm run copyfiles","clean":"node -e \"fs.rmSync('lib', { recursive: true, force: true }); fs.rmSync('dev', { recursive: true, force: true });\"","mocha":"nyc --reporter=html mocha 'src/**/*.spec.{ts,js}'","format":"npm run format:ts && npm run format:other","lint:ts":"eslint --config .eslintrc.js --ext .ts,.js .","prepare":"npm run clean && npm run build:publish","copyfiles":"node -e \"const fs = require('fs'); fs.mkdirSync('./lib', {recursive:true}); fs.copyFileSync('./src/dynamicImport.js', './lib/dynamicImport.js')\"","format:ts":"npm run lint:ts -- --fix --quiet","lint:other":"prettier --check '**/*.{md,yaml,yml}'","lint:quiet":"npm run lint:ts -- --quiet && npm run lint:other","mocha:fast":"mocha 'src/**/*.spec.{ts,js}'","build:watch":"npm run build && tsc --watch","format:other":"npm run lint:other -- --write","test:compile":"tsc --project tsconfig.compile.json","test:hosting":"bash ./scripts/hosting-tests/run.sh","build:publish":"tsc --build tsconfig.publish.json && npm run copyfiles","test:emulator":"bash ./scripts/emulator-tests/run.sh","test:apptesting":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/apptesting/*.spec.{ts,js}'","test:frameworks":"bash ./scripts/webframeworks-deploy-tests/run.sh","test:management":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/management/*.spec.{ts,js}'","generate:auth-api":"ts-node scripts/gen-auth-api-spec.ts","lint:changed-files":"ts-node ./scripts/lint-changed-files.ts","test:all-emulators":"npm run test:emulator && npm run test:extensions-emulator && npm run test:import-export && npm run test:storage-emulator-integration","test:import-export":"bash ./scripts/emulator-import-export-tests/run.sh","test:storage-deploy":"bash ./scripts/storage-deploy-tests/run.sh","generate:json-schema":"typescript-json-schema --strictNullChecks --required --noExtraProps --ignoreErrors src/firebaseConfig.ts FirebaseConfig > schema/firebase-config.json","test:appdistribution":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/appdistribution/*.spec.{ts,js}'","test:functions-deploy":"bash ./scripts/functions-deploy-tests/run.sh","test:hosting-rewrites":"bash ./scripts/hosting-tests/rewrites-tests/run.sh","test:extensions-deploy":"bash ./scripts/extensions-deploy-tests/run.sh","test:client-integration":"bash ./scripts/client-integration-tests/run.sh","test:dataconnect-deploy":"bash ./scripts/dataconnect-test/run.sh","test:functions-discover":"bash ./scripts/functions-discover-tests/run.sh","test:extensions-emulator":"bash ./scripts/extensions-emulator-tests/run.sh","test:triggers-end-to-end":"bash ./scripts/triggers-end-to-end-tests/run.sh","test:dataconnect-emulator":"bash ./scripts/dataconnect-emulator-tests/run.sh","test:triggers-end-to-end:inspect":"bash ./scripts/triggers-end-to-end-tests/run.sh inspect","test:storage-emulator-integration":"bash ./scripts/storage-emulator-integration/run.sh"},"_npmUser":{"name":"kdawgwilk-elephant","email":"kaden@askelephant.ai"},"overrides":{"hono":"^4.11.4","node-fetch":{"whatwg-url":"^14.0.0"},"@angular-devkit/core":{"ajv":"^8.17.1","ajv-formats":"3.0.1"}},"repository":{"url":"git+https://github.com/firebase/firebase-tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Command-Line Interface for Firebase","directories":{},"_nodeVersion":"24.11.1","dependencies":{"pg":"^8.11.3","ws":"^7.5.10","ajv":"^8.17.1","ora":"^5.4.1","tmp":"^0.2.3","zod":"^3.24.3","cors":"^2.8.5","glob":"^10.5.0","mime":"^2.5.2","open":"^6.3.0","uuid":"^8.3.2","yaml":"^2.4.1","cjson":"^0.3.1","fuzzy":"^0.1.3","leven":"^3.1.0","lsofi":"1.0.0","retry":"^0.13.1","gaxios":"^6.7.0","ignore":"^7.0.4","lodash":"^4.17.21","marked":"^13.0.2","morgan":"^1.10.0","semver":"^7.5.2","express":"^4.16.4","js-yaml":"^3.14.2","p-limit":"^3.0.1","winston":"^3.0.0","archiver":"^7.0.0","chokidar":"^3.6.0","exegesis":"^4.2.0","filesize":"^6.1.0","fs-extra":"^10.1.0","pglite-2":"npm:@electric-sql/pglite@0.2.17","progress":"^2.0.3","colorette":"^2.0.19","commander":"^5.1.0","cross-env":"^7.0.3","csv-parse":"^5.0.4","form-data":"^4.0.1","minimatch":"^3.0.4","async-lock":"1.4.1","cli-table3":"0.6.5","node-fetch":"^2.6.7","pg-gateway":"^0.3.0-beta.4","portfinder":"^1.0.32","ajv-formats":"3.0.1","body-parser":"^1.19.0","configstore":"^5.0.1","cross-spawn":"^7.0.5","proxy-agent":"^6.3.0","stream-json":"^1.7.3","superstatic":"^10.0.0","triple-beam":"^1.3.0","jsonwebtoken":"^9.0.2","stream-chain":"^2.2.4","sql-formatter":"^15.3.0","tcp-port-used":"^1.0.2","marked-terminal":"^7.0.0","abort-controller":"^3.0.0","exegesis-express":"^4.0.0","@apphosting/build":"^0.1.6","@inquirer/prompts":"^7.10.1","winston-transport":"^4.4.0","@apphosting/common":"^0.0.8","libsodium-wrappers":"^0.7.10","zod-to-json-schema":"^3.24.5","google-auth-library":"^9.11.0","universal-analytics":"^0.5.3","update-notifier-cjs":"^5.1.6","@electric-sql/pglite":"^0.3.3","@google-cloud/pubsub":"^5.2.0","deep-equal-in-any-order":"^2.0.6","@modelcontextprotocol/sdk":"^1.24.0","@electric-sql/pglite-tools":"^0.2.8","@google-cloud/cloud-sql-connector":"^1.3.3"},"preferGlobal":true,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","next":"^14.1.0","nock":"^13.0.5","vite":"^4.2.1","astro":"^2.2.3","mocha":"^11.7.1","proxy":"^1.0.2","sinon":"^9.2.3","eslint":"^8.56.0","mock-fs":"5.2.0","ts-node":"^10.4.0","firebase":"^9.16.0","prettier":"^3.2.4","@types/pg":"^8.11.2","@types/ws":"^7.2.3","puppeteer":"^19.0.0","supertest":"^6.2.3","@types/tmp":"^0.2.3","googleapis":"^105.0.0","sinon-chai":"^3.6.0","typescript":"^5.3.3","@types/chai":"^4.3.0","@types/cors":"^2.8.10","@types/node":"^25.0.3","@types/uuid":"^8.3.1","openapi3-ts":"^3.2.0","@types/cjson":"^0.5.0","@types/lsofi":"1.0.2","@types/mocha":"^9.0.0","@types/react":"^18.2.58","@types/retry":"^0.12.1","@types/sinon":"^9.0.10","@types/lodash":"^4.14.149","@types/multer":"^1.4.3","@types/semver":"^6.0.0","openapi-merge":"^1.0.23","@google/events":"^5.1.1","@types/express":"^4.17.0","@types/js-yaml":"^3.12.2","@types/mock-fs":"4.13.4","firebase-admin":"^11.5.0","@types/archiver":"^6.0.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^8.1.3","@types/progress":"^2.0.3","node-mocks-http":"^1.11.0","swagger2openapi":"^7.0.8","@types/react-dom":"^18.2.19","@types/supertest":"^2.0.12","chai-as-promised":"^7.1.1","@types/async-lock":"^1.4.2","@types/node-fetch":"^2.6.13","@types/sinon-chai":"^3.2.2","@types/body-parser":"^1.17.0","@types/configstore":"^4.0.0","@types/cross-spawn":"^6.0.1","@types/stream-json":"^1.7.2","@types/triple-beam":"^1.3.0","firebase-functions":"^4.3.1","openapi-typescript":"^4.5.0","source-map-support":"^0.5.9","@types/html-escaper":"^3.0.0","@types/jsonwebtoken":"^9.0.5","eslint-plugin-jsdoc":"^48.0.1","@angular-devkit/core":"^14.2.2","@types/tcp-port-used":"^1.0.1","eslint-config-google":"^0.14.0","eslint-plugin-brikke":"^2.2.2","@types/marked-terminal":"^6.1.1","@types/swagger2openapi":"^7.0.0","@types/update-notifier":"^5.1.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","typescript-json-schema":"^0.65.1","@types/chai-as-promised":"^7.1.4","@angular-devkit/architect":"^0.1402.2","@types/libsodium-wrappers":"^0.7.9","@typescript-eslint/parser":"^5.9.0","@types/universal-analytics":"^0.4.5","google-discovery-to-swagger":"^2.1.0","@types/deep-equal-in-any-order":"^1.0.3","@types/express-serve-static-core":"^4.17.8","@typescript-eslint/eslint-plugin":"^5.9.0","@types/inquirer-autocomplete-prompt":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/firebase-tools_15.5.1_1769734355415_0.4306425928215063","host":"s3://npm-registry-packages-npm-production"}},"15.4.1-alpha.1":{"name":"@askelephant/firebase-tools","version":"15.4.1-alpha.1","keywords":["cdn","cli","ssl","cloud","hosting","firebase","realtime","websockets","synchronization"],"author":{"url":"https://firebase.google.com/","name":"Firebase"},"license":"MIT","_id":"@askelephant/firebase-tools@15.4.1-alpha.1","maintainers":[{"name":"mnox","email":"matt.noxon@askelephant.ai"},{"name":"kdawgwilk-elephant","email":"kaden@askelephant.ai"},{"name":"palmerturley34","email":"palmer@askelephant.ai"},{"name":"bryan.lund","email":"bryan@askelephant.ai"}],"homepage":"https://github.com/firebase/firebase-tools","bugs":{"url":"https://github.com/firebase/firebase-tools/issues"},"bin":{"firebase":"lib/bin/firebase.js"},"nyc":{"exclude":["src/**/*.spec.*","src/**/testing/**/*","src/test/**/*"],"require":["ts-node/register"],"reporter":["lcovonly","text"],"extension":[".js",".ts"],"report-dir":"./.coverage"},"dist":{"shasum":"f40023c99bd671d9e08e8add60a820cfa57f45c1","tarball":"https://registry.npmjs.org/@askelephant/firebase-tools/-/firebase-tools-15.4.1-alpha.1.tgz","fileCount":888,"integrity":"sha512-qfRcDHNMtrhdS+3aVzLnTvvFUeoQHluihDWtJupu9nb4vhq/71igMyy3VZHb7AM3eD7+LgGL8Zu+avY8iPsjlg==","signatures":[{"sig":"MEYCIQDTwIf2wov8K6vQEKPv9zye9Tt6RT5chhTnW79MzVSOLAIhALKIcFv7tqvhBX1+fGJLncdfoGFCqL1Y8QK5NVW9NtYO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4444564},"main":"./lib/index.js","engines":{"node":">=20.0.0 || >=22.0.0 || >=24.0.0"},"gitHead":"24297ae5ae671279df2b85db71312a22088c7015","mcpName":"io.github.firebase/firebase-mcp","scripts":{"lint":"npm run lint:ts && npm run lint:other","test":"npm run lint:quiet && npm run test:compile && npm run mocha","build":"tsc && npm run copyfiles","clean":"node -e \"fs.rmSync('lib', { recursive: true, force: true }); fs.rmSync('dev', { recursive: true, force: true });\"","mocha":"nyc --reporter=html mocha 'src/**/*.spec.{ts,js}'","format":"npm run format:ts && npm run format:other","lint:ts":"eslint --config .eslintrc.js --ext .ts,.js .","prepare":"npm run clean && npm run build:publish","copyfiles":"node -e \"const fs = require('fs'); fs.mkdirSync('./lib', {recursive:true}); fs.copyFileSync('./src/dynamicImport.js', './lib/dynamicImport.js')\"","format:ts":"npm run lint:ts -- --fix --quiet","lint:other":"prettier --check '**/*.{md,yaml,yml}'","lint:quiet":"npm run lint:ts -- --quiet && npm run lint:other","mocha:fast":"mocha 'src/**/*.spec.{ts,js}'","build:watch":"npm run build && tsc --watch","format:other":"npm run lint:other -- --write","test:compile":"tsc --project tsconfig.compile.json","test:hosting":"bash ./scripts/hosting-tests/run.sh","build:publish":"tsc --build tsconfig.publish.json && npm run copyfiles","test:emulator":"bash ./scripts/emulator-tests/run.sh","test:apptesting":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/apptesting/*.spec.{ts,js}'","test:frameworks":"bash ./scripts/webframeworks-deploy-tests/run.sh","test:management":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/management/*.spec.{ts,js}'","generate:auth-api":"ts-node scripts/gen-auth-api-spec.ts","lint:changed-files":"ts-node ./scripts/lint-changed-files.ts","test:all-emulators":"npm run test:emulator && npm run test:extensions-emulator && npm run test:import-export && npm run test:storage-emulator-integration","test:import-export":"bash ./scripts/emulator-import-export-tests/run.sh","test:storage-deploy":"bash ./scripts/storage-deploy-tests/run.sh","generate:json-schema":"typescript-json-schema --strictNullChecks --required --noExtraProps --ignoreErrors src/firebaseConfig.ts FirebaseConfig > schema/firebase-config.json","test:appdistribution":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/appdistribution/*.spec.{ts,js}'","test:functions-deploy":"bash ./scripts/functions-deploy-tests/run.sh","test:hosting-rewrites":"bash ./scripts/hosting-tests/rewrites-tests/run.sh","test:extensions-deploy":"bash ./scripts/extensions-deploy-tests/run.sh","test:client-integration":"bash ./scripts/client-integration-tests/run.sh","test:dataconnect-deploy":"bash ./scripts/dataconnect-test/run.sh","test:functions-discover":"bash ./scripts/functions-discover-tests/run.sh","test:extensions-emulator":"bash ./scripts/extensions-emulator-tests/run.sh","test:triggers-end-to-end":"bash ./scripts/triggers-end-to-end-tests/run.sh","test:dataconnect-emulator":"bash ./scripts/dataconnect-emulator-tests/run.sh","test:triggers-end-to-end:inspect":"bash ./scripts/triggers-end-to-end-tests/run.sh inspect","test:storage-emulator-integration":"bash ./scripts/storage-emulator-integration/run.sh"},"_npmUser":{"name":"mnox","email":"matt.noxon@askelephant.ai"},"overrides":{"hono":"^4.11.4","node-fetch":{"whatwg-url":"^14.0.0"},"@angular-devkit/core":{"ajv":"^8.17.1","ajv-formats":"3.0.1"}},"repository":{"url":"git+https://github.com/firebase/firebase-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Command-Line Interface for Firebase","directories":{},"_nodeVersion":"24.4.1","dependencies":{"pg":"^8.11.3","ws":"^7.5.10","ajv":"^8.17.1","ora":"^5.4.1","tmp":"^0.2.3","zod":"^3.24.3","cors":"^2.8.5","glob":"^10.5.0","mime":"^2.5.2","open":"^6.3.0","uuid":"^8.3.2","yaml":"^2.4.1","cjson":"^0.3.1","fuzzy":"^0.1.3","leven":"^3.1.0","lsofi":"1.0.0","retry":"^0.13.1","gaxios":"^6.7.0","ignore":"^7.0.4","lodash":"^4.17.21","marked":"^13.0.2","morgan":"^1.10.0","semver":"^7.5.2","express":"^4.16.4","js-yaml":"^3.14.2","p-limit":"^3.0.1","winston":"^3.0.0","archiver":"^7.0.0","chokidar":"^3.6.0","exegesis":"^4.2.0","filesize":"^6.1.0","fs-extra":"^10.1.0","pglite-2":"npm:@electric-sql/pglite@0.2.17","progress":"^2.0.3","colorette":"^2.0.19","commander":"^5.1.0","cross-env":"^7.0.3","csv-parse":"^5.0.4","form-data":"^4.0.1","minimatch":"^3.0.4","async-lock":"1.4.1","cli-table3":"0.6.5","node-fetch":"^2.6.7","pg-gateway":"^0.3.0-beta.4","portfinder":"^1.0.32","ajv-formats":"3.0.1","body-parser":"^1.19.0","configstore":"^5.0.1","cross-spawn":"^7.0.5","proxy-agent":"^6.3.0","stream-json":"^1.7.3","superstatic":"^10.0.0","triple-beam":"^1.3.0","jsonwebtoken":"^9.0.2","stream-chain":"^2.2.4","sql-formatter":"^15.3.0","tcp-port-used":"^1.0.2","marked-terminal":"^7.0.0","abort-controller":"^3.0.0","exegesis-express":"^4.0.0","@apphosting/build":"^0.1.6","@inquirer/prompts":"^7.10.1","winston-transport":"^4.4.0","@apphosting/common":"^0.0.8","libsodium-wrappers":"^0.7.10","zod-to-json-schema":"^3.24.5","google-auth-library":"^9.11.0","universal-analytics":"^0.5.3","update-notifier-cjs":"^5.1.6","@electric-sql/pglite":"^0.3.3","@google-cloud/pubsub":"^5.2.0","deep-equal-in-any-order":"^2.0.6","@modelcontextprotocol/sdk":"^1.24.0","@electric-sql/pglite-tools":"^0.2.8","@google-cloud/cloud-sql-connector":"^1.3.3"},"preferGlobal":true,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","next":"^14.1.0","nock":"^13.0.5","vite":"^4.2.1","astro":"^2.2.3","mocha":"^11.7.1","proxy":"^1.0.2","sinon":"^9.2.3","eslint":"^8.56.0","mock-fs":"5.2.0","ts-node":"^10.4.0","firebase":"^9.16.0","prettier":"^3.2.4","@types/pg":"^8.11.2","@types/ws":"^7.2.3","puppeteer":"^19.0.0","supertest":"^6.2.3","@types/tmp":"^0.2.3","googleapis":"^105.0.0","sinon-chai":"^3.6.0","typescript":"^5.3.3","@types/chai":"^4.3.0","@types/cors":"^2.8.10","@types/node":"^25.0.3","@types/uuid":"^8.3.1","openapi3-ts":"^3.2.0","@types/cjson":"^0.5.0","@types/lsofi":"1.0.2","@types/mocha":"^9.0.0","@types/react":"^18.2.58","@types/retry":"^0.12.1","@types/sinon":"^9.0.10","@types/lodash":"^4.14.149","@types/multer":"^1.4.3","@types/semver":"^6.0.0","openapi-merge":"^1.0.23","@google/events":"^5.1.1","@types/express":"^4.17.0","@types/js-yaml":"^3.12.2","@types/mock-fs":"4.13.4","firebase-admin":"^11.5.0","@types/archiver":"^6.0.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^8.1.3","@types/progress":"^2.0.3","node-mocks-http":"^1.11.0","swagger2openapi":"^7.0.8","@types/react-dom":"^18.2.19","@types/supertest":"^2.0.12","chai-as-promised":"^7.1.1","@types/async-lock":"^1.4.2","@types/node-fetch":"^2.6.13","@types/sinon-chai":"^3.2.2","@types/body-parser":"^1.17.0","@types/configstore":"^4.0.0","@types/cross-spawn":"^6.0.1","@types/stream-json":"^1.7.2","@types/triple-beam":"^1.3.0","firebase-functions":"^4.3.1","openapi-typescript":"^4.5.0","source-map-support":"^0.5.9","@types/html-escaper":"^3.0.0","@types/jsonwebtoken":"^9.0.5","eslint-plugin-jsdoc":"^48.0.1","@angular-devkit/core":"^14.2.2","@types/tcp-port-used":"^1.0.1","eslint-config-google":"^0.14.0","eslint-plugin-brikke":"^2.2.2","@types/marked-terminal":"^6.1.1","@types/swagger2openapi":"^7.0.0","@types/update-notifier":"^5.1.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","typescript-json-schema":"^0.65.1","@types/chai-as-promised":"^7.1.4","@angular-devkit/architect":"^0.1402.2","@types/libsodium-wrappers":"^0.7.9","@typescript-eslint/parser":"^5.9.0","@types/universal-analytics":"^0.4.5","google-discovery-to-swagger":"^2.1.0","@types/deep-equal-in-any-order":"^1.0.3","@types/express-serve-static-core":"^4.17.8","@typescript-eslint/eslint-plugin":"^5.9.0","@types/inquirer-autocomplete-prompt":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/firebase-tools_15.4.1-alpha.1_1769735318084_0.9186015733310584","host":"s3://npm-registry-packages-npm-production"}},"15.4.1-alpha.2":{"name":"@askelephant/firebase-tools","version":"15.4.1-alpha.2","keywords":["cdn","cli","ssl","cloud","hosting","firebase","realtime","websockets","synchronization"],"author":{"url":"https://firebase.google.com/","name":"Firebase"},"license":"MIT","_id":"@askelephant/firebase-tools@15.4.1-alpha.2","maintainers":[{"name":"mnox","email":"matt.noxon@askelephant.ai"},{"name":"kdawgwilk-elephant","email":"kaden@askelephant.ai"},{"name":"palmerturley34","email":"palmer@askelephant.ai"},{"name":"bryan.lund","email":"bryan@askelephant.ai"}],"homepage":"https://github.com/firebase/firebase-tools","bugs":{"url":"https://github.com/firebase/firebase-tools/issues"},"bin":{"firebase":"lib/bin/firebase.js"},"nyc":{"exclude":["src/**/*.spec.*","src/**/testing/**/*","src/test/**/*"],"require":["ts-node/register"],"reporter":["lcovonly","text"],"extension":[".js",".ts"],"report-dir":"./.coverage"},"dist":{"shasum":"8ae752685bf6a4c5d86a1ae72ce1f1d82a5c0178","tarball":"https://registry.npmjs.org/@askelephant/firebase-tools/-/firebase-tools-15.4.1-alpha.2.tgz","fileCount":888,"integrity":"sha512-wLOt3RQJLdsokX2IQxjTHr3V/XfAxmMVnmplve+ftbcgCJpQjocT63lQZfprMg2PjthSXeinflSkBov8CUHgeg==","signatures":[{"sig":"MEQCICLYaGqTC2u8OnUZARMMvDkxcA5do3R/vXo+puoFHWxoAiAPsF2sFtSr3Mt64NMoPSI3uY7o6e6aWHgEMWwITkGEaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4445109},"main":"./lib/index.js","engines":{"node":">=20.0.0 || >=22.0.0 || >=24.0.0"},"gitHead":"e7aef3958963cf3a2eac2621bfe44bdc311f1705","mcpName":"io.github.firebase/firebase-mcp","scripts":{"lint":"npm run lint:ts && npm run lint:other","test":"npm run lint:quiet && npm run test:compile && npm run mocha","build":"tsc && npm run copyfiles","clean":"node -e \"fs.rmSync('lib', { recursive: true, force: true }); fs.rmSync('dev', { recursive: true, force: true });\"","mocha":"nyc --reporter=html mocha 'src/**/*.spec.{ts,js}'","format":"npm run format:ts && npm run format:other","lint:ts":"eslint --config .eslintrc.js --ext .ts,.js .","prepare":"npm run clean && npm run build:publish","copyfiles":"node -e \"const fs = require('fs'); fs.mkdirSync('./lib', {recursive:true}); fs.copyFileSync('./src/dynamicImport.js', './lib/dynamicImport.js')\"","format:ts":"npm run lint:ts -- --fix --quiet","lint:other":"prettier --check '**/*.{md,yaml,yml}'","lint:quiet":"npm run lint:ts -- --quiet && npm run lint:other","mocha:fast":"mocha 'src/**/*.spec.{ts,js}'","build:watch":"npm run build && tsc --watch","format:other":"npm run lint:other -- --write","test:compile":"tsc --project tsconfig.compile.json","test:hosting":"bash ./scripts/hosting-tests/run.sh","build:publish":"tsc --build tsconfig.publish.json && npm run copyfiles","test:emulator":"bash ./scripts/emulator-tests/run.sh","test:apptesting":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/apptesting/*.spec.{ts,js}'","test:frameworks":"bash ./scripts/webframeworks-deploy-tests/run.sh","test:management":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/management/*.spec.{ts,js}'","generate:auth-api":"ts-node scripts/gen-auth-api-spec.ts","lint:changed-files":"ts-node ./scripts/lint-changed-files.ts","test:all-emulators":"npm run test:emulator && npm run test:extensions-emulator && npm run test:import-export && npm run test:storage-emulator-integration","test:import-export":"bash ./scripts/emulator-import-export-tests/run.sh","test:storage-deploy":"bash ./scripts/storage-deploy-tests/run.sh","generate:json-schema":"typescript-json-schema --strictNullChecks --required --noExtraProps --ignoreErrors src/firebaseConfig.ts FirebaseConfig > schema/firebase-config.json","test:appdistribution":"npm run lint:quiet && npm run test:compile && nyc mocha 'src/appdistribution/*.spec.{ts,js}'","test:functions-deploy":"bash ./scripts/functions-deploy-tests/run.sh","test:hosting-rewrites":"bash ./scripts/hosting-tests/rewrites-tests/run.sh","test:extensions-deploy":"bash ./scripts/extensions-deploy-tests/run.sh","test:client-integration":"bash ./scripts/client-integration-tests/run.sh","test:dataconnect-deploy":"bash ./scripts/dataconnect-test/run.sh","test:functions-discover":"bash ./scripts/functions-discover-tests/run.sh","test:extensions-emulator":"bash ./scripts/extensions-emulator-tests/run.sh","test:triggers-end-to-end":"bash ./scripts/triggers-end-to-end-tests/run.sh","test:dataconnect-emulator":"bash ./scripts/dataconnect-emulator-tests/run.sh","test:triggers-end-to-end:inspect":"bash ./scripts/triggers-end-to-end-tests/run.sh inspect","test:storage-emulator-integration":"bash ./scripts/storage-emulator-integration/run.sh"},"_npmUser":{"name":"mnox","email":"matt.noxon@askelephant.ai"},"overrides":{"hono":"^4.11.4","node-fetch":{"whatwg-url":"^14.0.0"},"@angular-devkit/core":{"ajv":"^8.17.1","ajv-formats":"3.0.1"}},"repository":{"url":"git+https://github.com/firebase/firebase-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Command-Line Interface for Firebase","directories":{},"_nodeVersion":"24.4.1","dependencies":{"pg":"^8.11.3","ws":"^7.5.10","ajv":"^8.17.1","ora":"^5.4.1","tmp":"^0.2.3","zod":"^3.24.3","cors":"^2.8.5","glob":"^10.5.0","mime":"^2.5.2","open":"^6.3.0","uuid":"^8.3.2","yaml":"^2.4.1","cjson":"^0.3.1","fuzzy":"^0.1.3","leven":"^3.1.0","lsofi":"1.0.0","retry":"^0.13.1","gaxios":"^6.7.0","ignore":"^7.0.4","lodash":"^4.17.21","marked":"^13.0.2","morgan":"^1.10.0","semver":"^7.5.2","express":"^4.16.4","js-yaml":"^3.14.2","p-limit":"^3.0.1","winston":"^3.0.0","archiver":"^7.0.0","chokidar":"^3.6.0","exegesis":"^4.2.0","filesize":"^6.1.0","fs-extra":"^10.1.0","pglite-2":"npm:@electric-sql/pglite@0.2.17","progress":"^2.0.3","colorette":"^2.0.19","commander":"^5.1.0","cross-env":"^7.0.3","csv-parse":"^5.0.4","form-data":"^4.0.1","minimatch":"^3.0.4","async-lock":"1.4.1","cli-table3":"0.6.5","node-fetch":"^2.6.7","pg-gateway":"^0.3.0-beta.4","portfinder":"^1.0.32","ajv-formats":"3.0.1","body-parser":"^1.19.0","configstore":"^5.0.1","cross-spawn":"^7.0.5","proxy-agent":"^6.3.0","stream-json":"^1.7.3","superstatic":"^10.0.0","triple-beam":"^1.3.0","jsonwebtoken":"^9.0.2","stream-chain":"^2.2.4","sql-formatter":"^15.3.0","tcp-port-used":"^1.0.2","marked-terminal":"^7.0.0","abort-controller":"^3.0.0","exegesis-express":"^4.0.0","@apphosting/build":"^0.1.6","@inquirer/prompts":"^7.10.1","winston-transport":"^4.4.0","@apphosting/common":"^0.0.8","libsodium-wrappers":"^0.7.10","zod-to-json-schema":"^3.24.5","google-auth-library":"^9.11.0","universal-analytics":"^0.5.3","update-notifier-cjs":"^5.1.6","@electric-sql/pglite":"^0.3.3","@google-cloud/pubsub":"^5.2.0","deep-equal-in-any-order":"^2.0.6","@modelcontextprotocol/sdk":"^1.24.0","@electric-sql/pglite-tools":"^0.2.8","@google-cloud/cloud-sql-connector":"^1.3.3"},"preferGlobal":true,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","next":"^14.1.0","nock":"^13.0.5","vite":"^4.2.1","astro":"^2.2.3","mocha":"^11.7.1","proxy":"^1.0.2","sinon":"^9.2.3","eslint":"^8.56.0","mock-fs":"5.2.0","ts-node":"^10.4.0","firebase":"^9.16.0","prettier":"^3.2.4","@types/pg":"^8.11.2","@types/ws":"^7.2.3","puppeteer":"^19.0.0","supertest":"^6.2.3","@types/tmp":"^0.2.3","googleapis":"^105.0.0","sinon-chai":"^3.6.0","typescript":"^5.3.3","@types/chai":"^4.3.0","@types/cors":"^2.8.10","@types/node":"^25.0.3","@types/uuid":"^8.3.1","openapi3-ts":"^3.2.0","@types/cjson":"^0.5.0","@types/lsofi":"1.0.2","@types/mocha":"^9.0.0","@types/react":"^18.2.58","@types/retry":"^0.12.1","@types/sinon":"^9.0.10","@types/lodash":"^4.14.149","@types/multer":"^1.4.3","@types/semver":"^6.0.0","openapi-merge":"^1.0.23","@google/events":"^5.1.1","@types/express":"^4.17.0","@types/js-yaml":"^3.12.2","@types/mock-fs":"4.13.4","firebase-admin":"^11.5.0","@types/archiver":"^6.0.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^8.1.3","@types/progress":"^2.0.3","node-mocks-http":"^1.11.0","swagger2openapi":"^7.0.8","@types/react-dom":"^18.2.19","@types/supertest":"^2.0.12","chai-as-promised":"^7.1.1","@types/async-lock":"^1.4.2","@types/node-fetch":"^2.6.13","@types/sinon-chai":"^3.2.2","@types/body-parser":"^1.17.0","@types/configstore":"^4.0.0","@types/cross-spawn":"^6.0.1","@types/stream-json":"^1.7.2","@types/triple-beam":"^1.3.0","firebase-functions":"^4.3.1","openapi-typescript":"^4.5.0","source-map-support":"^0.5.9","@types/html-escaper":"^3.0.0","@types/jsonwebtoken":"^9.0.5","eslint-plugin-jsdoc":"^48.0.1","@angular-devkit/core":"^14.2.2","@types/tcp-port-used":"^1.0.1","eslint-config-google":"^0.14.0","eslint-plugin-brikke":"^2.2.2","@types/marked-terminal":"^6.1.1","@types/swagger2openapi":"^7.0.0","@types/update-notifier":"^5.1.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","typescript-json-schema":"^0.65.1","@types/chai-as-promised":"^7.1.4","@angular-devkit/architect":"^0.1402.2","@types/libsodium-wrappers":"^0.7.9","@typescript-eslint/parser":"^5.9.0","@types/universal-analytics":"^0.4.5","google-discovery-to-swagger":"^2.1.0","@types/deep-equal-in-any-order":"^1.0.3","@types/express-serve-static-core":"^4.17.8","@typescript-eslint/eslint-plugin":"^5.9.0","@types/inquirer-autocomplete-prompt":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/firebase-tools_15.4.1-alpha.2_1769735996487_0.5821479549708903","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-29T21:56:39.599Z","modified":"2026-08-26T21:52:06.152Z","15.4.0":"2026-01-29T21:56:39.982Z","15.4.1-alpha.0":"2026-01-30T00:11:32.189Z","15.5.1":"2026-01-30T00:52:35.653Z","15.4.1-alpha.1":"2026-01-30T01:08:38.297Z","15.4.1-alpha.2":"2026-01-30T01:19:56.894Z"},"bugs":{"url":"https://github.com/firebase/firebase-tools/issues"},"author":{"url":"https://firebase.google.com/","name":"Firebase"},"license":"MIT","homepage":"https://github.com/firebase/firebase-tools","keywords":["cdn","cli","ssl","cloud","hosting","firebase","realtime","websockets","synchronization"],"repository":{"url":"git+https://github.com/firebase/firebase-tools.git","type":"git"},"description":"Command-Line Interface for Firebase","maintainers":[{"email":"kaden@askelephant.ai","name":"kdawgwilk-elephant"},{"email":"bryan@askelephant.ai","name":"bryan.lund"}],"readme":"","readmeFilename":""}