* test(ai): prompt for grep string in debug script
Mocha lets us filter tests using the `--grep` command-line option. This
is useful when debugging the AI integration tests, which run against a
grid of backend x model. With this grid there may me multiple redundant test runs,
and the tests may take >20 minutes.
With this new config, we can isolate the test we want to debug. Before
running, VSCode will prompt us for a regex to use for grepping tests by
name.
An example grep string would be
`Google AI gemini-2.0-flash generateContent: google search grounding`.
Without this, I've been manually editing the input test files to be the
file with the test I'm running, then manually editing
`integration/constants.ts` to remove the additional backends and model
names.
* update default and example
* Refactor Firestore target backend parameters to simplify and better support preprod
* Undo `only` in test
* Formatting
* Fix
* Replace local with targetBackend=emulator
* Fix
* Run directly from ts file to avoid compiler problems.
* Remove unused dependency
* Remove unused dependency
* Remove unused dependency
* Fix test when running on emulator
* Override linter
* Add comments
* set up doc gen tools
* save progress
* fix tsdocs
* create docs without -exp in package name
* enable api-report in app-types-exp
* set up doc and api review pipeline
* prepend underscore to internal only symbols
* remove api review
* [AUTOMATED]: Prettier Code Styling
* [AUTOMATED]: License Headers
* fix prepush hook
* add api report for app-types
* manually change the report file for testing
* [AUTOMATED]: API Reports
* centralize api review location
* rename docgen script
* enable json with comment in github
* Adds a prerelease copy of the increment operator (`_increment`)
* Updated local operations to handle increment as well as passing the server operation
* ServerValues now takes a copy of existing data, but uses JIT access to avoid performance regressions
* Lots of new tests
* rxfire was comparing documents based off ids, this was fine before collection group queries. Here I've switched to `ref.isEqual` like I have done in AngularFire.
* When a document is modified, we were only replacing the single doc in the array; this would not always trip change detection in frameworks as `===` would still equal true on the top level. Splicing it creates a new array, which will fail `===` and trip change detection.
* Further, this was an issue with the other operations as we were using splice. I'm now slicing to clone the array before modifying.
* NIT: Visual Studio Code's settings, which are committed, were not setup to track the workspace's version of Typescript. This tripped me up a little at first.
This enforces a maximum line length (of 100) and import ordering via tslint rules and fixes all violations.
The line length violations were fixed manually. Prettier already targets a line length of 80 for code (but this isn't a strict limit) so mostly I just split string literals and long comments, but I did have to use tslint:disable in one place since prettier was formatting at > 100 chars.
The import ordering violations were fixed automatically via yarn lint:fix.
* Add SQLite files to .gitignore so they don't pollute 'git status' or
accidentally get committed.
* Use node-cleanup instead of process.on('exit') since it catches ctrl-C.
Unfortunately it can't catch a pure SIGKILL.
* Fix miscellaneous node / GRPC bit rot.
* Re-add grpc dependency (upgraded).
* Avoid protobufjs dependency by loading protos via grpc.
* Remove crazy grpc stream error handling nonsense that is no longer
necessary after https://github.com/grpc/grpc/pull/9101
* Clean up grpc_connection logging (and consistently use util.inspect()).
* Fix WebChannel / GRPC Connection compatibility issues.
* Add an explicit mapping from "RPC name" (e.g. "BatchGetDocuments") to the
REST url path (e.g. "batchGet") for WebChannel, and for GRPC just assume
the first letter should be lowercased (e.g. "batchGetDocuments").
* Split Connection.invoke() into invokeRPC() and invokeStreamingRPC(), with
the latter accepting a stream of results and aggregating them into an
array (needed to support BatchGetDocuments RPC).
* Fix serializer issues
* Query limits are an 'Int32Value' but we were serializing them as a normal
int which GRPC / protobufjs didn't like.
* Several proto "oneof tags" were outdated.
* Add build steps to copy protos into npm package.
* Run integration tests for Node.JS
* Added to 'test:node' script in package.json and in .vscode/launch.json
* Include index.ts for browser and index.node.ts for node so the appropriate
PlatformSupport gets registered.
* Misc cleanup
* Remove unused MockPlatform since we use the normal NodePlatform now.
* Remove 'google-auth-library' CredentialsProvider that we used to use for
node.js (before we were integrated with FirebaseAuth).
* Fixed several tests that were hitting node.js warnings about unhandled
promise failures.
* mocha commmand-line args:
* "--compilers ts:ts-node/register" was deprecated in favor of
"--require ts-node/register"
* Remove "--retries 5" when running mocha tests from VS Code.
* Consistently use "--require" instead of "-r"
* Add "--exit" when running from VS Code.
See new packages/firestore CONTRIBUTING.md doc for new abilities.
Changes:
* Add --local flag to run against a localhost Firestore server.
* Add --unit and --integration flags to limit to unit or integration tests.
* Make --grep work with karma / mocha to limit the tests that run.
* Change default karma port to 8089 to avoid conflicting with localhost
Firestore server on 8080 (and other common web servers that default
to 8080).