mirror of
https://github.com/musix-org/musix-oss
synced 2025-07-01 20:13:38 +00:00
Updated
This commit is contained in:
336
node_modules/@google-cloud/firestore/CHANGELOG.md
generated
vendored
Normal file
336
node_modules/@google-cloud/firestore/CHANGELOG.md
generated
vendored
Normal file
@ -0,0 +1,336 @@
|
||||
# Changelog
|
||||
|
||||
[npm history][1]
|
||||
|
||||
[1]: https://www.npmjs.com/package/@google-cloud/firestore?activeTab=versions
|
||||
|
||||
### [2.2.9](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.8...v2.2.9) (2019-08-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* retrying 13 INTERNAL RPC errors ([#742](https://www.github.com/googleapis/nodejs-firestore/issues/742)) ([431edcb](https://www.github.com/googleapis/nodejs-firestore/commit/431edcb))
|
||||
|
||||
### [2.2.8](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.7...v2.2.8) (2019-08-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* serialization does not work with null objects ([#736](https://www.github.com/googleapis/nodejs-firestore/issues/736)) ([870d6a7](https://www.github.com/googleapis/nodejs-firestore/commit/870d6a7))
|
||||
|
||||
### [2.2.7](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.6...v2.2.7) (2019-08-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **deps:** use the latest extend ([#728](https://www.github.com/googleapis/nodejs-firestore/issues/728)) ([425bf3d](https://www.github.com/googleapis/nodejs-firestore/commit/425bf3d))
|
||||
* add logging to client pool ([#733](https://www.github.com/googleapis/nodejs-firestore/issues/733)) ([a4efa09](https://www.github.com/googleapis/nodejs-firestore/commit/a4efa09))
|
||||
|
||||
### [2.2.6](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.5...v2.2.6) (2019-08-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* allow calls with no request, add JSON proto ([#725](https://www.github.com/googleapis/nodejs-firestore/issues/725)) ([8b0624b](https://www.github.com/googleapis/nodejs-firestore/commit/8b0624b))
|
||||
|
||||
### [2.2.5](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.4...v2.2.5) (2019-08-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Better error for Collection Group Queries with documentId() cursors ([#720](https://www.github.com/googleapis/nodejs-firestore/issues/720)) ([169286d](https://www.github.com/googleapis/nodejs-firestore/commit/169286d))
|
||||
|
||||
### [2.2.4](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.3...v2.2.4) (2019-07-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Don't re-open streams on 'error' and 'end' ([#713](https://www.github.com/googleapis/nodejs-firestore/issues/713)) ([104a965](https://www.github.com/googleapis/nodejs-firestore/commit/104a965))
|
||||
|
||||
### [2.2.3](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.2...v2.2.3) (2019-06-26)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **docs:** link to reference docs section on googleapis.dev ([#701](https://www.github.com/googleapis/nodejs-firestore/issues/701)) ([d7c89a8](https://www.github.com/googleapis/nodejs-firestore/commit/d7c89a8))
|
||||
* Relax validation of FIRESTORE_EMULATOR_HOST in settings() ([#703](https://www.github.com/googleapis/nodejs-firestore/issues/703)) ([daff9de](https://www.github.com/googleapis/nodejs-firestore/commit/daff9de))
|
||||
|
||||
### [2.2.2](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.1...v2.2.2) (2019-06-25)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Support non-ISO-8859-1 Collection Names in Queries ([fc6f839](https://www.github.com/googleapis/nodejs-firestore/commit/fc6f839))
|
||||
* Unset servicePath when FIRESTORE_EMULATOR_HOST is set ([#696](https://www.github.com/googleapis/nodejs-firestore/issues/696)) ([5a19931](https://www.github.com/googleapis/nodejs-firestore/commit/5a19931))
|
||||
* Use new stream rather than pipe ([#700](https://www.github.com/googleapis/nodejs-firestore/issues/700)) ([0370e03](https://www.github.com/googleapis/nodejs-firestore/commit/0370e03))
|
||||
|
||||
### [2.2.1](https://www.github.com/googleapis/nodejs-firestore/compare/v2.2.0...v2.2.1) (2019-06-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **docs:** move to new client docs URL ([#689](https://www.github.com/googleapis/nodejs-firestore/issues/689)) ([58acc46](https://www.github.com/googleapis/nodejs-firestore/commit/58acc46))
|
||||
|
||||
## [2.2.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.1.1...v2.2.0) (2019-06-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Split settings.host into servicePath and port ([#684](https://www.github.com/googleapis/nodejs-firestore/issues/684)) ([b2cbca5](https://www.github.com/googleapis/nodejs-firestore/commit/b2cbca5))
|
||||
* Store large numbers as doubles ([#683](https://www.github.com/googleapis/nodejs-firestore/issues/683)) ([607b3c0](https://www.github.com/googleapis/nodejs-firestore/commit/607b3c0))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* support apiEndpoint override in client constructor ([368bc5c](https://www.github.com/googleapis/nodejs-firestore/commit/368bc5c))
|
||||
* Support host, ssl and FIRESTORE_EMULATOR_HOST for endpoint configuration ([#680](https://www.github.com/googleapis/nodejs-firestore/issues/680)) ([d15f29d](https://www.github.com/googleapis/nodejs-firestore/commit/d15f29d))
|
||||
|
||||
## [2.1.1](https://www.github.com/googleapis/nodejs-firestore/compare/v2.1.0...v2.1.1) (2019-05-30)
|
||||
|
||||
|
||||
### Dependencies
|
||||
- deps: Pin @gprc/grpc-js to 0.4.0 ([#668](https://github.com/googleapis/nodejs-firestore/pull/668))
|
||||
|
||||
|
||||
### Internal / Testing Changes
|
||||
- build: remove verbose logging from test scripts ([#665](https://github.com/googleapis/nodejs-firestore/pull/665))
|
||||
- build: ignore proto files in test coverage ([#664](https://github.com/googleapis/nodejs-firestore/pull/664))
|
||||
|
||||
## [2.1.0](https://www.github.com/googleapis/nodejs-firestore/compare/v2.0.0...v2.1.0) (2019-05-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Add overloads for doc() and doc(id:string) ([#662](https://www.github.com/googleapis/nodejs-firestore/issues/662)) ([cb189e9](https://www.github.com/googleapis/nodejs-firestore/commit/cb189e9))
|
||||
* retry on abort and limit retry count to 10 ([#655](https://www.github.com/googleapis/nodejs-firestore/issues/655)) ([9e97656](https://www.github.com/googleapis/nodejs-firestore/commit/9e97656))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* Support listDocuments()/listCollections() via the Firestore Emulator ([#654](https://www.github.com/googleapis/nodejs-firestore/issues/654)) ([eaf5a4e](https://www.github.com/googleapis/nodejs-firestore/commit/eaf5a4e))
|
||||
|
||||
## [2.0.0](https://www.github.com/googleapis/nodejs-firestore/compare/v1.3.0...v2.0.0) (2019-05-20)
|
||||
|
||||
|
||||
### ⚠ BREAKING CHANGES
|
||||
|
||||
* library now requires Node >= 8.13.0
|
||||
* **deprecation:** remove legacy support for array arguments (#625)
|
||||
* **deprecation:** remove deprecated getCollections() (#624)
|
||||
* upgrade engines field to >=8.10.0 (#608)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **deps:** update dependency google-gax to ^0.26.0 ([#606](https://www.github.com/googleapis/nodejs-firestore/issues/606)) ([a637a68](https://www.github.com/googleapis/nodejs-firestore/commit/a637a68))
|
||||
* Fix client pooling for long-lived listens ([#614](https://www.github.com/googleapis/nodejs-firestore/issues/614)) ([479bc9c](https://www.github.com/googleapis/nodejs-firestore/commit/479bc9c)), closes [firebase/firebase-admin-node#499](https://www.github.com/googleapis/nodejs-firestore/issues/499) [#256](https://www.github.com/googleapis/nodejs-firestore/issues/256)
|
||||
* **deps:** update dependency google-gax to v1 ([#615](https://www.github.com/googleapis/nodejs-firestore/issues/615)) ([687a353](https://www.github.com/googleapis/nodejs-firestore/commit/687a353))
|
||||
* run the generator ([#616](https://www.github.com/googleapis/nodejs-firestore/issues/616)) ([92b0add](https://www.github.com/googleapis/nodejs-firestore/commit/92b0add))
|
||||
* **docs:** revert jsdoc and pin to 3.5.5 ([#627](https://www.github.com/googleapis/nodejs-firestore/issues/627)) ([e22f9c6](https://www.github.com/googleapis/nodejs-firestore/commit/e22f9c6))
|
||||
* Support more than 100 long-lived streams ([#623](https://www.github.com/googleapis/nodejs-firestore/issues/623)) ([9474e3f](https://www.github.com/googleapis/nodejs-firestore/commit/9474e3f))
|
||||
|
||||
|
||||
### Build System
|
||||
|
||||
* upgrade engines field to >=8.10.0 ([#608](https://www.github.com/googleapis/nodejs-firestore/issues/608)) ([32485f4](https://www.github.com/googleapis/nodejs-firestore/commit/32485f4))
|
||||
* upgrade engines field to >=8.13.0 ([#636](https://www.github.com/googleapis/nodejs-firestore/issues/636)) ([a5db7d8](https://www.github.com/googleapis/nodejs-firestore/commit/a5db7d8))
|
||||
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
* **deprecation:** remove deprecated getCollections() ([#624](https://www.github.com/googleapis/nodejs-firestore/issues/624)) ([43ac9c6](https://www.github.com/googleapis/nodejs-firestore/commit/43ac9c6))
|
||||
* **deprecation:** remove legacy support for array arguments ([#625](https://www.github.com/googleapis/nodejs-firestore/issues/625)) ([54dd405](https://www.github.com/googleapis/nodejs-firestore/commit/54dd405))
|
||||
|
||||
## v1.3.0
|
||||
|
||||
04-26-2019 16:54 PDT
|
||||
|
||||
### New Features
|
||||
- feature: Adding CollectionGroup queries ([#578](https://github.com/googleapis/nodejs-firestore/pull/578))([#595](https://github.com/googleapis/nodejs-firestore/pull/595))
|
||||
|
||||
### Dependencies
|
||||
- chore(deps): update dependency nyc to v14 ([#600](https://github.com/googleapis/nodejs-firestore/pull/600))
|
||||
- chore(deps): update dependency typescript to ~3.4.0
|
||||
- docs: add .readme-metadata.json and generate new README.md
|
||||
|
||||
### Documentation
|
||||
- docs: Add example for Precondition ([#601](https://github.com/googleapis/nodejs-firestore/pull/601))
|
||||
|
||||
## v1.2.0
|
||||
|
||||
03-21-2019 14:17 PDT
|
||||
|
||||
### New Features
|
||||
- feature: Release the V1 Admin API ([#590](https://github.com/googleapis/nodejs-firestore/pull/590))
|
||||
The Firestore Node SDK now exposes the Firestore Admin API (via `v1.FirebaseAdminClient()`).
|
||||
|
||||
### Implementation Changes
|
||||
- deps/refactor: Removing @google-cloud/projectify ([#564](https://github.com/googleapis/nodejs-firestore/pull/564))
|
||||
|
||||
### Dependencies
|
||||
- chore(deps): update dependency hard-rejection to v2
|
||||
|
||||
### Documentation
|
||||
- fix(docs): add namespaces so docs are generated ([#591](https://github.com/googleapis/nodejs-firestore/pull/591))
|
||||
- docs: fix typo in doc strings ([#585](https://github.com/googleapis/nodejs-firestore/pull/585))
|
||||
|
||||
### Internal / Testing Changes
|
||||
- chore: publish to npm using wombat ([#586](https://github.com/googleapis/nodejs-firestore/pull/586))
|
||||
- build: use per-repo publish token ([#582](https://github.com/googleapis/nodejs-firestore/pull/582))
|
||||
- refactor: update json import paths ([#580](https://github.com/googleapis/nodejs-firestore/pull/580))
|
||||
|
||||
## v1.1.0
|
||||
|
||||
03-10-2019 20:09 PDT
|
||||
|
||||
### New Features
|
||||
- feature: Added `FieldValue.increment()`, which can be used in `create()`, `update()` and `set(..., {merge:true})` to
|
||||
increment or decrement numeric field values safely without transactions ([#444](https://github.com/googleapis/nodejs-firestore/pull/444))
|
||||
|
||||
### Implementation Changes
|
||||
- fix: Allow async functions ([#576](https://github.com/googleapis/nodejs-firestore/pull/576))
|
||||
- fix: Don't call stream.end() on Watch ended by server ([#565](https://github.com/googleapis/nodejs-firestore/pull/565))
|
||||
|
||||
### Internal / Testing Changes
|
||||
- refactor: async/await to test/order.ts ([#566](https://github.com/googleapis/nodejs-firestore/pull/566))
|
||||
- build: Add docuploader credentials to node publish jobs ([#572](https://github.com/googleapis/nodejs-firestore/pull/572))
|
||||
- build: update release config ([#570](https://github.com/googleapis/nodejs-firestore/pull/570))
|
||||
- build: use node10 to run samples-test, system-test etc ([#571](https://github.com/googleapis/nodejs-firestore/pull/571))
|
||||
|
||||
## v1.0.2
|
||||
|
||||
03-04-2019 13:32 PST
|
||||
|
||||
### Implementation Changes
|
||||
|
||||
- fix: throw on invalid credentials ([#548](https://github.com/googleapis/nodejs-firestore/pull/548))
|
||||
|
||||
### Dependencies
|
||||
|
||||
- fix(deps): update dependency google-gax to ^0.25.0 ([#535](https://github.com/googleapis/nodejs-firestore/pull/535))
|
||||
- chore(deps): update dependency mocha to v6
|
||||
- chore(deps): update dependency duplexify to v4 ([#539](https://github.com/googleapis/nodejs-firestore/pull/539))
|
||||
|
||||
### Documentation
|
||||
|
||||
- docs: update comments on protos ([#559](https://github.com/googleapis/nodejs-firestore/pull/559))
|
||||
- docs: update API doc comments ([#557](https://github.com/googleapis/nodejs-firestore/pull/557))
|
||||
- docs: update links in contrib guide ([#550](https://github.com/googleapis/nodejs-firestore/pull/550))
|
||||
- docs: add lint/fix example to contributing guide ([#541](https://github.com/googleapis/nodejs-firestore/pull/541))
|
||||
- docs: fix example comments ([#540](https://github.com/googleapis/nodejs-firestore/pull/540))
|
||||
- doc: show GA message in README.md ([#536](https://github.com/googleapis/nodejs-firestore/pull/536))
|
||||
- Add note about Datastore mode ([#552](https://github.com/googleapis/nodejs-firestore/pull/552))
|
||||
- chore: move CONTRIBUTING.md to root ([#543](https://github.com/googleapis/nodejs-firestore/pull/543))
|
||||
- docs: update contributing path in README ([#544](https://github.com/googleapis/nodejs-firestore/pull/544))
|
||||
|
||||
### Internal / Testing Changes
|
||||
|
||||
- refactor(typescript): enable noImplicitAny ([#553](https://github.com/googleapis/nodejs-firestore/pull/553))
|
||||
- chore: update array types ([#555](https://github.com/googleapis/nodejs-firestore/pull/555))
|
||||
- Finish TypeScript Migration ([#512](https://github.com/googleapis/nodejs-firestore/pull/512))
|
||||
- refactor: improve generated code style. ([#538](https://github.com/googleapis/nodejs-firestore/pull/538))
|
||||
- Remove unhandled Promise rejection warning ([#556](https://github.com/googleapis/nodejs-firestore/pull/556))
|
||||
- build: use linkinator for docs test ([#549](https://github.com/googleapis/nodejs-firestore/pull/549))
|
||||
- build: create docs test npm scripts ([#547](https://github.com/googleapis/nodejs-firestore/pull/547))
|
||||
- build: test using @grpc/grpc-js in CI ([#546](https://github.com/googleapis/nodejs-firestore/pull/546))
|
||||
|
||||
## v1.0.1
|
||||
|
||||
01-29-2019 14:02 PST
|
||||
|
||||
# Documentation
|
||||
|
||||
- doc: update README.md to show this library as GA ([#532](https://github.com/googleapis/nodejs-firestore/pull/532))
|
||||
- fix(samples): constructor doesn't need project or cred options ([#533](https://github.com/googleapis/nodejs-firestore/pull/533))
|
||||
|
||||
## v1.0.0
|
||||
|
||||
01-29-2019 12:12 PST
|
||||
|
||||
This is the Firestore Node.js Client Library GA release.
|
||||
|
||||
## v0.21.0
|
||||
|
||||
01-25-2019 12:21 PST
|
||||
|
||||
This release brings in google-gax update to 0.24.0 which had its dependency google-auth-library updated to 3.0.0^ that swaps out axios in favour of gaxios and addresses an issue using the library behind a proxy (https://github.com/googleapis/nodejs-firestore/issues/493).
|
||||
|
||||
### Dependencies
|
||||
- chore(deps): update dependency ts-node to v8 ([#526](https://github.com/googleapis/nodejs-firestore/pull/526))
|
||||
- fix(deps): update dependency google-gax to ^0.24.0 ([#529](https://github.com/googleapis/nodejs-firestore/pull/529))
|
||||
|
||||
### Documentation
|
||||
- build: ignore googleapis.com in doc link check ([#527](https://github.com/googleapis/nodejs-firestore/pull/527))
|
||||
- docs: fix import links in the jsdocs ([#524](https://github.com/googleapis/nodejs-firestore/pull/524))
|
||||
|
||||
### Internal / Testing Changes
|
||||
- chore: update year in the license headers. ([#523](https://github.com/googleapis/nodejs-firestore/pull/523))
|
||||
|
||||
## v0.20.0
|
||||
|
||||
01-16-2019 13:14 PST
|
||||
|
||||
#### BREAKING: The `timestampsInSnapshots` default has changed to true.
|
||||
The `timestampsInSnapshots` setting is now enabled by default so timestamp
|
||||
fields read from a `DocumentSnapshot` will be returned as `Timestamp` objects
|
||||
instead of `Date`. Any code expecting to receive a `Date` object must be
|
||||
updated.
|
||||
|
||||
#### DEPRECATED: `Firestore.v1beta1` replaced by `Firestore.v1`
|
||||
If you are currently using `Firestore.v1beta1.FirestoreClient`, you must switch
|
||||
to `Firestore.v1.FirestoreClient`. No other changes should be required as the
|
||||
API is 100% identical.
|
||||
|
||||
### Bug Fixes
|
||||
- fix: getAll function signature to allow array destructuring ([#515](https://github.com/googleapis/nodejs-firestore/pull/515))
|
||||
- fix: update grpc retry config ([#464](https://github.com/googleapis/nodejs-firestore/pull/464))
|
||||
|
||||
### New Features
|
||||
- feat: update to v1 protos ([#516](https://github.com/googleapis/nodejs-firestore/pull/516))
|
||||
- feat: add additional field transform types ([#521](https://github.com/googleapis/nodejs-firestore/pull/521))
|
||||
|
||||
### Dependencies
|
||||
- fix(deps): update dependency google-gax to ^0.23.0 ([#518](https://github.com/googleapis/nodejs-firestore/pull/518))
|
||||
|
||||
### Documentation
|
||||
- fix(docs): remove unused long running operations types
|
||||
- docs: elaborate on QuerySnapshot.forEach ([#480](https://github.com/googleapis/nodejs-firestore/pull/480))
|
||||
- docs: update doc writetime ([#475](https://github.com/googleapis/nodejs-firestore/pull/475))
|
||||
- docs: Fix example for writeTime ([#474](https://github.com/googleapis/nodejs-firestore/pull/474))
|
||||
- chore: update license file ([#473](https://github.com/googleapis/nodejs-firestore/pull/473))
|
||||
- docs: update readme badges ([#470](https://github.com/googleapis/nodejs-firestore/pull/470))
|
||||
|
||||
### Internal / Testing Changes
|
||||
- build: check broken links in generated docs ([#511](https://github.com/googleapis/nodejs-firestore/pull/511))
|
||||
- chore(build): inject yoshi automation key ([#492](https://github.com/googleapis/nodejs-firestore/pull/492))
|
||||
- chore: update nyc and eslint configs ([#491](https://github.com/googleapis/nodejs-firestore/pull/491))
|
||||
- chore: fix publish.sh permission +x ([#489](https://github.com/googleapis/nodejs-firestore/pull/489))
|
||||
- fix(build): fix Kokoro release script ([#488](https://github.com/googleapis/nodejs-firestore/pull/488))
|
||||
- build: add Kokoro configs for autorelease ([#487](https://github.com/googleapis/nodejs-firestore/pull/487))
|
||||
- chore: add synth.metadata ([#485](https://github.com/googleapis/nodejs-firestore/pull/485))
|
||||
- chore: always nyc report before calling codecov ([#482](https://github.com/googleapis/nodejs-firestore/pull/482))
|
||||
- chore: nyc ignore build/test by default ([#479](https://github.com/googleapis/nodejs-firestore/pull/479))
|
||||
- chore(build): update the prettier config ([#476](https://github.com/googleapis/nodejs-firestore/pull/476))
|
||||
- chore(deps): update dependency typescript to ~3.2.0 ([#467](https://github.com/googleapis/nodejs-firestore/pull/467))
|
||||
- fix(build): fix system key decryption ([#468](https://github.com/googleapis/nodejs-firestore/pull/468))
|
||||
- Adding array-contains to error message ([#465](https://github.com/googleapis/nodejs-firestore/pull/465))
|
||||
|
||||
## v0.17.0
|
||||
|
||||
### Implementation Changes
|
||||
- Regenerate library with synth.py customizations ([#345](https://github.com/googleapis/nodejs-firestore/pull/345))
|
||||
- contains some documentation and internal timeout changes
|
||||
- Converting backoff.js to TypeScript ([#328](https://github.com/googleapis/nodejs-firestore/pull/328))
|
||||
- Making .dotChanges a method ([#324](https://github.com/googleapis/nodejs-firestore/pull/324))
|
||||
|
||||
### Dependencies
|
||||
- chore(deps): update dependency nyc to v13 ([#329](https://github.com/googleapis/nodejs-firestore/pull/329))
|
||||
- fix(deps): update dependency google-gax to ^0.19.0 ([#325](https://github.com/googleapis/nodejs-firestore/pull/325))
|
||||
|
||||
### Documentation
|
||||
- Fix DocumentReference.get() docs ([#332](https://github.com/googleapis/nodejs-firestore/pull/332))
|
||||
|
||||
### Internal / Testing Changes
|
||||
- Retry npm install in CI ([#341](https://github.com/googleapis/nodejs-firestore/pull/341))
|
||||
- make synth.py generate library to ./dev ([#337](https://github.com/googleapis/nodejs-firestore/pull/337))
|
||||
- Revert "Re-generate library using /synth.py ([#331](https://github.com/googleapis/nodejs-firestore/pull/331))" ([#334](https://github.com/googleapis/nodejs-firestore/pull/334))
|
||||
- Re-generate library using /synth.py ([#331](https://github.com/googleapis/nodejs-firestore/pull/331))
|
202
node_modules/@google-cloud/firestore/LICENSE
generated
vendored
Normal file
202
node_modules/@google-cloud/firestore/LICENSE
generated
vendored
Normal file
@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
150
node_modules/@google-cloud/firestore/README.md
generated
vendored
Normal file
150
node_modules/@google-cloud/firestore/README.md
generated
vendored
Normal file
@ -0,0 +1,150 @@
|
||||
[//]: # "This README.md file is auto-generated, all changes to this file will be lost."
|
||||
[//]: # "To regenerate it, use `python -m synthtool`."
|
||||
<img src="https://avatars2.githubusercontent.com/u/2810941?v=3&s=96" alt="Google Cloud Platform logo" title="Google Cloud Platform" align="right" height="96" width="96"/>
|
||||
|
||||
# [Cloud Firestore: Node.js Client](https://github.com/googleapis/nodejs-firestore)
|
||||
|
||||
[](https://cloud.google.com/terms/launch-stages)
|
||||
[](https://www.npmjs.org/package/@google-cloud/firestore)
|
||||
[](https://codecov.io/gh/googleapis/nodejs-firestore)
|
||||
|
||||
|
||||
|
||||
|
||||
This is the Node.js Server SDK for [Google Cloud Firestore](https://firebase.google.com/docs/firestore/). Google Cloud Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development.
|
||||
|
||||
This Cloud Firestore Server SDK uses Google’s Cloud Identity and Access Management for authentication and should only be used in trusted environments. Your Cloud Identity credentials allow you bypass all access restrictions and provide read and write access to all data in your Cloud Firestore project.
|
||||
|
||||
The Cloud Firestore Server SDKs are designed to manage the full set of data in your Cloud Firestore project and work best with reliable network connectivity. Data operations performed via these SDKs directly access the Cloud Firestore backend and all document reads and writes are optimized for high throughput.
|
||||
|
||||
Applications that use Google's Server SDKs should not be used in end-user environments, such as on phones or on publicly hosted websites. If you are developing a Web or Node.js application that accesses Cloud Firestore on behalf of end users, use the firebase Client SDK.
|
||||
|
||||
**Note:** This Cloud Firestore Server SDK does not support Firestore databases created in [Datastore mode](https://cloud.google.com/datastore/docs/firestore-or-datastore#in_datastore_mode). To access these databases, use the [Datastore SDK](https://www.npmjs.com/package/@google-cloud/datastore).
|
||||
|
||||
|
||||
* [Cloud Firestore Node.js Client API Reference][client-docs]
|
||||
* [Cloud Firestore Documentation][product-docs]
|
||||
* [github.com/googleapis/nodejs-firestore](https://github.com/googleapis/nodejs-firestore)
|
||||
|
||||
Read more about the client libraries for Cloud APIs, including the older
|
||||
Google APIs Client Libraries, in [Client Libraries Explained][explained].
|
||||
|
||||
[explained]: https://cloud.google.com/apis/docs/client-libraries-explained
|
||||
|
||||
**Table of contents:**
|
||||
|
||||
|
||||
* [Quickstart](#quickstart)
|
||||
* [Before you begin](#before-you-begin)
|
||||
* [Installing the client library](#installing-the-client-library)
|
||||
* [Using the client library](#using-the-client-library)
|
||||
* [Samples](#samples)
|
||||
* [Versioning](#versioning)
|
||||
* [Contributing](#contributing)
|
||||
* [License](#license)
|
||||
|
||||
## Quickstart
|
||||
|
||||
### Before you begin
|
||||
|
||||
1. [Select or create a Cloud Platform project][projects].
|
||||
1. [Enable the Cloud Firestore API][enable_api].
|
||||
1. [Set up authentication with a service account][auth] so you can access the
|
||||
API from your local workstation.
|
||||
|
||||
### Installing the client library
|
||||
|
||||
```bash
|
||||
npm install @google-cloud/firestore
|
||||
```
|
||||
|
||||
|
||||
### Using the client library
|
||||
|
||||
```javascript
|
||||
const {Firestore} = require('@google-cloud/firestore');
|
||||
|
||||
// Create a new client
|
||||
const firestore = new Firestore();
|
||||
|
||||
async function quickstart() {
|
||||
// Obtain a document reference.
|
||||
const document = firestore.doc('posts/intro-to-firestore');
|
||||
|
||||
// Enter new data into the document.
|
||||
await document.set({
|
||||
title: 'Welcome to Firestore',
|
||||
body: 'Hello World',
|
||||
});
|
||||
console.log('Entered new data into the document');
|
||||
|
||||
// Update an existing document.
|
||||
await document.update({
|
||||
body: 'My first Firestore app',
|
||||
});
|
||||
console.log('Updated an existing document');
|
||||
|
||||
// Read the document.
|
||||
let doc = await document.get();
|
||||
console.log('Read the document');
|
||||
|
||||
// Delete the document.
|
||||
await document.delete();
|
||||
console.log('Deleted the document');
|
||||
}
|
||||
quickstart();
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Samples
|
||||
|
||||
Samples are in the [`samples/`](https://github.com/googleapis/nodejs-firestore/tree/master/samples) directory. The samples' `README.md`
|
||||
has instructions for running the samples.
|
||||
|
||||
| Sample | Source Code | Try it |
|
||||
| --------------------------- | --------------------------------- | ------ |
|
||||
| Quickstart | [source code](https://github.com/googleapis/nodejs-firestore/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-firestore&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) |
|
||||
|
||||
|
||||
|
||||
The [Cloud Firestore Node.js Client API Reference][client-docs] documentation
|
||||
also contains samples.
|
||||
|
||||
## Versioning
|
||||
|
||||
This library follows [Semantic Versioning](http://semver.org/).
|
||||
|
||||
|
||||
This library is considered to be **General Availability (GA)**. This means it
|
||||
is stable; the code surface will not change in backwards-incompatible ways
|
||||
unless absolutely necessary (e.g. because of critical security issues) or with
|
||||
an extensive deprecation period. Issues and requests against **GA** libraries
|
||||
are addressed with the highest priority.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
More Information: [Google Cloud Platform Launch Stages][launch_stages]
|
||||
|
||||
[launch_stages]: https://cloud.google.com/terms/launch-stages
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-firestore/blob/master/CONTRIBUTING.md).
|
||||
|
||||
## License
|
||||
|
||||
Apache Version 2.0
|
||||
|
||||
See [LICENSE](https://github.com/googleapis/nodejs-firestore/blob/master/LICENSE)
|
||||
|
||||
[client-docs]: https://googleapis.dev/nodejs/firestore/latest
|
||||
[product-docs]: https://cloud.google.com/firestore
|
||||
[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
|
||||
[projects]: https://console.cloud.google.com/project
|
||||
[billing]: https://support.google.com/cloud/answer/6293499#enable-billing
|
||||
[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=firestore.googleapis.com
|
||||
[auth]: https://cloud.google.com/docs/authentication/getting-started
|
4140
node_modules/@google-cloud/firestore/build/protos/firestore_proto_api.d.ts
generated
vendored
Normal file
4140
node_modules/@google-cloud/firestore/build/protos/firestore_proto_api.d.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7182
node_modules/@google-cloud/firestore/build/protos/firestore_proto_api.js
generated
vendored
Normal file
7182
node_modules/@google-cloud/firestore/build/protos/firestore_proto_api.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
31
node_modules/@google-cloud/firestore/build/protos/google/api/annotations.proto
generated
vendored
Normal file
31
node_modules/@google-cloud/firestore/build/protos/google/api/annotations.proto
generated
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
// Copyright (c) 2015, Google Inc.
|
||||
//
|
||||
// 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.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.api;
|
||||
|
||||
import "google/api/http.proto";
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "AnnotationsProto";
|
||||
option java_package = "com.google.api";
|
||||
option objc_class_prefix = "GAPI";
|
||||
|
||||
extend google.protobuf.MethodOptions {
|
||||
// See `HttpRule`.
|
||||
HttpRule http = 72295728;
|
||||
}
|
380
node_modules/@google-cloud/firestore/build/protos/google/api/http.proto
generated
vendored
Normal file
380
node_modules/@google-cloud/firestore/build/protos/google/api/http.proto
generated
vendored
Normal file
@ -0,0 +1,380 @@
|
||||
// Copyright 2018 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.api;
|
||||
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "HttpProto";
|
||||
option java_package = "com.google.api";
|
||||
option objc_class_prefix = "GAPI";
|
||||
|
||||
// Defines the HTTP configuration for an API service. It contains a list of
|
||||
// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
|
||||
// to one or more HTTP REST API methods.
|
||||
message Http {
|
||||
// A list of HTTP configuration rules that apply to individual API methods.
|
||||
//
|
||||
// **NOTE:** All service configuration rules follow "last one wins" order.
|
||||
repeated HttpRule rules = 1;
|
||||
|
||||
// When set to true, URL path parmeters will be fully URI-decoded except in
|
||||
// cases of single segment matches in reserved expansion, where "%2F" will be
|
||||
// left encoded.
|
||||
//
|
||||
// The default behavior is to not decode RFC 6570 reserved characters in multi
|
||||
// segment matches.
|
||||
bool fully_decode_reserved_expansion = 2;
|
||||
}
|
||||
|
||||
// # gRPC Transcoding
|
||||
//
|
||||
// gRPC Transcoding is a feature for mapping between a gRPC method and one or
|
||||
// more HTTP REST endpoints. It allows developers to build a single API service
|
||||
// that supports both gRPC APIs and REST APIs. Many systems, including [Google
|
||||
// APIs](https://github.com/googleapis/googleapis),
|
||||
// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
|
||||
// Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
|
||||
// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
|
||||
// and use it for large scale production services.
|
||||
//
|
||||
// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
|
||||
// how different portions of the gRPC request message are mapped to the URL
|
||||
// path, URL query parameters, and HTTP request body. It also controls how the
|
||||
// gRPC response message is mapped to the HTTP response body. `HttpRule` is
|
||||
// typically specified as an `google.api.http` annotation on the gRPC method.
|
||||
//
|
||||
// Each mapping specifies a URL path template and an HTTP method. The path
|
||||
// template may refer to one or more fields in the gRPC request message, as long
|
||||
// as each field is a non-repeated field with a primitive (non-message) type.
|
||||
// The path template controls how fields of the request message are mapped to
|
||||
// the URL path.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// get: "/v1/{name=messages/*}"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message GetMessageRequest {
|
||||
// string name = 1; // Mapped to URL path.
|
||||
// }
|
||||
// message Message {
|
||||
// string text = 1; // The resource content.
|
||||
// }
|
||||
//
|
||||
// This enables an HTTP REST to gRPC mapping as below:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
|
||||
//
|
||||
// Any fields in the request message which are not bound by the path template
|
||||
// automatically become HTTP query parameters if there is no HTTP request body.
|
||||
// For example:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// get:"/v1/messages/{message_id}"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message GetMessageRequest {
|
||||
// message SubMessage {
|
||||
// string subfield = 1;
|
||||
// }
|
||||
// string message_id = 1; // Mapped to URL path.
|
||||
// int64 revision = 2; // Mapped to URL query parameter `revision`.
|
||||
// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
|
||||
// }
|
||||
//
|
||||
// This enables a HTTP JSON to RPC mapping as below:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
|
||||
// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
|
||||
// "foo"))`
|
||||
//
|
||||
// Note that fields which are mapped to URL query parameters must have a
|
||||
// primitive type or a repeated primitive type or a non-repeated message type.
|
||||
// In the case of a repeated type, the parameter can be repeated in the URL
|
||||
// as `...?param=A¶m=B`. In the case of a message type, each field of the
|
||||
// message is mapped to a separate parameter, such as
|
||||
// `...?foo.a=A&foo.b=B&foo.c=C`.
|
||||
//
|
||||
// For HTTP methods that allow a request body, the `body` field
|
||||
// specifies the mapping. Consider a REST update method on the
|
||||
// message resource collection:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// patch: "/v1/messages/{message_id}"
|
||||
// body: "message"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message UpdateMessageRequest {
|
||||
// string message_id = 1; // mapped to the URL
|
||||
// Message message = 2; // mapped to the body
|
||||
// }
|
||||
//
|
||||
// The following HTTP JSON to RPC mapping is enabled, where the
|
||||
// representation of the JSON in the request body is determined by
|
||||
// protos JSON encoding:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||
// "123456" message { text: "Hi!" })`
|
||||
//
|
||||
// The special name `*` can be used in the body mapping to define that
|
||||
// every field not bound by the path template should be mapped to the
|
||||
// request body. This enables the following alternative definition of
|
||||
// the update method:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc UpdateMessage(Message) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// patch: "/v1/messages/{message_id}"
|
||||
// body: "*"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message Message {
|
||||
// string message_id = 1;
|
||||
// string text = 2;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// The following HTTP JSON to RPC mapping is enabled:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||
// "123456" text: "Hi!")`
|
||||
//
|
||||
// Note that when using `*` in the body mapping, it is not possible to
|
||||
// have HTTP parameters, as all fields not bound by the path end in
|
||||
// the body. This makes this option more rarely used in practice when
|
||||
// defining REST APIs. The common usage of `*` is in custom methods
|
||||
// which don't use the URL at all for transferring data.
|
||||
//
|
||||
// It is possible to define multiple HTTP methods for one RPC by using
|
||||
// the `additional_bindings` option. Example:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// get: "/v1/messages/{message_id}"
|
||||
// additional_bindings {
|
||||
// get: "/v1/users/{user_id}/messages/{message_id}"
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message GetMessageRequest {
|
||||
// string message_id = 1;
|
||||
// string user_id = 2;
|
||||
// }
|
||||
//
|
||||
// This enables the following two alternative HTTP JSON to RPC mappings:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
|
||||
// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
|
||||
// "123456")`
|
||||
//
|
||||
// ## Rules for HTTP mapping
|
||||
//
|
||||
// 1. Leaf request fields (recursive expansion nested messages in the request
|
||||
// message) are classified into three categories:
|
||||
// - Fields referred by the path template. They are passed via the URL path.
|
||||
// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
|
||||
// are passed via the HTTP
|
||||
// request body.
|
||||
// - All other fields are passed via the URL query parameters, and the
|
||||
// parameter name is the field path in the request message. A repeated
|
||||
// field can be represented as multiple query parameters under the same
|
||||
// name.
|
||||
// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
|
||||
// query parameter, all fields
|
||||
// are passed via URL path and HTTP request body.
|
||||
// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
|
||||
// request body, all
|
||||
// fields are passed via URL path and URL query parameters.
|
||||
//
|
||||
// ### Path template syntax
|
||||
//
|
||||
// Template = "/" Segments [ Verb ] ;
|
||||
// Segments = Segment { "/" Segment } ;
|
||||
// Segment = "*" | "**" | LITERAL | Variable ;
|
||||
// Variable = "{" FieldPath [ "=" Segments ] "}" ;
|
||||
// FieldPath = IDENT { "." IDENT } ;
|
||||
// Verb = ":" LITERAL ;
|
||||
//
|
||||
// The syntax `*` matches a single URL path segment. The syntax `**` matches
|
||||
// zero or more URL path segments, which must be the last part of the URL path
|
||||
// except the `Verb`.
|
||||
//
|
||||
// The syntax `Variable` matches part of the URL path as specified by its
|
||||
// template. A variable template must not contain other variables. If a variable
|
||||
// matches a single path segment, its template may be omitted, e.g. `{var}`
|
||||
// is equivalent to `{var=*}`.
|
||||
//
|
||||
// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
|
||||
// contains any reserved character, such characters should be percent-encoded
|
||||
// before the matching.
|
||||
//
|
||||
// If a variable contains exactly one path segment, such as `"{var}"` or
|
||||
// `"{var=*}"`, when such a variable is expanded into a URL path on the client
|
||||
// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
|
||||
// server side does the reverse decoding. Such variables show up in the
|
||||
// [Discovery
|
||||
// Document](https://developers.google.com/discovery/v1/reference/apis) as
|
||||
// `{var}`.
|
||||
//
|
||||
// If a variable contains multiple path segments, such as `"{var=foo/*}"`
|
||||
// or `"{var=**}"`, when such a variable is expanded into a URL path on the
|
||||
// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
|
||||
// The server side does the reverse decoding, except "%2F" and "%2f" are left
|
||||
// unchanged. Such variables show up in the
|
||||
// [Discovery
|
||||
// Document](https://developers.google.com/discovery/v1/reference/apis) as
|
||||
// `{+var}`.
|
||||
//
|
||||
// ## Using gRPC API Service Configuration
|
||||
//
|
||||
// gRPC API Service Configuration (service config) is a configuration language
|
||||
// for configuring a gRPC service to become a user-facing product. The
|
||||
// service config is simply the YAML representation of the `google.api.Service`
|
||||
// proto message.
|
||||
//
|
||||
// As an alternative to annotating your proto file, you can configure gRPC
|
||||
// transcoding in your service config YAML files. You do this by specifying a
|
||||
// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
|
||||
// effect as the proto annotation. This can be particularly useful if you
|
||||
// have a proto that is reused in multiple services. Note that any transcoding
|
||||
// specified in the service config will override any matching transcoding
|
||||
// configuration in the proto.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// http:
|
||||
// rules:
|
||||
// # Selects a gRPC method and applies HttpRule to it.
|
||||
// - selector: example.v1.Messaging.GetMessage
|
||||
// get: /v1/messages/{message_id}/{sub.subfield}
|
||||
//
|
||||
// ## Special notes
|
||||
//
|
||||
// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
|
||||
// proto to JSON conversion must follow the [proto3
|
||||
// specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
|
||||
//
|
||||
// While the single segment variable follows the semantics of
|
||||
// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
|
||||
// Expansion, the multi segment variable **does not** follow RFC 6570 Section
|
||||
// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
|
||||
// does not expand special characters like `?` and `#`, which would lead
|
||||
// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
|
||||
// for multi segment variables.
|
||||
//
|
||||
// The path variables **must not** refer to any repeated or mapped field,
|
||||
// because client libraries are not capable of handling such variable expansion.
|
||||
//
|
||||
// The path variables **must not** capture the leading "/" character. The reason
|
||||
// is that the most common use case "{var}" does not capture the leading "/"
|
||||
// character. For consistency, all path variables must share the same behavior.
|
||||
//
|
||||
// Repeated message fields must not be mapped to URL query parameters, because
|
||||
// no client library can support such complicated mapping.
|
||||
//
|
||||
// If an API needs to use a JSON array for request or response body, it can map
|
||||
// the request or response body to a repeated field. However, some gRPC
|
||||
// Transcoding implementations may not support this feature.
|
||||
message HttpRule {
|
||||
// Selects a method to which this rule applies.
|
||||
//
|
||||
// Refer to [selector][google.api.DocumentationRule.selector] for syntax
|
||||
// details.
|
||||
string selector = 1;
|
||||
|
||||
// Determines the URL pattern is matched by this rules. This pattern can be
|
||||
// used with any of the {get|put|post|delete|patch} methods. A custom method
|
||||
// can be defined using the 'custom' field.
|
||||
oneof pattern {
|
||||
// Maps to HTTP GET. Used for listing and getting information about
|
||||
// resources.
|
||||
string get = 2;
|
||||
|
||||
// Maps to HTTP PUT. Used for replacing a resource.
|
||||
string put = 3;
|
||||
|
||||
// Maps to HTTP POST. Used for creating a resource or performing an action.
|
||||
string post = 4;
|
||||
|
||||
// Maps to HTTP DELETE. Used for deleting a resource.
|
||||
string delete = 5;
|
||||
|
||||
// Maps to HTTP PATCH. Used for updating a resource.
|
||||
string patch = 6;
|
||||
|
||||
// The custom pattern is used for specifying an HTTP method that is not
|
||||
// included in the `pattern` field, such as HEAD, or "*" to leave the
|
||||
// HTTP method unspecified for this rule. The wild-card rule is useful
|
||||
// for services that provide content to Web (HTML) clients.
|
||||
CustomHttpPattern custom = 8;
|
||||
}
|
||||
|
||||
// The name of the request field whose value is mapped to the HTTP request
|
||||
// body, or `*` for mapping all request fields not captured by the path
|
||||
// pattern to the HTTP body, or omitted for not having any HTTP request body.
|
||||
//
|
||||
// NOTE: the referred field must be present at the top-level of the request
|
||||
// message type.
|
||||
string body = 7;
|
||||
|
||||
// Optional. The name of the response field whose value is mapped to the HTTP
|
||||
// response body. When omitted, the entire response message will be used
|
||||
// as the HTTP response body.
|
||||
//
|
||||
// NOTE: The referred field must be present at the top-level of the response
|
||||
// message type.
|
||||
string response_body = 12;
|
||||
|
||||
// Additional HTTP bindings for the selector. Nested bindings must
|
||||
// not contain an `additional_bindings` field themselves (that is,
|
||||
// the nesting may only be one level deep).
|
||||
repeated HttpRule additional_bindings = 11;
|
||||
}
|
||||
|
||||
// A custom pattern is used for defining custom HTTP verb.
|
||||
message CustomHttpPattern {
|
||||
// The name of this custom HTTP verb.
|
||||
string kind = 1;
|
||||
|
||||
// The path matched by this custom verb.
|
||||
string path = 2;
|
||||
}
|
96
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/field.proto
generated
vendored
Normal file
96
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/field.proto
generated
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.admin.v1;
|
||||
|
||||
import "google/firestore/admin/v1/index.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.Admin.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FieldProto";
|
||||
option java_package = "com.google.firestore.admin.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1";
|
||||
|
||||
|
||||
// Represents a single field in the database.
|
||||
//
|
||||
// Fields are grouped by their "Collection Group", which represent all
|
||||
// collections in the database with the same id.
|
||||
message Field {
|
||||
// The index configuration for this field.
|
||||
message IndexConfig {
|
||||
// The indexes supported for this field.
|
||||
repeated Index indexes = 1;
|
||||
|
||||
// Output only.
|
||||
// When true, the `Field`'s index configuration is set from the
|
||||
// configuration specified by the `ancestor_field`.
|
||||
// When false, the `Field`'s index configuration is defined explicitly.
|
||||
bool uses_ancestor_config = 2;
|
||||
|
||||
// Output only.
|
||||
// Specifies the resource name of the `Field` from which this field's
|
||||
// index configuration is set (when `uses_ancestor_config` is true),
|
||||
// or from which it *would* be set if this field had no index configuration
|
||||
// (when `uses_ancestor_config` is false).
|
||||
string ancestor_field = 3;
|
||||
|
||||
// Output only
|
||||
// When true, the `Field`'s index configuration is in the process of being
|
||||
// reverted. Once complete, the index config will transition to the same
|
||||
// state as the field specified by `ancestor_field`, at which point
|
||||
// `uses_ancestor_config` will be `true` and `reverting` will be `false`.
|
||||
bool reverting = 4;
|
||||
}
|
||||
|
||||
// A field name of the form
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}`
|
||||
//
|
||||
// A field path may be a simple field name, e.g. `address` or a path to fields
|
||||
// within map_value , e.g. `address.city`,
|
||||
// or a special field path. The only valid special field is `*`, which
|
||||
// represents any field.
|
||||
//
|
||||
// Field paths may be quoted using ` (backtick). The only character that needs
|
||||
// to be escaped within a quoted field path is the backtick character itself,
|
||||
// escaped using a backslash. Special characters in field paths that
|
||||
// must be quoted include: `*`, `.`,
|
||||
// ``` (backtick), `[`, `]`, as well as any ascii symbolic characters.
|
||||
//
|
||||
// Examples:
|
||||
// (Note: Comments here are written in markdown syntax, so there is an
|
||||
// additional layer of backticks to represent a code block)
|
||||
// `\`address.city\`` represents a field named `address.city`, not the map key
|
||||
// `city` in the field `address`.
|
||||
// `\`*\`` represents a field named `*`, not any field.
|
||||
//
|
||||
// A special `Field` contains the default indexing settings for all fields.
|
||||
// This field's resource name is:
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`
|
||||
// Indexes defined on this `Field` will be applied to all fields which do not
|
||||
// have their own `Field` index configuration.
|
||||
string name = 1;
|
||||
|
||||
// The index configuration for this field. If unset, field indexing will
|
||||
// revert to the configuration defined by the `ancestor_field`. To
|
||||
// explicitly remove all indexes for this field, specify an index config
|
||||
// with an empty list of indexes.
|
||||
IndexConfig index_config = 2;
|
||||
}
|
274
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/firestore_admin.proto
generated
vendored
Normal file
274
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/firestore_admin.proto
generated
vendored
Normal file
@ -0,0 +1,274 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.admin.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/firestore/admin/v1/field.proto";
|
||||
import "google/firestore/admin/v1/index.proto";
|
||||
import "google/longrunning/operations.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.Admin.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FirestoreAdminProto";
|
||||
option java_package = "com.google.firestore.admin.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1";
|
||||
|
||||
|
||||
// Operations are created by service `FirestoreAdmin`, but are accessed via
|
||||
// service `google.longrunning.Operations`.
|
||||
service FirestoreAdmin {
|
||||
// Creates a composite index. This returns a [google.longrunning.Operation][google.longrunning.Operation]
|
||||
// which may be used to track the status of the creation. The metadata for
|
||||
// the operation will be the type [IndexOperationMetadata][google.firestore.admin.v1.IndexOperationMetadata].
|
||||
rpc CreateIndex(CreateIndexRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes"
|
||||
body: "index"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists composite indexes.
|
||||
rpc ListIndexes(ListIndexesRequest) returns (ListIndexesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes"
|
||||
};
|
||||
}
|
||||
|
||||
// Gets a composite index.
|
||||
rpc GetIndex(GetIndexRequest) returns (Index) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a composite index.
|
||||
rpc DeleteIndex(DeleteIndexRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}"
|
||||
};
|
||||
}
|
||||
|
||||
// Gets the metadata and configuration for a Field.
|
||||
rpc GetField(GetFieldRequest) returns (Field) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/databases/*/collectionGroups/*/fields/*}"
|
||||
};
|
||||
}
|
||||
|
||||
// Updates a field configuration. Currently, field updates apply only to
|
||||
// single field index configuration. However, calls to
|
||||
// [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField] should provide a field mask to avoid
|
||||
// changing any configuration that the caller isn't aware of. The field mask
|
||||
// should be specified as: `{ paths: "index_config" }`.
|
||||
//
|
||||
// This call returns a [google.longrunning.Operation][google.longrunning.Operation] which may be used to
|
||||
// track the status of the field update. The metadata for
|
||||
// the operation will be the type [FieldOperationMetadata][google.firestore.admin.v1.FieldOperationMetadata].
|
||||
//
|
||||
// To configure the default field settings for the database, use
|
||||
// the special `Field` with resource name:
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`.
|
||||
rpc UpdateField(UpdateFieldRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{field.name=projects/*/databases/*/collectionGroups/*/fields/*}"
|
||||
body: "field"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists the field configuration and metadata for this database.
|
||||
//
|
||||
// Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] only supports listing fields
|
||||
// that have been explicitly overridden. To issue this query, call
|
||||
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the filter set to
|
||||
// `indexConfig.usesAncestorConfig:false`.
|
||||
rpc ListFields(ListFieldsRequest) returns (ListFieldsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/databases/*/collectionGroups/*}/fields"
|
||||
};
|
||||
}
|
||||
|
||||
// Exports a copy of all or a subset of documents from Google Cloud Firestore
|
||||
// to another storage system, such as Google Cloud Storage. Recent updates to
|
||||
// documents may not be reflected in the export. The export occurs in the
|
||||
// background and its progress can be monitored and managed via the
|
||||
// Operation resource that is created. The output of an export may only be
|
||||
// used once the associated operation is done. If an export operation is
|
||||
// cancelled before completion it may leave partial data behind in Google
|
||||
// Cloud Storage.
|
||||
rpc ExportDocuments(ExportDocumentsRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{name=projects/*/databases/*}:exportDocuments"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Imports documents into Google Cloud Firestore. Existing documents with the
|
||||
// same name are overwritten. The import occurs in the background and its
|
||||
// progress can be monitored and managed via the Operation resource that is
|
||||
// created. If an ImportDocuments operation is cancelled, it is possible
|
||||
// that a subset of the data has already been imported to Cloud Firestore.
|
||||
rpc ImportDocuments(ImportDocumentsRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{name=projects/*/databases/*}:importDocuments"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.CreateIndex][google.firestore.admin.v1.FirestoreAdmin.CreateIndex].
|
||||
message CreateIndexRequest {
|
||||
// A parent name of the form
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
||||
string parent = 1;
|
||||
|
||||
// The composite index to create.
|
||||
Index index = 2;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes].
|
||||
message ListIndexesRequest {
|
||||
// A parent name of the form
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
||||
string parent = 1;
|
||||
|
||||
// The filter to apply to list results.
|
||||
string filter = 2;
|
||||
|
||||
// The number of results to return.
|
||||
int32 page_size = 3;
|
||||
|
||||
// A page token, returned from a previous call to
|
||||
// [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes], that may be used to get the next
|
||||
// page of results.
|
||||
string page_token = 4;
|
||||
}
|
||||
|
||||
// The response for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes].
|
||||
message ListIndexesResponse {
|
||||
// The requested indexes.
|
||||
repeated Index indexes = 1;
|
||||
|
||||
// A page token that may be used to request another page of results. If blank,
|
||||
// this is the last page.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.GetIndex][google.firestore.admin.v1.FirestoreAdmin.GetIndex].
|
||||
message GetIndexRequest {
|
||||
// A name of the form
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.DeleteIndex][google.firestore.admin.v1.FirestoreAdmin.DeleteIndex].
|
||||
message DeleteIndexRequest {
|
||||
// A name of the form
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField].
|
||||
message UpdateFieldRequest {
|
||||
// The field to be updated.
|
||||
Field field = 1;
|
||||
|
||||
// A mask, relative to the field. If specified, only configuration specified
|
||||
// by this field_mask will be updated in the field.
|
||||
google.protobuf.FieldMask update_mask = 2;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.GetField][google.firestore.admin.v1.FirestoreAdmin.GetField].
|
||||
message GetFieldRequest {
|
||||
// A name of the form
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}`
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields].
|
||||
message ListFieldsRequest {
|
||||
// A parent name of the form
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
||||
string parent = 1;
|
||||
|
||||
// The filter to apply to list results. Currently,
|
||||
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] only supports listing fields
|
||||
// that have been explicitly overridden. To issue this query, call
|
||||
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the filter set to
|
||||
// `indexConfig.usesAncestorConfig:false`.
|
||||
string filter = 2;
|
||||
|
||||
// The number of results to return.
|
||||
int32 page_size = 3;
|
||||
|
||||
// A page token, returned from a previous call to
|
||||
// [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields], that may be used to get the next
|
||||
// page of results.
|
||||
string page_token = 4;
|
||||
}
|
||||
|
||||
// The response for [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields].
|
||||
message ListFieldsResponse {
|
||||
// The requested fields.
|
||||
repeated Field fields = 1;
|
||||
|
||||
// A page token that may be used to request another page of results. If blank,
|
||||
// this is the last page.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1.FirestoreAdmin.ExportDocuments].
|
||||
message ExportDocumentsRequest {
|
||||
// Database to export. Should be of the form:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string name = 1;
|
||||
|
||||
// Which collection ids to export. Unspecified means all collections.
|
||||
repeated string collection_ids = 2;
|
||||
|
||||
// The output URI. Currently only supports Google Cloud Storage URIs of the
|
||||
// form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name
|
||||
// of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional
|
||||
// Google Cloud Storage namespace path. When
|
||||
// choosing a name, be sure to consider Google Cloud Storage naming
|
||||
// guidelines: https://cloud.google.com/storage/docs/naming.
|
||||
// If the URI is a bucket (without a namespace path), a prefix will be
|
||||
// generated based on the start time.
|
||||
string output_uri_prefix = 3;
|
||||
}
|
||||
|
||||
// The request for [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1.FirestoreAdmin.ImportDocuments].
|
||||
message ImportDocumentsRequest {
|
||||
// Database to import into. Should be of the form:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string name = 1;
|
||||
|
||||
// Which collection ids to import. Unspecified means all collections included
|
||||
// in the import.
|
||||
repeated string collection_ids = 2;
|
||||
|
||||
// Location of the exported files.
|
||||
// This must match the output_uri_prefix of an ExportDocumentsResponse from
|
||||
// an export that has completed successfully.
|
||||
// See:
|
||||
// [google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix][google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix].
|
||||
string input_uri_prefix = 3;
|
||||
}
|
149
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/index.proto
generated
vendored
Normal file
149
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/index.proto
generated
vendored
Normal file
@ -0,0 +1,149 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.admin.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.Admin.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "IndexProto";
|
||||
option java_package = "com.google.firestore.admin.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1";
|
||||
|
||||
|
||||
// Cloud Firestore indexes enable simple and complex queries against
|
||||
// documents in a database.
|
||||
message Index {
|
||||
// A field in an index.
|
||||
// The field_path describes which field is indexed, the value_mode describes
|
||||
// how the field value is indexed.
|
||||
message IndexField {
|
||||
// The supported orderings.
|
||||
enum Order {
|
||||
// The ordering is unspecified. Not a valid option.
|
||||
ORDER_UNSPECIFIED = 0;
|
||||
|
||||
// The field is ordered by ascending field value.
|
||||
ASCENDING = 1;
|
||||
|
||||
// The field is ordered by descending field value.
|
||||
DESCENDING = 2;
|
||||
}
|
||||
|
||||
// The supported array value configurations.
|
||||
enum ArrayConfig {
|
||||
// The index does not support additional array queries.
|
||||
ARRAY_CONFIG_UNSPECIFIED = 0;
|
||||
|
||||
// The index supports array containment queries.
|
||||
CONTAINS = 1;
|
||||
}
|
||||
|
||||
// Can be __name__.
|
||||
// For single field indexes, this must match the name of the field or may
|
||||
// be omitted.
|
||||
string field_path = 1;
|
||||
|
||||
// How the field value is indexed.
|
||||
oneof value_mode {
|
||||
// Indicates that this field supports ordering by the specified order or
|
||||
// comparing using =, <, <=, >, >=.
|
||||
Order order = 2;
|
||||
|
||||
// Indicates that this field supports operations on `array_value`s.
|
||||
ArrayConfig array_config = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// Query Scope defines the scope at which a query is run. This is specified on
|
||||
// a StructuredQuery's `from` field.
|
||||
enum QueryScope {
|
||||
// The query scope is unspecified. Not a valid option.
|
||||
QUERY_SCOPE_UNSPECIFIED = 0;
|
||||
|
||||
// Indexes with a collection query scope specified allow queries
|
||||
// against a collection that is the child of a specific document, specified
|
||||
// at query time, and that has the collection id specified by the index.
|
||||
COLLECTION = 1;
|
||||
}
|
||||
|
||||
// The state of an index. During index creation, an index will be in the
|
||||
// `CREATING` state. If the index is created successfully, it will transition
|
||||
// to the `READY` state. If the index creation encounters a problem, the index
|
||||
// will transition to the `NEEDS_REPAIR` state.
|
||||
enum State {
|
||||
// The state is unspecified.
|
||||
STATE_UNSPECIFIED = 0;
|
||||
|
||||
// The index is being created.
|
||||
// There is an active long-running operation for the index.
|
||||
// The index is updated when writing a document.
|
||||
// Some index data may exist.
|
||||
CREATING = 1;
|
||||
|
||||
// The index is ready to be used.
|
||||
// The index is updated when writing a document.
|
||||
// The index is fully populated from all stored documents it applies to.
|
||||
READY = 2;
|
||||
|
||||
// The index was being created, but something went wrong.
|
||||
// There is no active long-running operation for the index,
|
||||
// and the most recently finished long-running operation failed.
|
||||
// The index is not updated when writing a document.
|
||||
// Some index data may exist.
|
||||
// Use the google.longrunning.Operations API to determine why the operation
|
||||
// that last attempted to create this index failed, then re-create the
|
||||
// index.
|
||||
NEEDS_REPAIR = 3;
|
||||
}
|
||||
|
||||
// Output only.
|
||||
// A server defined name for this index.
|
||||
// The form of this name for composite indexes will be:
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}`
|
||||
// For single field indexes, this field will be empty.
|
||||
string name = 1;
|
||||
|
||||
// Indexes with a collection query scope specified allow queries
|
||||
// against a collection that is the child of a specific document, specified at
|
||||
// query time, and that has the same collection id.
|
||||
//
|
||||
// Indexes with a collection group query scope specified allow queries against
|
||||
// all collections descended from a specific document, specified at query
|
||||
// time, and that have the same collection id as this index.
|
||||
QueryScope query_scope = 2;
|
||||
|
||||
// The fields supported by this index.
|
||||
//
|
||||
// For composite indexes, this is always 2 or more fields.
|
||||
// The last field entry is always for the field path `__name__`. If, on
|
||||
// creation, `__name__` was not specified as the last field, it will be added
|
||||
// automatically with the same direction as that of the last field defined. If
|
||||
// the final field in a composite index is not directional, the `__name__`
|
||||
// will be ordered ASCENDING (unless explicitly specified).
|
||||
//
|
||||
// For single field indexes, this will always be exactly one entry with a
|
||||
// field path equal to the field path of the associated field.
|
||||
repeated IndexField fields = 3;
|
||||
|
||||
// Output only.
|
||||
// The serving state of the index.
|
||||
State state = 4;
|
||||
}
|
35
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/location.proto
generated
vendored
Normal file
35
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/location.proto
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.admin.v1;
|
||||
|
||||
import "google/type/latlng.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.Admin.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "LocationProto";
|
||||
option java_package = "com.google.firestore.admin.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1";
|
||||
|
||||
|
||||
// The metadata message for [google.cloud.location.Location.metadata][google.cloud.location.Location.metadata].
|
||||
message LocationMetadata {
|
||||
|
||||
}
|
204
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/operation.proto
generated
vendored
Normal file
204
node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/operation.proto
generated
vendored
Normal file
@ -0,0 +1,204 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.admin.v1;
|
||||
|
||||
import "google/firestore/admin/v1/index.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.Admin.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/admin/v1;admin";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "OperationProto";
|
||||
option java_package = "com.google.firestore.admin.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1";
|
||||
|
||||
|
||||
// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from
|
||||
// [FirestoreAdmin.CreateIndex][google.firestore.admin.v1.FirestoreAdmin.CreateIndex].
|
||||
message IndexOperationMetadata {
|
||||
// The time this operation started.
|
||||
google.protobuf.Timestamp start_time = 1;
|
||||
|
||||
// The time this operation completed. Will be unset if operation still in
|
||||
// progress.
|
||||
google.protobuf.Timestamp end_time = 2;
|
||||
|
||||
// The index resource that this operation is acting on. For example:
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
|
||||
string index = 3;
|
||||
|
||||
// The state of the operation.
|
||||
OperationState state = 4;
|
||||
|
||||
// The progress, in documents, of this operation.
|
||||
Progress progress_documents = 5;
|
||||
|
||||
// The progress, in bytes, of this operation.
|
||||
Progress progress_bytes = 6;
|
||||
}
|
||||
|
||||
// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from
|
||||
// [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField].
|
||||
message FieldOperationMetadata {
|
||||
// Information about an index configuration change.
|
||||
message IndexConfigDelta {
|
||||
// Specifies how the index is changing.
|
||||
enum ChangeType {
|
||||
// The type of change is not specified or known.
|
||||
CHANGE_TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// The single field index is being added.
|
||||
ADD = 1;
|
||||
|
||||
// The single field index is being removed.
|
||||
REMOVE = 2;
|
||||
}
|
||||
|
||||
// Specifies how the index is changing.
|
||||
ChangeType change_type = 1;
|
||||
|
||||
// The index being changed.
|
||||
Index index = 2;
|
||||
}
|
||||
|
||||
// The time this operation started.
|
||||
google.protobuf.Timestamp start_time = 1;
|
||||
|
||||
// The time this operation completed. Will be unset if operation still in
|
||||
// progress.
|
||||
google.protobuf.Timestamp end_time = 2;
|
||||
|
||||
// The field resource that this operation is acting on. For example:
|
||||
// `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}`
|
||||
string field = 3;
|
||||
|
||||
// A list of [IndexConfigDelta][google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta], which describe the intent of this
|
||||
// operation.
|
||||
repeated IndexConfigDelta index_config_deltas = 4;
|
||||
|
||||
// The state of the operation.
|
||||
OperationState state = 5;
|
||||
|
||||
// The progress, in documents, of this operation.
|
||||
Progress progress_documents = 6;
|
||||
|
||||
// The progress, in bytes, of this operation.
|
||||
Progress progress_bytes = 7;
|
||||
}
|
||||
|
||||
// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from
|
||||
// [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1.FirestoreAdmin.ExportDocuments].
|
||||
message ExportDocumentsMetadata {
|
||||
// The time this operation started.
|
||||
google.protobuf.Timestamp start_time = 1;
|
||||
|
||||
// The time this operation completed. Will be unset if operation still in
|
||||
// progress.
|
||||
google.protobuf.Timestamp end_time = 2;
|
||||
|
||||
// The state of the export operation.
|
||||
OperationState operation_state = 3;
|
||||
|
||||
// The progress, in documents, of this operation.
|
||||
Progress progress_documents = 4;
|
||||
|
||||
// The progress, in bytes, of this operation.
|
||||
Progress progress_bytes = 5;
|
||||
|
||||
// Which collection ids are being exported.
|
||||
repeated string collection_ids = 6;
|
||||
|
||||
// Where the entities are being exported to.
|
||||
string output_uri_prefix = 7;
|
||||
}
|
||||
|
||||
// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from
|
||||
// [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1.FirestoreAdmin.ImportDocuments].
|
||||
message ImportDocumentsMetadata {
|
||||
// The time this operation started.
|
||||
google.protobuf.Timestamp start_time = 1;
|
||||
|
||||
// The time this operation completed. Will be unset if operation still in
|
||||
// progress.
|
||||
google.protobuf.Timestamp end_time = 2;
|
||||
|
||||
// The state of the import operation.
|
||||
OperationState operation_state = 3;
|
||||
|
||||
// The progress, in documents, of this operation.
|
||||
Progress progress_documents = 4;
|
||||
|
||||
// The progress, in bytes, of this operation.
|
||||
Progress progress_bytes = 5;
|
||||
|
||||
// Which collection ids are being imported.
|
||||
repeated string collection_ids = 6;
|
||||
|
||||
// The location of the documents being imported.
|
||||
string input_uri_prefix = 7;
|
||||
}
|
||||
|
||||
// Returned in the [google.longrunning.Operation][google.longrunning.Operation] response field.
|
||||
message ExportDocumentsResponse {
|
||||
// Location of the output files. This can be used to begin an import
|
||||
// into Cloud Firestore (this project or another project) after the operation
|
||||
// completes successfully.
|
||||
string output_uri_prefix = 1;
|
||||
}
|
||||
|
||||
// Describes the state of the operation.
|
||||
enum OperationState {
|
||||
// Unspecified.
|
||||
OPERATION_STATE_UNSPECIFIED = 0;
|
||||
|
||||
// Request is being prepared for processing.
|
||||
INITIALIZING = 1;
|
||||
|
||||
// Request is actively being processed.
|
||||
PROCESSING = 2;
|
||||
|
||||
// Request is in the process of being cancelled after user called
|
||||
// google.longrunning.Operations.CancelOperation on the operation.
|
||||
CANCELLING = 3;
|
||||
|
||||
// Request has been processed and is in its finalization stage.
|
||||
FINALIZING = 4;
|
||||
|
||||
// Request has completed successfully.
|
||||
SUCCESSFUL = 5;
|
||||
|
||||
// Request has finished being processed, but encountered an error.
|
||||
FAILED = 6;
|
||||
|
||||
// Request has finished being cancelled after user called
|
||||
// google.longrunning.Operations.CancelOperation.
|
||||
CANCELLED = 7;
|
||||
}
|
||||
|
||||
// Describes the progress of the operation.
|
||||
// Unit of work is generic and must be interpreted based on where [Progress][google.firestore.admin.v1.Progress]
|
||||
// is used.
|
||||
message Progress {
|
||||
// The amount of work estimated.
|
||||
int64 estimated_work = 1;
|
||||
|
||||
// The amount of work completed.
|
||||
int64 completed_work = 2;
|
||||
}
|
84
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/common.proto
generated
vendored
Normal file
84
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/common.proto
generated
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1;
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
option java_package = "com.google.firestore.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1";
|
||||
|
||||
|
||||
// A set of field paths on a document.
|
||||
// Used to restrict a get or update operation on a document to a subset of its
|
||||
// fields.
|
||||
// This is different from standard field masks, as this is always scoped to a
|
||||
// [Document][google.firestore.v1.Document], and takes in account the dynamic nature of [Value][google.firestore.v1.Value].
|
||||
message DocumentMask {
|
||||
// The list of field paths in the mask. See [Document.fields][google.firestore.v1.Document.fields] for a field
|
||||
// path syntax reference.
|
||||
repeated string field_paths = 1;
|
||||
}
|
||||
|
||||
// A precondition on a document, used for conditional operations.
|
||||
message Precondition {
|
||||
// The type of precondition.
|
||||
oneof condition_type {
|
||||
// When set to `true`, the target document must exist.
|
||||
// When set to `false`, the target document must not exist.
|
||||
bool exists = 1;
|
||||
|
||||
// When set, the target document must exist and have been last updated at
|
||||
// that time.
|
||||
google.protobuf.Timestamp update_time = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Options for creating a new transaction.
|
||||
message TransactionOptions {
|
||||
// Options for a transaction that can be used to read and write documents.
|
||||
message ReadWrite {
|
||||
// An optional transaction to retry.
|
||||
bytes retry_transaction = 1;
|
||||
}
|
||||
|
||||
// Options for a transaction that can only be used to read documents.
|
||||
message ReadOnly {
|
||||
// The consistency mode for this transaction. If not set, defaults to strong
|
||||
// consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// The mode of the transaction.
|
||||
oneof mode {
|
||||
// The transaction can only be used for read operations.
|
||||
ReadOnly read_only = 2;
|
||||
|
||||
// The transaction can be used for both read and write operations.
|
||||
ReadWrite read_write = 3;
|
||||
}
|
||||
}
|
151
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/document.proto
generated
vendored
Normal file
151
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/document.proto
generated
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1;
|
||||
|
||||
import "google/protobuf/struct.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/type/latlng.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DocumentProto";
|
||||
option java_package = "com.google.firestore.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1";
|
||||
|
||||
|
||||
// A Firestore document.
|
||||
//
|
||||
// Must not exceed 1 MiB - 4 bytes.
|
||||
message Document {
|
||||
// The resource name of the document, for example
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string name = 1;
|
||||
|
||||
// The document's fields.
|
||||
//
|
||||
// The map keys represent field names.
|
||||
//
|
||||
// A simple field name contains only characters `a` to `z`, `A` to `Z`,
|
||||
// `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
|
||||
// `foo_bar_17`.
|
||||
//
|
||||
// Field names matching the regular expression `__.*__` are reserved. Reserved
|
||||
// field names are forbidden except in certain documented contexts. The map
|
||||
// keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be
|
||||
// empty.
|
||||
//
|
||||
// Field paths may be used in other contexts to refer to structured fields
|
||||
// defined here. For `map_value`, the field path is represented by the simple
|
||||
// or quoted field names of the containing fields, delimited by `.`. For
|
||||
// example, the structured field
|
||||
// `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be
|
||||
// represented by the field path `foo.x&y`.
|
||||
//
|
||||
// Within a field path, a quoted field name starts and ends with `` ` `` and
|
||||
// may contain any character. Some characters, including `` ` ``, must be
|
||||
// escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
|
||||
// `` `bak\`tik` `` represents `` bak`tik ``.
|
||||
map<string, Value> fields = 2;
|
||||
|
||||
// Output only. The time at which the document was created.
|
||||
//
|
||||
// This value increases monotonically when a document is deleted then
|
||||
// recreated. It can also be compared to values from other documents and
|
||||
// the `read_time` of a query.
|
||||
google.protobuf.Timestamp create_time = 3;
|
||||
|
||||
// Output only. The time at which the document was last changed.
|
||||
//
|
||||
// This value is initially set to the `create_time` then increases
|
||||
// monotonically with each change to the document. It can also be
|
||||
// compared to values from other documents and the `read_time` of a query.
|
||||
google.protobuf.Timestamp update_time = 4;
|
||||
}
|
||||
|
||||
// A message that can hold any of the supported value types.
|
||||
message Value {
|
||||
// Must have a value set.
|
||||
oneof value_type {
|
||||
// A null value.
|
||||
google.protobuf.NullValue null_value = 11;
|
||||
|
||||
// A boolean value.
|
||||
bool boolean_value = 1;
|
||||
|
||||
// An integer value.
|
||||
int64 integer_value = 2;
|
||||
|
||||
// A double value.
|
||||
double double_value = 3;
|
||||
|
||||
// A timestamp value.
|
||||
//
|
||||
// Precise only to microseconds. When stored, any additional precision is
|
||||
// rounded down.
|
||||
google.protobuf.Timestamp timestamp_value = 10;
|
||||
|
||||
// A string value.
|
||||
//
|
||||
// The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
|
||||
// Only the first 1,500 bytes of the UTF-8 representation are considered by
|
||||
// queries.
|
||||
string string_value = 17;
|
||||
|
||||
// A bytes value.
|
||||
//
|
||||
// Must not exceed 1 MiB - 89 bytes.
|
||||
// Only the first 1,500 bytes are considered by queries.
|
||||
bytes bytes_value = 18;
|
||||
|
||||
// A reference to a document. For example:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string reference_value = 5;
|
||||
|
||||
// A geo point value representing a point on the surface of Earth.
|
||||
google.type.LatLng geo_point_value = 8;
|
||||
|
||||
// An array value.
|
||||
//
|
||||
// Cannot directly contain another array value, though can contain an
|
||||
// map which contains another array.
|
||||
ArrayValue array_value = 9;
|
||||
|
||||
// A map value.
|
||||
MapValue map_value = 6;
|
||||
}
|
||||
}
|
||||
|
||||
// An array value.
|
||||
message ArrayValue {
|
||||
// Values in the array.
|
||||
repeated Value values = 1;
|
||||
}
|
||||
|
||||
// A map value.
|
||||
message MapValue {
|
||||
// The map's fields.
|
||||
//
|
||||
// The map keys represent field names. Field names matching the regular
|
||||
// expression `__.*__` are reserved. Reserved field names are forbidden except
|
||||
// in certain documented contexts. The map keys, represented as UTF-8, must
|
||||
// not exceed 1,500 bytes and cannot be empty.
|
||||
map<string, Value> fields = 1;
|
||||
}
|
761
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/firestore.proto
generated
vendored
Normal file
761
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/firestore.proto
generated
vendored
Normal file
@ -0,0 +1,761 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/firestore/v1/common.proto";
|
||||
import "google/firestore/v1/document.proto";
|
||||
import "google/firestore/v1/query.proto";
|
||||
import "google/firestore/v1/write.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/rpc/status.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FirestoreProto";
|
||||
option java_package = "com.google.firestore.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1";
|
||||
// Specification of the Firestore API.
|
||||
|
||||
// The Cloud Firestore service.
|
||||
//
|
||||
// This service exposes several types of comparable timestamps:
|
||||
//
|
||||
// * `create_time` - The time at which a document was created. Changes only
|
||||
// when a document is deleted, then re-created. Increases in a strict
|
||||
// monotonic fashion.
|
||||
// * `update_time` - The time at which a document was last updated. Changes
|
||||
// every time a document is modified. Does not change when a write results
|
||||
// in no modifications. Increases in a strict monotonic fashion.
|
||||
// * `read_time` - The time at which a particular state was observed. Used
|
||||
// to denote a consistent snapshot of the database or the time at which a
|
||||
// Document was observed to not exist.
|
||||
// * `commit_time` - The time at which the writes in a transaction were
|
||||
// committed. Any read with an equal or greater `read_time` is guaranteed
|
||||
// to see the effects of the transaction.
|
||||
service Firestore {
|
||||
// Gets a single document.
|
||||
rpc GetDocument(GetDocumentRequest) returns (Document) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/databases/*/documents/*/**}"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists documents.
|
||||
rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Creates a new document.
|
||||
rpc CreateDocument(CreateDocumentRequest) returns (Document) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/databases/*/documents/**}/{collection_id}"
|
||||
body: "document"
|
||||
};
|
||||
}
|
||||
|
||||
// Updates or inserts a document.
|
||||
rpc UpdateDocument(UpdateDocumentRequest) returns (Document) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{document.name=projects/*/databases/*/documents/*/**}"
|
||||
body: "document"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a document.
|
||||
rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=projects/*/databases/*/documents/*/**}"
|
||||
};
|
||||
}
|
||||
|
||||
// Gets multiple documents.
|
||||
//
|
||||
// Documents returned by this method are not guaranteed to be returned in the
|
||||
// same order that they were requested.
|
||||
rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (stream BatchGetDocumentsResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{database=projects/*/databases/*}/documents:batchGet"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Starts a new transaction.
|
||||
rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{database=projects/*/databases/*}/documents:beginTransaction"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Commits a transaction, while optionally updating documents.
|
||||
rpc Commit(CommitRequest) returns (CommitResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{database=projects/*/databases/*}/documents:commit"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Rolls back a transaction.
|
||||
rpc Rollback(RollbackRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{database=projects/*/databases/*}/documents:rollback"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Runs a query.
|
||||
rpc RunQuery(RunQueryRequest) returns (stream RunQueryResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/databases/*/documents}:runQuery"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1/{parent=projects/*/databases/*/documents/*/**}:runQuery"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Streams batches of document updates and deletes, in order.
|
||||
rpc Write(stream WriteRequest) returns (stream WriteResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{database=projects/*/databases/*}/documents:write"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Listens to changes.
|
||||
rpc Listen(stream ListenRequest) returns (stream ListenResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{database=projects/*/databases/*}/documents:listen"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists all the collection IDs underneath a document.
|
||||
rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/databases/*/documents}:listCollectionIds"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1/{parent=projects/*/databases/*/documents/*/**}:listCollectionIds"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// The request for [Firestore.GetDocument][google.firestore.v1.Firestore.GetDocument].
|
||||
message GetDocumentRequest {
|
||||
// The resource name of the Document to get. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string name = 1;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If the document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 2;
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads the document in a transaction.
|
||||
bytes transaction = 3;
|
||||
|
||||
// Reads the version of the document at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// The request for [Firestore.ListDocuments][google.firestore.v1.Firestore.ListDocuments].
|
||||
message ListDocumentsRequest {
|
||||
// The parent resource name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents` or
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The collection ID, relative to `parent`, to list. For example: `chatrooms`
|
||||
// or `messages`.
|
||||
string collection_id = 2;
|
||||
|
||||
// The maximum number of documents to return.
|
||||
int32 page_size = 3;
|
||||
|
||||
// The `next_page_token` value returned from a previous List request, if any.
|
||||
string page_token = 4;
|
||||
|
||||
// The order to sort results by. For example: `priority desc, name`.
|
||||
string order_by = 6;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If a document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 7;
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents in a transaction.
|
||||
bytes transaction = 8;
|
||||
|
||||
// Reads documents as they were at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 10;
|
||||
}
|
||||
|
||||
// If the list should show missing documents. A missing document is a
|
||||
// document that does not exist but has sub-documents. These documents will
|
||||
// be returned with a key but will not have fields, [Document.create_time][google.firestore.v1.Document.create_time],
|
||||
// or [Document.update_time][google.firestore.v1.Document.update_time] set.
|
||||
//
|
||||
// Requests with `show_missing` may not specify `where` or
|
||||
// `order_by`.
|
||||
bool show_missing = 12;
|
||||
}
|
||||
|
||||
// The response for [Firestore.ListDocuments][google.firestore.v1.Firestore.ListDocuments].
|
||||
message ListDocumentsResponse {
|
||||
// The Documents found.
|
||||
repeated Document documents = 1;
|
||||
|
||||
// The next page token.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.CreateDocument][google.firestore.v1.Firestore.CreateDocument].
|
||||
message CreateDocumentRequest {
|
||||
// The parent resource. For example:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
|
||||
string parent = 1;
|
||||
|
||||
// The collection ID, relative to `parent`, to list. For example: `chatrooms`.
|
||||
string collection_id = 2;
|
||||
|
||||
// The client-assigned document ID to use for this document.
|
||||
//
|
||||
// Optional. If not specified, an ID will be assigned by the service.
|
||||
string document_id = 3;
|
||||
|
||||
// The document to create. `name` must not be set.
|
||||
Document document = 4;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If the document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 5;
|
||||
}
|
||||
|
||||
// The request for [Firestore.UpdateDocument][google.firestore.v1.Firestore.UpdateDocument].
|
||||
message UpdateDocumentRequest {
|
||||
// The updated document.
|
||||
// Creates the document if it does not already exist.
|
||||
Document document = 1;
|
||||
|
||||
// The fields to update.
|
||||
// None of the field paths in the mask may contain a reserved name.
|
||||
//
|
||||
// If the document exists on the server and has fields not referenced in the
|
||||
// mask, they are left unchanged.
|
||||
// Fields referenced in the mask, but not present in the input document, are
|
||||
// deleted from the document on the server.
|
||||
DocumentMask update_mask = 2;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If the document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 3;
|
||||
|
||||
// An optional precondition on the document.
|
||||
// The request will fail if this is set and not met by the target document.
|
||||
Precondition current_document = 4;
|
||||
}
|
||||
|
||||
// The request for [Firestore.DeleteDocument][google.firestore.v1.Firestore.DeleteDocument].
|
||||
message DeleteDocumentRequest {
|
||||
// The resource name of the Document to delete. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string name = 1;
|
||||
|
||||
// An optional precondition on the document.
|
||||
// The request will fail if this is set and not met by the target document.
|
||||
Precondition current_document = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.BatchGetDocuments][google.firestore.v1.Firestore.BatchGetDocuments].
|
||||
message BatchGetDocumentsRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The names of the documents to retrieve. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// The request will fail if any of the document is not a child resource of the
|
||||
// given `database`. Duplicate names will be elided.
|
||||
repeated string documents = 2;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If a document has a field that is not present in this mask, that field will
|
||||
// not be returned in the response.
|
||||
DocumentMask mask = 3;
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents in a transaction.
|
||||
bytes transaction = 4;
|
||||
|
||||
// Starts a new transaction and reads the documents.
|
||||
// Defaults to a read-only transaction.
|
||||
// The new transaction ID will be returned as the first response in the
|
||||
// stream.
|
||||
TransactionOptions new_transaction = 5;
|
||||
|
||||
// Reads documents as they were at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 7;
|
||||
}
|
||||
}
|
||||
|
||||
// The streamed response for [Firestore.BatchGetDocuments][google.firestore.v1.Firestore.BatchGetDocuments].
|
||||
message BatchGetDocumentsResponse {
|
||||
// A single result.
|
||||
// This can be empty if the server is just returning a transaction.
|
||||
oneof result {
|
||||
// A document that was requested.
|
||||
Document found = 1;
|
||||
|
||||
// A document name that was requested but does not exist. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string missing = 2;
|
||||
}
|
||||
|
||||
// The transaction that was started as part of this request.
|
||||
// Will only be set in the first response, and only if
|
||||
// [BatchGetDocumentsRequest.new_transaction][google.firestore.v1.BatchGetDocumentsRequest.new_transaction] was set in the request.
|
||||
bytes transaction = 3;
|
||||
|
||||
// The time at which the document was read.
|
||||
// This may be monotically increasing, in this case the previous documents in
|
||||
// the result stream are guaranteed not to have changed between their
|
||||
// read_time and this one.
|
||||
google.protobuf.Timestamp read_time = 4;
|
||||
}
|
||||
|
||||
// The request for [Firestore.BeginTransaction][google.firestore.v1.Firestore.BeginTransaction].
|
||||
message BeginTransactionRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The options for the transaction.
|
||||
// Defaults to a read-write transaction.
|
||||
TransactionOptions options = 2;
|
||||
}
|
||||
|
||||
// The response for [Firestore.BeginTransaction][google.firestore.v1.Firestore.BeginTransaction].
|
||||
message BeginTransactionResponse {
|
||||
// The transaction that was started.
|
||||
bytes transaction = 1;
|
||||
}
|
||||
|
||||
// The request for [Firestore.Commit][google.firestore.v1.Firestore.Commit].
|
||||
message CommitRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The writes to apply.
|
||||
//
|
||||
// Always executed atomically and in order.
|
||||
repeated Write writes = 2;
|
||||
|
||||
// If set, applies all writes in this transaction, and commits it.
|
||||
bytes transaction = 3;
|
||||
}
|
||||
|
||||
// The response for [Firestore.Commit][google.firestore.v1.Firestore.Commit].
|
||||
message CommitResponse {
|
||||
// The result of applying the writes.
|
||||
//
|
||||
// This i-th write result corresponds to the i-th write in the
|
||||
// request.
|
||||
repeated WriteResult write_results = 1;
|
||||
|
||||
// The time at which the commit occurred.
|
||||
google.protobuf.Timestamp commit_time = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.Rollback][google.firestore.v1.Firestore.Rollback].
|
||||
message RollbackRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The transaction to roll back.
|
||||
bytes transaction = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery].
|
||||
message RunQueryRequest {
|
||||
// The parent resource name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents` or
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The query to run.
|
||||
oneof query_type {
|
||||
// A structured query.
|
||||
StructuredQuery structured_query = 2;
|
||||
}
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents in a transaction.
|
||||
bytes transaction = 5;
|
||||
|
||||
// Starts a new transaction and reads the documents.
|
||||
// Defaults to a read-only transaction.
|
||||
// The new transaction ID will be returned as the first response in the
|
||||
// stream.
|
||||
TransactionOptions new_transaction = 6;
|
||||
|
||||
// Reads documents as they were at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 7;
|
||||
}
|
||||
}
|
||||
|
||||
// The response for [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery].
|
||||
message RunQueryResponse {
|
||||
// The transaction that was started as part of this request.
|
||||
// Can only be set in the first response, and only if
|
||||
// [RunQueryRequest.new_transaction][google.firestore.v1.RunQueryRequest.new_transaction] was set in the request.
|
||||
// If set, no other fields will be set in this response.
|
||||
bytes transaction = 2;
|
||||
|
||||
// A query result.
|
||||
// Not set when reporting partial progress.
|
||||
Document document = 1;
|
||||
|
||||
// The time at which the document was read. This may be monotonically
|
||||
// increasing; in this case, the previous documents in the result stream are
|
||||
// guaranteed not to have changed between their `read_time` and this one.
|
||||
//
|
||||
// If the query returns no results, a response with `read_time` and no
|
||||
// `document` will be sent, and this represents the time at which the query
|
||||
// was run.
|
||||
google.protobuf.Timestamp read_time = 3;
|
||||
|
||||
// The number of results that have been skipped due to an offset between
|
||||
// the last response and the current response.
|
||||
int32 skipped_results = 4;
|
||||
}
|
||||
|
||||
// The request for [Firestore.Write][google.firestore.v1.Firestore.Write].
|
||||
//
|
||||
// The first request creates a stream, or resumes an existing one from a token.
|
||||
//
|
||||
// When creating a new stream, the server replies with a response containing
|
||||
// only an ID and a token, to use in the next request.
|
||||
//
|
||||
// When resuming a stream, the server first streams any responses later than the
|
||||
// given token, then a response containing only an up-to-date token, to use in
|
||||
// the next request.
|
||||
message WriteRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
// This is only required in the first message.
|
||||
string database = 1;
|
||||
|
||||
// The ID of the write stream to resume.
|
||||
// This may only be set in the first message. When left empty, a new write
|
||||
// stream will be created.
|
||||
string stream_id = 2;
|
||||
|
||||
// The writes to apply.
|
||||
//
|
||||
// Always executed atomically and in order.
|
||||
// This must be empty on the first request.
|
||||
// This may be empty on the last request.
|
||||
// This must not be empty on all other requests.
|
||||
repeated Write writes = 3;
|
||||
|
||||
// A stream token that was previously sent by the server.
|
||||
//
|
||||
// The client should set this field to the token from the most recent
|
||||
// [WriteResponse][google.firestore.v1.WriteResponse] it has received. This acknowledges that the client has
|
||||
// received responses up to this token. After sending this token, earlier
|
||||
// tokens may not be used anymore.
|
||||
//
|
||||
// The server may close the stream if there are too many unacknowledged
|
||||
// responses.
|
||||
//
|
||||
// Leave this field unset when creating a new stream. To resume a stream at
|
||||
// a specific point, set this field and the `stream_id` field.
|
||||
//
|
||||
// Leave this field unset when creating a new stream.
|
||||
bytes stream_token = 4;
|
||||
|
||||
// Labels associated with this write request.
|
||||
map<string, string> labels = 5;
|
||||
}
|
||||
|
||||
// The response for [Firestore.Write][google.firestore.v1.Firestore.Write].
|
||||
message WriteResponse {
|
||||
// The ID of the stream.
|
||||
// Only set on the first message, when a new stream was created.
|
||||
string stream_id = 1;
|
||||
|
||||
// A token that represents the position of this response in the stream.
|
||||
// This can be used by a client to resume the stream at this point.
|
||||
//
|
||||
// This field is always set.
|
||||
bytes stream_token = 2;
|
||||
|
||||
// The result of applying the writes.
|
||||
//
|
||||
// This i-th write result corresponds to the i-th write in the
|
||||
// request.
|
||||
repeated WriteResult write_results = 3;
|
||||
|
||||
// The time at which the commit occurred.
|
||||
google.protobuf.Timestamp commit_time = 4;
|
||||
}
|
||||
|
||||
// A request for [Firestore.Listen][google.firestore.v1.Firestore.Listen]
|
||||
message ListenRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The supported target changes.
|
||||
oneof target_change {
|
||||
// A target to add to this stream.
|
||||
Target add_target = 2;
|
||||
|
||||
// The ID of a target to remove from this stream.
|
||||
int32 remove_target = 3;
|
||||
}
|
||||
|
||||
// Labels associated with this target change.
|
||||
map<string, string> labels = 4;
|
||||
}
|
||||
|
||||
// The response for [Firestore.Listen][google.firestore.v1.Firestore.Listen].
|
||||
message ListenResponse {
|
||||
// The supported responses.
|
||||
oneof response_type {
|
||||
// Targets have changed.
|
||||
TargetChange target_change = 2;
|
||||
|
||||
// A [Document][google.firestore.v1.Document] has changed.
|
||||
DocumentChange document_change = 3;
|
||||
|
||||
// A [Document][google.firestore.v1.Document] has been deleted.
|
||||
DocumentDelete document_delete = 4;
|
||||
|
||||
// A [Document][google.firestore.v1.Document] has been removed from a target (because it is no longer
|
||||
// relevant to that target).
|
||||
DocumentRemove document_remove = 6;
|
||||
|
||||
// A filter to apply to the set of documents previously returned for the
|
||||
// given target.
|
||||
//
|
||||
// Returned when documents may have been removed from the given target, but
|
||||
// the exact documents are unknown.
|
||||
ExistenceFilter filter = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// A specification of a set of documents to listen to.
|
||||
message Target {
|
||||
// A target specified by a set of documents names.
|
||||
message DocumentsTarget {
|
||||
// The names of the documents to retrieve. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// The request will fail if any of the document is not a child resource of
|
||||
// the given `database`. Duplicate names will be elided.
|
||||
repeated string documents = 2;
|
||||
}
|
||||
|
||||
// A target specified by a query.
|
||||
message QueryTarget {
|
||||
// The parent resource name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents` or
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The query to run.
|
||||
oneof query_type {
|
||||
// A structured query.
|
||||
StructuredQuery structured_query = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// The type of target to listen to.
|
||||
oneof target_type {
|
||||
// A target specified by a query.
|
||||
QueryTarget query = 2;
|
||||
|
||||
// A target specified by a set of document names.
|
||||
DocumentsTarget documents = 3;
|
||||
}
|
||||
|
||||
// When to start listening.
|
||||
//
|
||||
// If not specified, all matching Documents are returned before any
|
||||
// subsequent changes.
|
||||
oneof resume_type {
|
||||
// A resume token from a prior [TargetChange][google.firestore.v1.TargetChange] for an identical target.
|
||||
//
|
||||
// Using a resume token with a different target is unsupported and may fail.
|
||||
bytes resume_token = 4;
|
||||
|
||||
// Start listening after a specific `read_time`.
|
||||
//
|
||||
// The client must know the state of matching documents at this time.
|
||||
google.protobuf.Timestamp read_time = 11;
|
||||
}
|
||||
|
||||
// A client provided target ID.
|
||||
//
|
||||
// If not set, the server will assign an ID for the target.
|
||||
//
|
||||
// Used for resuming a target without changing IDs. The IDs can either be
|
||||
// client-assigned or be server-assigned in a previous stream. All targets
|
||||
// with client provided IDs must be added before adding a target that needs
|
||||
// a server-assigned id.
|
||||
int32 target_id = 5;
|
||||
|
||||
// If the target should be removed once it is current and consistent.
|
||||
bool once = 6;
|
||||
}
|
||||
|
||||
// Targets being watched have changed.
|
||||
message TargetChange {
|
||||
// The type of change.
|
||||
enum TargetChangeType {
|
||||
// No change has occurred. Used only to send an updated `resume_token`.
|
||||
NO_CHANGE = 0;
|
||||
|
||||
// The targets have been added.
|
||||
ADD = 1;
|
||||
|
||||
// The targets have been removed.
|
||||
REMOVE = 2;
|
||||
|
||||
// The targets reflect all changes committed before the targets were added
|
||||
// to the stream.
|
||||
//
|
||||
// This will be sent after or with a `read_time` that is greater than or
|
||||
// equal to the time at which the targets were added.
|
||||
//
|
||||
// Listeners can wait for this change if read-after-write semantics
|
||||
// are desired.
|
||||
CURRENT = 3;
|
||||
|
||||
// The targets have been reset, and a new initial state for the targets
|
||||
// will be returned in subsequent changes.
|
||||
//
|
||||
// After the initial state is complete, `CURRENT` will be returned even
|
||||
// if the target was previously indicated to be `CURRENT`.
|
||||
RESET = 4;
|
||||
}
|
||||
|
||||
// The type of change that occurred.
|
||||
TargetChangeType target_change_type = 1;
|
||||
|
||||
// The target IDs of targets that have changed.
|
||||
//
|
||||
// If empty, the change applies to all targets.
|
||||
//
|
||||
// For `target_change_type=ADD`, the order of the target IDs matches the order
|
||||
// of the requests to add the targets. This allows clients to unambiguously
|
||||
// associate server-assigned target IDs with added targets.
|
||||
//
|
||||
// For other states, the order of the target IDs is not defined.
|
||||
repeated int32 target_ids = 2;
|
||||
|
||||
// The error that resulted in this change, if applicable.
|
||||
google.rpc.Status cause = 3;
|
||||
|
||||
// A token that can be used to resume the stream for the given `target_ids`,
|
||||
// or all targets if `target_ids` is empty.
|
||||
//
|
||||
// Not set on every target change.
|
||||
bytes resume_token = 4;
|
||||
|
||||
// The consistent `read_time` for the given `target_ids` (omitted when the
|
||||
// target_ids are not at a consistent snapshot).
|
||||
//
|
||||
// The stream is guaranteed to send a `read_time` with `target_ids` empty
|
||||
// whenever the entire stream reaches a new consistent snapshot. ADD,
|
||||
// CURRENT, and RESET messages are guaranteed to (eventually) result in a
|
||||
// new consistent snapshot (while NO_CHANGE and REMOVE messages are not).
|
||||
//
|
||||
// For a given stream, `read_time` is guaranteed to be monotonically
|
||||
// increasing.
|
||||
google.protobuf.Timestamp read_time = 6;
|
||||
}
|
||||
|
||||
// The request for [Firestore.ListCollectionIds][google.firestore.v1.Firestore.ListCollectionIds].
|
||||
message ListCollectionIdsRequest {
|
||||
// The parent document. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The maximum number of results to return.
|
||||
int32 page_size = 2;
|
||||
|
||||
// A page token. Must be a value from
|
||||
// [ListCollectionIdsResponse][google.firestore.v1.ListCollectionIdsResponse].
|
||||
string page_token = 3;
|
||||
}
|
||||
|
||||
// The response from [Firestore.ListCollectionIds][google.firestore.v1.Firestore.ListCollectionIds].
|
||||
message ListCollectionIdsResponse {
|
||||
// The collection ids.
|
||||
repeated string collection_ids = 1;
|
||||
|
||||
// A page token that may be used to continue the list.
|
||||
string next_page_token = 2;
|
||||
}
|
236
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/query.proto
generated
vendored
Normal file
236
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/query.proto
generated
vendored
Normal file
@ -0,0 +1,236 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1;
|
||||
|
||||
import "google/firestore/v1/document.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "QueryProto";
|
||||
option java_package = "com.google.firestore.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1";
|
||||
|
||||
|
||||
// A Firestore query.
|
||||
message StructuredQuery {
|
||||
// A selection of a collection, such as `messages as m1`.
|
||||
message CollectionSelector {
|
||||
// The collection ID.
|
||||
// When set, selects only collections with this ID.
|
||||
string collection_id = 2;
|
||||
|
||||
// When false, selects only collections that are immediate children of
|
||||
// the `parent` specified in the containing `RunQueryRequest`.
|
||||
// When true, selects all descendant collections.
|
||||
bool all_descendants = 3;
|
||||
}
|
||||
|
||||
// A filter.
|
||||
message Filter {
|
||||
// The type of filter.
|
||||
oneof filter_type {
|
||||
// A composite filter.
|
||||
CompositeFilter composite_filter = 1;
|
||||
|
||||
// A filter on a document field.
|
||||
FieldFilter field_filter = 2;
|
||||
|
||||
// A filter that takes exactly one argument.
|
||||
UnaryFilter unary_filter = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// A filter that merges multiple other filters using the given operator.
|
||||
message CompositeFilter {
|
||||
// A composite filter operator.
|
||||
enum Operator {
|
||||
// Unspecified. This value must not be used.
|
||||
OPERATOR_UNSPECIFIED = 0;
|
||||
|
||||
// The results are required to satisfy each of the combined filters.
|
||||
AND = 1;
|
||||
}
|
||||
|
||||
// The operator for combining multiple filters.
|
||||
Operator op = 1;
|
||||
|
||||
// The list of filters to combine.
|
||||
// Must contain at least one filter.
|
||||
repeated Filter filters = 2;
|
||||
}
|
||||
|
||||
// A filter on a specific field.
|
||||
message FieldFilter {
|
||||
// A field filter operator.
|
||||
enum Operator {
|
||||
// Unspecified. This value must not be used.
|
||||
OPERATOR_UNSPECIFIED = 0;
|
||||
|
||||
// Less than. Requires that the field come first in `order_by`.
|
||||
LESS_THAN = 1;
|
||||
|
||||
// Less than or equal. Requires that the field come first in `order_by`.
|
||||
LESS_THAN_OR_EQUAL = 2;
|
||||
|
||||
// Greater than. Requires that the field come first in `order_by`.
|
||||
GREATER_THAN = 3;
|
||||
|
||||
// Greater than or equal. Requires that the field come first in
|
||||
// `order_by`.
|
||||
GREATER_THAN_OR_EQUAL = 4;
|
||||
|
||||
// Equal.
|
||||
EQUAL = 5;
|
||||
|
||||
// Contains. Requires that the field is an array.
|
||||
ARRAY_CONTAINS = 7;
|
||||
}
|
||||
|
||||
// The field to filter by.
|
||||
FieldReference field = 1;
|
||||
|
||||
// The operator to filter by.
|
||||
Operator op = 2;
|
||||
|
||||
// The value to compare to.
|
||||
Value value = 3;
|
||||
}
|
||||
|
||||
// A filter with a single operand.
|
||||
message UnaryFilter {
|
||||
// A unary operator.
|
||||
enum Operator {
|
||||
// Unspecified. This value must not be used.
|
||||
OPERATOR_UNSPECIFIED = 0;
|
||||
|
||||
// Test if a field is equal to NaN.
|
||||
IS_NAN = 2;
|
||||
|
||||
// Test if an exprestion evaluates to Null.
|
||||
IS_NULL = 3;
|
||||
}
|
||||
|
||||
// The unary operator to apply.
|
||||
Operator op = 1;
|
||||
|
||||
// The argument to the filter.
|
||||
oneof operand_type {
|
||||
// The field to which to apply the operator.
|
||||
FieldReference field = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// A reference to a field, such as `max(messages.time) as max_time`.
|
||||
message FieldReference {
|
||||
string field_path = 2;
|
||||
}
|
||||
|
||||
// An order on a field.
|
||||
message Order {
|
||||
// The field to order by.
|
||||
FieldReference field = 1;
|
||||
|
||||
// The direction to order by. Defaults to `ASCENDING`.
|
||||
Direction direction = 2;
|
||||
}
|
||||
|
||||
// The projection of document's fields to return.
|
||||
message Projection {
|
||||
// The fields to return.
|
||||
//
|
||||
// If empty, all fields are returned. To only return the name
|
||||
// of the document, use `['__name__']`.
|
||||
repeated FieldReference fields = 2;
|
||||
}
|
||||
|
||||
// A sort direction.
|
||||
enum Direction {
|
||||
// Unspecified.
|
||||
DIRECTION_UNSPECIFIED = 0;
|
||||
|
||||
// Ascending.
|
||||
ASCENDING = 1;
|
||||
|
||||
// Descending.
|
||||
DESCENDING = 2;
|
||||
}
|
||||
|
||||
// The projection to return.
|
||||
Projection select = 1;
|
||||
|
||||
// The collections to query.
|
||||
repeated CollectionSelector from = 2;
|
||||
|
||||
// The filter to apply.
|
||||
Filter where = 3;
|
||||
|
||||
// The order to apply to the query results.
|
||||
//
|
||||
// Firestore guarantees a stable ordering through the following rules:
|
||||
//
|
||||
// * Any field required to appear in `order_by`, that is not already
|
||||
// specified in `order_by`, is appended to the order in field name order
|
||||
// by default.
|
||||
// * If an order on `__name__` is not specified, it is appended by default.
|
||||
//
|
||||
// Fields are appended with the same sort direction as the last order
|
||||
// specified, or 'ASCENDING' if no order was specified. For example:
|
||||
//
|
||||
// * `SELECT * FROM Foo ORDER BY A` becomes
|
||||
// `SELECT * FROM Foo ORDER BY A, __name__`
|
||||
// * `SELECT * FROM Foo ORDER BY A DESC` becomes
|
||||
// `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
|
||||
// * `SELECT * FROM Foo WHERE A > 1` becomes
|
||||
// `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
|
||||
repeated Order order_by = 4;
|
||||
|
||||
// A starting point for the query results.
|
||||
Cursor start_at = 7;
|
||||
|
||||
// A end point for the query results.
|
||||
Cursor end_at = 8;
|
||||
|
||||
// The number of results to skip.
|
||||
//
|
||||
// Applies before limit, but after all other constraints. Must be >= 0 if
|
||||
// specified.
|
||||
int32 offset = 6;
|
||||
|
||||
// The maximum number of results to return.
|
||||
//
|
||||
// Applies after all other constraints.
|
||||
// Must be >= 0 if specified.
|
||||
google.protobuf.Int32Value limit = 5;
|
||||
}
|
||||
|
||||
// A position in a query result set.
|
||||
message Cursor {
|
||||
// The values that represent a position, in the order they appear in
|
||||
// the order by clause of a query.
|
||||
//
|
||||
// Can contain fewer values than specified in the order by clause.
|
||||
repeated Value values = 1;
|
||||
|
||||
// If the position is just before or just after the given values, relative
|
||||
// to the sort order defined by the query.
|
||||
bool before = 2;
|
||||
}
|
255
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/write.proto
generated
vendored
Normal file
255
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/write.proto
generated
vendored
Normal file
@ -0,0 +1,255 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1;
|
||||
|
||||
import "google/firestore/v1/common.proto";
|
||||
import "google/firestore/v1/document.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "WriteProto";
|
||||
option java_package = "com.google.firestore.v1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1";
|
||||
|
||||
|
||||
// A write on a document.
|
||||
message Write {
|
||||
// The operation to execute.
|
||||
oneof operation {
|
||||
// A document to write.
|
||||
Document update = 1;
|
||||
|
||||
// A document name to delete. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string delete = 2;
|
||||
|
||||
// Applies a transformation to a document.
|
||||
// At most one `transform` per document is allowed in a given request.
|
||||
// An `update` cannot follow a `transform` on the same document in a given
|
||||
// request.
|
||||
DocumentTransform transform = 6;
|
||||
}
|
||||
|
||||
// The fields to update in this write.
|
||||
//
|
||||
// This field can be set only when the operation is `update`.
|
||||
// If the mask is not set for an `update` and the document exists, any
|
||||
// existing data will be overwritten.
|
||||
// If the mask is set and the document on the server has fields not covered by
|
||||
// the mask, they are left unchanged.
|
||||
// Fields referenced in the mask, but not present in the input document, are
|
||||
// deleted from the document on the server.
|
||||
// The field paths in this mask must not contain a reserved field name.
|
||||
DocumentMask update_mask = 3;
|
||||
|
||||
// An optional precondition on the document.
|
||||
//
|
||||
// The write will fail if this is set and not met by the target document.
|
||||
Precondition current_document = 4;
|
||||
}
|
||||
|
||||
// A transformation of a document.
|
||||
message DocumentTransform {
|
||||
// A transformation of a field of the document.
|
||||
message FieldTransform {
|
||||
// A value that is calculated by the server.
|
||||
enum ServerValue {
|
||||
// Unspecified. This value must not be used.
|
||||
SERVER_VALUE_UNSPECIFIED = 0;
|
||||
|
||||
// The time at which the server processed the request, with millisecond
|
||||
// precision.
|
||||
REQUEST_TIME = 1;
|
||||
}
|
||||
|
||||
// The path of the field. See [Document.fields][google.firestore.v1.Document.fields] for the field path syntax
|
||||
// reference.
|
||||
string field_path = 1;
|
||||
|
||||
// The transformation to apply on the field.
|
||||
oneof transform_type {
|
||||
// Sets the field to the given server value.
|
||||
ServerValue set_to_server_value = 2;
|
||||
|
||||
// Adds the given value to the field's current value.
|
||||
//
|
||||
// This must be an integer or a double value.
|
||||
// If the field is not an integer or double, or if the field does not yet
|
||||
// exist, the transformation will set the field to the given value.
|
||||
// If either of the given value or the current field value are doubles,
|
||||
// both values will be interpreted as doubles. Double arithmetic and
|
||||
// representation of double values follow IEEE 754 semantics.
|
||||
// If there is positive/negative integer overflow, the field is resolved
|
||||
// to the largest magnitude positive/negative integer.
|
||||
Value increment = 3;
|
||||
|
||||
// Sets the field to the maximum of its current value and the given value.
|
||||
//
|
||||
// This must be an integer or a double value.
|
||||
// If the field is not an integer or double, or if the field does not yet
|
||||
// exist, the transformation will set the field to the given value.
|
||||
// If a maximum operation is applied where the field and the input value
|
||||
// are of mixed types (that is - one is an integer and one is a double)
|
||||
// the field takes on the type of the larger operand. If the operands are
|
||||
// equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
// 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and
|
||||
// zero input value is always the stored value.
|
||||
// The maximum of any numeric value x and NaN is NaN.
|
||||
Value maximum = 4;
|
||||
|
||||
// Sets the field to the minimum of its current value and the given value.
|
||||
//
|
||||
// This must be an integer or a double value.
|
||||
// If the field is not an integer or double, or if the field does not yet
|
||||
// exist, the transformation will set the field to the input value.
|
||||
// If a minimum operation is applied where the field and the input value
|
||||
// are of mixed types (that is - one is an integer and one is a double)
|
||||
// the field takes on the type of the smaller operand. If the operands are
|
||||
// equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
// 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and
|
||||
// zero input value is always the stored value.
|
||||
// The minimum of any numeric value x and NaN is NaN.
|
||||
Value minimum = 5;
|
||||
|
||||
// Append the given elements in order if they are not already present in
|
||||
// the current field value.
|
||||
// If the field is not an array, or if the field does not yet exist, it is
|
||||
// first set to the empty array.
|
||||
//
|
||||
// Equivalent numbers of different types (e.g. 3L and 3.0) are
|
||||
// considered equal when checking if a value is missing.
|
||||
// NaN is equal to NaN, and Null is equal to Null.
|
||||
// If the input contains multiple equivalent values, only the first will
|
||||
// be considered.
|
||||
//
|
||||
// The corresponding transform_result will be the null value.
|
||||
ArrayValue append_missing_elements = 6;
|
||||
|
||||
// Remove all of the given elements from the array in the field.
|
||||
// If the field is not an array, or if the field does not yet exist, it is
|
||||
// set to the empty array.
|
||||
//
|
||||
// Equivalent numbers of the different types (e.g. 3L and 3.0) are
|
||||
// considered equal when deciding whether an element should be removed.
|
||||
// NaN is equal to NaN, and Null is equal to Null.
|
||||
// This will remove all equivalent values if there are duplicates.
|
||||
//
|
||||
// The corresponding transform_result will be the null value.
|
||||
ArrayValue remove_all_from_array = 7;
|
||||
}
|
||||
}
|
||||
|
||||
// The name of the document to transform.
|
||||
string document = 1;
|
||||
|
||||
// The list of transformations to apply to the fields of the document, in
|
||||
// order.
|
||||
// This must not be empty.
|
||||
repeated FieldTransform field_transforms = 2;
|
||||
}
|
||||
|
||||
// The result of applying a write.
|
||||
message WriteResult {
|
||||
// The last update time of the document after applying the write. Not set
|
||||
// after a `delete`.
|
||||
//
|
||||
// If the write did not actually change the document, this will be the
|
||||
// previous update_time.
|
||||
google.protobuf.Timestamp update_time = 1;
|
||||
|
||||
// The results of applying each [DocumentTransform.FieldTransform][google.firestore.v1.DocumentTransform.FieldTransform], in the
|
||||
// same order.
|
||||
repeated Value transform_results = 2;
|
||||
}
|
||||
|
||||
// A [Document][google.firestore.v1.Document] has changed.
|
||||
//
|
||||
// May be the result of multiple [writes][google.firestore.v1.Write], including deletes, that
|
||||
// ultimately resulted in a new value for the [Document][google.firestore.v1.Document].
|
||||
//
|
||||
// Multiple [DocumentChange][google.firestore.v1.DocumentChange] messages may be returned for the same logical
|
||||
// change, if multiple targets are affected.
|
||||
message DocumentChange {
|
||||
// The new state of the [Document][google.firestore.v1.Document].
|
||||
//
|
||||
// If `mask` is set, contains only fields that were updated or added.
|
||||
Document document = 1;
|
||||
|
||||
// A set of target IDs of targets that match this document.
|
||||
repeated int32 target_ids = 5;
|
||||
|
||||
// A set of target IDs for targets that no longer match this document.
|
||||
repeated int32 removed_target_ids = 6;
|
||||
}
|
||||
|
||||
// A [Document][google.firestore.v1.Document] has been deleted.
|
||||
//
|
||||
// May be the result of multiple [writes][google.firestore.v1.Write], including updates, the
|
||||
// last of which deleted the [Document][google.firestore.v1.Document].
|
||||
//
|
||||
// Multiple [DocumentDelete][google.firestore.v1.DocumentDelete] messages may be returned for the same logical
|
||||
// delete, if multiple targets are affected.
|
||||
message DocumentDelete {
|
||||
// The resource name of the [Document][google.firestore.v1.Document] that was deleted.
|
||||
string document = 1;
|
||||
|
||||
// A set of target IDs for targets that previously matched this entity.
|
||||
repeated int32 removed_target_ids = 6;
|
||||
|
||||
// The read timestamp at which the delete was observed.
|
||||
//
|
||||
// Greater or equal to the `commit_time` of the delete.
|
||||
google.protobuf.Timestamp read_time = 4;
|
||||
}
|
||||
|
||||
// A [Document][google.firestore.v1.Document] has been removed from the view of the targets.
|
||||
//
|
||||
// Sent if the document is no longer relevant to a target and is out of view.
|
||||
// Can be sent instead of a DocumentDelete or a DocumentChange if the server
|
||||
// can not send the new value of the document.
|
||||
//
|
||||
// Multiple [DocumentRemove][google.firestore.v1.DocumentRemove] messages may be returned for the same logical
|
||||
// write or delete, if multiple targets are affected.
|
||||
message DocumentRemove {
|
||||
// The resource name of the [Document][google.firestore.v1.Document] that has gone out of view.
|
||||
string document = 1;
|
||||
|
||||
// A set of target IDs for targets that previously matched this document.
|
||||
repeated int32 removed_target_ids = 2;
|
||||
|
||||
// The read timestamp at which the remove was observed.
|
||||
//
|
||||
// Greater or equal to the `commit_time` of the change/delete/remove.
|
||||
google.protobuf.Timestamp read_time = 4;
|
||||
}
|
||||
|
||||
// A digest of all the documents that match a given target.
|
||||
message ExistenceFilter {
|
||||
// The target ID to which this filter applies.
|
||||
int32 target_id = 1;
|
||||
|
||||
// The total count of documents that match [target_id][google.firestore.v1.ExistenceFilter.target_id].
|
||||
//
|
||||
// If different from the count of documents in the client that match, the
|
||||
// client must manually determine which documents no longer match the target.
|
||||
int32 count = 2;
|
||||
}
|
84
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/common.proto
generated
vendored
Normal file
84
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/common.proto
generated
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1beta1;
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1Beta1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
option java_package = "com.google.firestore.v1beta1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
|
||||
|
||||
|
||||
// A set of field paths on a document.
|
||||
// Used to restrict a get or update operation on a document to a subset of its
|
||||
// fields.
|
||||
// This is different from standard field masks, as this is always scoped to a
|
||||
// [Document][google.firestore.v1beta1.Document], and takes in account the dynamic nature of [Value][google.firestore.v1beta1.Value].
|
||||
message DocumentMask {
|
||||
// The list of field paths in the mask. See [Document.fields][google.firestore.v1beta1.Document.fields] for a field
|
||||
// path syntax reference.
|
||||
repeated string field_paths = 1;
|
||||
}
|
||||
|
||||
// A precondition on a document, used for conditional operations.
|
||||
message Precondition {
|
||||
// The type of precondition.
|
||||
oneof condition_type {
|
||||
// When set to `true`, the target document must exist.
|
||||
// When set to `false`, the target document must not exist.
|
||||
bool exists = 1;
|
||||
|
||||
// When set, the target document must exist and have been last updated at
|
||||
// that time.
|
||||
google.protobuf.Timestamp update_time = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Options for creating a new transaction.
|
||||
message TransactionOptions {
|
||||
// Options for a transaction that can be used to read and write documents.
|
||||
message ReadWrite {
|
||||
// An optional transaction to retry.
|
||||
bytes retry_transaction = 1;
|
||||
}
|
||||
|
||||
// Options for a transaction that can only be used to read documents.
|
||||
message ReadOnly {
|
||||
// The consistency mode for this transaction. If not set, defaults to strong
|
||||
// consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// The mode of the transaction.
|
||||
oneof mode {
|
||||
// The transaction can only be used for read operations.
|
||||
ReadOnly read_only = 2;
|
||||
|
||||
// The transaction can be used for both read and write operations.
|
||||
ReadWrite read_write = 3;
|
||||
}
|
||||
}
|
151
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/document.proto
generated
vendored
Normal file
151
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/document.proto
generated
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1beta1;
|
||||
|
||||
import "google/protobuf/struct.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/type/latlng.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1Beta1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DocumentProto";
|
||||
option java_package = "com.google.firestore.v1beta1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
|
||||
|
||||
|
||||
// A Firestore document.
|
||||
//
|
||||
// Must not exceed 1 MiB - 4 bytes.
|
||||
message Document {
|
||||
// The resource name of the document, for example
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string name = 1;
|
||||
|
||||
// The document's fields.
|
||||
//
|
||||
// The map keys represent field names.
|
||||
//
|
||||
// A simple field name contains only characters `a` to `z`, `A` to `Z`,
|
||||
// `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
|
||||
// `foo_bar_17`.
|
||||
//
|
||||
// Field names matching the regular expression `__.*__` are reserved. Reserved
|
||||
// field names are forbidden except in certain documented contexts. The map
|
||||
// keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be
|
||||
// empty.
|
||||
//
|
||||
// Field paths may be used in other contexts to refer to structured fields
|
||||
// defined here. For `map_value`, the field path is represented by the simple
|
||||
// or quoted field names of the containing fields, delimited by `.`. For
|
||||
// example, the structured field
|
||||
// `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be
|
||||
// represented by the field path `foo.x&y`.
|
||||
//
|
||||
// Within a field path, a quoted field name starts and ends with `` ` `` and
|
||||
// may contain any character. Some characters, including `` ` ``, must be
|
||||
// escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
|
||||
// `` `bak\`tik` `` represents `` bak`tik ``.
|
||||
map<string, Value> fields = 2;
|
||||
|
||||
// Output only. The time at which the document was created.
|
||||
//
|
||||
// This value increases monotonically when a document is deleted then
|
||||
// recreated. It can also be compared to values from other documents and
|
||||
// the `read_time` of a query.
|
||||
google.protobuf.Timestamp create_time = 3;
|
||||
|
||||
// Output only. The time at which the document was last changed.
|
||||
//
|
||||
// This value is initially set to the `create_time` then increases
|
||||
// monotonically with each change to the document. It can also be
|
||||
// compared to values from other documents and the `read_time` of a query.
|
||||
google.protobuf.Timestamp update_time = 4;
|
||||
}
|
||||
|
||||
// A message that can hold any of the supported value types.
|
||||
message Value {
|
||||
// Must have a value set.
|
||||
oneof value_type {
|
||||
// A null value.
|
||||
google.protobuf.NullValue null_value = 11;
|
||||
|
||||
// A boolean value.
|
||||
bool boolean_value = 1;
|
||||
|
||||
// An integer value.
|
||||
int64 integer_value = 2;
|
||||
|
||||
// A double value.
|
||||
double double_value = 3;
|
||||
|
||||
// A timestamp value.
|
||||
//
|
||||
// Precise only to microseconds. When stored, any additional precision is
|
||||
// rounded down.
|
||||
google.protobuf.Timestamp timestamp_value = 10;
|
||||
|
||||
// A string value.
|
||||
//
|
||||
// The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
|
||||
// Only the first 1,500 bytes of the UTF-8 representation are considered by
|
||||
// queries.
|
||||
string string_value = 17;
|
||||
|
||||
// A bytes value.
|
||||
//
|
||||
// Must not exceed 1 MiB - 89 bytes.
|
||||
// Only the first 1,500 bytes are considered by queries.
|
||||
bytes bytes_value = 18;
|
||||
|
||||
// A reference to a document. For example:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string reference_value = 5;
|
||||
|
||||
// A geo point value representing a point on the surface of Earth.
|
||||
google.type.LatLng geo_point_value = 8;
|
||||
|
||||
// An array value.
|
||||
//
|
||||
// Cannot directly contain another array value, though can contain an
|
||||
// map which contains another array.
|
||||
ArrayValue array_value = 9;
|
||||
|
||||
// A map value.
|
||||
MapValue map_value = 6;
|
||||
}
|
||||
}
|
||||
|
||||
// An array value.
|
||||
message ArrayValue {
|
||||
// Values in the array.
|
||||
repeated Value values = 1;
|
||||
}
|
||||
|
||||
// A map value.
|
||||
message MapValue {
|
||||
// The map's fields.
|
||||
//
|
||||
// The map keys represent field names. Field names matching the regular
|
||||
// expression `__.*__` are reserved. Reserved field names are forbidden except
|
||||
// in certain documented contexts. The map keys, represented as UTF-8, must
|
||||
// not exceed 1,500 bytes and cannot be empty.
|
||||
map<string, Value> fields = 1;
|
||||
}
|
761
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/firestore.proto
generated
vendored
Normal file
761
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/firestore.proto
generated
vendored
Normal file
@ -0,0 +1,761 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1beta1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/firestore/v1beta1/common.proto";
|
||||
import "google/firestore/v1beta1/document.proto";
|
||||
import "google/firestore/v1beta1/query.proto";
|
||||
import "google/firestore/v1beta1/write.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/rpc/status.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1Beta1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FirestoreProto";
|
||||
option java_package = "com.google.firestore.v1beta1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
|
||||
// Specification of the Firestore API.
|
||||
|
||||
// The Cloud Firestore service.
|
||||
//
|
||||
// This service exposes several types of comparable timestamps:
|
||||
//
|
||||
// * `create_time` - The time at which a document was created. Changes only
|
||||
// when a document is deleted, then re-created. Increases in a strict
|
||||
// monotonic fashion.
|
||||
// * `update_time` - The time at which a document was last updated. Changes
|
||||
// every time a document is modified. Does not change when a write results
|
||||
// in no modifications. Increases in a strict monotonic fashion.
|
||||
// * `read_time` - The time at which a particular state was observed. Used
|
||||
// to denote a consistent snapshot of the database or the time at which a
|
||||
// Document was observed to not exist.
|
||||
// * `commit_time` - The time at which the writes in a transaction were
|
||||
// committed. Any read with an equal or greater `read_time` is guaranteed
|
||||
// to see the effects of the transaction.
|
||||
service Firestore {
|
||||
// Gets a single document.
|
||||
rpc GetDocument(GetDocumentRequest) returns (Document) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1beta1/{name=projects/*/databases/*/documents/*/**}"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists documents.
|
||||
rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Creates a new document.
|
||||
rpc CreateDocument(CreateDocumentRequest) returns (Document) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{parent=projects/*/databases/*/documents/**}/{collection_id}"
|
||||
body: "document"
|
||||
};
|
||||
}
|
||||
|
||||
// Updates or inserts a document.
|
||||
rpc UpdateDocument(UpdateDocumentRequest) returns (Document) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1beta1/{document.name=projects/*/databases/*/documents/*/**}"
|
||||
body: "document"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a document.
|
||||
rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1beta1/{name=projects/*/databases/*/documents/*/**}"
|
||||
};
|
||||
}
|
||||
|
||||
// Gets multiple documents.
|
||||
//
|
||||
// Documents returned by this method are not guaranteed to be returned in the
|
||||
// same order that they were requested.
|
||||
rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (stream BatchGetDocumentsResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{database=projects/*/databases/*}/documents:batchGet"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Starts a new transaction.
|
||||
rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{database=projects/*/databases/*}/documents:beginTransaction"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Commits a transaction, while optionally updating documents.
|
||||
rpc Commit(CommitRequest) returns (CommitResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{database=projects/*/databases/*}/documents:commit"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Rolls back a transaction.
|
||||
rpc Rollback(RollbackRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{database=projects/*/databases/*}/documents:rollback"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Runs a query.
|
||||
rpc RunQuery(RunQueryRequest) returns (stream RunQueryResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{parent=projects/*/databases/*/documents}:runQuery"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}:runQuery"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Streams batches of document updates and deletes, in order.
|
||||
rpc Write(stream WriteRequest) returns (stream WriteResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{database=projects/*/databases/*}/documents:write"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Listens to changes.
|
||||
rpc Listen(stream ListenRequest) returns (stream ListenResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{database=projects/*/databases/*}/documents:listen"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists all the collection IDs underneath a document.
|
||||
rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1beta1/{parent=projects/*/databases/*/documents}:listCollectionIds"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}:listCollectionIds"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// The request for [Firestore.GetDocument][google.firestore.v1beta1.Firestore.GetDocument].
|
||||
message GetDocumentRequest {
|
||||
// The resource name of the Document to get. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string name = 1;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If the document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 2;
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads the document in a transaction.
|
||||
bytes transaction = 3;
|
||||
|
||||
// Reads the version of the document at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// The request for [Firestore.ListDocuments][google.firestore.v1beta1.Firestore.ListDocuments].
|
||||
message ListDocumentsRequest {
|
||||
// The parent resource name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents` or
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The collection ID, relative to `parent`, to list. For example: `chatrooms`
|
||||
// or `messages`.
|
||||
string collection_id = 2;
|
||||
|
||||
// The maximum number of documents to return.
|
||||
int32 page_size = 3;
|
||||
|
||||
// The `next_page_token` value returned from a previous List request, if any.
|
||||
string page_token = 4;
|
||||
|
||||
// The order to sort results by. For example: `priority desc, name`.
|
||||
string order_by = 6;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If a document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 7;
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents in a transaction.
|
||||
bytes transaction = 8;
|
||||
|
||||
// Reads documents as they were at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 10;
|
||||
}
|
||||
|
||||
// If the list should show missing documents. A missing document is a
|
||||
// document that does not exist but has sub-documents. These documents will
|
||||
// be returned with a key but will not have fields, [Document.create_time][google.firestore.v1beta1.Document.create_time],
|
||||
// or [Document.update_time][google.firestore.v1beta1.Document.update_time] set.
|
||||
//
|
||||
// Requests with `show_missing` may not specify `where` or
|
||||
// `order_by`.
|
||||
bool show_missing = 12;
|
||||
}
|
||||
|
||||
// The response for [Firestore.ListDocuments][google.firestore.v1beta1.Firestore.ListDocuments].
|
||||
message ListDocumentsResponse {
|
||||
// The Documents found.
|
||||
repeated Document documents = 1;
|
||||
|
||||
// The next page token.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.CreateDocument][google.firestore.v1beta1.Firestore.CreateDocument].
|
||||
message CreateDocumentRequest {
|
||||
// The parent resource. For example:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
|
||||
string parent = 1;
|
||||
|
||||
// The collection ID, relative to `parent`, to list. For example: `chatrooms`.
|
||||
string collection_id = 2;
|
||||
|
||||
// The client-assigned document ID to use for this document.
|
||||
//
|
||||
// Optional. If not specified, an ID will be assigned by the service.
|
||||
string document_id = 3;
|
||||
|
||||
// The document to create. `name` must not be set.
|
||||
Document document = 4;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If the document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 5;
|
||||
}
|
||||
|
||||
// The request for [Firestore.UpdateDocument][google.firestore.v1beta1.Firestore.UpdateDocument].
|
||||
message UpdateDocumentRequest {
|
||||
// The updated document.
|
||||
// Creates the document if it does not already exist.
|
||||
Document document = 1;
|
||||
|
||||
// The fields to update.
|
||||
// None of the field paths in the mask may contain a reserved name.
|
||||
//
|
||||
// If the document exists on the server and has fields not referenced in the
|
||||
// mask, they are left unchanged.
|
||||
// Fields referenced in the mask, but not present in the input document, are
|
||||
// deleted from the document on the server.
|
||||
DocumentMask update_mask = 2;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If the document has a field that is not present in this mask, that field
|
||||
// will not be returned in the response.
|
||||
DocumentMask mask = 3;
|
||||
|
||||
// An optional precondition on the document.
|
||||
// The request will fail if this is set and not met by the target document.
|
||||
Precondition current_document = 4;
|
||||
}
|
||||
|
||||
// The request for [Firestore.DeleteDocument][google.firestore.v1beta1.Firestore.DeleteDocument].
|
||||
message DeleteDocumentRequest {
|
||||
// The resource name of the Document to delete. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string name = 1;
|
||||
|
||||
// An optional precondition on the document.
|
||||
// The request will fail if this is set and not met by the target document.
|
||||
Precondition current_document = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.BatchGetDocuments][google.firestore.v1beta1.Firestore.BatchGetDocuments].
|
||||
message BatchGetDocumentsRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The names of the documents to retrieve. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// The request will fail if any of the document is not a child resource of the
|
||||
// given `database`. Duplicate names will be elided.
|
||||
repeated string documents = 2;
|
||||
|
||||
// The fields to return. If not set, returns all fields.
|
||||
//
|
||||
// If a document has a field that is not present in this mask, that field will
|
||||
// not be returned in the response.
|
||||
DocumentMask mask = 3;
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents in a transaction.
|
||||
bytes transaction = 4;
|
||||
|
||||
// Starts a new transaction and reads the documents.
|
||||
// Defaults to a read-only transaction.
|
||||
// The new transaction ID will be returned as the first response in the
|
||||
// stream.
|
||||
TransactionOptions new_transaction = 5;
|
||||
|
||||
// Reads documents as they were at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 7;
|
||||
}
|
||||
}
|
||||
|
||||
// The streamed response for [Firestore.BatchGetDocuments][google.firestore.v1beta1.Firestore.BatchGetDocuments].
|
||||
message BatchGetDocumentsResponse {
|
||||
// A single result.
|
||||
// This can be empty if the server is just returning a transaction.
|
||||
oneof result {
|
||||
// A document that was requested.
|
||||
Document found = 1;
|
||||
|
||||
// A document name that was requested but does not exist. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string missing = 2;
|
||||
}
|
||||
|
||||
// The transaction that was started as part of this request.
|
||||
// Will only be set in the first response, and only if
|
||||
// [BatchGetDocumentsRequest.new_transaction][google.firestore.v1beta1.BatchGetDocumentsRequest.new_transaction] was set in the request.
|
||||
bytes transaction = 3;
|
||||
|
||||
// The time at which the document was read.
|
||||
// This may be monotically increasing, in this case the previous documents in
|
||||
// the result stream are guaranteed not to have changed between their
|
||||
// read_time and this one.
|
||||
google.protobuf.Timestamp read_time = 4;
|
||||
}
|
||||
|
||||
// The request for [Firestore.BeginTransaction][google.firestore.v1beta1.Firestore.BeginTransaction].
|
||||
message BeginTransactionRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The options for the transaction.
|
||||
// Defaults to a read-write transaction.
|
||||
TransactionOptions options = 2;
|
||||
}
|
||||
|
||||
// The response for [Firestore.BeginTransaction][google.firestore.v1beta1.Firestore.BeginTransaction].
|
||||
message BeginTransactionResponse {
|
||||
// The transaction that was started.
|
||||
bytes transaction = 1;
|
||||
}
|
||||
|
||||
// The request for [Firestore.Commit][google.firestore.v1beta1.Firestore.Commit].
|
||||
message CommitRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The writes to apply.
|
||||
//
|
||||
// Always executed atomically and in order.
|
||||
repeated Write writes = 2;
|
||||
|
||||
// If set, applies all writes in this transaction, and commits it.
|
||||
bytes transaction = 3;
|
||||
}
|
||||
|
||||
// The response for [Firestore.Commit][google.firestore.v1beta1.Firestore.Commit].
|
||||
message CommitResponse {
|
||||
// The result of applying the writes.
|
||||
//
|
||||
// This i-th write result corresponds to the i-th write in the
|
||||
// request.
|
||||
repeated WriteResult write_results = 1;
|
||||
|
||||
// The time at which the commit occurred.
|
||||
google.protobuf.Timestamp commit_time = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.Rollback][google.firestore.v1beta1.Firestore.Rollback].
|
||||
message RollbackRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The transaction to roll back.
|
||||
bytes transaction = 2;
|
||||
}
|
||||
|
||||
// The request for [Firestore.RunQuery][google.firestore.v1beta1.Firestore.RunQuery].
|
||||
message RunQueryRequest {
|
||||
// The parent resource name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents` or
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The query to run.
|
||||
oneof query_type {
|
||||
// A structured query.
|
||||
StructuredQuery structured_query = 2;
|
||||
}
|
||||
|
||||
// The consistency mode for this transaction.
|
||||
// If not set, defaults to strong consistency.
|
||||
oneof consistency_selector {
|
||||
// Reads documents in a transaction.
|
||||
bytes transaction = 5;
|
||||
|
||||
// Starts a new transaction and reads the documents.
|
||||
// Defaults to a read-only transaction.
|
||||
// The new transaction ID will be returned as the first response in the
|
||||
// stream.
|
||||
TransactionOptions new_transaction = 6;
|
||||
|
||||
// Reads documents as they were at the given time.
|
||||
// This may not be older than 60 seconds.
|
||||
google.protobuf.Timestamp read_time = 7;
|
||||
}
|
||||
}
|
||||
|
||||
// The response for [Firestore.RunQuery][google.firestore.v1beta1.Firestore.RunQuery].
|
||||
message RunQueryResponse {
|
||||
// The transaction that was started as part of this request.
|
||||
// Can only be set in the first response, and only if
|
||||
// [RunQueryRequest.new_transaction][google.firestore.v1beta1.RunQueryRequest.new_transaction] was set in the request.
|
||||
// If set, no other fields will be set in this response.
|
||||
bytes transaction = 2;
|
||||
|
||||
// A query result.
|
||||
// Not set when reporting partial progress.
|
||||
Document document = 1;
|
||||
|
||||
// The time at which the document was read. This may be monotonically
|
||||
// increasing; in this case, the previous documents in the result stream are
|
||||
// guaranteed not to have changed between their `read_time` and this one.
|
||||
//
|
||||
// If the query returns no results, a response with `read_time` and no
|
||||
// `document` will be sent, and this represents the time at which the query
|
||||
// was run.
|
||||
google.protobuf.Timestamp read_time = 3;
|
||||
|
||||
// The number of results that have been skipped due to an offset between
|
||||
// the last response and the current response.
|
||||
int32 skipped_results = 4;
|
||||
}
|
||||
|
||||
// The request for [Firestore.Write][google.firestore.v1beta1.Firestore.Write].
|
||||
//
|
||||
// The first request creates a stream, or resumes an existing one from a token.
|
||||
//
|
||||
// When creating a new stream, the server replies with a response containing
|
||||
// only an ID and a token, to use in the next request.
|
||||
//
|
||||
// When resuming a stream, the server first streams any responses later than the
|
||||
// given token, then a response containing only an up-to-date token, to use in
|
||||
// the next request.
|
||||
message WriteRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
// This is only required in the first message.
|
||||
string database = 1;
|
||||
|
||||
// The ID of the write stream to resume.
|
||||
// This may only be set in the first message. When left empty, a new write
|
||||
// stream will be created.
|
||||
string stream_id = 2;
|
||||
|
||||
// The writes to apply.
|
||||
//
|
||||
// Always executed atomically and in order.
|
||||
// This must be empty on the first request.
|
||||
// This may be empty on the last request.
|
||||
// This must not be empty on all other requests.
|
||||
repeated Write writes = 3;
|
||||
|
||||
// A stream token that was previously sent by the server.
|
||||
//
|
||||
// The client should set this field to the token from the most recent
|
||||
// [WriteResponse][google.firestore.v1beta1.WriteResponse] it has received. This acknowledges that the client has
|
||||
// received responses up to this token. After sending this token, earlier
|
||||
// tokens may not be used anymore.
|
||||
//
|
||||
// The server may close the stream if there are too many unacknowledged
|
||||
// responses.
|
||||
//
|
||||
// Leave this field unset when creating a new stream. To resume a stream at
|
||||
// a specific point, set this field and the `stream_id` field.
|
||||
//
|
||||
// Leave this field unset when creating a new stream.
|
||||
bytes stream_token = 4;
|
||||
|
||||
// Labels associated with this write request.
|
||||
map<string, string> labels = 5;
|
||||
}
|
||||
|
||||
// The response for [Firestore.Write][google.firestore.v1beta1.Firestore.Write].
|
||||
message WriteResponse {
|
||||
// The ID of the stream.
|
||||
// Only set on the first message, when a new stream was created.
|
||||
string stream_id = 1;
|
||||
|
||||
// A token that represents the position of this response in the stream.
|
||||
// This can be used by a client to resume the stream at this point.
|
||||
//
|
||||
// This field is always set.
|
||||
bytes stream_token = 2;
|
||||
|
||||
// The result of applying the writes.
|
||||
//
|
||||
// This i-th write result corresponds to the i-th write in the
|
||||
// request.
|
||||
repeated WriteResult write_results = 3;
|
||||
|
||||
// The time at which the commit occurred.
|
||||
google.protobuf.Timestamp commit_time = 4;
|
||||
}
|
||||
|
||||
// A request for [Firestore.Listen][google.firestore.v1beta1.Firestore.Listen]
|
||||
message ListenRequest {
|
||||
// The database name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}`.
|
||||
string database = 1;
|
||||
|
||||
// The supported target changes.
|
||||
oneof target_change {
|
||||
// A target to add to this stream.
|
||||
Target add_target = 2;
|
||||
|
||||
// The ID of a target to remove from this stream.
|
||||
int32 remove_target = 3;
|
||||
}
|
||||
|
||||
// Labels associated with this target change.
|
||||
map<string, string> labels = 4;
|
||||
}
|
||||
|
||||
// The response for [Firestore.Listen][google.firestore.v1beta1.Firestore.Listen].
|
||||
message ListenResponse {
|
||||
// The supported responses.
|
||||
oneof response_type {
|
||||
// Targets have changed.
|
||||
TargetChange target_change = 2;
|
||||
|
||||
// A [Document][google.firestore.v1beta1.Document] has changed.
|
||||
DocumentChange document_change = 3;
|
||||
|
||||
// A [Document][google.firestore.v1beta1.Document] has been deleted.
|
||||
DocumentDelete document_delete = 4;
|
||||
|
||||
// A [Document][google.firestore.v1beta1.Document] has been removed from a target (because it is no longer
|
||||
// relevant to that target).
|
||||
DocumentRemove document_remove = 6;
|
||||
|
||||
// A filter to apply to the set of documents previously returned for the
|
||||
// given target.
|
||||
//
|
||||
// Returned when documents may have been removed from the given target, but
|
||||
// the exact documents are unknown.
|
||||
ExistenceFilter filter = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// A specification of a set of documents to listen to.
|
||||
message Target {
|
||||
// A target specified by a set of documents names.
|
||||
message DocumentsTarget {
|
||||
// The names of the documents to retrieve. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// The request will fail if any of the document is not a child resource of
|
||||
// the given `database`. Duplicate names will be elided.
|
||||
repeated string documents = 2;
|
||||
}
|
||||
|
||||
// A target specified by a query.
|
||||
message QueryTarget {
|
||||
// The parent resource name. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents` or
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents` or
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The query to run.
|
||||
oneof query_type {
|
||||
// A structured query.
|
||||
StructuredQuery structured_query = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// The type of target to listen to.
|
||||
oneof target_type {
|
||||
// A target specified by a query.
|
||||
QueryTarget query = 2;
|
||||
|
||||
// A target specified by a set of document names.
|
||||
DocumentsTarget documents = 3;
|
||||
}
|
||||
|
||||
// When to start listening.
|
||||
//
|
||||
// If not specified, all matching Documents are returned before any
|
||||
// subsequent changes.
|
||||
oneof resume_type {
|
||||
// A resume token from a prior [TargetChange][google.firestore.v1beta1.TargetChange] for an identical target.
|
||||
//
|
||||
// Using a resume token with a different target is unsupported and may fail.
|
||||
bytes resume_token = 4;
|
||||
|
||||
// Start listening after a specific `read_time`.
|
||||
//
|
||||
// The client must know the state of matching documents at this time.
|
||||
google.protobuf.Timestamp read_time = 11;
|
||||
}
|
||||
|
||||
// A client provided target ID.
|
||||
//
|
||||
// If not set, the server will assign an ID for the target.
|
||||
//
|
||||
// Used for resuming a target without changing IDs. The IDs can either be
|
||||
// client-assigned or be server-assigned in a previous stream. All targets
|
||||
// with client provided IDs must be added before adding a target that needs
|
||||
// a server-assigned id.
|
||||
int32 target_id = 5;
|
||||
|
||||
// If the target should be removed once it is current and consistent.
|
||||
bool once = 6;
|
||||
}
|
||||
|
||||
// Targets being watched have changed.
|
||||
message TargetChange {
|
||||
// The type of change.
|
||||
enum TargetChangeType {
|
||||
// No change has occurred. Used only to send an updated `resume_token`.
|
||||
NO_CHANGE = 0;
|
||||
|
||||
// The targets have been added.
|
||||
ADD = 1;
|
||||
|
||||
// The targets have been removed.
|
||||
REMOVE = 2;
|
||||
|
||||
// The targets reflect all changes committed before the targets were added
|
||||
// to the stream.
|
||||
//
|
||||
// This will be sent after or with a `read_time` that is greater than or
|
||||
// equal to the time at which the targets were added.
|
||||
//
|
||||
// Listeners can wait for this change if read-after-write semantics
|
||||
// are desired.
|
||||
CURRENT = 3;
|
||||
|
||||
// The targets have been reset, and a new initial state for the targets
|
||||
// will be returned in subsequent changes.
|
||||
//
|
||||
// After the initial state is complete, `CURRENT` will be returned even
|
||||
// if the target was previously indicated to be `CURRENT`.
|
||||
RESET = 4;
|
||||
}
|
||||
|
||||
// The type of change that occurred.
|
||||
TargetChangeType target_change_type = 1;
|
||||
|
||||
// The target IDs of targets that have changed.
|
||||
//
|
||||
// If empty, the change applies to all targets.
|
||||
//
|
||||
// For `target_change_type=ADD`, the order of the target IDs matches the order
|
||||
// of the requests to add the targets. This allows clients to unambiguously
|
||||
// associate server-assigned target IDs with added targets.
|
||||
//
|
||||
// For other states, the order of the target IDs is not defined.
|
||||
repeated int32 target_ids = 2;
|
||||
|
||||
// The error that resulted in this change, if applicable.
|
||||
google.rpc.Status cause = 3;
|
||||
|
||||
// A token that can be used to resume the stream for the given `target_ids`,
|
||||
// or all targets if `target_ids` is empty.
|
||||
//
|
||||
// Not set on every target change.
|
||||
bytes resume_token = 4;
|
||||
|
||||
// The consistent `read_time` for the given `target_ids` (omitted when the
|
||||
// target_ids are not at a consistent snapshot).
|
||||
//
|
||||
// The stream is guaranteed to send a `read_time` with `target_ids` empty
|
||||
// whenever the entire stream reaches a new consistent snapshot. ADD,
|
||||
// CURRENT, and RESET messages are guaranteed to (eventually) result in a
|
||||
// new consistent snapshot (while NO_CHANGE and REMOVE messages are not).
|
||||
//
|
||||
// For a given stream, `read_time` is guaranteed to be monotonically
|
||||
// increasing.
|
||||
google.protobuf.Timestamp read_time = 6;
|
||||
}
|
||||
|
||||
// The request for [Firestore.ListCollectionIds][google.firestore.v1beta1.Firestore.ListCollectionIds].
|
||||
message ListCollectionIdsRequest {
|
||||
// The parent document. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
// For example:
|
||||
// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
string parent = 1;
|
||||
|
||||
// The maximum number of results to return.
|
||||
int32 page_size = 2;
|
||||
|
||||
// A page token. Must be a value from
|
||||
// [ListCollectionIdsResponse][google.firestore.v1beta1.ListCollectionIdsResponse].
|
||||
string page_token = 3;
|
||||
}
|
||||
|
||||
// The response from [Firestore.ListCollectionIds][google.firestore.v1beta1.Firestore.ListCollectionIds].
|
||||
message ListCollectionIdsResponse {
|
||||
// The collection ids.
|
||||
repeated string collection_ids = 1;
|
||||
|
||||
// A page token that may be used to continue the list.
|
||||
string next_page_token = 2;
|
||||
}
|
236
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/query.proto
generated
vendored
Normal file
236
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/query.proto
generated
vendored
Normal file
@ -0,0 +1,236 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1beta1;
|
||||
|
||||
import "google/firestore/v1beta1/document.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1Beta1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "QueryProto";
|
||||
option java_package = "com.google.firestore.v1beta1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
|
||||
|
||||
|
||||
// A Firestore query.
|
||||
message StructuredQuery {
|
||||
// A selection of a collection, such as `messages as m1`.
|
||||
message CollectionSelector {
|
||||
// The collection ID.
|
||||
// When set, selects only collections with this ID.
|
||||
string collection_id = 2;
|
||||
|
||||
// When false, selects only collections that are immediate children of
|
||||
// the `parent` specified in the containing `RunQueryRequest`.
|
||||
// When true, selects all descendant collections.
|
||||
bool all_descendants = 3;
|
||||
}
|
||||
|
||||
// A filter.
|
||||
message Filter {
|
||||
// The type of filter.
|
||||
oneof filter_type {
|
||||
// A composite filter.
|
||||
CompositeFilter composite_filter = 1;
|
||||
|
||||
// A filter on a document field.
|
||||
FieldFilter field_filter = 2;
|
||||
|
||||
// A filter that takes exactly one argument.
|
||||
UnaryFilter unary_filter = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// A filter that merges multiple other filters using the given operator.
|
||||
message CompositeFilter {
|
||||
// A composite filter operator.
|
||||
enum Operator {
|
||||
// Unspecified. This value must not be used.
|
||||
OPERATOR_UNSPECIFIED = 0;
|
||||
|
||||
// The results are required to satisfy each of the combined filters.
|
||||
AND = 1;
|
||||
}
|
||||
|
||||
// The operator for combining multiple filters.
|
||||
Operator op = 1;
|
||||
|
||||
// The list of filters to combine.
|
||||
// Must contain at least one filter.
|
||||
repeated Filter filters = 2;
|
||||
}
|
||||
|
||||
// A filter on a specific field.
|
||||
message FieldFilter {
|
||||
// A field filter operator.
|
||||
enum Operator {
|
||||
// Unspecified. This value must not be used.
|
||||
OPERATOR_UNSPECIFIED = 0;
|
||||
|
||||
// Less than. Requires that the field come first in `order_by`.
|
||||
LESS_THAN = 1;
|
||||
|
||||
// Less than or equal. Requires that the field come first in `order_by`.
|
||||
LESS_THAN_OR_EQUAL = 2;
|
||||
|
||||
// Greater than. Requires that the field come first in `order_by`.
|
||||
GREATER_THAN = 3;
|
||||
|
||||
// Greater than or equal. Requires that the field come first in
|
||||
// `order_by`.
|
||||
GREATER_THAN_OR_EQUAL = 4;
|
||||
|
||||
// Equal.
|
||||
EQUAL = 5;
|
||||
|
||||
// Contains. Requires that the field is an array.
|
||||
ARRAY_CONTAINS = 7;
|
||||
}
|
||||
|
||||
// The field to filter by.
|
||||
FieldReference field = 1;
|
||||
|
||||
// The operator to filter by.
|
||||
Operator op = 2;
|
||||
|
||||
// The value to compare to.
|
||||
Value value = 3;
|
||||
}
|
||||
|
||||
// The projection of document's fields to return.
|
||||
message Projection {
|
||||
// The fields to return.
|
||||
//
|
||||
// If empty, all fields are returned. To only return the name
|
||||
// of the document, use `['__name__']`.
|
||||
repeated FieldReference fields = 2;
|
||||
}
|
||||
|
||||
// A filter with a single operand.
|
||||
message UnaryFilter {
|
||||
// A unary operator.
|
||||
enum Operator {
|
||||
// Unspecified. This value must not be used.
|
||||
OPERATOR_UNSPECIFIED = 0;
|
||||
|
||||
// Test if a field is equal to NaN.
|
||||
IS_NAN = 2;
|
||||
|
||||
// Test if an exprestion evaluates to Null.
|
||||
IS_NULL = 3;
|
||||
}
|
||||
|
||||
// The unary operator to apply.
|
||||
Operator op = 1;
|
||||
|
||||
// The argument to the filter.
|
||||
oneof operand_type {
|
||||
// The field to which to apply the operator.
|
||||
FieldReference field = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// An order on a field.
|
||||
message Order {
|
||||
// The field to order by.
|
||||
FieldReference field = 1;
|
||||
|
||||
// The direction to order by. Defaults to `ASCENDING`.
|
||||
Direction direction = 2;
|
||||
}
|
||||
|
||||
// A sort direction.
|
||||
enum Direction {
|
||||
// Unspecified.
|
||||
DIRECTION_UNSPECIFIED = 0;
|
||||
|
||||
// Ascending.
|
||||
ASCENDING = 1;
|
||||
|
||||
// Descending.
|
||||
DESCENDING = 2;
|
||||
}
|
||||
|
||||
// A reference to a field, such as `max(messages.time) as max_time`.
|
||||
message FieldReference {
|
||||
string field_path = 2;
|
||||
}
|
||||
|
||||
// The projection to return.
|
||||
Projection select = 1;
|
||||
|
||||
// The collections to query.
|
||||
repeated CollectionSelector from = 2;
|
||||
|
||||
// The filter to apply.
|
||||
Filter where = 3;
|
||||
|
||||
// The order to apply to the query results.
|
||||
//
|
||||
// Firestore guarantees a stable ordering through the following rules:
|
||||
//
|
||||
// * Any field required to appear in `order_by`, that is not already
|
||||
// specified in `order_by`, is appended to the order in field name order
|
||||
// by default.
|
||||
// * If an order on `__name__` is not specified, it is appended by default.
|
||||
//
|
||||
// Fields are appended with the same sort direction as the last order
|
||||
// specified, or 'ASCENDING' if no order was specified. For example:
|
||||
//
|
||||
// * `SELECT * FROM Foo ORDER BY A` becomes
|
||||
// `SELECT * FROM Foo ORDER BY A, __name__`
|
||||
// * `SELECT * FROM Foo ORDER BY A DESC` becomes
|
||||
// `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
|
||||
// * `SELECT * FROM Foo WHERE A > 1` becomes
|
||||
// `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
|
||||
repeated Order order_by = 4;
|
||||
|
||||
// A starting point for the query results.
|
||||
Cursor start_at = 7;
|
||||
|
||||
// A end point for the query results.
|
||||
Cursor end_at = 8;
|
||||
|
||||
// The number of results to skip.
|
||||
//
|
||||
// Applies before limit, but after all other constraints. Must be >= 0 if
|
||||
// specified.
|
||||
int32 offset = 6;
|
||||
|
||||
// The maximum number of results to return.
|
||||
//
|
||||
// Applies after all other constraints.
|
||||
// Must be >= 0 if specified.
|
||||
google.protobuf.Int32Value limit = 5;
|
||||
}
|
||||
|
||||
// A position in a query result set.
|
||||
message Cursor {
|
||||
// The values that represent a position, in the order they appear in
|
||||
// the order by clause of a query.
|
||||
//
|
||||
// Can contain fewer values than specified in the order by clause.
|
||||
repeated Value values = 1;
|
||||
|
||||
// If the position is just before or just after the given values, relative
|
||||
// to the sort order defined by the query.
|
||||
bool before = 2;
|
||||
}
|
255
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/write.proto
generated
vendored
Normal file
255
node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/write.proto
generated
vendored
Normal file
@ -0,0 +1,255 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.firestore.v1beta1;
|
||||
|
||||
import "google/firestore/v1beta1/common.proto";
|
||||
import "google/firestore/v1beta1/document.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Firestore.V1Beta1";
|
||||
option go_package = "google.golang.org/genproto/googleapis/firestore/v1beta1;firestore";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "WriteProto";
|
||||
option java_package = "com.google.firestore.v1beta1";
|
||||
option objc_class_prefix = "GCFS";
|
||||
option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
|
||||
|
||||
|
||||
// A write on a document.
|
||||
message Write {
|
||||
// The operation to execute.
|
||||
oneof operation {
|
||||
// A document to write.
|
||||
Document update = 1;
|
||||
|
||||
// A document name to delete. In the format:
|
||||
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
string delete = 2;
|
||||
|
||||
// Applies a transformation to a document.
|
||||
// At most one `transform` per document is allowed in a given request.
|
||||
// An `update` cannot follow a `transform` on the same document in a given
|
||||
// request.
|
||||
DocumentTransform transform = 6;
|
||||
}
|
||||
|
||||
// The fields to update in this write.
|
||||
//
|
||||
// This field can be set only when the operation is `update`.
|
||||
// If the mask is not set for an `update` and the document exists, any
|
||||
// existing data will be overwritten.
|
||||
// If the mask is set and the document on the server has fields not covered by
|
||||
// the mask, they are left unchanged.
|
||||
// Fields referenced in the mask, but not present in the input document, are
|
||||
// deleted from the document on the server.
|
||||
// The field paths in this mask must not contain a reserved field name.
|
||||
DocumentMask update_mask = 3;
|
||||
|
||||
// An optional precondition on the document.
|
||||
//
|
||||
// The write will fail if this is set and not met by the target document.
|
||||
Precondition current_document = 4;
|
||||
}
|
||||
|
||||
// A transformation of a document.
|
||||
message DocumentTransform {
|
||||
// A transformation of a field of the document.
|
||||
message FieldTransform {
|
||||
// A value that is calculated by the server.
|
||||
enum ServerValue {
|
||||
// Unspecified. This value must not be used.
|
||||
SERVER_VALUE_UNSPECIFIED = 0;
|
||||
|
||||
// The time at which the server processed the request, with millisecond
|
||||
// precision.
|
||||
REQUEST_TIME = 1;
|
||||
}
|
||||
|
||||
// The path of the field. See [Document.fields][google.firestore.v1beta1.Document.fields] for the field path syntax
|
||||
// reference.
|
||||
string field_path = 1;
|
||||
|
||||
// The transformation to apply on the field.
|
||||
oneof transform_type {
|
||||
// Sets the field to the given server value.
|
||||
ServerValue set_to_server_value = 2;
|
||||
|
||||
// Adds the given value to the field's current value.
|
||||
//
|
||||
// This must be an integer or a double value.
|
||||
// If the field is not an integer or double, or if the field does not yet
|
||||
// exist, the transformation will set the field to the given value.
|
||||
// If either of the given value or the current field value are doubles,
|
||||
// both values will be interpreted as doubles. Double arithmetic and
|
||||
// representation of double values follow IEEE 754 semantics.
|
||||
// If there is positive/negative integer overflow, the field is resolved
|
||||
// to the largest magnitude positive/negative integer.
|
||||
Value increment = 3;
|
||||
|
||||
// Sets the field to the maximum of its current value and the given value.
|
||||
//
|
||||
// This must be an integer or a double value.
|
||||
// If the field is not an integer or double, or if the field does not yet
|
||||
// exist, the transformation will set the field to the given value.
|
||||
// If a maximum operation is applied where the field and the input value
|
||||
// are of mixed types (that is - one is an integer and one is a double)
|
||||
// the field takes on the type of the larger operand. If the operands are
|
||||
// equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
// 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and
|
||||
// zero input value is always the stored value.
|
||||
// The maximum of any numeric value x and NaN is NaN.
|
||||
Value maximum = 4;
|
||||
|
||||
// Sets the field to the minimum of its current value and the given value.
|
||||
//
|
||||
// This must be an integer or a double value.
|
||||
// If the field is not an integer or double, or if the field does not yet
|
||||
// exist, the transformation will set the field to the input value.
|
||||
// If a minimum operation is applied where the field and the input value
|
||||
// are of mixed types (that is - one is an integer and one is a double)
|
||||
// the field takes on the type of the smaller operand. If the operands are
|
||||
// equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
// 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and
|
||||
// zero input value is always the stored value.
|
||||
// The minimum of any numeric value x and NaN is NaN.
|
||||
Value minimum = 5;
|
||||
|
||||
// Append the given elements in order if they are not already present in
|
||||
// the current field value.
|
||||
// If the field is not an array, or if the field does not yet exist, it is
|
||||
// first set to the empty array.
|
||||
//
|
||||
// Equivalent numbers of different types (e.g. 3L and 3.0) are
|
||||
// considered equal when checking if a value is missing.
|
||||
// NaN is equal to NaN, and Null is equal to Null.
|
||||
// If the input contains multiple equivalent values, only the first will
|
||||
// be considered.
|
||||
//
|
||||
// The corresponding transform_result will be the null value.
|
||||
ArrayValue append_missing_elements = 6;
|
||||
|
||||
// Remove all of the given elements from the array in the field.
|
||||
// If the field is not an array, or if the field does not yet exist, it is
|
||||
// set to the empty array.
|
||||
//
|
||||
// Equivalent numbers of the different types (e.g. 3L and 3.0) are
|
||||
// considered equal when deciding whether an element should be removed.
|
||||
// NaN is equal to NaN, and Null is equal to Null.
|
||||
// This will remove all equivalent values if there are duplicates.
|
||||
//
|
||||
// The corresponding transform_result will be the null value.
|
||||
ArrayValue remove_all_from_array = 7;
|
||||
}
|
||||
}
|
||||
|
||||
// The name of the document to transform.
|
||||
string document = 1;
|
||||
|
||||
// The list of transformations to apply to the fields of the document, in
|
||||
// order.
|
||||
// This must not be empty.
|
||||
repeated FieldTransform field_transforms = 2;
|
||||
}
|
||||
|
||||
// The result of applying a write.
|
||||
message WriteResult {
|
||||
// The last update time of the document after applying the write. Not set
|
||||
// after a `delete`.
|
||||
//
|
||||
// If the write did not actually change the document, this will be the
|
||||
// previous update_time.
|
||||
google.protobuf.Timestamp update_time = 1;
|
||||
|
||||
// The results of applying each [DocumentTransform.FieldTransform][google.firestore.v1beta1.DocumentTransform.FieldTransform], in the
|
||||
// same order.
|
||||
repeated Value transform_results = 2;
|
||||
}
|
||||
|
||||
// A [Document][google.firestore.v1beta1.Document] has changed.
|
||||
//
|
||||
// May be the result of multiple [writes][google.firestore.v1beta1.Write], including deletes, that
|
||||
// ultimately resulted in a new value for the [Document][google.firestore.v1beta1.Document].
|
||||
//
|
||||
// Multiple [DocumentChange][google.firestore.v1beta1.DocumentChange] messages may be returned for the same logical
|
||||
// change, if multiple targets are affected.
|
||||
message DocumentChange {
|
||||
// The new state of the [Document][google.firestore.v1beta1.Document].
|
||||
//
|
||||
// If `mask` is set, contains only fields that were updated or added.
|
||||
Document document = 1;
|
||||
|
||||
// A set of target IDs of targets that match this document.
|
||||
repeated int32 target_ids = 5;
|
||||
|
||||
// A set of target IDs for targets that no longer match this document.
|
||||
repeated int32 removed_target_ids = 6;
|
||||
}
|
||||
|
||||
// A [Document][google.firestore.v1beta1.Document] has been deleted.
|
||||
//
|
||||
// May be the result of multiple [writes][google.firestore.v1beta1.Write], including updates, the
|
||||
// last of which deleted the [Document][google.firestore.v1beta1.Document].
|
||||
//
|
||||
// Multiple [DocumentDelete][google.firestore.v1beta1.DocumentDelete] messages may be returned for the same logical
|
||||
// delete, if multiple targets are affected.
|
||||
message DocumentDelete {
|
||||
// The resource name of the [Document][google.firestore.v1beta1.Document] that was deleted.
|
||||
string document = 1;
|
||||
|
||||
// A set of target IDs for targets that previously matched this entity.
|
||||
repeated int32 removed_target_ids = 6;
|
||||
|
||||
// The read timestamp at which the delete was observed.
|
||||
//
|
||||
// Greater or equal to the `commit_time` of the delete.
|
||||
google.protobuf.Timestamp read_time = 4;
|
||||
}
|
||||
|
||||
// A [Document][google.firestore.v1beta1.Document] has been removed from the view of the targets.
|
||||
//
|
||||
// Sent if the document is no longer relevant to a target and is out of view.
|
||||
// Can be sent instead of a DocumentDelete or a DocumentChange if the server
|
||||
// can not send the new value of the document.
|
||||
//
|
||||
// Multiple [DocumentRemove][google.firestore.v1beta1.DocumentRemove] messages may be returned for the same logical
|
||||
// write or delete, if multiple targets are affected.
|
||||
message DocumentRemove {
|
||||
// The resource name of the [Document][google.firestore.v1beta1.Document] that has gone out of view.
|
||||
string document = 1;
|
||||
|
||||
// A set of target IDs for targets that previously matched this document.
|
||||
repeated int32 removed_target_ids = 2;
|
||||
|
||||
// The read timestamp at which the remove was observed.
|
||||
//
|
||||
// Greater or equal to the `commit_time` of the change/delete/remove.
|
||||
google.protobuf.Timestamp read_time = 4;
|
||||
}
|
||||
|
||||
// A digest of all the documents that match a given target.
|
||||
message ExistenceFilter {
|
||||
// The target ID to which this filter applies.
|
||||
int32 target_id = 1;
|
||||
|
||||
// The total count of documents that match [target_id][google.firestore.v1beta1.ExistenceFilter.target_id].
|
||||
//
|
||||
// If different from the count of documents in the client that match, the
|
||||
// client must manually determine which documents no longer match the target.
|
||||
int32 count = 2;
|
||||
}
|
241
node_modules/@google-cloud/firestore/build/protos/google/longrunning/operations.proto
generated
vendored
Normal file
241
node_modules/@google-cloud/firestore/build/protos/google/longrunning/operations.proto
generated
vendored
Normal file
@ -0,0 +1,241 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.longrunning;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/rpc/status.proto";
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
option cc_enable_arenas = true;
|
||||
option csharp_namespace = "Google.LongRunning";
|
||||
option go_package = "google.golang.org/genproto/googleapis/longrunning;longrunning";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "OperationsProto";
|
||||
option java_package = "com.google.longrunning";
|
||||
option php_namespace = "Google\\LongRunning";
|
||||
|
||||
extend google.protobuf.MethodOptions {
|
||||
// Additional information regarding long-running operations.
|
||||
// In particular, this specifies the types that are returned from
|
||||
// long-running operations.
|
||||
//
|
||||
// Required for methods that return `google.longrunning.Operation`; invalid
|
||||
// otherwise.
|
||||
google.longrunning.OperationInfo operation_info = 1049;
|
||||
}
|
||||
|
||||
// Manages long-running operations with an API service.
|
||||
//
|
||||
// When an API method normally takes long time to complete, it can be designed
|
||||
// to return [Operation][google.longrunning.Operation] to the client, and the client can use this
|
||||
// interface to receive the real response asynchronously by polling the
|
||||
// operation resource, or pass the operation resource to another API (such as
|
||||
// Google Cloud Pub/Sub API) to receive the response. Any API service that
|
||||
// returns long-running operations should implement the `Operations` interface
|
||||
// so developers can have a consistent client experience.
|
||||
service Operations {
|
||||
// Lists operations that match the specified filter in the request. If the
|
||||
// server doesn't support this method, it returns `UNIMPLEMENTED`.
|
||||
//
|
||||
// NOTE: the `name` binding allows API services to override the binding
|
||||
// to use different resource name schemes, such as `users/*/operations`. To
|
||||
// override the binding, API services can add a binding such as
|
||||
// `"/v1/{name=users/*}/operations"` to their service configuration.
|
||||
// For backwards compatibility, the default name includes the operations
|
||||
// collection id, however overriding users must ensure the name binding
|
||||
// is the parent resource, without the operations collection id.
|
||||
rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=operations}"
|
||||
};
|
||||
}
|
||||
|
||||
// Gets the latest state of a long-running operation. Clients can use this
|
||||
// method to poll the operation result at intervals as recommended by the API
|
||||
// service.
|
||||
rpc GetOperation(GetOperationRequest) returns (Operation) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=operations/**}"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a long-running operation. This method indicates that the client is
|
||||
// no longer interested in the operation result. It does not cancel the
|
||||
// operation. If the server doesn't support this method, it returns
|
||||
// `google.rpc.Code.UNIMPLEMENTED`.
|
||||
rpc DeleteOperation(DeleteOperationRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=operations/**}"
|
||||
};
|
||||
}
|
||||
|
||||
// Starts asynchronous cancellation on a long-running operation. The server
|
||||
// makes a best effort to cancel the operation, but success is not
|
||||
// guaranteed. If the server doesn't support this method, it returns
|
||||
// `google.rpc.Code.UNIMPLEMENTED`. Clients can use
|
||||
// [Operations.GetOperation][google.longrunning.Operations.GetOperation] or
|
||||
// other methods to check whether the cancellation succeeded or whether the
|
||||
// operation completed despite cancellation. On successful cancellation,
|
||||
// the operation is not deleted; instead, it becomes an operation with
|
||||
// an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
|
||||
// corresponding to `Code.CANCELLED`.
|
||||
rpc CancelOperation(CancelOperationRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{name=operations/**}:cancel"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Waits for the specified long-running operation until it is done or reaches
|
||||
// at most a specified timeout, returning the latest state. If the operation
|
||||
// is already done, the latest state is immediately returned. If the timeout
|
||||
// specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
|
||||
// timeout is used. If the server does not support this method, it returns
|
||||
// `google.rpc.Code.UNIMPLEMENTED`.
|
||||
// Note that this method is on a best-effort basis. It may return the latest
|
||||
// state before the specified timeout (including immediately), meaning even an
|
||||
// immediate response is no guarantee that the operation is done.
|
||||
rpc WaitOperation(WaitOperationRequest) returns (Operation) {
|
||||
}
|
||||
}
|
||||
|
||||
// This resource represents a long-running operation that is the result of a
|
||||
// network API call.
|
||||
message Operation {
|
||||
// The server-assigned name, which is only unique within the same service that
|
||||
// originally returns it. If you use the default HTTP mapping, the
|
||||
// `name` should have the format of `operations/some/unique/name`.
|
||||
string name = 1;
|
||||
|
||||
// Service-specific metadata associated with the operation. It typically
|
||||
// contains progress information and common metadata such as create time.
|
||||
// Some services might not provide such metadata. Any method that returns a
|
||||
// long-running operation should document the metadata type, if any.
|
||||
google.protobuf.Any metadata = 2;
|
||||
|
||||
// If the value is `false`, it means the operation is still in progress.
|
||||
// If `true`, the operation is completed, and either `error` or `response` is
|
||||
// available.
|
||||
bool done = 3;
|
||||
|
||||
// The operation result, which can be either an `error` or a valid `response`.
|
||||
// If `done` == `false`, neither `error` nor `response` is set.
|
||||
// If `done` == `true`, exactly one of `error` or `response` is set.
|
||||
oneof result {
|
||||
// The error result of the operation in case of failure or cancellation.
|
||||
google.rpc.Status error = 4;
|
||||
|
||||
// The normal response of the operation in case of success. If the original
|
||||
// method returns no data on success, such as `Delete`, the response is
|
||||
// `google.protobuf.Empty`. If the original method is standard
|
||||
// `Get`/`Create`/`Update`, the response should be the resource. For other
|
||||
// methods, the response should have the type `XxxResponse`, where `Xxx`
|
||||
// is the original method name. For example, if the original method name
|
||||
// is `TakeSnapshot()`, the inferred response type is
|
||||
// `TakeSnapshotResponse`.
|
||||
google.protobuf.Any response = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// The request message for [Operations.GetOperation][google.longrunning.Operations.GetOperation].
|
||||
message GetOperationRequest {
|
||||
// The name of the operation resource.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// The request message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
|
||||
message ListOperationsRequest {
|
||||
// The name of the operation's parent resource.
|
||||
string name = 4;
|
||||
|
||||
// The standard list filter.
|
||||
string filter = 1;
|
||||
|
||||
// The standard list page size.
|
||||
int32 page_size = 2;
|
||||
|
||||
// The standard list page token.
|
||||
string page_token = 3;
|
||||
}
|
||||
|
||||
// The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
|
||||
message ListOperationsResponse {
|
||||
// A list of operations that matches the specified filter in the request.
|
||||
repeated Operation operations = 1;
|
||||
|
||||
// The standard List next-page token.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The request message for [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
|
||||
message CancelOperationRequest {
|
||||
// The name of the operation resource to be cancelled.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// The request message for [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
|
||||
message DeleteOperationRequest {
|
||||
// The name of the operation resource to be deleted.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// The request message for [Operations.WaitOperation][google.longrunning.Operations.WaitOperation].
|
||||
message WaitOperationRequest {
|
||||
// The name of the operation resource to wait on.
|
||||
string name = 1;
|
||||
|
||||
// The maximum duration to wait before timing out. If left blank, the wait
|
||||
// will be at most the time permitted by the underlying HTTP/RPC protocol.
|
||||
// If RPC context deadline is also specified, the shorter one will be used.
|
||||
google.protobuf.Duration timeout = 2;
|
||||
}
|
||||
|
||||
// A message representing the message types used by a long-running operation.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// rpc LongRunningRecognize(LongRunningRecognizeRequest)
|
||||
// returns (google.longrunning.Operation) {
|
||||
// option (google.longrunning.operation_info) = {
|
||||
// response_type: "LongRunningRecognizeResponse"
|
||||
// metadata_type: "LongRunningRecognizeMetadata"
|
||||
// };
|
||||
// }
|
||||
message OperationInfo {
|
||||
// Required. The message name of the primary return type for this
|
||||
// long-running operation.
|
||||
// This type will be used to deserialize the LRO's response.
|
||||
//
|
||||
// If the response is in a different package from the rpc, a fully-qualified
|
||||
// message name must be used (e.g. `google.protobuf.Struct`).
|
||||
//
|
||||
// Note: Altering this value constitutes a breaking change.
|
||||
string response_type = 1;
|
||||
|
||||
// Required. The message name of the metadata type for this long-running
|
||||
// operation.
|
||||
//
|
||||
// If the response is in a different package from the rpc, a fully-qualified
|
||||
// message name must be used (e.g. `google.protobuf.Struct`).
|
||||
//
|
||||
// Note: Altering this value constitutes a breaking change.
|
||||
string metadata_type = 2;
|
||||
}
|
155
node_modules/@google-cloud/firestore/build/protos/google/protobuf/any.proto
generated
vendored
Normal file
155
node_modules/@google-cloud/firestore/build/protos/google/protobuf/any.proto
generated
vendored
Normal file
@ -0,0 +1,155 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.protobuf;
|
||||
|
||||
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
|
||||
option go_package = "github.com/golang/protobuf/ptypes/any";
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "AnyProto";
|
||||
option java_multiple_files = true;
|
||||
option objc_class_prefix = "GPB";
|
||||
|
||||
// `Any` contains an arbitrary serialized protocol buffer message along with a
|
||||
// URL that describes the type of the serialized message.
|
||||
//
|
||||
// Protobuf library provides support to pack/unpack Any values in the form
|
||||
// of utility functions or additional generated methods of the Any type.
|
||||
//
|
||||
// Example 1: Pack and unpack a message in C++.
|
||||
//
|
||||
// Foo foo = ...;
|
||||
// Any any;
|
||||
// any.PackFrom(foo);
|
||||
// ...
|
||||
// if (any.UnpackTo(&foo)) {
|
||||
// ...
|
||||
// }
|
||||
//
|
||||
// Example 2: Pack and unpack a message in Java.
|
||||
//
|
||||
// Foo foo = ...;
|
||||
// Any any = Any.pack(foo);
|
||||
// ...
|
||||
// if (any.is(Foo.class)) {
|
||||
// foo = any.unpack(Foo.class);
|
||||
// }
|
||||
//
|
||||
// Example 3: Pack and unpack a message in Python.
|
||||
//
|
||||
// foo = Foo(...)
|
||||
// any = Any()
|
||||
// any.Pack(foo)
|
||||
// ...
|
||||
// if any.Is(Foo.DESCRIPTOR):
|
||||
// any.Unpack(foo)
|
||||
// ...
|
||||
//
|
||||
// Example 4: Pack and unpack a message in Go
|
||||
//
|
||||
// foo := &pb.Foo{...}
|
||||
// any, err := ptypes.MarshalAny(foo)
|
||||
// ...
|
||||
// foo := &pb.Foo{}
|
||||
// if err := ptypes.UnmarshalAny(any, foo); err != nil {
|
||||
// ...
|
||||
// }
|
||||
//
|
||||
// The pack methods provided by protobuf library will by default use
|
||||
// 'type.googleapis.com/full.type.name' as the type URL and the unpack
|
||||
// methods only use the fully qualified type name after the last '/'
|
||||
// in the type URL, for example "foo.bar.com/x/y.z" will yield type
|
||||
// name "y.z".
|
||||
//
|
||||
//
|
||||
// JSON
|
||||
// ====
|
||||
// The JSON representation of an `Any` value uses the regular
|
||||
// representation of the deserialized, embedded message, with an
|
||||
// additional field `@type` which contains the type URL. Example:
|
||||
//
|
||||
// package google.profile;
|
||||
// message Person {
|
||||
// string first_name = 1;
|
||||
// string last_name = 2;
|
||||
// }
|
||||
//
|
||||
// {
|
||||
// "@type": "type.googleapis.com/google.profile.Person",
|
||||
// "firstName": <string>,
|
||||
// "lastName": <string>
|
||||
// }
|
||||
//
|
||||
// If the embedded message type is well-known and has a custom JSON
|
||||
// representation, that representation will be embedded adding a field
|
||||
// `value` which holds the custom JSON in addition to the `@type`
|
||||
// field. Example (for message [google.protobuf.Duration][]):
|
||||
//
|
||||
// {
|
||||
// "@type": "type.googleapis.com/google.protobuf.Duration",
|
||||
// "value": "1.212s"
|
||||
// }
|
||||
//
|
||||
message Any {
|
||||
// A URL/resource name that uniquely identifies the type of the serialized
|
||||
// protocol buffer message. This string must contain at least
|
||||
// one "/" character. The last segment of the URL's path must represent
|
||||
// the fully qualified name of the type (as in
|
||||
// `path/google.protobuf.Duration`). The name should be in a canonical form
|
||||
// (e.g., leading "." is not accepted).
|
||||
//
|
||||
// In practice, teams usually precompile into the binary all types that they
|
||||
// expect it to use in the context of Any. However, for URLs which use the
|
||||
// scheme `http`, `https`, or no scheme, one can optionally set up a type
|
||||
// server that maps type URLs to message definitions as follows:
|
||||
//
|
||||
// * If no scheme is provided, `https` is assumed.
|
||||
// * An HTTP GET on the URL must yield a [google.protobuf.Type][]
|
||||
// value in binary format, or produce an error.
|
||||
// * Applications are allowed to cache lookup results based on the
|
||||
// URL, or have them precompiled into a binary to avoid any
|
||||
// lookup. Therefore, binary compatibility needs to be preserved
|
||||
// on changes to types. (Use versioned type names to manage
|
||||
// breaking changes.)
|
||||
//
|
||||
// Note: this functionality is not currently available in the official
|
||||
// protobuf release, and it is not used for type URLs beginning with
|
||||
// type.googleapis.com.
|
||||
//
|
||||
// Schemes other than `http`, `https` (or the empty scheme) might be
|
||||
// used with implementation specific semantics.
|
||||
//
|
||||
string type_url = 1;
|
||||
|
||||
// Must be a valid serialized protocol buffer of the above specified type.
|
||||
bytes value = 2;
|
||||
}
|
52
node_modules/@google-cloud/firestore/build/protos/google/protobuf/empty.proto
generated
vendored
Normal file
52
node_modules/@google-cloud/firestore/build/protos/google/protobuf/empty.proto
generated
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.protobuf;
|
||||
|
||||
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
|
||||
option go_package = "github.com/golang/protobuf/ptypes/empty";
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "EmptyProto";
|
||||
option java_multiple_files = true;
|
||||
option objc_class_prefix = "GPB";
|
||||
option cc_enable_arenas = true;
|
||||
|
||||
// A generic empty message that you can re-use to avoid defining duplicated
|
||||
// empty messages in your APIs. A typical example is to use it as the request
|
||||
// or the response type of an API method. For instance:
|
||||
//
|
||||
// service Foo {
|
||||
// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
|
||||
// }
|
||||
//
|
||||
// The JSON representation for `Empty` is empty JSON object `{}`.
|
||||
message Empty {}
|
245
node_modules/@google-cloud/firestore/build/protos/google/protobuf/field_mask.proto
generated
vendored
Normal file
245
node_modules/@google-cloud/firestore/build/protos/google/protobuf/field_mask.proto
generated
vendored
Normal file
@ -0,0 +1,245 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.protobuf;
|
||||
|
||||
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "FieldMaskProto";
|
||||
option java_multiple_files = true;
|
||||
option objc_class_prefix = "GPB";
|
||||
option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask";
|
||||
option cc_enable_arenas = true;
|
||||
|
||||
// `FieldMask` represents a set of symbolic field paths, for example:
|
||||
//
|
||||
// paths: "f.a"
|
||||
// paths: "f.b.d"
|
||||
//
|
||||
// Here `f` represents a field in some root message, `a` and `b`
|
||||
// fields in the message found in `f`, and `d` a field found in the
|
||||
// message in `f.b`.
|
||||
//
|
||||
// Field masks are used to specify a subset of fields that should be
|
||||
// returned by a get operation or modified by an update operation.
|
||||
// Field masks also have a custom JSON encoding (see below).
|
||||
//
|
||||
// # Field Masks in Projections
|
||||
//
|
||||
// When used in the context of a projection, a response message or
|
||||
// sub-message is filtered by the API to only contain those fields as
|
||||
// specified in the mask. For example, if the mask in the previous
|
||||
// example is applied to a response message as follows:
|
||||
//
|
||||
// f {
|
||||
// a : 22
|
||||
// b {
|
||||
// d : 1
|
||||
// x : 2
|
||||
// }
|
||||
// y : 13
|
||||
// }
|
||||
// z: 8
|
||||
//
|
||||
// The result will not contain specific values for fields x,y and z
|
||||
// (their value will be set to the default, and omitted in proto text
|
||||
// output):
|
||||
//
|
||||
//
|
||||
// f {
|
||||
// a : 22
|
||||
// b {
|
||||
// d : 1
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// A repeated field is not allowed except at the last position of a
|
||||
// paths string.
|
||||
//
|
||||
// If a FieldMask object is not present in a get operation, the
|
||||
// operation applies to all fields (as if a FieldMask of all fields
|
||||
// had been specified).
|
||||
//
|
||||
// Note that a field mask does not necessarily apply to the
|
||||
// top-level response message. In case of a REST get operation, the
|
||||
// field mask applies directly to the response, but in case of a REST
|
||||
// list operation, the mask instead applies to each individual message
|
||||
// in the returned resource list. In case of a REST custom method,
|
||||
// other definitions may be used. Where the mask applies will be
|
||||
// clearly documented together with its declaration in the API. In
|
||||
// any case, the effect on the returned resource/resources is required
|
||||
// behavior for APIs.
|
||||
//
|
||||
// # Field Masks in Update Operations
|
||||
//
|
||||
// A field mask in update operations specifies which fields of the
|
||||
// targeted resource are going to be updated. The API is required
|
||||
// to only change the values of the fields as specified in the mask
|
||||
// and leave the others untouched. If a resource is passed in to
|
||||
// describe the updated values, the API ignores the values of all
|
||||
// fields not covered by the mask.
|
||||
//
|
||||
// If a repeated field is specified for an update operation, new values will
|
||||
// be appended to the existing repeated field in the target resource. Note that
|
||||
// a repeated field is only allowed in the last position of a `paths` string.
|
||||
//
|
||||
// If a sub-message is specified in the last position of the field mask for an
|
||||
// update operation, then new value will be merged into the existing sub-message
|
||||
// in the target resource.
|
||||
//
|
||||
// For example, given the target message:
|
||||
//
|
||||
// f {
|
||||
// b {
|
||||
// d: 1
|
||||
// x: 2
|
||||
// }
|
||||
// c: [1]
|
||||
// }
|
||||
//
|
||||
// And an update message:
|
||||
//
|
||||
// f {
|
||||
// b {
|
||||
// d: 10
|
||||
// }
|
||||
// c: [2]
|
||||
// }
|
||||
//
|
||||
// then if the field mask is:
|
||||
//
|
||||
// paths: ["f.b", "f.c"]
|
||||
//
|
||||
// then the result will be:
|
||||
//
|
||||
// f {
|
||||
// b {
|
||||
// d: 10
|
||||
// x: 2
|
||||
// }
|
||||
// c: [1, 2]
|
||||
// }
|
||||
//
|
||||
// An implementation may provide options to override this default behavior for
|
||||
// repeated and message fields.
|
||||
//
|
||||
// In order to reset a field's value to the default, the field must
|
||||
// be in the mask and set to the default value in the provided resource.
|
||||
// Hence, in order to reset all fields of a resource, provide a default
|
||||
// instance of the resource and set all fields in the mask, or do
|
||||
// not provide a mask as described below.
|
||||
//
|
||||
// If a field mask is not present on update, the operation applies to
|
||||
// all fields (as if a field mask of all fields has been specified).
|
||||
// Note that in the presence of schema evolution, this may mean that
|
||||
// fields the client does not know and has therefore not filled into
|
||||
// the request will be reset to their default. If this is unwanted
|
||||
// behavior, a specific service may require a client to always specify
|
||||
// a field mask, producing an error if not.
|
||||
//
|
||||
// As with get operations, the location of the resource which
|
||||
// describes the updated values in the request message depends on the
|
||||
// operation kind. In any case, the effect of the field mask is
|
||||
// required to be honored by the API.
|
||||
//
|
||||
// ## Considerations for HTTP REST
|
||||
//
|
||||
// The HTTP kind of an update operation which uses a field mask must
|
||||
// be set to PATCH instead of PUT in order to satisfy HTTP semantics
|
||||
// (PUT must only be used for full updates).
|
||||
//
|
||||
// # JSON Encoding of Field Masks
|
||||
//
|
||||
// In JSON, a field mask is encoded as a single string where paths are
|
||||
// separated by a comma. Fields name in each path are converted
|
||||
// to/from lower-camel naming conventions.
|
||||
//
|
||||
// As an example, consider the following message declarations:
|
||||
//
|
||||
// message Profile {
|
||||
// User user = 1;
|
||||
// Photo photo = 2;
|
||||
// }
|
||||
// message User {
|
||||
// string display_name = 1;
|
||||
// string address = 2;
|
||||
// }
|
||||
//
|
||||
// In proto a field mask for `Profile` may look as such:
|
||||
//
|
||||
// mask {
|
||||
// paths: "user.display_name"
|
||||
// paths: "photo"
|
||||
// }
|
||||
//
|
||||
// In JSON, the same mask is represented as below:
|
||||
//
|
||||
// {
|
||||
// mask: "user.displayName,photo"
|
||||
// }
|
||||
//
|
||||
// # Field Masks and Oneof Fields
|
||||
//
|
||||
// Field masks treat fields in oneofs just as regular fields. Consider the
|
||||
// following message:
|
||||
//
|
||||
// message SampleMessage {
|
||||
// oneof test_oneof {
|
||||
// string name = 4;
|
||||
// SubMessage sub_message = 9;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// The field mask can be:
|
||||
//
|
||||
// mask {
|
||||
// paths: "name"
|
||||
// }
|
||||
//
|
||||
// Or:
|
||||
//
|
||||
// mask {
|
||||
// paths: "sub_message"
|
||||
// }
|
||||
//
|
||||
// Note that oneof type names ("test_oneof" in this case) cannot be used in
|
||||
// paths.
|
||||
//
|
||||
// ## Field Mask Verification
|
||||
//
|
||||
// The implementation of any API method which has a FieldMask type field in the
|
||||
// request should verify the included field paths, and return an
|
||||
// `INVALID_ARGUMENT` error if any path is duplicated or unmappable.
|
||||
message FieldMask {
|
||||
// The set of field mask paths.
|
||||
repeated string paths = 1;
|
||||
}
|
96
node_modules/@google-cloud/firestore/build/protos/google/protobuf/struct.proto
generated
vendored
Normal file
96
node_modules/@google-cloud/firestore/build/protos/google/protobuf/struct.proto
generated
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.protobuf;
|
||||
|
||||
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "github.com/golang/protobuf/ptypes/struct;structpb";
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "StructProto";
|
||||
option java_multiple_files = true;
|
||||
option objc_class_prefix = "GPB";
|
||||
|
||||
|
||||
// `Struct` represents a structured data value, consisting of fields
|
||||
// which map to dynamically typed values. In some languages, `Struct`
|
||||
// might be supported by a native representation. For example, in
|
||||
// scripting languages like JS a struct is represented as an
|
||||
// object. The details of that representation are described together
|
||||
// with the proto support for the language.
|
||||
//
|
||||
// The JSON representation for `Struct` is JSON object.
|
||||
message Struct {
|
||||
// Unordered map of dynamically typed values.
|
||||
map<string, Value> fields = 1;
|
||||
}
|
||||
|
||||
// `Value` represents a dynamically typed value which can be either
|
||||
// null, a number, a string, a boolean, a recursive struct value, or a
|
||||
// list of values. A producer of value is expected to set one of that
|
||||
// variants, absence of any variant indicates an error.
|
||||
//
|
||||
// The JSON representation for `Value` is JSON value.
|
||||
message Value {
|
||||
// The kind of value.
|
||||
oneof kind {
|
||||
// Represents a null value.
|
||||
NullValue null_value = 1;
|
||||
// Represents a double value.
|
||||
double number_value = 2;
|
||||
// Represents a string value.
|
||||
string string_value = 3;
|
||||
// Represents a boolean value.
|
||||
bool bool_value = 4;
|
||||
// Represents a structured value.
|
||||
Struct struct_value = 5;
|
||||
// Represents a repeated `Value`.
|
||||
ListValue list_value = 6;
|
||||
}
|
||||
}
|
||||
|
||||
// `NullValue` is a singleton enumeration to represent the null value for the
|
||||
// `Value` type union.
|
||||
//
|
||||
// The JSON representation for `NullValue` is JSON `null`.
|
||||
enum NullValue {
|
||||
// Null value.
|
||||
NULL_VALUE = 0;
|
||||
}
|
||||
|
||||
// `ListValue` is a wrapper around a repeated field of values.
|
||||
//
|
||||
// The JSON representation for `ListValue` is JSON array.
|
||||
message ListValue {
|
||||
// Repeated field of dynamically typed values.
|
||||
repeated Value values = 1;
|
||||
}
|
137
node_modules/@google-cloud/firestore/build/protos/google/protobuf/timestamp.proto
generated
vendored
Normal file
137
node_modules/@google-cloud/firestore/build/protos/google/protobuf/timestamp.proto
generated
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.protobuf;
|
||||
|
||||
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "github.com/golang/protobuf/ptypes/timestamp";
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "TimestampProto";
|
||||
option java_multiple_files = true;
|
||||
option objc_class_prefix = "GPB";
|
||||
|
||||
// A Timestamp represents a point in time independent of any time zone or local
|
||||
// calendar, encoded as a count of seconds and fractions of seconds at
|
||||
// nanosecond resolution. The count is relative to an epoch at UTC midnight on
|
||||
// January 1, 1970, in the proleptic Gregorian calendar which extends the
|
||||
// Gregorian calendar backwards to year one.
|
||||
//
|
||||
// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
|
||||
// second table is needed for interpretation, using a [24-hour linear
|
||||
// smear](https://developers.google.com/time/smear).
|
||||
//
|
||||
// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
|
||||
// restricting to that range, we ensure that we can convert to and from [RFC
|
||||
// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
|
||||
//
|
||||
// # Examples
|
||||
//
|
||||
// Example 1: Compute Timestamp from POSIX `time()`.
|
||||
//
|
||||
// Timestamp timestamp;
|
||||
// timestamp.set_seconds(time(NULL));
|
||||
// timestamp.set_nanos(0);
|
||||
//
|
||||
// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
|
||||
//
|
||||
// struct timeval tv;
|
||||
// gettimeofday(&tv, NULL);
|
||||
//
|
||||
// Timestamp timestamp;
|
||||
// timestamp.set_seconds(tv.tv_sec);
|
||||
// timestamp.set_nanos(tv.tv_usec * 1000);
|
||||
//
|
||||
// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
|
||||
//
|
||||
// FILETIME ft;
|
||||
// GetSystemTimeAsFileTime(&ft);
|
||||
// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
|
||||
//
|
||||
// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
|
||||
// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
|
||||
// Timestamp timestamp;
|
||||
// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
|
||||
// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
|
||||
//
|
||||
// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
|
||||
//
|
||||
// long millis = System.currentTimeMillis();
|
||||
//
|
||||
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
|
||||
// .setNanos((int) ((millis % 1000) * 1000000)).build();
|
||||
//
|
||||
//
|
||||
// Example 5: Compute Timestamp from current time in Python.
|
||||
//
|
||||
// timestamp = Timestamp()
|
||||
// timestamp.GetCurrentTime()
|
||||
//
|
||||
// # JSON Mapping
|
||||
//
|
||||
// In JSON format, the Timestamp type is encoded as a string in the
|
||||
// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
|
||||
// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
|
||||
// where {year} is always expressed using four digits while {month}, {day},
|
||||
// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
|
||||
// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
|
||||
// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
|
||||
// is required. A proto3 JSON serializer should always use UTC (as indicated by
|
||||
// "Z") when printing the Timestamp type and a proto3 JSON parser should be
|
||||
// able to accept both UTC and other timezones (as indicated by an offset).
|
||||
//
|
||||
// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
|
||||
// 01:30 UTC on January 15, 2017.
|
||||
//
|
||||
// In JavaScript, one can convert a Date object to this format using the
|
||||
// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
|
||||
// method. In Python, a standard `datetime.datetime` object can be converted
|
||||
// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
|
||||
// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
|
||||
// can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
|
||||
// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
|
||||
// ) to obtain a formatter capable of generating timestamps in this format.
|
||||
//
|
||||
//
|
||||
message Timestamp {
|
||||
|
||||
// Represents seconds of UTC time since Unix epoch
|
||||
// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
|
||||
// 9999-12-31T23:59:59Z inclusive.
|
||||
int64 seconds = 1;
|
||||
|
||||
// Non-negative fractions of a second at nanosecond resolution. Negative
|
||||
// second values with fractions must still have non-negative nanos values
|
||||
// that count forward in time. Must be from 0 to 999,999,999
|
||||
// inclusive.
|
||||
int32 nanos = 2;
|
||||
}
|
123
node_modules/@google-cloud/firestore/build/protos/google/protobuf/wrappers.proto
generated
vendored
Normal file
123
node_modules/@google-cloud/firestore/build/protos/google/protobuf/wrappers.proto
generated
vendored
Normal file
@ -0,0 +1,123 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// Wrappers for primitive (non-message) types. These types are useful
|
||||
// for embedding primitives in the `google.protobuf.Any` type and for places
|
||||
// where we need to distinguish between the absence of a primitive
|
||||
// typed field and its default value.
|
||||
//
|
||||
// These wrappers have no meaningful use within repeated fields as they lack
|
||||
// the ability to detect presence on individual elements.
|
||||
// These wrappers have no meaningful use within a map or a oneof since
|
||||
// individual entries of a map or fields of a oneof can already detect presence.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.protobuf;
|
||||
|
||||
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "github.com/golang/protobuf/ptypes/wrappers";
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "WrappersProto";
|
||||
option java_multiple_files = true;
|
||||
option objc_class_prefix = "GPB";
|
||||
|
||||
// Wrapper message for `double`.
|
||||
//
|
||||
// The JSON representation for `DoubleValue` is JSON number.
|
||||
message DoubleValue {
|
||||
// The double value.
|
||||
double value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `float`.
|
||||
//
|
||||
// The JSON representation for `FloatValue` is JSON number.
|
||||
message FloatValue {
|
||||
// The float value.
|
||||
float value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `int64`.
|
||||
//
|
||||
// The JSON representation for `Int64Value` is JSON string.
|
||||
message Int64Value {
|
||||
// The int64 value.
|
||||
int64 value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `uint64`.
|
||||
//
|
||||
// The JSON representation for `UInt64Value` is JSON string.
|
||||
message UInt64Value {
|
||||
// The uint64 value.
|
||||
uint64 value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `int32`.
|
||||
//
|
||||
// The JSON representation for `Int32Value` is JSON number.
|
||||
message Int32Value {
|
||||
// The int32 value.
|
||||
int32 value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `uint32`.
|
||||
//
|
||||
// The JSON representation for `UInt32Value` is JSON number.
|
||||
message UInt32Value {
|
||||
// The uint32 value.
|
||||
uint32 value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `bool`.
|
||||
//
|
||||
// The JSON representation for `BoolValue` is JSON `true` and `false`.
|
||||
message BoolValue {
|
||||
// The bool value.
|
||||
bool value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `string`.
|
||||
//
|
||||
// The JSON representation for `StringValue` is JSON string.
|
||||
message StringValue {
|
||||
// The string value.
|
||||
string value = 1;
|
||||
}
|
||||
|
||||
// Wrapper message for `bytes`.
|
||||
//
|
||||
// The JSON representation for `BytesValue` is JSON string.
|
||||
message BytesValue {
|
||||
// The bytes value.
|
||||
bytes value = 1;
|
||||
}
|
94
node_modules/@google-cloud/firestore/build/protos/google/rpc/status.proto
generated
vendored
Normal file
94
node_modules/@google-cloud/firestore/build/protos/google/rpc/status.proto
generated
vendored
Normal file
@ -0,0 +1,94 @@
|
||||
// Copyright 2017 Google Inc.
|
||||
//
|
||||
// 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.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.rpc;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/rpc/status;status";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "StatusProto";
|
||||
option java_package = "com.google.rpc";
|
||||
option objc_class_prefix = "RPC";
|
||||
|
||||
// The `Status` type defines a logical error model that is suitable for
|
||||
// different programming environments, including REST APIs and RPC APIs. It is
|
||||
// used by [gRPC](https://github.com/grpc). The error model is designed to be:
|
||||
//
|
||||
// - Simple to use and understand for most users
|
||||
// - Flexible enough to meet unexpected needs
|
||||
//
|
||||
// # Overview
|
||||
//
|
||||
// The `Status` message contains three pieces of data: error code, error
|
||||
// message, and error details. The error code should be an enum value of
|
||||
// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes
|
||||
// if needed. The error message should be a developer-facing English message
|
||||
// that helps developers *understand* and *resolve* the error. If a localized
|
||||
// user-facing error message is needed, put the localized message in the error
|
||||
// details or localize it in the client. The optional error details may contain
|
||||
// arbitrary information about the error. There is a predefined set of error
|
||||
// detail types in the package `google.rpc` that can be used for common error
|
||||
// conditions.
|
||||
//
|
||||
// # Language mapping
|
||||
//
|
||||
// The `Status` message is the logical representation of the error model, but it
|
||||
// is not necessarily the actual wire format. When the `Status` message is
|
||||
// exposed in different client libraries and different wire protocols, it can be
|
||||
// mapped differently. For example, it will likely be mapped to some exceptions
|
||||
// in Java, but more likely mapped to some error codes in C.
|
||||
//
|
||||
// # Other uses
|
||||
//
|
||||
// The error model and the `Status` message can be used in a variety of
|
||||
// environments, either with or without APIs, to provide a
|
||||
// consistent developer experience across different environments.
|
||||
//
|
||||
// Example uses of this error model include:
|
||||
//
|
||||
// - Partial errors. If a service needs to return partial errors to the client,
|
||||
// it may embed the `Status` in the normal response to indicate the partial
|
||||
// errors.
|
||||
//
|
||||
// - Workflow errors. A typical workflow has multiple steps. Each step may
|
||||
// have a `Status` message for error reporting.
|
||||
//
|
||||
// - Batch operations. If a client uses batch request and batch response, the
|
||||
// `Status` message should be used directly inside batch response, one for
|
||||
// each error sub-response.
|
||||
//
|
||||
// - Asynchronous operations. If an API call embeds asynchronous operation
|
||||
// results in its response, the status of those operations should be
|
||||
// represented directly using the `Status` message.
|
||||
//
|
||||
// - Logging. If some API errors are stored in logs, the message `Status` could
|
||||
// be used directly after any stripping needed for security/privacy reasons.
|
||||
message Status {
|
||||
// The status code, which should be an enum value of
|
||||
// [google.rpc.Code][google.rpc.Code].
|
||||
int32 code = 1;
|
||||
|
||||
// A developer-facing error message, which should be in English. Any
|
||||
// user-facing error message should be localized and sent in the
|
||||
// [google.rpc.Status.details][google.rpc.Status.details] field, or localized
|
||||
// by the client.
|
||||
string message = 2;
|
||||
|
||||
// A list of messages that carry the error details. There is a common set of
|
||||
// message types for APIs to use.
|
||||
repeated google.protobuf.Any details = 3;
|
||||
}
|
39
node_modules/@google-cloud/firestore/build/protos/google/type/latlng.proto
generated
vendored
Normal file
39
node_modules/@google-cloud/firestore/build/protos/google/type/latlng.proto
generated
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
// 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.
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.type;
|
||||
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "google.golang.org/genproto/googleapis/type/latlng;latlng";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "LatLngProto";
|
||||
option java_package = "com.google.type";
|
||||
option objc_class_prefix = "GTP";
|
||||
|
||||
|
||||
// An object representing a latitude/longitude pair. This is expressed as a pair
|
||||
// of doubles representing degrees latitude and degrees longitude. Unless
|
||||
// specified otherwise, this must conform to the
|
||||
// <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
|
||||
// standard</a>. Values must be within normalized ranges.
|
||||
message LatLng {
|
||||
// The latitude in degrees. It must be in the range [-90.0, +90.0].
|
||||
double latitude = 1;
|
||||
|
||||
// The longitude in degrees. It must be in the range [-180.0, +180.0].
|
||||
double longitude = 2;
|
||||
}
|
2484
node_modules/@google-cloud/firestore/build/protos/protos.json
generated
vendored
Normal file
2484
node_modules/@google-cloud/firestore/build/protos/protos.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
82
node_modules/@google-cloud/firestore/build/protos/update.sh
generated
vendored
Normal file
82
node_modules/@google-cloud/firestore/build/protos/update.sh
generated
vendored
Normal file
@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2018 Google Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
# Variables
|
||||
PROTOS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
WORK_DIR=`mktemp -d`
|
||||
|
||||
# deletes the temp directory on exit
|
||||
function cleanup {
|
||||
rm -rf "$WORK_DIR"
|
||||
echo "Deleted temp working directory $WORK_DIR"
|
||||
}
|
||||
|
||||
# register the cleanup function to be called on the EXIT signal
|
||||
trap cleanup EXIT
|
||||
|
||||
# Capture location of pbjs / pbts before we pushd.
|
||||
PBJS="$(npm bin)/pbjs"
|
||||
PBTS="$(npm bin)/pbts"
|
||||
|
||||
# Enter work dir
|
||||
pushd "$WORK_DIR"
|
||||
|
||||
# Clone necessary git repos.
|
||||
git clone https://github.com/googleapis/googleapis.git
|
||||
git clone https://github.com/google/protobuf.git
|
||||
|
||||
# Copy necessary protos.
|
||||
mkdir -p "${PROTOS_DIR}/google/api"
|
||||
cp googleapis/google/api/{annotations.proto,http.proto} \
|
||||
"${PROTOS_DIR}/google/api/"
|
||||
|
||||
mkdir -p "${PROTOS_DIR}/google/firestore/v1"
|
||||
cp googleapis/google/firestore/v1/*.proto \
|
||||
"${PROTOS_DIR}/google/firestore/v1/"
|
||||
|
||||
mkdir -p "${PROTOS_DIR}/google/longrunning"
|
||||
cp googleapis/google/longrunning/operations.proto \
|
||||
"${PROTOS_DIR}/google/longrunning/"
|
||||
|
||||
mkdir -p "${PROTOS_DIR}/google/rpc"
|
||||
cp googleapis/google/rpc/status.proto \
|
||||
"${PROTOS_DIR}/google/rpc/"
|
||||
|
||||
mkdir -p "${PROTOS_DIR}/google/type"
|
||||
cp googleapis/google/type/latlng.proto \
|
||||
"${PROTOS_DIR}/google/type/"
|
||||
|
||||
mkdir -p "${PROTOS_DIR}/google/protobuf"
|
||||
cp protobuf/src/google/protobuf/{any,empty,field_mask,struct,timestamp,wrappers}.proto \
|
||||
"${PROTOS_DIR}/google/protobuf/"
|
||||
|
||||
# Generate the Protobuf typings
|
||||
"${PBJS}" --proto_path=. --js_out=import_style=commonjs,binary:library \
|
||||
--target=static --no-create --no-encode --no-decode --no-verify \
|
||||
--no-convert --no-delimited --force-enum-string --force-number -o \
|
||||
firestore_proto_api.js "${PROTOS_DIR}/google/firestore/v1/*.proto" \
|
||||
"${PROTOS_DIR}/google/protobuf/*.proto" "${PROTOS_DIR}/google/type/*.proto" \
|
||||
"${PROTOS_DIR}/google/rpc/*.proto" "${PROTOS_DIR}/google/api/*.proto" \
|
||||
"${PROTOS_DIR}/google/longrunning/*.proto"
|
||||
"${PBTS}" -o firestore_proto_api.d.ts firestore_proto_api.js
|
||||
|
||||
# Copy typings into source repo
|
||||
cp {firestore_proto_api.d.ts,firestore_proto_api.js} ${PROTOS_DIR}
|
||||
|
||||
popd
|
189
node_modules/@google-cloud/firestore/build/src/backoff.js
generated
vendored
Normal file
189
node_modules/@google-cloud/firestore/build/src/backoff.js
generated
vendored
Normal file
@ -0,0 +1,189 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2017 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const logger_1 = require("./logger");
|
||||
/*
|
||||
* @module firestore/backoff
|
||||
* @private
|
||||
*
|
||||
* Contains backoff logic to facilitate RPC error handling. This class derives
|
||||
* its implementation from the Firestore Mobile Web Client.
|
||||
*
|
||||
* @see https://github.com/firebase/firebase-js-sdk/blob/master/packages/firestore/src/remote/backoff.ts
|
||||
*/
|
||||
/*!
|
||||
* The default initial backoff time in milliseconds after an error.
|
||||
* Set to 1s according to https://cloud.google.com/apis/design/errors.
|
||||
*/
|
||||
const DEFAULT_BACKOFF_INITIAL_DELAY_MS = 1000;
|
||||
/*!
|
||||
* The default maximum backoff time in milliseconds.
|
||||
*/
|
||||
const DEFAULT_BACKOFF_MAX_DELAY_MS = 60 * 1000;
|
||||
/*!
|
||||
* The default factor to increase the backup by after each failed attempt.
|
||||
*/
|
||||
const DEFAULT_BACKOFF_FACTOR = 1.5;
|
||||
/*!
|
||||
* The default jitter to distribute the backoff attempts by (0 means no
|
||||
* randomization, 1.0 means +/-50% randomization).
|
||||
*/
|
||||
const DEFAULT_JITTER_FACTOR = 1.0;
|
||||
/*!
|
||||
* The maximum number of retries that will be attempted by backoff
|
||||
* before stopping all retry attempts.
|
||||
*/
|
||||
exports.MAX_RETRY_ATTEMPTS = 10;
|
||||
/*!
|
||||
* The timeout handler used by `ExponentialBackoff`.
|
||||
*/
|
||||
let delayExecution = setTimeout;
|
||||
/**
|
||||
* Allows overriding of the timeout handler used by the exponential backoff
|
||||
* implementation. If not invoked, we default to `setTimeout()`.
|
||||
*
|
||||
* Used only in testing.
|
||||
*
|
||||
* @private
|
||||
* @param {function} handler A handler than matches the API of `setTimeout()`.
|
||||
*/
|
||||
function setTimeoutHandler(handler) {
|
||||
delayExecution = handler;
|
||||
}
|
||||
exports.setTimeoutHandler = setTimeoutHandler;
|
||||
/**
|
||||
* A helper for running delayed tasks following an exponential backoff curve
|
||||
* between attempts.
|
||||
*
|
||||
* Each delay is made up of a "base" delay which follows the exponential
|
||||
* backoff curve, and a "jitter" (+/- 50% by default) that is calculated and
|
||||
* added to the base delay. This prevents clients from accidentally
|
||||
* synchronizing their delays causing spikes of load to the backend.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class ExponentialBackoff {
|
||||
constructor(options = {}) {
|
||||
/**
|
||||
* The number of retries that has been attempted.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
this._retryCount = 0;
|
||||
/**
|
||||
* The backoff delay of the current attempt.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
this.currentBaseMs = 0;
|
||||
/**
|
||||
* Whether we are currently waiting for backoff to complete.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
this.awaitingBackoffCompletion = false;
|
||||
this.initialDelayMs =
|
||||
options.initialDelayMs !== undefined
|
||||
? options.initialDelayMs
|
||||
: DEFAULT_BACKOFF_INITIAL_DELAY_MS;
|
||||
this.backoffFactor =
|
||||
options.backoffFactor !== undefined
|
||||
? options.backoffFactor
|
||||
: DEFAULT_BACKOFF_FACTOR;
|
||||
this.maxDelayMs =
|
||||
options.maxDelayMs !== undefined
|
||||
? options.maxDelayMs
|
||||
: DEFAULT_BACKOFF_MAX_DELAY_MS;
|
||||
this.jitterFactor =
|
||||
options.jitterFactor !== undefined
|
||||
? options.jitterFactor
|
||||
: DEFAULT_JITTER_FACTOR;
|
||||
}
|
||||
/**
|
||||
* Resets the backoff delay and retry count.
|
||||
*
|
||||
* The very next backoffAndWait() will have no delay. If it is called again
|
||||
* (i.e. due to an error), initialDelayMs (plus jitter) will be used, and
|
||||
* subsequent ones will increase according to the backoffFactor.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
reset() {
|
||||
this._retryCount = 0;
|
||||
this.currentBaseMs = 0;
|
||||
}
|
||||
/**
|
||||
* Resets the backoff delay to the maximum delay (e.g. for use after a
|
||||
* RESOURCE_EXHAUSTED error).
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
resetToMax() {
|
||||
this.currentBaseMs = this.maxDelayMs;
|
||||
}
|
||||
/**
|
||||
* Returns a promise that resolves after currentDelayMs, and increases the
|
||||
* delay for any subsequent attempts.
|
||||
*
|
||||
* @return A Promise that resolves when the current delay elapsed.
|
||||
* @private
|
||||
*/
|
||||
backoffAndWait() {
|
||||
if (this.awaitingBackoffCompletion) {
|
||||
return Promise.reject(new Error('A backoff operation is already in progress.'));
|
||||
}
|
||||
if (this.retryCount > exports.MAX_RETRY_ATTEMPTS) {
|
||||
return Promise.reject(new Error('Exceeded maximum number of retries allowed.'));
|
||||
}
|
||||
// First schedule using the current base (which may be 0 and should be
|
||||
// honored as such).
|
||||
const delayWithJitterMs = this.currentBaseMs + this.jitterDelayMs();
|
||||
if (this.currentBaseMs > 0) {
|
||||
logger_1.logger('ExponentialBackoff.backoffAndWait', null, `Backing off for ${delayWithJitterMs} ms ` +
|
||||
`(base delay: ${this.currentBaseMs} ms)`);
|
||||
}
|
||||
// Apply backoff factor to determine next delay and ensure it is within
|
||||
// bounds.
|
||||
this.currentBaseMs *= this.backoffFactor;
|
||||
this.currentBaseMs = Math.max(this.currentBaseMs, this.initialDelayMs);
|
||||
this.currentBaseMs = Math.min(this.currentBaseMs, this.maxDelayMs);
|
||||
this._retryCount += 1;
|
||||
return new Promise(resolve => {
|
||||
this.awaitingBackoffCompletion = true;
|
||||
delayExecution(() => {
|
||||
this.awaitingBackoffCompletion = false;
|
||||
resolve();
|
||||
}, delayWithJitterMs);
|
||||
});
|
||||
}
|
||||
// Visible for testing.
|
||||
get retryCount() {
|
||||
return this._retryCount;
|
||||
}
|
||||
/**
|
||||
* Returns a randomized "jitter" delay based on the current base and jitter
|
||||
* factor.
|
||||
*
|
||||
* @returns {number} The jitter to apply based on the current delay.
|
||||
* @private
|
||||
*/
|
||||
jitterDelayMs() {
|
||||
return (Math.random() - 0.5) * this.jitterFactor * this.currentBaseMs;
|
||||
}
|
||||
}
|
||||
exports.ExponentialBackoff = ExponentialBackoff;
|
||||
//# sourceMappingURL=backoff.js.map
|
212
node_modules/@google-cloud/firestore/build/src/convert.js
generated
vendored
Normal file
212
node_modules/@google-cloud/firestore/build/src/convert.js
generated
vendored
Normal file
@ -0,0 +1,212 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2019 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const validate_1 = require("./validate");
|
||||
/*!
|
||||
* @module firestore/convert
|
||||
* @private
|
||||
*
|
||||
* This module contains utility functions to convert
|
||||
* `firestore.v1.Documents` from Proto3 JSON to their equivalent
|
||||
* representation in Protobuf JS. Protobuf JS is the only encoding supported by
|
||||
* this client, and dependencies that use Proto3 JSON (such as the Google Cloud
|
||||
* Functions SDK) are supported through this conversion and its usage in
|
||||
* {@see Firestore#snapshot_}.
|
||||
*/
|
||||
/**
|
||||
* Converts an ISO 8601 or google.protobuf.Timestamp proto into Protobuf JS.
|
||||
*
|
||||
* @private
|
||||
* @param timestampValue The value to convert.
|
||||
* @param argumentName The argument name to use in the error message if the
|
||||
* conversion fails. If omitted, 'timestampValue' is used.
|
||||
* @return The value as expected by Protobuf JS or undefined if no input was
|
||||
* provided.
|
||||
*/
|
||||
function timestampFromJson(timestampValue, argumentName) {
|
||||
let timestampProto;
|
||||
if (typeof timestampValue === 'string') {
|
||||
const date = new Date(timestampValue);
|
||||
const seconds = Math.floor(date.getTime() / 1000);
|
||||
let nanos = 0;
|
||||
if (timestampValue.length > 20) {
|
||||
const nanoString = timestampValue.substring(20, timestampValue.length - 1);
|
||||
const trailingZeroes = 9 - nanoString.length;
|
||||
nanos = Number(nanoString) * Math.pow(10, trailingZeroes);
|
||||
}
|
||||
if (isNaN(seconds) || isNaN(nanos)) {
|
||||
argumentName = argumentName || 'timestampValue';
|
||||
throw new Error(`Specify a valid ISO 8601 timestamp for "${argumentName}".`);
|
||||
}
|
||||
timestampProto = {
|
||||
seconds: seconds || undefined,
|
||||
nanos: nanos || undefined,
|
||||
};
|
||||
}
|
||||
else if (timestampValue !== undefined) {
|
||||
validate_1.validateObject('timestampValue', timestampValue);
|
||||
timestampProto = {
|
||||
seconds: timestampValue.seconds || undefined,
|
||||
nanos: timestampValue.nanos || undefined,
|
||||
};
|
||||
}
|
||||
return timestampProto;
|
||||
}
|
||||
exports.timestampFromJson = timestampFromJson;
|
||||
/**
|
||||
* Converts a Proto3 JSON 'bytesValue' field into Protobuf JS.
|
||||
*
|
||||
* @private
|
||||
* @param bytesValue The value to convert.
|
||||
* @return The value as expected by Protobuf JS.
|
||||
*/
|
||||
function bytesFromJson(bytesValue) {
|
||||
if (typeof bytesValue === 'string') {
|
||||
return Buffer.from(bytesValue, 'base64');
|
||||
}
|
||||
else {
|
||||
return bytesValue;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Detects 'valueType' from a Proto3 JSON `firestore.v1.Value` proto.
|
||||
*
|
||||
* @private
|
||||
* @param proto The `firestore.v1.Value` proto.
|
||||
* @return The string value for 'valueType'.
|
||||
*/
|
||||
function detectValueType(proto) {
|
||||
if (proto.valueType) {
|
||||
return proto.valueType;
|
||||
}
|
||||
const detectedValues = [];
|
||||
if (proto.stringValue !== undefined) {
|
||||
detectedValues.push('stringValue');
|
||||
}
|
||||
if (proto.booleanValue !== undefined) {
|
||||
detectedValues.push('booleanValue');
|
||||
}
|
||||
if (proto.integerValue !== undefined) {
|
||||
detectedValues.push('integerValue');
|
||||
}
|
||||
if (proto.doubleValue !== undefined) {
|
||||
detectedValues.push('doubleValue');
|
||||
}
|
||||
if (proto.timestampValue !== undefined) {
|
||||
detectedValues.push('timestampValue');
|
||||
}
|
||||
if (proto.referenceValue !== undefined) {
|
||||
detectedValues.push('referenceValue');
|
||||
}
|
||||
if (proto.arrayValue !== undefined) {
|
||||
detectedValues.push('arrayValue');
|
||||
}
|
||||
if (proto.nullValue !== undefined) {
|
||||
detectedValues.push('nullValue');
|
||||
}
|
||||
if (proto.mapValue !== undefined) {
|
||||
detectedValues.push('mapValue');
|
||||
}
|
||||
if (proto.geoPointValue !== undefined) {
|
||||
detectedValues.push('geoPointValue');
|
||||
}
|
||||
if (proto.bytesValue !== undefined) {
|
||||
detectedValues.push('bytesValue');
|
||||
}
|
||||
if (detectedValues.length !== 1) {
|
||||
throw new Error(`Unable to infer type value fom '${JSON.stringify(proto)}'.`);
|
||||
}
|
||||
return detectedValues[0];
|
||||
}
|
||||
exports.detectValueType = detectValueType;
|
||||
/**
|
||||
* Converts a `firestore.v1.Value` in Proto3 JSON encoding into the
|
||||
* Protobuf JS format expected by this client.
|
||||
*
|
||||
* @private
|
||||
* @param fieldValue The `firestore.v1.Value` in Proto3 JSON format.
|
||||
* @return The `firestore.v1.Value` in Protobuf JS format.
|
||||
*/
|
||||
function valueFromJson(fieldValue) {
|
||||
const valueType = detectValueType(fieldValue);
|
||||
switch (valueType) {
|
||||
case 'timestampValue':
|
||||
return {
|
||||
timestampValue: timestampFromJson(fieldValue.timestampValue),
|
||||
};
|
||||
case 'bytesValue':
|
||||
return {
|
||||
bytesValue: bytesFromJson(fieldValue.bytesValue),
|
||||
};
|
||||
case 'integerValue':
|
||||
return {
|
||||
integerValue: Number(fieldValue.integerValue),
|
||||
};
|
||||
case 'doubleValue':
|
||||
return {
|
||||
doubleValue: Number(fieldValue.doubleValue),
|
||||
};
|
||||
case 'arrayValue': {
|
||||
const arrayValue = [];
|
||||
if (Array.isArray(fieldValue.arrayValue.values)) {
|
||||
for (const value of fieldValue.arrayValue.values) {
|
||||
arrayValue.push(valueFromJson(value));
|
||||
}
|
||||
}
|
||||
return {
|
||||
arrayValue: {
|
||||
values: arrayValue,
|
||||
},
|
||||
};
|
||||
}
|
||||
case 'mapValue': {
|
||||
const mapValue = {};
|
||||
const fields = fieldValue.mapValue.fields;
|
||||
if (fields) {
|
||||
for (const prop of Object.keys(fields)) {
|
||||
mapValue[prop] = valueFromJson(fieldValue.mapValue.fields[prop]);
|
||||
}
|
||||
}
|
||||
return {
|
||||
mapValue: {
|
||||
fields: mapValue,
|
||||
},
|
||||
};
|
||||
}
|
||||
default:
|
||||
return fieldValue;
|
||||
}
|
||||
}
|
||||
exports.valueFromJson = valueFromJson;
|
||||
/**
|
||||
* Converts a map of IValues in Proto3 JSON encoding into the Protobuf JS format
|
||||
* expected by this client. This conversion creates a copy of the underlying
|
||||
* fields.
|
||||
*
|
||||
* @private
|
||||
* @param document An object with IValues in Proto3 JSON format.
|
||||
* @return The object in Protobuf JS format.
|
||||
*/
|
||||
function fieldsFromJson(document) {
|
||||
const result = {};
|
||||
for (const prop of Object.keys(document)) {
|
||||
result[prop] = valueFromJson(document[prop]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
exports.fieldsFromJson = fieldsFromJson;
|
||||
//# sourceMappingURL=convert.js.map
|
166
node_modules/@google-cloud/firestore/build/src/document-change.js
generated
vendored
Normal file
166
node_modules/@google-cloud/firestore/build/src/document-change.js
generated
vendored
Normal file
@ -0,0 +1,166 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
/**
|
||||
* A DocumentChange represents a change to the documents matching a query.
|
||||
* It contains the document affected and the type of change that occurred.
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class DocumentChange {
|
||||
/**
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param {string} type 'added' | 'removed' | 'modified'.
|
||||
* @param {QueryDocumentSnapshot} document The document.
|
||||
* @param {number} oldIndex The index in the documents array prior to this
|
||||
* change.
|
||||
* @param {number} newIndex The index in the documents array after this
|
||||
* change.
|
||||
*/
|
||||
constructor(type, document, oldIndex, newIndex) {
|
||||
this._type = type;
|
||||
this._document = document;
|
||||
this._oldIndex = oldIndex;
|
||||
this._newIndex = newIndex;
|
||||
}
|
||||
/**
|
||||
* The type of change ('added', 'modified', or 'removed').
|
||||
*
|
||||
* @type {string}
|
||||
* @name DocumentChange#type
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col').where('foo', '==', 'bar');
|
||||
* let docsArray = [];
|
||||
*
|
||||
* let unsubscribe = query.onSnapshot(querySnapshot => {
|
||||
* for (let change of querySnapshot.docChanges) {
|
||||
* console.log(`Type of change is ${change.type}`);
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* // Remove this listener.
|
||||
* unsubscribe();
|
||||
*/
|
||||
get type() {
|
||||
return this._type;
|
||||
}
|
||||
/**
|
||||
* The document affected by this change.
|
||||
*
|
||||
* @type {QueryDocumentSnapshot}
|
||||
* @name DocumentChange#doc
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col').where('foo', '==', 'bar');
|
||||
*
|
||||
* let unsubscribe = query.onSnapshot(querySnapshot => {
|
||||
* for (let change of querySnapshot.docChanges) {
|
||||
* console.log(change.doc.data());
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* // Remove this listener.
|
||||
* unsubscribe();
|
||||
*/
|
||||
get doc() {
|
||||
return this._document;
|
||||
}
|
||||
/**
|
||||
* The index of the changed document in the result set immediately prior to
|
||||
* this DocumentChange (i.e. supposing that all prior DocumentChange objects
|
||||
* have been applied). Is -1 for 'added' events.
|
||||
*
|
||||
* @type {number}
|
||||
* @name DocumentChange#oldIndex
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col').where('foo', '==', 'bar');
|
||||
* let docsArray = [];
|
||||
*
|
||||
* let unsubscribe = query.onSnapshot(querySnapshot => {
|
||||
* for (let change of querySnapshot.docChanges) {
|
||||
* if (change.oldIndex !== -1) {
|
||||
* docsArray.splice(change.oldIndex, 1);
|
||||
* }
|
||||
* if (change.newIndex !== -1) {
|
||||
* docsArray.splice(change.newIndex, 0, change.doc);
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* // Remove this listener.
|
||||
* unsubscribe();
|
||||
*/
|
||||
get oldIndex() {
|
||||
return this._oldIndex;
|
||||
}
|
||||
/**
|
||||
* The index of the changed document in the result set immediately after
|
||||
* this DocumentChange (i.e. supposing that all prior DocumentChange
|
||||
* objects and the current DocumentChange object have been applied).
|
||||
* Is -1 for 'removed' events.
|
||||
*
|
||||
* @type {number}
|
||||
* @name DocumentChange#newIndex
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col').where('foo', '==', 'bar');
|
||||
* let docsArray = [];
|
||||
*
|
||||
* let unsubscribe = query.onSnapshot(querySnapshot => {
|
||||
* for (let change of querySnapshot.docChanges) {
|
||||
* if (change.oldIndex !== -1) {
|
||||
* docsArray.splice(change.oldIndex, 1);
|
||||
* }
|
||||
* if (change.newIndex !== -1) {
|
||||
* docsArray.splice(change.newIndex, 0, change.doc);
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* // Remove this listener.
|
||||
* unsubscribe();
|
||||
*/
|
||||
get newIndex() {
|
||||
return this._newIndex;
|
||||
}
|
||||
/**
|
||||
* Returns true if the data in this `DocumentChange` is equal to the provided
|
||||
* value.
|
||||
*
|
||||
* @param {*} other The value to compare against.
|
||||
* @return true if this `DocumentChange` is equal to the provided value.
|
||||
*/
|
||||
isEqual(other) {
|
||||
if (this === other) {
|
||||
return true;
|
||||
}
|
||||
return (other instanceof DocumentChange &&
|
||||
this._type === other._type &&
|
||||
this._oldIndex === other._oldIndex &&
|
||||
this._newIndex === other._newIndex &&
|
||||
this._document.isEqual(other._document));
|
||||
}
|
||||
}
|
||||
exports.DocumentChange = DocumentChange;
|
||||
//# sourceMappingURL=document-change.js.map
|
884
node_modules/@google-cloud/firestore/build/src/document.js
generated
vendored
Normal file
884
node_modules/@google-cloud/firestore/build/src/document.js
generated
vendored
Normal file
@ -0,0 +1,884 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2019 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const deepEqual = require('deep-equal');
|
||||
const assert = require("assert");
|
||||
const field_value_1 = require("./field-value");
|
||||
const path_1 = require("./path");
|
||||
const serializer_1 = require("./serializer");
|
||||
const util_1 = require("./util");
|
||||
/**
|
||||
* Returns a builder for DocumentSnapshot and QueryDocumentSnapshot instances.
|
||||
* Invoke `.build()' to assemble the final snapshot.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class DocumentSnapshotBuilder {
|
||||
/**
|
||||
* Builds the DocumentSnapshot.
|
||||
*
|
||||
* @private
|
||||
* @returns Returns either a QueryDocumentSnapshot (if `fieldsProto` was
|
||||
* provided) or a DocumentSnapshot.
|
||||
*/
|
||||
build() {
|
||||
assert((this.fieldsProto !== undefined) === (this.createTime !== undefined), 'Create time should be set iff document exists.');
|
||||
assert((this.fieldsProto !== undefined) === (this.updateTime !== undefined), 'Update time should be set iff document exists.');
|
||||
return this.fieldsProto
|
||||
? new QueryDocumentSnapshot(this.ref, this.fieldsProto, this.readTime, this.createTime, this.updateTime)
|
||||
: new DocumentSnapshot(this.ref, undefined, this.readTime);
|
||||
}
|
||||
}
|
||||
exports.DocumentSnapshotBuilder = DocumentSnapshotBuilder;
|
||||
/**
|
||||
* A DocumentSnapshot is an immutable representation for a document in a
|
||||
* Firestore database. The data can be extracted with
|
||||
* [data()]{@link DocumentSnapshot#data} or
|
||||
* [get(fieldPath)]{@link DocumentSnapshot#get} to get a
|
||||
* specific field.
|
||||
*
|
||||
* <p>For a DocumentSnapshot that points to a non-existing document, any data
|
||||
* access will return 'undefined'. You can use the
|
||||
* [exists]{@link DocumentSnapshot#exists} property to explicitly verify a
|
||||
* document's existence.
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class DocumentSnapshot {
|
||||
/**
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param ref The reference to the document.
|
||||
* @param fieldsProto The fields of the Firestore `Document` Protobuf backing
|
||||
* this document (or undefined if the document does not exist).
|
||||
* @param readTime The time when this snapshot was read (or undefined if
|
||||
* the document exists only locally).
|
||||
* @param createTime The time when the document was created (or undefined if
|
||||
* the document does not exist).
|
||||
* @param updateTime The time when the document was last updated (or undefined
|
||||
* if the document does not exist).
|
||||
*/
|
||||
constructor(ref, fieldsProto, readTime, createTime, updateTime) {
|
||||
this._ref = ref;
|
||||
this._fieldsProto = fieldsProto;
|
||||
this._serializer = ref.firestore._serializer;
|
||||
this._readTime = readTime;
|
||||
this._createTime = createTime;
|
||||
this._updateTime = updateTime;
|
||||
}
|
||||
/**
|
||||
* Creates a DocumentSnapshot from an object.
|
||||
*
|
||||
* @private
|
||||
* @param ref The reference to the document.
|
||||
* @param obj The object to store in the DocumentSnapshot.
|
||||
* @return The created DocumentSnapshot.
|
||||
*/
|
||||
static fromObject(ref, obj) {
|
||||
const serializer = ref.firestore._serializer;
|
||||
return new DocumentSnapshot(ref, serializer.encodeFields(obj));
|
||||
}
|
||||
/**
|
||||
* Creates a DocumentSnapshot from an UpdateMap.
|
||||
*
|
||||
* This methods expands the top-level field paths in a JavaScript map and
|
||||
* turns { foo.bar : foobar } into { foo { bar : foobar }}
|
||||
*
|
||||
* @private
|
||||
* @param ref The reference to the document.
|
||||
* @param data The field/value map to expand.
|
||||
* @return The created DocumentSnapshot.
|
||||
*/
|
||||
static fromUpdateMap(ref, data) {
|
||||
const serializer = ref.firestore._serializer;
|
||||
/**
|
||||
* Merges 'value' at the field path specified by the path array into
|
||||
* 'target'.
|
||||
*/
|
||||
function merge(target, value, path, pos) {
|
||||
const key = path[pos];
|
||||
const isLast = pos === path.length - 1;
|
||||
if (target[key] === undefined) {
|
||||
if (isLast) {
|
||||
if (value instanceof field_value_1.FieldTransform) {
|
||||
// If there is already data at this path, we need to retain it.
|
||||
// Otherwise, we don't include it in the DocumentSnapshot.
|
||||
return !util_1.isEmpty(target) ? target : null;
|
||||
}
|
||||
// The merge is done.
|
||||
const leafNode = serializer.encodeValue(value);
|
||||
if (leafNode) {
|
||||
target[key] = leafNode;
|
||||
}
|
||||
return target;
|
||||
}
|
||||
else {
|
||||
// We need to expand the target object.
|
||||
const childNode = {
|
||||
mapValue: {
|
||||
fields: {},
|
||||
},
|
||||
};
|
||||
const nestedValue = merge(childNode.mapValue.fields, value, path, pos + 1);
|
||||
if (nestedValue) {
|
||||
childNode.mapValue.fields = nestedValue;
|
||||
target[key] = childNode;
|
||||
return target;
|
||||
}
|
||||
else {
|
||||
return !util_1.isEmpty(target) ? target : null;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
assert(!isLast, "Can't merge current value into a nested object");
|
||||
target[key].mapValue.fields = merge(target[key].mapValue.fields, value, path, pos + 1);
|
||||
return target;
|
||||
}
|
||||
}
|
||||
const res = {};
|
||||
for (const [key, value] of data) {
|
||||
const path = key.toArray();
|
||||
merge(res, value, path, 0);
|
||||
}
|
||||
return new DocumentSnapshot(ref, res);
|
||||
}
|
||||
/**
|
||||
* True if the document exists.
|
||||
*
|
||||
* @type {boolean}
|
||||
* @name DocumentSnapshot#exists
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then((documentSnapshot) => {
|
||||
* if (documentSnapshot.exists) {
|
||||
* console.log(`Data: ${JSON.stringify(documentSnapshot.data())}`);
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
get exists() {
|
||||
return this._fieldsProto !== undefined;
|
||||
}
|
||||
/**
|
||||
* A [DocumentReference]{@link DocumentReference} for the document
|
||||
* stored in this snapshot.
|
||||
*
|
||||
* @type {DocumentReference}
|
||||
* @name DocumentSnapshot#ref
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then((documentSnapshot) => {
|
||||
* if (documentSnapshot.exists) {
|
||||
* console.log(`Found document at '${documentSnapshot.ref.path}'`);
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
get ref() {
|
||||
return this._ref;
|
||||
}
|
||||
/**
|
||||
* The ID of the document for which this DocumentSnapshot contains data.
|
||||
*
|
||||
* @type {string}
|
||||
* @name DocumentSnapshot#id
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then((documentSnapshot) => {
|
||||
* if (documentSnapshot.exists) {
|
||||
* console.log(`Document found with name '${documentSnapshot.id}'`);
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
get id() {
|
||||
return this._ref.id;
|
||||
}
|
||||
/**
|
||||
* The time the document was created. Undefined for documents that don't
|
||||
* exist.
|
||||
*
|
||||
* @type {Timestamp|undefined}
|
||||
* @name DocumentSnapshot#createTime
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(documentSnapshot => {
|
||||
* if (documentSnapshot.exists) {
|
||||
* let createTime = documentSnapshot.createTime;
|
||||
* console.log(`Document created at '${createTime.toDate()}'`);
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
get createTime() {
|
||||
return this._createTime;
|
||||
}
|
||||
/**
|
||||
* The time the document was last updated (at the time the snapshot was
|
||||
* generated). Undefined for documents that don't exist.
|
||||
*
|
||||
* @type {Timestamp|undefined}
|
||||
* @name DocumentSnapshot#updateTime
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(documentSnapshot => {
|
||||
* if (documentSnapshot.exists) {
|
||||
* let updateTime = documentSnapshot.updateTime;
|
||||
* console.log(`Document updated at '${updateTime.toDate()}'`);
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
get updateTime() {
|
||||
return this._updateTime;
|
||||
}
|
||||
/**
|
||||
* The time this snapshot was read.
|
||||
*
|
||||
* @type {Timestamp}
|
||||
* @name DocumentSnapshot#readTime
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(documentSnapshot => {
|
||||
* let readTime = documentSnapshot.readTime;
|
||||
* console.log(`Document read at '${readTime.toDate()}'`);
|
||||
* });
|
||||
*/
|
||||
get readTime() {
|
||||
if (this._readTime === undefined) {
|
||||
throw new Error(`Called 'readTime' on a local document`);
|
||||
}
|
||||
return this._readTime;
|
||||
}
|
||||
/**
|
||||
* Retrieves all fields in the document as an object. Returns 'undefined' if
|
||||
* the document doesn't exist.
|
||||
*
|
||||
* @returns {DocumentData|undefined} An object containing all fields in the
|
||||
* document or 'undefined' if the document doesn't exist.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(documentSnapshot => {
|
||||
* let data = documentSnapshot.data();
|
||||
* console.log(`Retrieved data: ${JSON.stringify(data)}`);
|
||||
* });
|
||||
*/
|
||||
// We deliberately use `any` in the external API to not impose type-checking
|
||||
// on end users.
|
||||
// tslint:disable-next-line no-any
|
||||
data() {
|
||||
// tslint:disable-line no-any
|
||||
const fields = this._fieldsProto;
|
||||
if (fields === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
const obj = {};
|
||||
for (const prop of Object.keys(fields)) {
|
||||
obj[prop] = this._serializer.decodeValue(fields[prop]);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
/**
|
||||
* Retrieves the field specified by `field`.
|
||||
*
|
||||
* @param {string|FieldPath} field The field path
|
||||
* (e.g. 'foo' or 'foo.bar') to a specific field.
|
||||
* @returns {*} The data at the specified field location or undefined if no
|
||||
* such field exists.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.set({ a: { b: 'c' }}).then(() => {
|
||||
* return documentRef.get();
|
||||
* }).then(documentSnapshot => {
|
||||
* let field = documentSnapshot.get('a.b');
|
||||
* console.log(`Retrieved field value: ${field}`);
|
||||
* });
|
||||
*/
|
||||
// We deliberately use `any` in the external API to not impose type-checking
|
||||
// on end users.
|
||||
// tslint:disable-next-line no-any
|
||||
get(field) {
|
||||
// tslint:disable-line no-any
|
||||
path_1.validateFieldPath('field', field);
|
||||
const protoField = this.protoField(field);
|
||||
if (protoField === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
return this._serializer.decodeValue(protoField);
|
||||
}
|
||||
/**
|
||||
* Retrieves the field specified by 'fieldPath' in its Protobuf JS
|
||||
* representation.
|
||||
*
|
||||
* @private
|
||||
* @param field The path (e.g. 'foo' or 'foo.bar') to a specific field.
|
||||
* @returns The Protobuf-encoded data at the specified field location or
|
||||
* undefined if no such field exists.
|
||||
*/
|
||||
protoField(field) {
|
||||
let fields = this._fieldsProto;
|
||||
if (fields === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
const components = path_1.FieldPath.fromArgument(field).toArray();
|
||||
while (components.length > 1) {
|
||||
fields = fields[components.shift()];
|
||||
if (!fields || !fields.mapValue) {
|
||||
return undefined;
|
||||
}
|
||||
fields = fields.mapValue.fields;
|
||||
}
|
||||
return fields[components[0]];
|
||||
}
|
||||
/**
|
||||
* Checks whether this DocumentSnapshot contains any fields.
|
||||
*
|
||||
* @private
|
||||
* @return {boolean}
|
||||
*/
|
||||
get isEmpty() {
|
||||
return this._fieldsProto === undefined || util_1.isEmpty(this._fieldsProto);
|
||||
}
|
||||
/**
|
||||
* Convert a document snapshot to the Firestore 'Document' Protobuf.
|
||||
*
|
||||
* @private
|
||||
* @returns The document in the format the API expects.
|
||||
*/
|
||||
toProto() {
|
||||
return {
|
||||
update: {
|
||||
name: this._ref.formattedName,
|
||||
fields: this._fieldsProto,
|
||||
},
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Returns true if the document's data and path in this `DocumentSnapshot` is
|
||||
* equal to the provided value.
|
||||
*
|
||||
* @param {*} other The value to compare against.
|
||||
* @return {boolean} true if this `DocumentSnapshot` is equal to the provided
|
||||
* value.
|
||||
*/
|
||||
isEqual(other) {
|
||||
// Since the read time is different on every document read, we explicitly
|
||||
// ignore all document metadata in this comparison.
|
||||
return (this === other ||
|
||||
(other instanceof DocumentSnapshot &&
|
||||
this._ref.isEqual(other._ref) &&
|
||||
deepEqual(this._fieldsProto, other._fieldsProto, { strict: true })));
|
||||
}
|
||||
}
|
||||
exports.DocumentSnapshot = DocumentSnapshot;
|
||||
/**
|
||||
* A QueryDocumentSnapshot contains data read from a document in your
|
||||
* Firestore database as part of a query. The document is guaranteed to exist
|
||||
* and its data can be extracted with [data()]{@link QueryDocumentSnapshot#data}
|
||||
* or [get()]{@link DocumentSnapshot#get} to get a specific field.
|
||||
*
|
||||
* A QueryDocumentSnapshot offers the same API surface as a
|
||||
* {@link DocumentSnapshot}. Since query results contain only existing
|
||||
* documents, the [exists]{@link DocumentSnapshot#exists} property will
|
||||
* always be true and [data()]{@link QueryDocumentSnapshot#data} will never
|
||||
* return 'undefined'.
|
||||
*
|
||||
* @class
|
||||
* @extends DocumentSnapshot
|
||||
*/
|
||||
class QueryDocumentSnapshot extends DocumentSnapshot {
|
||||
/**
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param ref The reference to the document.
|
||||
* @param fieldsProto The fields of the Firestore `Document` Protobuf backing
|
||||
* this document.
|
||||
* @param readTime The time when this snapshot was read.
|
||||
* @param createTime The time when the document was created.
|
||||
* @param updateTime The time when the document was last updated.
|
||||
*/
|
||||
constructor(ref, fieldsProto, readTime, createTime, updateTime) {
|
||||
super(ref, fieldsProto, readTime, createTime, updateTime);
|
||||
}
|
||||
/**
|
||||
* The time the document was created.
|
||||
*
|
||||
* @type {Timestamp}
|
||||
* @name QueryDocumentSnapshot#createTime
|
||||
* @readonly
|
||||
* @override
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col');
|
||||
*
|
||||
* query.get().forEach(snapshot => {
|
||||
* console.log(`Document created at '${snapshot.createTime.toDate()}'`);
|
||||
* });
|
||||
*/
|
||||
get createTime() {
|
||||
return super.createTime;
|
||||
}
|
||||
/**
|
||||
* The time the document was last updated (at the time the snapshot was
|
||||
* generated).
|
||||
*
|
||||
* @type {Timestamp}
|
||||
* @name QueryDocumentSnapshot#updateTime
|
||||
* @readonly
|
||||
* @override
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col');
|
||||
*
|
||||
* query.get().forEach(snapshot => {
|
||||
* console.log(`Document updated at '${snapshot.updateTime.toDate()}'`);
|
||||
* });
|
||||
*/
|
||||
get updateTime() {
|
||||
return super.updateTime;
|
||||
}
|
||||
/**
|
||||
* Retrieves all fields in the document as an object.
|
||||
*
|
||||
* @override
|
||||
*
|
||||
* @returns {DocumentData} An object containing all fields in the document.
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col');
|
||||
*
|
||||
* query.get().forEach(documentSnapshot => {
|
||||
* let data = documentSnapshot.data();
|
||||
* console.log(`Retrieved data: ${JSON.stringify(data)}`);
|
||||
* });
|
||||
*/
|
||||
data() {
|
||||
const data = super.data();
|
||||
if (!data) {
|
||||
throw new Error('The data in a QueryDocumentSnapshot should always exist.');
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
exports.QueryDocumentSnapshot = QueryDocumentSnapshot;
|
||||
/**
|
||||
* A Firestore Document Mask contains the field paths affected by an update.
|
||||
*
|
||||
* @class
|
||||
* @private
|
||||
*/
|
||||
class DocumentMask {
|
||||
/**
|
||||
* @private
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param fieldPaths The field paths in this mask.
|
||||
*/
|
||||
constructor(fieldPaths) {
|
||||
this._sortedPaths = fieldPaths;
|
||||
this._sortedPaths.sort((a, b) => a.compareTo(b));
|
||||
}
|
||||
/**
|
||||
* Creates a document mask with the field paths of a document.
|
||||
*
|
||||
* @private
|
||||
* @param data A map with fields to modify. Only the keys are used to extract
|
||||
* the document mask.
|
||||
*/
|
||||
static fromUpdateMap(data) {
|
||||
const fieldPaths = [];
|
||||
data.forEach((value, key) => {
|
||||
if (!(value instanceof field_value_1.FieldTransform) || value.includeInDocumentMask) {
|
||||
fieldPaths.push(path_1.FieldPath.fromArgument(key));
|
||||
}
|
||||
});
|
||||
return new DocumentMask(fieldPaths);
|
||||
}
|
||||
/**
|
||||
* Creates a document mask from an array of field paths.
|
||||
*
|
||||
* @private
|
||||
* @param fieldMask A list of field paths.
|
||||
*/
|
||||
static fromFieldMask(fieldMask) {
|
||||
const fieldPaths = [];
|
||||
for (const fieldPath of fieldMask) {
|
||||
fieldPaths.push(path_1.FieldPath.fromArgument(fieldPath));
|
||||
}
|
||||
return new DocumentMask(fieldPaths);
|
||||
}
|
||||
/**
|
||||
* Creates a document mask with the field names of a document.
|
||||
*
|
||||
* @private
|
||||
* @param data An object with fields to modify. Only the keys are used to
|
||||
* extract the document mask.
|
||||
*/
|
||||
static fromObject(data) {
|
||||
const fieldPaths = [];
|
||||
function extractFieldPaths(currentData, currentPath) {
|
||||
let isEmpty = true;
|
||||
for (const key of Object.keys(currentData)) {
|
||||
isEmpty = false;
|
||||
// We don't split on dots since fromObject is called with
|
||||
// DocumentData.
|
||||
const childSegment = new path_1.FieldPath(key);
|
||||
const childPath = currentPath
|
||||
? currentPath.append(childSegment)
|
||||
: childSegment;
|
||||
const value = currentData[key];
|
||||
if (value instanceof field_value_1.FieldTransform) {
|
||||
if (value.includeInDocumentMask) {
|
||||
fieldPaths.push(childPath);
|
||||
}
|
||||
}
|
||||
else if (serializer_1.isPlainObject(value)) {
|
||||
extractFieldPaths(value, childPath);
|
||||
}
|
||||
else {
|
||||
fieldPaths.push(childPath);
|
||||
}
|
||||
}
|
||||
// Add a field path for an explicitly updated empty map.
|
||||
if (currentPath && isEmpty) {
|
||||
fieldPaths.push(currentPath);
|
||||
}
|
||||
}
|
||||
extractFieldPaths(data);
|
||||
return new DocumentMask(fieldPaths);
|
||||
}
|
||||
/**
|
||||
* Returns true if this document mask contains no fields.
|
||||
*
|
||||
* @private
|
||||
* @return {boolean} Whether this document mask is empty.
|
||||
*/
|
||||
get isEmpty() {
|
||||
return this._sortedPaths.length === 0;
|
||||
}
|
||||
/**
|
||||
* Removes the specified values from a sorted field path array.
|
||||
*
|
||||
* @private
|
||||
* @param input A sorted array of FieldPaths.
|
||||
* @param values An array of FieldPaths to remove.
|
||||
*/
|
||||
static removeFromSortedArray(input, values) {
|
||||
for (let i = 0; i < input.length;) {
|
||||
let removed = false;
|
||||
for (const fieldPath of values) {
|
||||
if (input[i].isEqual(fieldPath)) {
|
||||
input.splice(i, 1);
|
||||
removed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!removed) {
|
||||
++i;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Removes the field path specified in 'fieldPaths' from this document mask.
|
||||
*
|
||||
* @private
|
||||
* @param fieldPaths An array of FieldPaths.
|
||||
*/
|
||||
removeFields(fieldPaths) {
|
||||
DocumentMask.removeFromSortedArray(this._sortedPaths, fieldPaths);
|
||||
}
|
||||
/**
|
||||
* Returns whether this document mask contains 'fieldPath'.
|
||||
*
|
||||
* @private
|
||||
* @param fieldPath The field path to test.
|
||||
* @return Whether this document mask contains 'fieldPath'.
|
||||
*/
|
||||
contains(fieldPath) {
|
||||
for (const sortedPath of this._sortedPaths) {
|
||||
const cmp = sortedPath.compareTo(fieldPath);
|
||||
if (cmp === 0) {
|
||||
return true;
|
||||
}
|
||||
else if (cmp > 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Removes all properties from 'data' that are not contained in this document
|
||||
* mask.
|
||||
*
|
||||
* @private
|
||||
* @param data An object to filter.
|
||||
* @return A shallow copy of the object filtered by this document mask.
|
||||
*/
|
||||
applyTo(data) {
|
||||
/*!
|
||||
* Applies this DocumentMask to 'data' and computes the list of field paths
|
||||
* that were specified in the mask but are not present in 'data'.
|
||||
*/
|
||||
const applyDocumentMask = (data) => {
|
||||
const remainingPaths = this._sortedPaths.slice(0);
|
||||
const processObject = (currentData, currentPath) => {
|
||||
let result = null;
|
||||
Object.keys(currentData).forEach(key => {
|
||||
const childPath = currentPath
|
||||
? currentPath.append(key)
|
||||
: new path_1.FieldPath(key);
|
||||
if (this.contains(childPath)) {
|
||||
DocumentMask.removeFromSortedArray(remainingPaths, [childPath]);
|
||||
result = result || {};
|
||||
result[key] = currentData[key];
|
||||
}
|
||||
else if (util_1.isObject(currentData[key])) {
|
||||
const childObject = processObject(currentData[key], childPath);
|
||||
if (childObject) {
|
||||
result = result || {};
|
||||
result[key] = childObject;
|
||||
}
|
||||
}
|
||||
});
|
||||
return result;
|
||||
};
|
||||
// processObject() returns 'null' if the DocumentMask is empty.
|
||||
const filteredData = processObject(data) || {};
|
||||
return {
|
||||
filteredData,
|
||||
remainingPaths,
|
||||
};
|
||||
};
|
||||
const result = applyDocumentMask(data);
|
||||
if (result.remainingPaths.length !== 0) {
|
||||
throw new Error(`Input data is missing for field "${result.remainingPaths[0]}".`);
|
||||
}
|
||||
return result.filteredData;
|
||||
}
|
||||
/**
|
||||
* Converts a document mask to the Firestore 'DocumentMask' Proto.
|
||||
*
|
||||
* @private
|
||||
* @returns A Firestore 'DocumentMask' Proto.
|
||||
*/
|
||||
toProto() {
|
||||
if (this.isEmpty) {
|
||||
return {};
|
||||
}
|
||||
const encodedPaths = [];
|
||||
for (const fieldPath of this._sortedPaths) {
|
||||
encodedPaths.push(fieldPath.formattedName);
|
||||
}
|
||||
return {
|
||||
fieldPaths: encodedPaths,
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.DocumentMask = DocumentMask;
|
||||
/**
|
||||
* A Firestore Document Transform.
|
||||
*
|
||||
* A DocumentTransform contains pending server-side transforms and their
|
||||
* corresponding field paths.
|
||||
*
|
||||
* @private
|
||||
* @class
|
||||
*/
|
||||
class DocumentTransform {
|
||||
/**
|
||||
* @private
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param ref The DocumentReference for this transform.
|
||||
* @param transforms A Map of FieldPaths to FieldTransforms.
|
||||
*/
|
||||
constructor(ref, transforms) {
|
||||
this.ref = ref;
|
||||
this.transforms = transforms;
|
||||
}
|
||||
/**
|
||||
* Generates a DocumentTransform from a JavaScript object.
|
||||
*
|
||||
* @private
|
||||
* @param ref The `DocumentReference` to use for the DocumentTransform.
|
||||
* @param obj The object to extract the transformations from.
|
||||
* @returns The Document Transform.
|
||||
*/
|
||||
static fromObject(ref, obj) {
|
||||
const updateMap = new Map();
|
||||
for (const prop of Object.keys(obj)) {
|
||||
updateMap.set(new path_1.FieldPath(prop), obj[prop]);
|
||||
}
|
||||
return DocumentTransform.fromUpdateMap(ref, updateMap);
|
||||
}
|
||||
/**
|
||||
* Generates a DocumentTransform from an Update Map.
|
||||
*
|
||||
* @private
|
||||
* @param ref The `DocumentReference` to use for the DocumentTransform.
|
||||
* @param data The update data to extract the transformations from.
|
||||
* @returns The Document Transform.
|
||||
*/
|
||||
static fromUpdateMap(ref, data) {
|
||||
const transforms = new Map();
|
||||
function encode_(val, path, allowTransforms) {
|
||||
if (val instanceof field_value_1.FieldTransform && val.includeInDocumentTransform) {
|
||||
if (allowTransforms) {
|
||||
transforms.set(path, val);
|
||||
}
|
||||
else {
|
||||
throw new Error(`${val.methodName}() is not supported inside of array values.`);
|
||||
}
|
||||
}
|
||||
else if (Array.isArray(val)) {
|
||||
for (let i = 0; i < val.length; ++i) {
|
||||
// We need to verify that no array value contains a document transform
|
||||
encode_(val[i], path.append(String(i)), false);
|
||||
}
|
||||
}
|
||||
else if (serializer_1.isPlainObject(val)) {
|
||||
for (const prop of Object.keys(val)) {
|
||||
encode_(val[prop], path.append(new path_1.FieldPath(prop)), allowTransforms);
|
||||
}
|
||||
}
|
||||
}
|
||||
data.forEach((value, key) => {
|
||||
encode_(value, path_1.FieldPath.fromArgument(key), true);
|
||||
});
|
||||
return new DocumentTransform(ref, transforms);
|
||||
}
|
||||
/**
|
||||
* Whether this DocumentTransform contains any actionable transformations.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get isEmpty() {
|
||||
return this.transforms.size === 0;
|
||||
}
|
||||
/**
|
||||
* Returns the array of fields in this DocumentTransform.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get fields() {
|
||||
return Array.from(this.transforms.keys());
|
||||
}
|
||||
/**
|
||||
* Validates the user provided field values in this document transform.
|
||||
* @private
|
||||
*/
|
||||
validate() {
|
||||
this.transforms.forEach(transform => transform.validate());
|
||||
}
|
||||
/**
|
||||
* Converts a document transform to the Firestore 'DocumentTransform' Proto.
|
||||
*
|
||||
* @private
|
||||
* @param serializer The Firestore serializer
|
||||
* @returns A Firestore 'DocumentTransform' Proto or 'null' if this transform
|
||||
* is empty.
|
||||
*/
|
||||
toProto(serializer) {
|
||||
if (this.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
const fieldTransforms = [];
|
||||
for (const [path, transform] of this.transforms) {
|
||||
fieldTransforms.push(transform.toProto(serializer, path));
|
||||
}
|
||||
return {
|
||||
transform: {
|
||||
document: this.ref.formattedName,
|
||||
fieldTransforms,
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.DocumentTransform = DocumentTransform;
|
||||
/**
|
||||
* A Firestore Precondition encapsulates options for database writes.
|
||||
*
|
||||
* @private
|
||||
* @class
|
||||
*/
|
||||
class Precondition {
|
||||
/**
|
||||
* @private
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param options.exists - Whether the referenced document should exist in
|
||||
* Firestore,
|
||||
* @param options.lastUpdateTime - The last update time of the referenced
|
||||
* document in Firestore.
|
||||
* @param options
|
||||
*/
|
||||
constructor(options) {
|
||||
if (options !== undefined) {
|
||||
this._exists = options.exists;
|
||||
this._lastUpdateTime = options.lastUpdateTime;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Generates the Protobuf `Preconditon` object for this precondition.
|
||||
*
|
||||
* @private
|
||||
* @returns The `Preconditon` Protobuf object or 'null' if there are no
|
||||
* preconditions.
|
||||
*/
|
||||
toProto() {
|
||||
if (this.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
const proto = {};
|
||||
if (this._lastUpdateTime !== undefined) {
|
||||
const valueProto = this._lastUpdateTime.toProto();
|
||||
proto.updateTime = valueProto.timestampValue;
|
||||
}
|
||||
else {
|
||||
proto.exists = this._exists;
|
||||
}
|
||||
return proto;
|
||||
}
|
||||
/**
|
||||
* Whether this DocumentTransform contains any enforcement.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get isEmpty() {
|
||||
return this._exists === undefined && !this._lastUpdateTime;
|
||||
}
|
||||
}
|
||||
exports.Precondition = Precondition;
|
||||
//# sourceMappingURL=document.js.map
|
429
node_modules/@google-cloud/firestore/build/src/field-value.js
generated
vendored
Normal file
429
node_modules/@google-cloud/firestore/build/src/field-value.js
generated
vendored
Normal file
@ -0,0 +1,429 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const deepEqual = require('deep-equal');
|
||||
const serializer_1 = require("./serializer");
|
||||
const validate_1 = require("./validate");
|
||||
/**
|
||||
* Sentinel values that can be used when writing documents with set(), create()
|
||||
* or update().
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class FieldValue {
|
||||
/**
|
||||
* @hideconstructor
|
||||
*/
|
||||
constructor() { }
|
||||
/**
|
||||
* Returns a sentinel for use with update() or set() with {merge:true} to mark
|
||||
* a field for deletion.
|
||||
*
|
||||
* @returns {FieldValue} The sentinel value to use in your objects.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
* let data = { a: 'b', c: 'd' };
|
||||
*
|
||||
* documentRef.set(data).then(() => {
|
||||
* return documentRef.update({a: Firestore.FieldValue.delete()});
|
||||
* }).then(() => {
|
||||
* // Document now only contains { c: 'd' }
|
||||
* });
|
||||
*/
|
||||
static delete() {
|
||||
return DeleteTransform.DELETE_SENTINEL;
|
||||
}
|
||||
/**
|
||||
* Returns a sentinel used with set(), create() or update() to include a
|
||||
* server-generated timestamp in the written data.
|
||||
*
|
||||
* @return {FieldValue} The FieldValue sentinel for use in a call to set(),
|
||||
* create() or update().
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.set({
|
||||
* time: Firestore.FieldValue.serverTimestamp()
|
||||
* }).then(() => {
|
||||
* return documentRef.get();
|
||||
* }).then(doc => {
|
||||
* console.log(`Server time set to ${doc.get('time')}`);
|
||||
* });
|
||||
*/
|
||||
static serverTimestamp() {
|
||||
return ServerTimestampTransform.SERVER_TIMESTAMP_SENTINEL;
|
||||
}
|
||||
/**
|
||||
* Returns a special value that can be used with set(), create() or update()
|
||||
* that tells the server to increment the the field's current value by the
|
||||
* given value.
|
||||
*
|
||||
* If either current field value or the operand uses floating point
|
||||
* precision, both values will be interpreted as floating point numbers and
|
||||
* all arithmetic will follow IEEE 754 semantics. Otherwise, integer
|
||||
* precision is kept and the result is capped between -2^63 and 2^63-1.
|
||||
*
|
||||
* If the current field value is not of type 'number', or if the field does
|
||||
* not yet exist, the transformation will set the field to the given value.
|
||||
*
|
||||
* @param {number} n The value to increment by.
|
||||
* @return {FieldValue} The FieldValue sentinel for use in a call to set(),
|
||||
* create() or update().
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.update(
|
||||
* 'counter', Firestore.FieldValue.increment(1)
|
||||
* ).then(() => {
|
||||
* return documentRef.get();
|
||||
* }).then(doc => {
|
||||
* // doc.get('counter') was incremented
|
||||
* });
|
||||
*/
|
||||
static increment(n) {
|
||||
validate_1.validateMinNumberOfArguments('FieldValue.increment', arguments, 1);
|
||||
return new NumericIncrementTransform(n);
|
||||
}
|
||||
/**
|
||||
* Returns a special value that can be used with set(), create() or update()
|
||||
* that tells the server to union the given elements with any array value that
|
||||
* already exists on the server. Each specified element that doesn't already
|
||||
* exist in the array will be added to the end. If the field being modified is
|
||||
* not already an array it will be overwritten with an array containing
|
||||
* exactly the specified elements.
|
||||
*
|
||||
* @param {...*} elements The elements to union into the array.
|
||||
* @return {FieldValue} The FieldValue sentinel for use in a call to set(),
|
||||
* create() or update().
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.update(
|
||||
* 'array', Firestore.FieldValue.arrayUnion('foo')
|
||||
* ).then(() => {
|
||||
* return documentRef.get();
|
||||
* }).then(doc => {
|
||||
* // doc.get('array') contains field 'foo'
|
||||
* });
|
||||
*/
|
||||
static arrayUnion(...elements) {
|
||||
validate_1.validateMinNumberOfArguments('FieldValue.arrayUnion', arguments, 1);
|
||||
return new ArrayUnionTransform(elements);
|
||||
}
|
||||
/**
|
||||
* Returns a special value that can be used with set(), create() or update()
|
||||
* that tells the server to remove the given elements from any array value
|
||||
* that already exists on the server. All instances of each element specified
|
||||
* will be removed from the array. If the field being modified is not already
|
||||
* an array it will be overwritten with an empty array.
|
||||
*
|
||||
* @param {...*} elements The elements to remove from the array.
|
||||
* @return {FieldValue} The FieldValue sentinel for use in a call to set(),
|
||||
* create() or update().
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.update(
|
||||
* 'array', Firestore.FieldValue.arrayRemove('foo')
|
||||
* ).then(() => {
|
||||
* return documentRef.get();
|
||||
* }).then(doc => {
|
||||
* // doc.get('array') no longer contains field 'foo'
|
||||
* });
|
||||
*/
|
||||
static arrayRemove(...elements) {
|
||||
validate_1.validateMinNumberOfArguments('FieldValue.arrayRemove', arguments, 1);
|
||||
return new ArrayRemoveTransform(elements);
|
||||
}
|
||||
/**
|
||||
* Returns true if this `FieldValue` is equal to the provided value.
|
||||
*
|
||||
* @param {*} other The value to compare against.
|
||||
* @return {boolean} true if this `FieldValue` is equal to the provided value.
|
||||
*
|
||||
* @example
|
||||
* let fieldValues = [
|
||||
* Firestore.FieldValue.increment(-1.0),
|
||||
* Firestore.FieldValue.increment(-1),
|
||||
* Firestore.FieldValue.increment(-0.0),
|
||||
* Firestore.FieldValue.increment(-0),
|
||||
* Firestore.FieldValue.increment(0),
|
||||
* Firestore.FieldValue.increment(0.0),
|
||||
* Firestore.FieldValue.increment(1),
|
||||
* Firestore.FieldValue.increment(1.0)
|
||||
* ];
|
||||
*
|
||||
* let equal = 0;
|
||||
* for (let i = 0; i < fieldValues.length; ++i) {
|
||||
* for (let j = i + 1; j < fieldValues.length; ++j) {
|
||||
* if (fieldValues[i].isEqual(fieldValues[j])) {
|
||||
* ++equal;
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* console.log(`Found ${equal} equalities.`);
|
||||
*/
|
||||
isEqual(other) {
|
||||
return this === other;
|
||||
}
|
||||
}
|
||||
exports.FieldValue = FieldValue;
|
||||
/**
|
||||
* An internal interface shared by all field transforms.
|
||||
*
|
||||
* A 'FieldTransform` subclass should implement '.includeInDocumentMask',
|
||||
* '.includeInDocumentTransform' and 'toProto' (if '.includeInDocumentTransform'
|
||||
* is 'true').
|
||||
*
|
||||
* @private
|
||||
* @abstract
|
||||
*/
|
||||
class FieldTransform extends FieldValue {
|
||||
}
|
||||
exports.FieldTransform = FieldTransform;
|
||||
/**
|
||||
* A transform that deletes a field from a Firestore document.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class DeleteTransform extends FieldTransform {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
/**
|
||||
* Deletes are included in document masks.
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentMask() {
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Deletes are are omitted from document transforms.
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentTransform() {
|
||||
return false;
|
||||
}
|
||||
get methodName() {
|
||||
return 'FieldValue.delete';
|
||||
}
|
||||
validate() { }
|
||||
toProto(serializer, fieldPath) {
|
||||
throw new Error('FieldValue.delete() should not be included in a FieldTransform');
|
||||
}
|
||||
}
|
||||
exports.DeleteTransform = DeleteTransform;
|
||||
/**
|
||||
* Sentinel value for a field delete.
|
||||
* @private
|
||||
*/
|
||||
DeleteTransform.DELETE_SENTINEL = new DeleteTransform();
|
||||
/**
|
||||
* A transform that sets a field to the Firestore server time.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class ServerTimestampTransform extends FieldTransform {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
/**
|
||||
* Server timestamps are omitted from document masks.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentMask() {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Server timestamps are included in document transforms.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentTransform() {
|
||||
return true;
|
||||
}
|
||||
get methodName() {
|
||||
return 'FieldValue.serverTimestamp';
|
||||
}
|
||||
validate() { }
|
||||
toProto(serializer, fieldPath) {
|
||||
return {
|
||||
fieldPath: fieldPath.formattedName,
|
||||
setToServerValue: 'REQUEST_TIME',
|
||||
};
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Sentinel value for a server timestamp.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
ServerTimestampTransform.SERVER_TIMESTAMP_SENTINEL = new ServerTimestampTransform();
|
||||
/**
|
||||
* Increments a field value on the backend.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class NumericIncrementTransform extends FieldTransform {
|
||||
constructor(operand) {
|
||||
super();
|
||||
this.operand = operand;
|
||||
}
|
||||
/**
|
||||
* Numeric transforms are omitted from document masks.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentMask() {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Numeric transforms are included in document transforms.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentTransform() {
|
||||
return true;
|
||||
}
|
||||
get methodName() {
|
||||
return 'FieldValue.increment';
|
||||
}
|
||||
validate() {
|
||||
validate_1.validateNumber('FieldValue.increment()', this.operand);
|
||||
}
|
||||
toProto(serializer, fieldPath) {
|
||||
const encodedOperand = serializer.encodeValue(this.operand);
|
||||
return { fieldPath: fieldPath.formattedName, increment: encodedOperand };
|
||||
}
|
||||
isEqual(other) {
|
||||
return (this === other ||
|
||||
(other instanceof NumericIncrementTransform &&
|
||||
this.operand === other.operand));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Transforms an array value via a union operation.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class ArrayUnionTransform extends FieldTransform {
|
||||
constructor(elements) {
|
||||
super();
|
||||
this.elements = elements;
|
||||
}
|
||||
/**
|
||||
* Array transforms are omitted from document masks.
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentMask() {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Array transforms are included in document transforms.
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentTransform() {
|
||||
return true;
|
||||
}
|
||||
get methodName() {
|
||||
return 'FieldValue.arrayUnion';
|
||||
}
|
||||
validate() {
|
||||
for (let i = 0; i < this.elements.length; ++i) {
|
||||
validateArrayElement(i, this.elements[i]);
|
||||
}
|
||||
}
|
||||
toProto(serializer, fieldPath) {
|
||||
const encodedElements = serializer.encodeValue(this.elements).arrayValue;
|
||||
return {
|
||||
fieldPath: fieldPath.formattedName,
|
||||
appendMissingElements: encodedElements,
|
||||
};
|
||||
}
|
||||
isEqual(other) {
|
||||
return (this === other ||
|
||||
(other instanceof ArrayUnionTransform &&
|
||||
deepEqual(this.elements, other.elements, { strict: true })));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Transforms an array value via a remove operation.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class ArrayRemoveTransform extends FieldTransform {
|
||||
constructor(elements) {
|
||||
super();
|
||||
this.elements = elements;
|
||||
}
|
||||
/**
|
||||
* Array transforms are omitted from document masks.
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentMask() {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Array transforms are included in document transforms.
|
||||
* @private
|
||||
*/
|
||||
get includeInDocumentTransform() {
|
||||
return true;
|
||||
}
|
||||
get methodName() {
|
||||
return 'FieldValue.arrayRemove';
|
||||
}
|
||||
validate() {
|
||||
for (let i = 0; i < this.elements.length; ++i) {
|
||||
validateArrayElement(i, this.elements[i]);
|
||||
}
|
||||
}
|
||||
toProto(serializer, fieldPath) {
|
||||
const encodedElements = serializer.encodeValue(this.elements).arrayValue;
|
||||
return {
|
||||
fieldPath: fieldPath.formattedName,
|
||||
removeAllFromArray: encodedElements,
|
||||
};
|
||||
}
|
||||
isEqual(other) {
|
||||
return (this === other ||
|
||||
(other instanceof ArrayRemoveTransform &&
|
||||
deepEqual(this.elements, other.elements, { strict: true })));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Validates that `value` can be used as an element inside of an array. Certain
|
||||
* field values (such as ServerTimestamps) are rejected.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The value to validate.
|
||||
*/
|
||||
function validateArrayElement(arg, value) {
|
||||
serializer_1.validateUserInput(arg, value, 'array element',
|
||||
/*path=*/ { allowDeletes: 'none', allowTransforms: false },
|
||||
/*path=*/ undefined,
|
||||
/*level=*/ 0,
|
||||
/*inArray=*/ true);
|
||||
}
|
||||
//# sourceMappingURL=field-value.js.map
|
101
node_modules/@google-cloud/firestore/build/src/geo-point.js
generated
vendored
Normal file
101
node_modules/@google-cloud/firestore/build/src/geo-point.js
generated
vendored
Normal file
@ -0,0 +1,101 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const validate_1 = require("./validate");
|
||||
/**
|
||||
* An immutable object representing a geographic location in Firestore. The
|
||||
* location is represented as a latitude/longitude pair.
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class GeoPoint {
|
||||
/**
|
||||
* Creates a [GeoPoint]{@link GeoPoint}.
|
||||
*
|
||||
* @param {number} latitude The latitude as a number between -90 and 90.
|
||||
* @param {number} longitude The longitude as a number between -180 and 180.
|
||||
*
|
||||
* @example
|
||||
* let data = {
|
||||
* google: new Firestore.GeoPoint(37.422, 122.084)
|
||||
* };
|
||||
*
|
||||
* firestore.doc('col/doc').set(data).then(() => {
|
||||
* console.log(`Location is ${data.google.latitude}, ` +
|
||||
* `${data.google.longitude}`);
|
||||
* });
|
||||
*/
|
||||
constructor(latitude, longitude) {
|
||||
validate_1.validateNumber('latitude', latitude, { minValue: -90, maxValue: 90 });
|
||||
validate_1.validateNumber('longitude', longitude, { minValue: -180, maxValue: 180 });
|
||||
this._latitude = latitude;
|
||||
this._longitude = longitude;
|
||||
}
|
||||
/**
|
||||
* The latitude as a number between -90 and 90.
|
||||
*
|
||||
* @type {number}
|
||||
* @name GeoPoint#latitude
|
||||
* @readonly
|
||||
*/
|
||||
get latitude() {
|
||||
return this._latitude;
|
||||
}
|
||||
/**
|
||||
* The longitude as a number between -180 and 180.
|
||||
*
|
||||
* @type {number}
|
||||
* @name GeoPoint#longitude
|
||||
* @readonly
|
||||
*/
|
||||
get longitude() {
|
||||
return this._longitude;
|
||||
}
|
||||
/**
|
||||
* Returns true if this `GeoPoint` is equal to the provided value.
|
||||
*
|
||||
* @param {*} other The value to compare against.
|
||||
* @return {boolean} true if this `GeoPoint` is equal to the provided value.
|
||||
*/
|
||||
isEqual(other) {
|
||||
return (this === other ||
|
||||
(other instanceof GeoPoint &&
|
||||
this.latitude === other.latitude &&
|
||||
this.longitude === other.longitude));
|
||||
}
|
||||
/**
|
||||
* Converts the GeoPoint to a google.type.LatLng proto.
|
||||
* @private
|
||||
*/
|
||||
toProto() {
|
||||
return {
|
||||
geoPointValue: {
|
||||
latitude: this.latitude,
|
||||
longitude: this.longitude,
|
||||
},
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Converts a google.type.LatLng proto to its GeoPoint representation.
|
||||
* @private
|
||||
*/
|
||||
static fromProto(proto) {
|
||||
return new GeoPoint(proto.latitude || 0, proto.longitude || 0);
|
||||
}
|
||||
}
|
||||
exports.GeoPoint = GeoPoint;
|
||||
//# sourceMappingURL=geo-point.js.map
|
1159
node_modules/@google-cloud/firestore/build/src/index.js
generated
vendored
Normal file
1159
node_modules/@google-cloud/firestore/build/src/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
55
node_modules/@google-cloud/firestore/build/src/logger.js
generated
vendored
Normal file
55
node_modules/@google-cloud/firestore/build/src/logger.js
generated
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const util = require("util");
|
||||
const validate_1 = require("./validate");
|
||||
/*! The Firestore library version */
|
||||
let libVersion;
|
||||
/*! The external function used to emit logs. */
|
||||
let logFunction = (msg) => { };
|
||||
/**
|
||||
* Log function to use for debug output. By default, we don't perform any
|
||||
* logging.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function logger(methodName, requestTag, logMessage, ...additionalArgs) {
|
||||
requestTag = requestTag || '#####';
|
||||
const formattedMessage = util.format(logMessage, ...additionalArgs);
|
||||
const time = new Date().toISOString();
|
||||
logFunction(`Firestore (${libVersion}) ${time} ${requestTag} [${methodName}]: ` +
|
||||
formattedMessage);
|
||||
}
|
||||
exports.logger = logger;
|
||||
/**
|
||||
* Sets the log function for all active Firestore instances.
|
||||
*/
|
||||
function setLogFunction(logger) {
|
||||
validate_1.validateFunction('logger', logger);
|
||||
logFunction = logger;
|
||||
}
|
||||
exports.setLogFunction = setLogFunction;
|
||||
/**
|
||||
* Sets the log function for all active Firestore instances.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function setLibVersion(version) {
|
||||
libVersion = version;
|
||||
}
|
||||
exports.setLibVersion = setLibVersion;
|
||||
//# sourceMappingURL=logger.js.map
|
230
node_modules/@google-cloud/firestore/build/src/order.js
generated
vendored
Normal file
230
node_modules/@google-cloud/firestore/build/src/order.js
generated
vendored
Normal file
@ -0,0 +1,230 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2017 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const convert_1 = require("./convert");
|
||||
const path_1 = require("./path");
|
||||
/*!
|
||||
* The type order as defined by the backend.
|
||||
*/
|
||||
var TypeOrder;
|
||||
(function (TypeOrder) {
|
||||
TypeOrder[TypeOrder["NULL"] = 0] = "NULL";
|
||||
TypeOrder[TypeOrder["BOOLEAN"] = 1] = "BOOLEAN";
|
||||
TypeOrder[TypeOrder["NUMBER"] = 2] = "NUMBER";
|
||||
TypeOrder[TypeOrder["TIMESTAMP"] = 3] = "TIMESTAMP";
|
||||
TypeOrder[TypeOrder["STRING"] = 4] = "STRING";
|
||||
TypeOrder[TypeOrder["BLOB"] = 5] = "BLOB";
|
||||
TypeOrder[TypeOrder["REF"] = 6] = "REF";
|
||||
TypeOrder[TypeOrder["GEO_POINT"] = 7] = "GEO_POINT";
|
||||
TypeOrder[TypeOrder["ARRAY"] = 8] = "ARRAY";
|
||||
TypeOrder[TypeOrder["OBJECT"] = 9] = "OBJECT";
|
||||
})(TypeOrder || (TypeOrder = {}));
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function typeOrder(val) {
|
||||
const valueType = convert_1.detectValueType(val);
|
||||
switch (valueType) {
|
||||
case 'nullValue':
|
||||
return TypeOrder.NULL;
|
||||
case 'integerValue':
|
||||
return TypeOrder.NUMBER;
|
||||
case 'doubleValue':
|
||||
return TypeOrder.NUMBER;
|
||||
case 'stringValue':
|
||||
return TypeOrder.STRING;
|
||||
case 'booleanValue':
|
||||
return TypeOrder.BOOLEAN;
|
||||
case 'arrayValue':
|
||||
return TypeOrder.ARRAY;
|
||||
case 'timestampValue':
|
||||
return TypeOrder.TIMESTAMP;
|
||||
case 'geoPointValue':
|
||||
return TypeOrder.GEO_POINT;
|
||||
case 'bytesValue':
|
||||
return TypeOrder.BLOB;
|
||||
case 'referenceValue':
|
||||
return TypeOrder.REF;
|
||||
case 'mapValue':
|
||||
return TypeOrder.OBJECT;
|
||||
default:
|
||||
throw new Error('Unexpected value type: ' + valueType);
|
||||
}
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function primitiveComparator(left, right) {
|
||||
if (left < right) {
|
||||
return -1;
|
||||
}
|
||||
if (left > right) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
exports.primitiveComparator = primitiveComparator;
|
||||
/*!
|
||||
* Utility function to compare doubles (using Firestore semantics for NaN).
|
||||
* @private
|
||||
*/
|
||||
function compareNumbers(left, right) {
|
||||
if (left < right) {
|
||||
return -1;
|
||||
}
|
||||
if (left > right) {
|
||||
return 1;
|
||||
}
|
||||
if (left === right) {
|
||||
return 0;
|
||||
}
|
||||
// one or both are NaN.
|
||||
if (isNaN(left)) {
|
||||
return isNaN(right) ? 0 : -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compareNumberProtos(left, right) {
|
||||
let leftValue, rightValue;
|
||||
if (left.integerValue !== undefined) {
|
||||
leftValue = Number(left.integerValue);
|
||||
}
|
||||
else {
|
||||
leftValue = Number(left.doubleValue);
|
||||
}
|
||||
if (right.integerValue !== undefined) {
|
||||
rightValue = Number(right.integerValue);
|
||||
}
|
||||
else {
|
||||
rightValue = Number(right.doubleValue);
|
||||
}
|
||||
return compareNumbers(leftValue, rightValue);
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compareTimestamps(left, right) {
|
||||
const seconds = primitiveComparator(left.seconds || 0, right.seconds || 0);
|
||||
if (seconds !== 0) {
|
||||
return seconds;
|
||||
}
|
||||
return primitiveComparator(left.nanos || 0, right.nanos || 0);
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compareBlobs(left, right) {
|
||||
if (!(left instanceof Buffer) || !(right instanceof Buffer)) {
|
||||
throw new Error('Blobs can only be compared if they are Buffers.');
|
||||
}
|
||||
return Buffer.compare(left, right);
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compareReferenceProtos(left, right) {
|
||||
const leftPath = path_1.QualifiedResourcePath.fromSlashSeparatedString(left.referenceValue);
|
||||
const rightPath = path_1.QualifiedResourcePath.fromSlashSeparatedString(right.referenceValue);
|
||||
return leftPath.compareTo(rightPath);
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compareGeoPoints(left, right) {
|
||||
return (primitiveComparator(left.latitude || 0, right.latitude || 0) ||
|
||||
primitiveComparator(left.longitude || 0, right.longitude || 0));
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compareArrays(left, right) {
|
||||
for (let i = 0; i < left.length && i < right.length; i++) {
|
||||
const valueComparison = compare(left[i], right[i]);
|
||||
if (valueComparison !== 0) {
|
||||
return valueComparison;
|
||||
}
|
||||
}
|
||||
// If all the values matched so far, just check the length.
|
||||
return primitiveComparator(left.length, right.length);
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compareObjects(left, right) {
|
||||
// This requires iterating over the keys in the object in order and doing a
|
||||
// deep comparison.
|
||||
const leftKeys = Object.keys(left);
|
||||
const rightKeys = Object.keys(right);
|
||||
leftKeys.sort();
|
||||
rightKeys.sort();
|
||||
for (let i = 0; i < leftKeys.length && i < rightKeys.length; i++) {
|
||||
const keyComparison = primitiveComparator(leftKeys[i], rightKeys[i]);
|
||||
if (keyComparison !== 0) {
|
||||
return keyComparison;
|
||||
}
|
||||
const key = leftKeys[i];
|
||||
const valueComparison = compare(left[key], right[key]);
|
||||
if (valueComparison !== 0) {
|
||||
return valueComparison;
|
||||
}
|
||||
}
|
||||
// If all the keys matched so far, just check the length.
|
||||
return primitiveComparator(leftKeys.length, rightKeys.length);
|
||||
}
|
||||
/*!
|
||||
* @private
|
||||
*/
|
||||
function compare(left, right) {
|
||||
// First compare the types.
|
||||
const leftType = typeOrder(left);
|
||||
const rightType = typeOrder(right);
|
||||
const typeComparison = primitiveComparator(leftType, rightType);
|
||||
if (typeComparison !== 0) {
|
||||
return typeComparison;
|
||||
}
|
||||
// So they are the same type.
|
||||
switch (leftType) {
|
||||
case TypeOrder.NULL:
|
||||
// Nulls are all equal.
|
||||
return 0;
|
||||
case TypeOrder.BOOLEAN:
|
||||
return primitiveComparator(left.booleanValue, right.booleanValue);
|
||||
case TypeOrder.STRING:
|
||||
return primitiveComparator(left.stringValue, right.stringValue);
|
||||
case TypeOrder.NUMBER:
|
||||
return compareNumberProtos(left, right);
|
||||
case TypeOrder.TIMESTAMP:
|
||||
return compareTimestamps(left.timestampValue, right.timestampValue);
|
||||
case TypeOrder.BLOB:
|
||||
return compareBlobs(left.bytesValue, right.bytesValue);
|
||||
case TypeOrder.REF:
|
||||
return compareReferenceProtos(left, right);
|
||||
case TypeOrder.GEO_POINT:
|
||||
return compareGeoPoints(left.geoPointValue, right.geoPointValue);
|
||||
case TypeOrder.ARRAY:
|
||||
return compareArrays(left.arrayValue.values || [], right.arrayValue.values || []);
|
||||
case TypeOrder.OBJECT:
|
||||
return compareObjects(left.mapValue.fields || {}, right.mapValue.fields || {});
|
||||
default:
|
||||
throw new Error(`Encountered unknown type order: ${leftType}`);
|
||||
}
|
||||
}
|
||||
exports.compare = compare;
|
||||
//# sourceMappingURL=order.js.map
|
573
node_modules/@google-cloud/firestore/build/src/path.js
generated
vendored
Normal file
573
node_modules/@google-cloud/firestore/build/src/path.js
generated
vendored
Normal file
@ -0,0 +1,573 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2017 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const util_1 = require("./util");
|
||||
const validate_1 = require("./validate");
|
||||
/*!
|
||||
* The default database ID for this Firestore client. We do not yet expose the
|
||||
* ability to use different databases.
|
||||
*/
|
||||
exports.DEFAULT_DATABASE_ID = '(default)';
|
||||
/*!
|
||||
* A regular expression to verify an absolute Resource Path in Firestore. It
|
||||
* extracts the project ID, the database name and the relative resource path
|
||||
* if available.
|
||||
*
|
||||
* @type {RegExp}
|
||||
*/
|
||||
const RESOURCE_PATH_RE =
|
||||
// Note: [\s\S] matches all characters including newlines.
|
||||
/^projects\/([^/]*)\/databases\/([^/]*)(?:\/documents\/)?([\s\S]*)$/;
|
||||
/*!
|
||||
* A regular expression to verify whether a field name can be passed to the
|
||||
* backend without escaping.
|
||||
*
|
||||
* @type {RegExp}
|
||||
*/
|
||||
const UNESCAPED_FIELD_NAME_RE = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
|
||||
/*!
|
||||
* A regular expression to verify field paths that are passed to the API as
|
||||
* strings. Field paths that do not match this expression have to be provided
|
||||
* as a [FieldPath]{@link FieldPath} object.
|
||||
*
|
||||
* @type {RegExp}
|
||||
*/
|
||||
const FIELD_PATH_RE = /^[^*~/[\]]+$/;
|
||||
/**
|
||||
* An abstract class representing a Firestore path.
|
||||
*
|
||||
* Subclasses have to implement `split()` and `canonicalString()`.
|
||||
*
|
||||
* @private
|
||||
* @class
|
||||
*/
|
||||
class Path {
|
||||
/**
|
||||
* Creates a new Path with the given segments.
|
||||
*
|
||||
* @private
|
||||
* @hideconstructor
|
||||
* @param segments Sequence of parts of a path.
|
||||
*/
|
||||
constructor(segments) {
|
||||
this.segments = segments;
|
||||
}
|
||||
/**
|
||||
* Returns the number of segments of this field path.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get size() {
|
||||
return this.segments.length;
|
||||
}
|
||||
/**
|
||||
* Create a child path beneath the current level.
|
||||
*
|
||||
* @private
|
||||
* @param relativePath Relative path to append to the current path.
|
||||
* @returns The new path.
|
||||
*/
|
||||
append(relativePath) {
|
||||
if (relativePath instanceof Path) {
|
||||
return this.construct(this.segments.concat(relativePath.segments));
|
||||
}
|
||||
return this.construct(this.segments.concat(this.split(relativePath)));
|
||||
}
|
||||
/**
|
||||
* Returns the path of the parent node.
|
||||
*
|
||||
* @private
|
||||
* @returns The new path or null if we are already at the root.
|
||||
*/
|
||||
parent() {
|
||||
if (this.segments.length === 0) {
|
||||
return null;
|
||||
}
|
||||
return this.construct(this.segments.slice(0, this.segments.length - 1));
|
||||
}
|
||||
/**
|
||||
* Checks whether the current path is a prefix of the specified path.
|
||||
*
|
||||
* @private
|
||||
* @param other The path to check against.
|
||||
* @returns 'true' iff the current path is a prefix match with 'other'.
|
||||
*/
|
||||
isPrefixOf(other) {
|
||||
if (other.segments.length < this.segments.length) {
|
||||
return false;
|
||||
}
|
||||
for (let i = 0; i < this.segments.length; i++) {
|
||||
if (this.segments[i] !== other.segments[i]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Compare the current path against another Path object.
|
||||
*
|
||||
* @private
|
||||
* @param other The path to compare to.
|
||||
* @returns -1 if current < other, 1 if current > other, 0 if equal
|
||||
*/
|
||||
compareTo(other) {
|
||||
const len = Math.min(this.segments.length, other.segments.length);
|
||||
for (let i = 0; i < len; i++) {
|
||||
if (this.segments[i] < other.segments[i]) {
|
||||
return -1;
|
||||
}
|
||||
if (this.segments[i] > other.segments[i]) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (this.segments.length < other.segments.length) {
|
||||
return -1;
|
||||
}
|
||||
if (this.segments.length > other.segments.length) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
* Returns a copy of the underlying segments.
|
||||
*
|
||||
* @private
|
||||
* @returns A copy of the segments that make up this path.
|
||||
*/
|
||||
toArray() {
|
||||
return this.segments.slice();
|
||||
}
|
||||
/**
|
||||
* Returns true if this `Path` is equal to the provided value.
|
||||
*
|
||||
* @private
|
||||
* @param other The value to compare against.
|
||||
* @return true if this `Path` is equal to the provided value.
|
||||
*/
|
||||
isEqual(other) {
|
||||
return (this === other ||
|
||||
(other instanceof this.constructor && this.compareTo(other) === 0));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* A slash-separated path for navigating resources within the current Firestore
|
||||
* instance.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class ResourcePath extends Path {
|
||||
/**
|
||||
* Constructs a ResourcePath.
|
||||
*
|
||||
* @private
|
||||
* @param segments Sequence of names of the parts of the path.
|
||||
*/
|
||||
constructor(...segments) {
|
||||
super(segments);
|
||||
}
|
||||
/**
|
||||
* Indicates whether this path points to a document.
|
||||
* @private
|
||||
*/
|
||||
get isDocument() {
|
||||
return this.segments.length > 0 && this.segments.length % 2 === 0;
|
||||
}
|
||||
/**
|
||||
* Indicates whether this path points to a collection.
|
||||
* @private
|
||||
*/
|
||||
get isCollection() {
|
||||
return this.segments.length % 2 === 1;
|
||||
}
|
||||
/**
|
||||
* The last component of the path.
|
||||
* @private
|
||||
*/
|
||||
get id() {
|
||||
if (this.segments.length > 0) {
|
||||
return this.segments[this.segments.length - 1];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Returns the location of this path relative to the root of the project's
|
||||
* database.
|
||||
* @private
|
||||
*/
|
||||
get relativeName() {
|
||||
return this.segments.join('/');
|
||||
}
|
||||
/**
|
||||
* Constructs a new instance of ResourcePath.
|
||||
*
|
||||
* @private
|
||||
* @param segments Sequence of parts of the path.
|
||||
* @returns The newly created ResourcePath.
|
||||
*/
|
||||
construct(segments) {
|
||||
return new ResourcePath(...segments);
|
||||
}
|
||||
/**
|
||||
* Splits a string into path segments, using slashes as separators.
|
||||
*
|
||||
* @private
|
||||
* @param relativePath The path to split.
|
||||
* @returns The split path segments.
|
||||
*/
|
||||
split(relativePath) {
|
||||
// We may have an empty segment at the beginning or end if they had a
|
||||
// leading or trailing slash (which we allow).
|
||||
return relativePath.split('/').filter(segment => segment.length > 0);
|
||||
}
|
||||
/**
|
||||
* Converts this path to a fully qualified ResourcePath.
|
||||
*
|
||||
* @private
|
||||
* @param projectIdIfMissing The project ID of the current Firestore project.
|
||||
* The project ID is only used if it's not provided as part of this
|
||||
* ResourcePath.
|
||||
* @return A fully-qualified resource path pointing to the same element.
|
||||
*/
|
||||
toQualifiedResourcePath(projectIdIfMissing) {
|
||||
return new QualifiedResourcePath(projectIdIfMissing, exports.DEFAULT_DATABASE_ID, ...this.segments);
|
||||
}
|
||||
}
|
||||
exports.ResourcePath = ResourcePath;
|
||||
/**
|
||||
* A default instance pointing to the root collection.
|
||||
* @private
|
||||
*/
|
||||
ResourcePath.EMPTY = new ResourcePath();
|
||||
/**
|
||||
* A slash-separated path that includes a project and database ID for referring
|
||||
* to resources in any Firestore project.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class QualifiedResourcePath extends ResourcePath {
|
||||
/**
|
||||
* Constructs a Firestore Resource Path.
|
||||
*
|
||||
* @private
|
||||
* @param projectId The Firestore project id.
|
||||
* @param databaseId The Firestore database id.
|
||||
* @param segments Sequence of names of the parts of the path.
|
||||
*/
|
||||
constructor(projectId, databaseId, ...segments) {
|
||||
super(...segments);
|
||||
this.projectId = projectId;
|
||||
this.databaseId = databaseId;
|
||||
}
|
||||
/**
|
||||
* String representation of the path relative to the database root.
|
||||
* @private
|
||||
*/
|
||||
get relativeName() {
|
||||
return this.segments.join('/');
|
||||
}
|
||||
/**
|
||||
* Creates a resource path from an absolute Firestore path.
|
||||
*
|
||||
* @private
|
||||
* @param absolutePath A string representation of a Resource Path.
|
||||
* @returns The new ResourcePath.
|
||||
*/
|
||||
static fromSlashSeparatedString(absolutePath) {
|
||||
const elements = RESOURCE_PATH_RE.exec(absolutePath);
|
||||
if (elements) {
|
||||
const project = elements[1];
|
||||
const database = elements[2];
|
||||
const path = elements[3];
|
||||
return new QualifiedResourcePath(project, database).append(path);
|
||||
}
|
||||
throw new Error(`Resource name '${absolutePath}' is not valid.`);
|
||||
}
|
||||
/**
|
||||
* Create a child path beneath the current level.
|
||||
*
|
||||
* @private
|
||||
* @param relativePath Relative path to append to the current path.
|
||||
* @returns The new path.
|
||||
*/
|
||||
append(relativePath) {
|
||||
// `super.append()` calls `QualifiedResourcePath.construct()` when invoked
|
||||
// from here and returns a QualifiedResourcePath.
|
||||
return super.append(relativePath);
|
||||
}
|
||||
/**
|
||||
* Create a child path beneath the current level.
|
||||
*
|
||||
* @private
|
||||
* @returns The new path.
|
||||
*/
|
||||
parent() {
|
||||
return super.parent();
|
||||
}
|
||||
/**
|
||||
* String representation of a ResourcePath as expected by the API.
|
||||
*
|
||||
* @private
|
||||
* @returns The representation as expected by the API.
|
||||
*/
|
||||
get formattedName() {
|
||||
const components = [
|
||||
'projects',
|
||||
this.projectId,
|
||||
'databases',
|
||||
this.databaseId,
|
||||
'documents',
|
||||
...this.segments,
|
||||
];
|
||||
return components.join('/');
|
||||
}
|
||||
/**
|
||||
* Constructs a new instance of ResourcePath. We need this instead of using
|
||||
* the normal constructor because polymorphic 'this' doesn't work on static
|
||||
* methods.
|
||||
*
|
||||
* @private
|
||||
* @param segments Sequence of names of the parts of the path.
|
||||
* @returns The newly created QualifiedResourcePath.
|
||||
*/
|
||||
construct(segments) {
|
||||
return new QualifiedResourcePath(this.projectId, this.databaseId, ...segments);
|
||||
}
|
||||
/**
|
||||
* Convenience method to match the ResourcePath API. This method always
|
||||
* returns the current instance. The arguments is ignored.
|
||||
*
|
||||
* @param projectIdIfMissing The project ID of the current Firestore project.
|
||||
* The project ID is only used if it's not provided as part of this
|
||||
* ResourcePath.
|
||||
* @private
|
||||
*/
|
||||
toQualifiedResourcePath(projectIdIfMissing) {
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Compare the current path against another ResourcePath object.
|
||||
*
|
||||
* @private
|
||||
* @param other The path to compare to.
|
||||
* @returns -1 if current < other, 1 if current > other, 0 if equal
|
||||
*/
|
||||
compareTo(other) {
|
||||
if (other instanceof QualifiedResourcePath) {
|
||||
if (this.projectId < other.projectId) {
|
||||
return -1;
|
||||
}
|
||||
if (this.projectId > other.projectId) {
|
||||
return 1;
|
||||
}
|
||||
if (this.databaseId < other.databaseId) {
|
||||
return -1;
|
||||
}
|
||||
if (this.databaseId > other.databaseId) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return super.compareTo(other);
|
||||
}
|
||||
/**
|
||||
* Converts this ResourcePath to the Firestore Proto representation.
|
||||
* @private
|
||||
*/
|
||||
toProto() {
|
||||
return {
|
||||
referenceValue: this.formattedName,
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.QualifiedResourcePath = QualifiedResourcePath;
|
||||
/**
|
||||
* Validates that the given string can be used as a relative or absolute
|
||||
* resource path.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param resourcePath The path to validate.
|
||||
* @throws if the string can't be used as a resource path.
|
||||
*/
|
||||
function validateResourcePath(arg, resourcePath) {
|
||||
if (typeof resourcePath !== 'string' || resourcePath === '') {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'resource path')} Path must be a non-empty string.`);
|
||||
}
|
||||
if (resourcePath.indexOf('//') >= 0) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'resource path')} Paths must not contain //.`);
|
||||
}
|
||||
}
|
||||
exports.validateResourcePath = validateResourcePath;
|
||||
/**
|
||||
* A dot-separated path for navigating sub-objects within a document.
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class FieldPath extends Path {
|
||||
/**
|
||||
* Constructs a Firestore Field Path.
|
||||
*
|
||||
* @param {...string} segments Sequence of field names that form this path.
|
||||
*
|
||||
* @example
|
||||
* let query = firestore.collection('col');
|
||||
* let fieldPath = new FieldPath('f.o.o', 'bar');
|
||||
*
|
||||
* query.where(fieldPath, '==', 42).get().then(snapshot => {
|
||||
* snapshot.forEach(document => {
|
||||
* console.log(`Document contains {'f.o.o' : {'bar' : 42}}`);
|
||||
* });
|
||||
* });
|
||||
*/
|
||||
constructor(...segments) {
|
||||
if (Array.isArray(segments[0])) {
|
||||
throw new Error('The FieldPath constructor no longer supports an array as its first argument. ' +
|
||||
'Please unpack your array and call FieldPath() with individual arguments.');
|
||||
}
|
||||
validate_1.validateMinNumberOfArguments('FieldPath', segments, 1);
|
||||
for (let i = 0; i < segments.length; ++i) {
|
||||
validate_1.validateString(i, segments[i]);
|
||||
if (segments[i].length === 0) {
|
||||
throw new Error(`Element at index ${i} should not be an empty string.`);
|
||||
}
|
||||
}
|
||||
super(segments);
|
||||
}
|
||||
/**
|
||||
* A special FieldPath value to refer to the ID of a document. It can be used
|
||||
* in queries to sort or filter by the document ID.
|
||||
*
|
||||
* @returns {FieldPath}
|
||||
*/
|
||||
static documentId() {
|
||||
return FieldPath._DOCUMENT_ID;
|
||||
}
|
||||
/**
|
||||
* Turns a field path argument into a [FieldPath]{@link FieldPath}.
|
||||
* Supports FieldPaths as input (which are passed through) and dot-separated
|
||||
* strings.
|
||||
*
|
||||
* @private
|
||||
* @param {string|FieldPath} fieldPath The FieldPath to create.
|
||||
* @returns {FieldPath} A field path representation.
|
||||
*/
|
||||
static fromArgument(fieldPath) {
|
||||
// validateFieldPath() is used in all public API entry points to validate
|
||||
// that fromArgument() is only called with a Field Path or a string.
|
||||
return fieldPath instanceof FieldPath
|
||||
? fieldPath
|
||||
: new FieldPath(...fieldPath.split('.'));
|
||||
}
|
||||
/**
|
||||
* String representation of a FieldPath as expected by the API.
|
||||
*
|
||||
* @private
|
||||
* @override
|
||||
* @returns {string} The representation as expected by the API.
|
||||
*/
|
||||
get formattedName() {
|
||||
return this.segments
|
||||
.map(str => {
|
||||
return UNESCAPED_FIELD_NAME_RE.test(str)
|
||||
? str
|
||||
: '`' + str.replace('\\', '\\\\').replace('`', '\\`') + '`';
|
||||
})
|
||||
.join('.');
|
||||
}
|
||||
/**
|
||||
* Returns a string representation of this path.
|
||||
*
|
||||
* @private
|
||||
* @returns A string representing this path.
|
||||
*/
|
||||
toString() {
|
||||
return this.formattedName;
|
||||
}
|
||||
/**
|
||||
* Splits a string into path segments, using dots as separators.
|
||||
*
|
||||
* @private
|
||||
* @override
|
||||
* @param {string} fieldPath The path to split.
|
||||
* @returns {Array.<string>} - The split path segments.
|
||||
*/
|
||||
split(fieldPath) {
|
||||
return fieldPath.split('.');
|
||||
}
|
||||
/**
|
||||
* Constructs a new instance of FieldPath. We need this instead of using
|
||||
* the normal constructor because polymorphic 'this' doesn't work on static
|
||||
* methods.
|
||||
*
|
||||
* @private
|
||||
* @override
|
||||
* @param segments Sequence of field names.
|
||||
* @returns The newly created FieldPath.
|
||||
*/
|
||||
construct(segments) {
|
||||
return new FieldPath(...segments);
|
||||
}
|
||||
/**
|
||||
* Returns true if this `FieldPath` is equal to the provided value.
|
||||
*
|
||||
* @param {*} other The value to compare against.
|
||||
* @return {boolean} true if this `FieldPath` is equal to the provided value.
|
||||
*/
|
||||
isEqual(other) {
|
||||
return super.isEqual(other);
|
||||
}
|
||||
}
|
||||
exports.FieldPath = FieldPath;
|
||||
/**
|
||||
* A special sentinel value to refer to the ID of a document.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
FieldPath._DOCUMENT_ID = new FieldPath('__name__');
|
||||
/**
|
||||
* Validates that the provided value can be used as a field path argument.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param fieldPath The value to verify.
|
||||
* @throws if the string can't be used as a field path.
|
||||
*/
|
||||
function validateFieldPath(arg, fieldPath) {
|
||||
if (fieldPath instanceof FieldPath) {
|
||||
return;
|
||||
}
|
||||
if (fieldPath === undefined) {
|
||||
throw new Error(validate_1.invalidArgumentMessage(arg, 'field path') + ' The path cannot be omitted.');
|
||||
}
|
||||
if (util_1.isObject(fieldPath) && fieldPath.constructor.name === 'FieldPath') {
|
||||
throw new Error(validate_1.customObjectMessage(arg, fieldPath));
|
||||
}
|
||||
if (typeof fieldPath !== 'string') {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'field path')} Paths can only be specified as strings or via a FieldPath object.`);
|
||||
}
|
||||
if (fieldPath.indexOf('..') >= 0) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'field path')} Paths must not contain ".." in them.`);
|
||||
}
|
||||
if (fieldPath.startsWith('.') || fieldPath.endsWith('.')) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'field path')} Paths must not start or end with ".".`);
|
||||
}
|
||||
if (!FIELD_PATH_RE.test(fieldPath)) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'field path')} Paths can't be empty and must not contain
|
||||
"*~/[]".`);
|
||||
}
|
||||
}
|
||||
exports.validateFieldPath = validateFieldPath;
|
||||
//# sourceMappingURL=path.js.map
|
153
node_modules/@google-cloud/firestore/build/src/pool.js
generated
vendored
Normal file
153
node_modules/@google-cloud/firestore/build/src/pool.js
generated
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const assert = require("assert");
|
||||
const logger_1 = require("./logger");
|
||||
/**
|
||||
* An auto-resizing pool that distributes concurrent operations over multiple
|
||||
* clients of type `T`.
|
||||
*
|
||||
* ClientPool is used within Firestore to manage a pool of GAPIC clients and
|
||||
* automatically initializes multiple clients if we issue more than 100
|
||||
* concurrent operations.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class ClientPool {
|
||||
/**
|
||||
* @param concurrentOperationLimit The number of operations that each client
|
||||
* can handle.
|
||||
* @param clientFactory A factory function called as needed when new clients
|
||||
* are required.
|
||||
*/
|
||||
constructor(concurrentOperationLimit, clientFactory) {
|
||||
this.concurrentOperationLimit = concurrentOperationLimit;
|
||||
this.clientFactory = clientFactory;
|
||||
/**
|
||||
* Stores each active clients and how many operations it has outstanding.
|
||||
* @private
|
||||
*/
|
||||
this.activeClients = new Map();
|
||||
}
|
||||
/**
|
||||
* Returns an already existing client if it has less than the maximum number
|
||||
* of concurrent operations or initializes and returns a new client.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
acquire(requestTag) {
|
||||
let selectedClient = null;
|
||||
let selectedRequestCount = 0;
|
||||
this.activeClients.forEach((requestCount, client) => {
|
||||
if (!selectedClient && requestCount < this.concurrentOperationLimit) {
|
||||
logger_1.logger('ClientPool.acquire', requestTag, 'Re-using existing client with %s remaining operations', this.concurrentOperationLimit - requestCount);
|
||||
selectedClient = client;
|
||||
selectedRequestCount = requestCount;
|
||||
}
|
||||
});
|
||||
if (!selectedClient) {
|
||||
logger_1.logger('ClientPool.acquire', requestTag, 'Creating a new client');
|
||||
selectedClient = this.clientFactory();
|
||||
assert(!this.activeClients.has(selectedClient), 'The provided client factory returned an existing instance');
|
||||
}
|
||||
this.activeClients.set(selectedClient, selectedRequestCount + 1);
|
||||
return selectedClient;
|
||||
}
|
||||
/**
|
||||
* Reduces the number of operations for the provided client, potentially
|
||||
* removing it from the pool of active clients.
|
||||
* @private
|
||||
*/
|
||||
release(requestTag, client) {
|
||||
let requestCount = this.activeClients.get(client) || 0;
|
||||
assert(requestCount > 0, 'No active request');
|
||||
requestCount = requestCount - 1;
|
||||
this.activeClients.set(client, requestCount);
|
||||
if (requestCount === 0) {
|
||||
const deletedCount = this.garbageCollect();
|
||||
if (deletedCount) {
|
||||
logger_1.logger('ClientPool.release', requestTag, 'Garbage collected %s clients', deletedCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* The number of currently registered clients.
|
||||
*
|
||||
* @return Number of currently registered clients.
|
||||
* @private
|
||||
*/
|
||||
// Visible for testing.
|
||||
get size() {
|
||||
return this.activeClients.size;
|
||||
}
|
||||
/**
|
||||
* The number of currently active operations.
|
||||
*
|
||||
* @return Number of currently active operations.
|
||||
* @private
|
||||
*/
|
||||
// Visible for testing.
|
||||
get opCount() {
|
||||
let activeOperationCount = 0;
|
||||
this.activeClients.forEach(count => (activeOperationCount += count));
|
||||
return activeOperationCount;
|
||||
}
|
||||
/**
|
||||
* Runs the provided operation in this pool. This function may create an
|
||||
* additional client if all existing clients already operate at the concurrent
|
||||
* operation limit.
|
||||
*
|
||||
* @param requestTag A unique client-assigned identifier for this operation.
|
||||
* @param op A callback function that returns a Promise. The client T will
|
||||
* be returned to the pool when callback finishes.
|
||||
* @return A Promise that resolves with the result of `op`.
|
||||
* @private
|
||||
*/
|
||||
run(requestTag, op) {
|
||||
const client = this.acquire(requestTag);
|
||||
return op(client)
|
||||
.catch(err => {
|
||||
this.release(requestTag, client);
|
||||
return Promise.reject(err);
|
||||
})
|
||||
.then(res => {
|
||||
this.release(requestTag, client);
|
||||
return res;
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Deletes clients that are no longer executing operations. Keeps up to one
|
||||
* idle client to reduce future initialization costs.
|
||||
*
|
||||
* @return Number of clients deleted.
|
||||
* @private
|
||||
*/
|
||||
garbageCollect() {
|
||||
let idleClients = 0;
|
||||
this.activeClients.forEach((requestCount, client) => {
|
||||
if (requestCount === 0) {
|
||||
++idleClients;
|
||||
if (idleClients > 1) {
|
||||
this.activeClients.delete(client);
|
||||
}
|
||||
}
|
||||
});
|
||||
return idleClients - 1;
|
||||
}
|
||||
}
|
||||
exports.ClientPool = ClientPool;
|
||||
//# sourceMappingURL=pool.js.map
|
1875
node_modules/@google-cloud/firestore/build/src/reference.js
generated
vendored
Normal file
1875
node_modules/@google-cloud/firestore/build/src/reference.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
315
node_modules/@google-cloud/firestore/build/src/serializer.js
generated
vendored
Normal file
315
node_modules/@google-cloud/firestore/build/src/serializer.js
generated
vendored
Normal file
@ -0,0 +1,315 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2019 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const convert_1 = require("./convert");
|
||||
const field_value_1 = require("./field-value");
|
||||
const field_value_2 = require("./field-value");
|
||||
const geo_point_1 = require("./geo-point");
|
||||
const index_1 = require("./index");
|
||||
const path_1 = require("./path");
|
||||
const timestamp_1 = require("./timestamp");
|
||||
const util_1 = require("./util");
|
||||
const validate_1 = require("./validate");
|
||||
/**
|
||||
* The maximum depth of a Firestore object.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
const MAX_DEPTH = 20;
|
||||
/**
|
||||
* Serializer that is used to convert between JavaScript types and their
|
||||
* Firestore Protobuf representation.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class Serializer {
|
||||
constructor(firestore) {
|
||||
// Instead of storing the `firestore` object, we store just a reference to
|
||||
// its `.doc()` method. This avoid a circular reference, which breaks
|
||||
// JSON.stringify().
|
||||
this.createReference = path => firestore.doc(path);
|
||||
// tslint:disable-next-line deprecation
|
||||
if (firestore._settings.timestampsInSnapshots === undefined) {
|
||||
this.timestampsInSnapshots = true;
|
||||
}
|
||||
else {
|
||||
// tslint:disable-next-line deprecation
|
||||
this.timestampsInSnapshots = firestore._settings.timestampsInSnapshots;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Encodes a JavaScript object into the Firestore 'Fields' representation.
|
||||
*
|
||||
* @private
|
||||
* @param obj The object to encode.
|
||||
* @returns The Firestore 'Fields' representation
|
||||
*/
|
||||
encodeFields(obj) {
|
||||
const fields = {};
|
||||
for (const prop of Object.keys(obj)) {
|
||||
const val = this.encodeValue(obj[prop]);
|
||||
if (val) {
|
||||
fields[prop] = val;
|
||||
}
|
||||
}
|
||||
return fields;
|
||||
}
|
||||
/**
|
||||
* Encodes a JavaScript value into the Firestore 'Value' representation.
|
||||
*
|
||||
* @private
|
||||
* @param val The object to encode
|
||||
* @returns The Firestore Proto or null if we are deleting a field.
|
||||
*/
|
||||
encodeValue(val) {
|
||||
if (val instanceof field_value_1.FieldTransform) {
|
||||
return null;
|
||||
}
|
||||
if (typeof val === 'string') {
|
||||
return {
|
||||
stringValue: val,
|
||||
};
|
||||
}
|
||||
if (typeof val === 'boolean') {
|
||||
return {
|
||||
booleanValue: val,
|
||||
};
|
||||
}
|
||||
if (typeof val === 'number') {
|
||||
if (Number.isSafeInteger(val)) {
|
||||
return {
|
||||
integerValue: val,
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
doubleValue: val,
|
||||
};
|
||||
}
|
||||
}
|
||||
if (val instanceof Date) {
|
||||
const timestamp = timestamp_1.Timestamp.fromDate(val);
|
||||
return {
|
||||
timestampValue: {
|
||||
seconds: timestamp.seconds,
|
||||
nanos: timestamp.nanoseconds,
|
||||
},
|
||||
};
|
||||
}
|
||||
if (val === null) {
|
||||
return {
|
||||
nullValue: 'NULL_VALUE',
|
||||
};
|
||||
}
|
||||
if (val instanceof Buffer || val instanceof Uint8Array) {
|
||||
return {
|
||||
bytesValue: val,
|
||||
};
|
||||
}
|
||||
if (util_1.isObject(val)) {
|
||||
const toProto = val['toProto'];
|
||||
if (typeof toProto === 'function') {
|
||||
return toProto.bind(val)();
|
||||
}
|
||||
}
|
||||
if (val instanceof Array) {
|
||||
const array = {
|
||||
arrayValue: {},
|
||||
};
|
||||
if (val.length > 0) {
|
||||
array.arrayValue.values = [];
|
||||
for (let i = 0; i < val.length; ++i) {
|
||||
const enc = this.encodeValue(val[i]);
|
||||
if (enc) {
|
||||
array.arrayValue.values.push(enc);
|
||||
}
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
if (typeof val === 'object' && isPlainObject(val)) {
|
||||
const map = {
|
||||
mapValue: {},
|
||||
};
|
||||
// If we encounter an empty object, we always need to send it to make sure
|
||||
// the server creates a map entry.
|
||||
if (!util_1.isEmpty(val)) {
|
||||
map.mapValue.fields = this.encodeFields(val);
|
||||
if (util_1.isEmpty(map.mapValue.fields)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
throw new Error(`Cannot encode value: ${val}`);
|
||||
}
|
||||
/**
|
||||
* Decodes a single Firestore 'Value' Protobuf.
|
||||
*
|
||||
* @private
|
||||
* @param proto A Firestore 'Value' Protobuf.
|
||||
* @returns The converted JS type.
|
||||
*/
|
||||
decodeValue(proto) {
|
||||
const valueType = convert_1.detectValueType(proto);
|
||||
switch (valueType) {
|
||||
case 'stringValue': {
|
||||
return proto.stringValue;
|
||||
}
|
||||
case 'booleanValue': {
|
||||
return proto.booleanValue;
|
||||
}
|
||||
case 'integerValue': {
|
||||
return Number(proto.integerValue);
|
||||
}
|
||||
case 'doubleValue': {
|
||||
return Number(proto.doubleValue);
|
||||
}
|
||||
case 'timestampValue': {
|
||||
const timestamp = timestamp_1.Timestamp.fromProto(proto.timestampValue);
|
||||
return this.timestampsInSnapshots ? timestamp : timestamp.toDate();
|
||||
}
|
||||
case 'referenceValue': {
|
||||
const resourcePath = path_1.QualifiedResourcePath.fromSlashSeparatedString(proto.referenceValue);
|
||||
return this.createReference(resourcePath.relativeName);
|
||||
}
|
||||
case 'arrayValue': {
|
||||
const array = [];
|
||||
if (Array.isArray(proto.arrayValue.values)) {
|
||||
for (const value of proto.arrayValue.values) {
|
||||
array.push(this.decodeValue(value));
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
case 'nullValue': {
|
||||
return null;
|
||||
}
|
||||
case 'mapValue': {
|
||||
const obj = {};
|
||||
const fields = proto.mapValue.fields;
|
||||
if (fields) {
|
||||
for (const prop of Object.keys(fields)) {
|
||||
obj[prop] = this.decodeValue(fields[prop]);
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
case 'geoPointValue': {
|
||||
return geo_point_1.GeoPoint.fromProto(proto.geoPointValue);
|
||||
}
|
||||
case 'bytesValue': {
|
||||
return proto.bytesValue;
|
||||
}
|
||||
default: {
|
||||
throw new Error('Cannot decode type from Firestore Value: ' + JSON.stringify(proto));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.Serializer = Serializer;
|
||||
/**
|
||||
* Verifies that 'obj' is a plain JavaScript object that can be encoded as a
|
||||
* 'Map' in Firestore.
|
||||
*
|
||||
* @private
|
||||
* @param input The argument to verify.
|
||||
* @returns 'true' if the input can be a treated as a plain object.
|
||||
*/
|
||||
function isPlainObject(input) {
|
||||
return (util_1.isObject(input) &&
|
||||
(Object.getPrototypeOf(input) === Object.prototype ||
|
||||
Object.getPrototypeOf(input) === null));
|
||||
}
|
||||
exports.isPlainObject = isPlainObject;
|
||||
/**
|
||||
* Validates a JavaScript value for usage as a Firestore value.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value JavaScript value to validate.
|
||||
* @param desc A description of the expected type.
|
||||
* @param path The field path to validate.
|
||||
* @param options Validation options
|
||||
* @param level The current depth of the traversal. This is used to decide
|
||||
* whether deletes are allowed in conjunction with `allowDeletes: root`.
|
||||
* @param inArray Whether we are inside an array.
|
||||
* @throws when the object is invalid.
|
||||
*/
|
||||
function validateUserInput(arg, value, desc, options, path, level, inArray) {
|
||||
if (path && path.size > MAX_DEPTH) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, desc)} Input object is deeper than ${MAX_DEPTH} levels or contains a cycle.`);
|
||||
}
|
||||
options = options || {};
|
||||
level = level || 0;
|
||||
inArray = inArray || false;
|
||||
const fieldPathMessage = path ? ` (found in field ${path})` : '';
|
||||
if (Array.isArray(value)) {
|
||||
for (let i = 0; i < value.length; ++i) {
|
||||
validateUserInput(arg, value[i], desc, options, path ? path.append(String(i)) : new path_1.FieldPath(String(i)), level + 1,
|
||||
/* inArray= */ true);
|
||||
}
|
||||
}
|
||||
else if (isPlainObject(value)) {
|
||||
for (const prop of Object.keys(value)) {
|
||||
validateUserInput(arg, value[prop], desc, options, path ? path.append(new path_1.FieldPath(prop)) : new path_1.FieldPath(prop), level + 1, inArray);
|
||||
}
|
||||
}
|
||||
else if (value === undefined) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, desc)} Cannot use "undefined" as a Firestore value${fieldPathMessage}.`);
|
||||
}
|
||||
else if (value instanceof field_value_2.DeleteTransform) {
|
||||
if (inArray) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, desc)} ${value.methodName}() cannot be used inside of an array${fieldPathMessage}.`);
|
||||
}
|
||||
else if ((options.allowDeletes === 'root' && level !== 0) ||
|
||||
options.allowDeletes === 'none') {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, desc)} ${value.methodName}() must appear at the top-level and can only be used in update() or set() with {merge:true}${fieldPathMessage}.`);
|
||||
}
|
||||
}
|
||||
else if (value instanceof field_value_1.FieldTransform) {
|
||||
if (inArray) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, desc)} ${value.methodName}() cannot be used inside of an array${fieldPathMessage}.`);
|
||||
}
|
||||
else if (!options.allowTransforms) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, desc)} ${value.methodName}() can only be used in set(), create() or update()${fieldPathMessage}.`);
|
||||
}
|
||||
}
|
||||
else if (value instanceof path_1.FieldPath) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, desc)} Cannot use object of type "FieldPath" as a Firestore value${fieldPathMessage}.`);
|
||||
}
|
||||
else if (value instanceof index_1.DocumentReference) {
|
||||
// Ok.
|
||||
}
|
||||
else if (value instanceof geo_point_1.GeoPoint) {
|
||||
// Ok.
|
||||
}
|
||||
else if (value instanceof timestamp_1.Timestamp || value instanceof Date) {
|
||||
// Ok.
|
||||
}
|
||||
else if (value instanceof Buffer || value instanceof Uint8Array) {
|
||||
// Ok.
|
||||
}
|
||||
else if (value === null) {
|
||||
// Ok.
|
||||
}
|
||||
else if (typeof value === 'object') {
|
||||
throw new Error(validate_1.customObjectMessage(arg, value, path));
|
||||
}
|
||||
}
|
||||
exports.validateUserInput = validateUserInput;
|
||||
//# sourceMappingURL=serializer.js.map
|
225
node_modules/@google-cloud/firestore/build/src/timestamp.js
generated
vendored
Normal file
225
node_modules/@google-cloud/firestore/build/src/timestamp.js
generated
vendored
Normal file
@ -0,0 +1,225 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const validate_1 = require("./validate");
|
||||
/*!
|
||||
* Number of nanoseconds in a millisecond.
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
const MS_TO_NANOS = 1000000;
|
||||
/**
|
||||
* A Timestamp represents a point in time independent of any time zone or
|
||||
* calendar, represented as seconds and fractions of seconds at nanosecond
|
||||
* resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
|
||||
* Calendar which extends the Gregorian calendar backwards to year one. It is
|
||||
* encoded assuming all minutes are 60 seconds long, i.e. leap seconds are
|
||||
* "smeared" so that no leap second table is needed for interpretation. Range is
|
||||
* from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
|
||||
*
|
||||
* @see https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto
|
||||
*/
|
||||
class Timestamp {
|
||||
/**
|
||||
* Creates a new timestamp.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.set({ startTime:new Firestore.Timestamp(42, 0) });
|
||||
*
|
||||
* @param {number} seconds The number of seconds of UTC time since Unix epoch
|
||||
* 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
|
||||
* 9999-12-31T23:59:59Z inclusive.
|
||||
* @param {number} nanoseconds The non-negative fractions of a second at
|
||||
* nanosecond resolution. Negative second values with fractions must still
|
||||
* have non-negative nanoseconds values that count forward in time. Must be
|
||||
* from 0 to 999,999,999 inclusive.
|
||||
*/
|
||||
constructor(seconds, nanoseconds) {
|
||||
validate_1.validateInteger('seconds', seconds);
|
||||
validate_1.validateInteger('nanoseconds', nanoseconds, {
|
||||
minValue: 0,
|
||||
maxValue: 999999999,
|
||||
});
|
||||
this._seconds = seconds;
|
||||
this._nanoseconds = nanoseconds;
|
||||
}
|
||||
/**
|
||||
* Creates a new timestamp with the current date, with millisecond precision.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.set({ updateTime:Firestore.Timestamp.now() });
|
||||
*
|
||||
* @return {Timestamp} A new `Timestamp` representing the current date.
|
||||
*/
|
||||
static now() {
|
||||
return Timestamp.fromMillis(Date.now());
|
||||
}
|
||||
/**
|
||||
* Creates a new timestamp from the given date.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* let date = Date.parse('01 Jan 2000 00:00:00 GMT');
|
||||
* documentRef.set({ startTime:Firestore.Timestamp.fromDate(date) });
|
||||
*
|
||||
* @param {Date} date The date to initialize the `Timestamp` from.
|
||||
* @return {Timestamp} A new `Timestamp` representing the same point in time
|
||||
* as the given date.
|
||||
*/
|
||||
static fromDate(date) {
|
||||
return Timestamp.fromMillis(date.getTime());
|
||||
}
|
||||
/**
|
||||
* Creates a new timestamp from the given number of milliseconds.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.set({ startTime:Firestore.Timestamp.fromMillis(42) });
|
||||
*
|
||||
* @param {number} milliseconds Number of milliseconds since Unix epoch
|
||||
* 1970-01-01T00:00:00Z.
|
||||
* @return {Timestamp} A new `Timestamp` representing the same point in time
|
||||
* as the given number of milliseconds.
|
||||
*/
|
||||
static fromMillis(milliseconds) {
|
||||
const seconds = Math.floor(milliseconds / 1000);
|
||||
const nanos = (milliseconds - seconds * 1000) * MS_TO_NANOS;
|
||||
return new Timestamp(seconds, nanos);
|
||||
}
|
||||
/**
|
||||
* Generates a `Timestamp` object from a Timestamp proto.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} timestamp The `Timestamp` Protobuf object.
|
||||
*/
|
||||
static fromProto(timestamp) {
|
||||
return new Timestamp(Number(timestamp.seconds || 0), Number(timestamp.nanos || 0));
|
||||
}
|
||||
/**
|
||||
* The number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(snap => {
|
||||
* let updated = snap.updateTime;
|
||||
* console.log(`Updated at ${updated.seconds}s ${updated.nanoseconds}ns`);
|
||||
* });
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
get seconds() {
|
||||
return this._seconds;
|
||||
}
|
||||
/**
|
||||
* The non-negative fractions of a second at nanosecond resolution.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(snap => {
|
||||
* let updated = snap.updateTime;
|
||||
* console.log(`Updated at ${updated.seconds}s ${updated.nanoseconds}ns`);
|
||||
* });
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
get nanoseconds() {
|
||||
return this._nanoseconds;
|
||||
}
|
||||
/**
|
||||
* Returns a new `Date` corresponding to this timestamp. This may lose
|
||||
* precision.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(snap => {
|
||||
* console.log(`Document updated at: ${snap.updateTime.toDate()}`);
|
||||
* });
|
||||
*
|
||||
* @return {Date} JavaScript `Date` object representing the same point in time
|
||||
* as this `Timestamp`, with millisecond precision.
|
||||
*/
|
||||
toDate() {
|
||||
return new Date(this._seconds * 1000 + Math.round(this._nanoseconds / MS_TO_NANOS));
|
||||
}
|
||||
/**
|
||||
* Returns the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(snap => {
|
||||
* let startTime = snap.get('startTime');
|
||||
* let endTime = snap.get('endTime');
|
||||
* console.log(`Duration: ${endTime - startTime}`);
|
||||
* });
|
||||
*
|
||||
* @return {number} The point in time corresponding to this timestamp,
|
||||
* represented as the number of milliseconds since Unix epoch
|
||||
* 1970-01-01T00:00:00Z.
|
||||
*/
|
||||
toMillis() {
|
||||
return this._seconds * 1000 + Math.floor(this._nanoseconds / MS_TO_NANOS);
|
||||
}
|
||||
/**
|
||||
* Returns 'true' if this `Timestamp` is equal to the provided one.
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.get().then(snap => {
|
||||
* if (snap.createTime.isEqual(snap.updateTime)) {
|
||||
* console.log('Document is in its initial state.');
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* @param {any} other The `Timestamp` to compare against.
|
||||
* @return {boolean} 'true' if this `Timestamp` is equal to the provided one.
|
||||
*/
|
||||
isEqual(other) {
|
||||
return (this === other ||
|
||||
(other instanceof Timestamp &&
|
||||
this._seconds === other.seconds &&
|
||||
this._nanoseconds === other.nanoseconds));
|
||||
}
|
||||
/**
|
||||
* Generates the Protobuf `Timestamp` object for this timestamp.
|
||||
*
|
||||
* @private
|
||||
* @returns {Object} The `Timestamp` Protobuf object.
|
||||
*/
|
||||
toProto() {
|
||||
const timestamp = {};
|
||||
if (this.seconds) {
|
||||
timestamp.seconds = this.seconds;
|
||||
}
|
||||
if (this.nanoseconds) {
|
||||
timestamp.nanos = this.nanoseconds;
|
||||
}
|
||||
return { timestampValue: timestamp };
|
||||
}
|
||||
}
|
||||
exports.Timestamp = Timestamp;
|
||||
//# sourceMappingURL=timestamp.js.map
|
379
node_modules/@google-cloud/firestore/build/src/transaction.js
generated
vendored
Normal file
379
node_modules/@google-cloud/firestore/build/src/transaction.js
generated
vendored
Normal file
@ -0,0 +1,379 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2017 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const path_1 = require("./path");
|
||||
const reference_1 = require("./reference");
|
||||
const serializer_1 = require("./serializer");
|
||||
const util_1 = require("./util");
|
||||
const validate_1 = require("./validate");
|
||||
/*!
|
||||
* Error message for transactional reads that were executed after performing
|
||||
* writes.
|
||||
*/
|
||||
const READ_AFTER_WRITE_ERROR_MSG = 'Firestore transactions require all reads to be executed before all writes.';
|
||||
/*!
|
||||
* Transactions can be retried if the initial stream opening errors out.
|
||||
*/
|
||||
const ALLOW_RETRIES = true;
|
||||
/**
|
||||
* A reference to a transaction.
|
||||
*
|
||||
* The Transaction object passed to a transaction's updateFunction provides
|
||||
* the methods to read and write data within the transaction context. See
|
||||
* [runTransaction()]{@link Firestore#runTransaction}.
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class Transaction {
|
||||
/**
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param firestore The Firestore Database client.
|
||||
* @param requestTag A unique client-assigned identifier for the scope of
|
||||
* this transaction.
|
||||
* @param previousTransaction If available, the failed transaction that is
|
||||
* being retried.
|
||||
*/
|
||||
constructor(firestore, requestTag, previousTransaction) {
|
||||
this._firestore = firestore;
|
||||
this._transactionId =
|
||||
previousTransaction && previousTransaction._transactionId;
|
||||
this._writeBatch = firestore.batch();
|
||||
this._requestTag = requestTag;
|
||||
}
|
||||
/**
|
||||
* Retrieve a document or a query result from the database. Holds a
|
||||
* pessimistic lock on all returned documents.
|
||||
*
|
||||
* @param {DocumentReference|Query} refOrQuery The document or query to
|
||||
* return.
|
||||
* @returns {Promise} A Promise that resolves with a DocumentSnapshot or
|
||||
* QuerySnapshot for the returned documents.
|
||||
*
|
||||
* @example
|
||||
* firestore.runTransaction(transaction => {
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
* return transaction.get(documentRef).then(doc => {
|
||||
* if (doc.exists) {
|
||||
* transaction.update(documentRef, { count: doc.get('count') + 1 });
|
||||
* } else {
|
||||
* transaction.create(documentRef, { count: 1 });
|
||||
* }
|
||||
* });
|
||||
* });
|
||||
*/
|
||||
get(refOrQuery) {
|
||||
if (!this._writeBatch.isEmpty) {
|
||||
throw new Error(READ_AFTER_WRITE_ERROR_MSG);
|
||||
}
|
||||
if (refOrQuery instanceof reference_1.DocumentReference) {
|
||||
return this._firestore
|
||||
.getAll_([refOrQuery],
|
||||
/* fieldMask= */ null, this._requestTag, this._transactionId)
|
||||
.then(res => {
|
||||
return Promise.resolve(res[0]);
|
||||
});
|
||||
}
|
||||
if (refOrQuery instanceof reference_1.Query) {
|
||||
return refOrQuery._get(this._transactionId);
|
||||
}
|
||||
throw new Error('Value for argument "refOrQuery" must be a DocumentReference or a Query.');
|
||||
}
|
||||
/**
|
||||
* Retrieves multiple documents from Firestore. Holds a pessimistic lock on
|
||||
* all returned documents.
|
||||
*
|
||||
* The first argument is required and must be of type `DocumentReference`
|
||||
* followed by any additional `DocumentReference` documents. If used, the
|
||||
* optional `ReadOptions` must be the last argument.
|
||||
*
|
||||
* @param {...DocumentReference|ReadOptions} documentRefsOrReadOptions The
|
||||
* `DocumentReferences` to receive, followed by an optional field mask.
|
||||
* @returns {Promise<Array.<DocumentSnapshot>>} A Promise that
|
||||
* contains an array with the resulting document snapshots.
|
||||
*
|
||||
* @example
|
||||
* let firstDoc = firestore.doc('col/doc1');
|
||||
* let secondDoc = firestore.doc('col/doc2');
|
||||
* let resultDoc = firestore.doc('col/doc3');
|
||||
*
|
||||
* firestore.runTransaction(transaction => {
|
||||
* return transaction.getAll(firstDoc, secondDoc).then(docs => {
|
||||
* transaction.set(resultDoc, {
|
||||
* sum: docs[0].get('count') + docs[1].get('count')
|
||||
* });
|
||||
* });
|
||||
* });
|
||||
*/
|
||||
getAll(...documentRefsOrReadOptions) {
|
||||
if (!this._writeBatch.isEmpty) {
|
||||
throw new Error(READ_AFTER_WRITE_ERROR_MSG);
|
||||
}
|
||||
validate_1.validateMinNumberOfArguments('Transaction.getAll', arguments, 1);
|
||||
const { documents, fieldMask } = parseGetAllArguments(documentRefsOrReadOptions);
|
||||
return this._firestore.getAll_(documents, fieldMask, this._requestTag, this._transactionId);
|
||||
}
|
||||
/**
|
||||
* Create the document referred to by the provided
|
||||
* [DocumentReference]{@link DocumentReference}. The operation will
|
||||
* fail the transaction if a document exists at the specified location.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* created.
|
||||
* @param {DocumentData} data The object data to serialize as the document.
|
||||
* @returns {Transaction} This Transaction instance. Used for
|
||||
* chaining method calls.
|
||||
*
|
||||
* @example
|
||||
* firestore.runTransaction(transaction => {
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
* return transaction.get(documentRef).then(doc => {
|
||||
* if (!doc.exists) {
|
||||
* transaction.create(documentRef, { foo: 'bar' });
|
||||
* }
|
||||
* });
|
||||
* });
|
||||
*/
|
||||
create(documentRef, data) {
|
||||
this._writeBatch.create(documentRef, data);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Writes to the document referred to by the provided
|
||||
* [DocumentReference]{@link DocumentReference}. If the document
|
||||
* does not exist yet, it will be created. If you pass
|
||||
* [SetOptions]{@link SetOptions}, the provided data can be merged into the
|
||||
* existing document.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* set.
|
||||
* @param {DocumentData} data The object to serialize as the document.
|
||||
* @param {SetOptions=} options An object to configure the set behavior.
|
||||
* @param {boolean=} options.merge - If true, set() merges the values
|
||||
* specified in its data argument. Fields omitted from this set() call
|
||||
* remain untouched.
|
||||
* @param {Array.<string|FieldPath>=} options.mergeFields - If provided,
|
||||
* set() only replaces the specified field paths. Any field path that is not
|
||||
* specified is ignored and remains untouched.
|
||||
* @returns {Transaction} This Transaction instance. Used for
|
||||
* chaining method calls.
|
||||
*
|
||||
* @example
|
||||
* firestore.runTransaction(transaction => {
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
* transaction.set(documentRef, { foo: 'bar' });
|
||||
* return Promise.resolve();
|
||||
* });
|
||||
*/
|
||||
set(documentRef, data, options) {
|
||||
this._writeBatch.set(documentRef, data, options);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Updates fields in the document referred to by the provided
|
||||
* [DocumentReference]{@link DocumentReference}. The update will
|
||||
* fail if applied to a document that does not exist.
|
||||
*
|
||||
* The update() method accepts either an object with field paths encoded as
|
||||
* keys and field values encoded as values, or a variable number of arguments
|
||||
* that alternate between field paths and field values. Nested fields can be
|
||||
* updated by providing dot-separated field path strings or by providing
|
||||
* FieldPath objects.
|
||||
*
|
||||
* A Precondition restricting this update can be specified as the last
|
||||
* argument.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* updated.
|
||||
* @param {UpdateData|string|FieldPath} dataOrField An object
|
||||
* containing the fields and values with which to update the document
|
||||
* or the path of the first field to update.
|
||||
* @param {
|
||||
* ...(Precondition|*|string|FieldPath)} preconditionOrValues -
|
||||
* An alternating list of field paths and values to update or a Precondition
|
||||
* to to enforce on this update.
|
||||
* @returns {Transaction} This Transaction instance. Used for
|
||||
* chaining method calls.
|
||||
*
|
||||
* @example
|
||||
* firestore.runTransaction(transaction => {
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
* return transaction.get(documentRef).then(doc => {
|
||||
* if (doc.exists) {
|
||||
* transaction.update(documentRef, { count: doc.get('count') + 1 });
|
||||
* } else {
|
||||
* transaction.create(documentRef, { count: 1 });
|
||||
* }
|
||||
* });
|
||||
* });
|
||||
*/
|
||||
update(documentRef, dataOrField, ...preconditionOrValues) {
|
||||
validate_1.validateMinNumberOfArguments('Transaction.update', arguments, 2);
|
||||
this._writeBatch.update.apply(this._writeBatch, [
|
||||
documentRef,
|
||||
dataOrField,
|
||||
...preconditionOrValues,
|
||||
]);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Deletes the document referred to by the provided [DocumentReference]
|
||||
* {@link DocumentReference}.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* deleted.
|
||||
* @param {Precondition=} precondition A precondition to enforce for this
|
||||
* delete.
|
||||
* @param {Timestamp=} precondition.lastUpdateTime If set, enforces that the
|
||||
* document was last updated at lastUpdateTime. Fails the transaction if the
|
||||
* document doesn't exist or was last updated at a different time.
|
||||
* @returns {Transaction} This Transaction instance. Used for
|
||||
* chaining method calls.
|
||||
*
|
||||
* @example
|
||||
* firestore.runTransaction(transaction => {
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
* transaction.delete(documentRef);
|
||||
* return Promise.resolve();
|
||||
* });
|
||||
*/
|
||||
delete(documentRef, precondition) {
|
||||
this._writeBatch.delete(documentRef, precondition);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Starts a transaction and obtains the transaction id from the server.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
begin() {
|
||||
const request = {
|
||||
database: this._firestore.formattedName,
|
||||
};
|
||||
if (this._transactionId) {
|
||||
request.options = {
|
||||
readWrite: {
|
||||
retryTransaction: this._transactionId,
|
||||
},
|
||||
};
|
||||
}
|
||||
return this._firestore
|
||||
.request('beginTransaction', request, this._requestTag, ALLOW_RETRIES)
|
||||
.then(resp => {
|
||||
this._transactionId = resp.transaction;
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Commits all queued-up changes in this transaction and releases all locks.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
commit() {
|
||||
return this._writeBatch
|
||||
.commit_({
|
||||
transactionId: this._transactionId,
|
||||
requestTag: this._requestTag,
|
||||
})
|
||||
.then(() => { });
|
||||
}
|
||||
/**
|
||||
* Releases all locks and rolls back this transaction.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
rollback() {
|
||||
const request = {
|
||||
database: this._firestore.formattedName,
|
||||
transaction: this._transactionId,
|
||||
};
|
||||
return this._firestore.request('rollback', request, this._requestTag,
|
||||
/* allowRetries= */ false);
|
||||
}
|
||||
/**
|
||||
* Returns the tag to use with with all request for this Transaction.
|
||||
* @private
|
||||
* @return A unique client-generated identifier for this transaction.
|
||||
*/
|
||||
get requestTag() {
|
||||
return this._requestTag;
|
||||
}
|
||||
}
|
||||
exports.Transaction = Transaction;
|
||||
/**
|
||||
* Parses the arguments for the `getAll()` call supported by both the Firestore
|
||||
* and Transaction class.
|
||||
*
|
||||
* @private
|
||||
* @param documentRefsOrReadOptions An array of document references followed by
|
||||
* an optional ReadOptions object.
|
||||
*/
|
||||
function parseGetAllArguments(documentRefsOrReadOptions) {
|
||||
let documents;
|
||||
let readOptions = undefined;
|
||||
if (Array.isArray(documentRefsOrReadOptions[0])) {
|
||||
throw new Error('getAll() no longer accepts an array as its first argument. ' +
|
||||
'Please unpack your array and call getAll() with individual arguments.');
|
||||
}
|
||||
if (documentRefsOrReadOptions.length > 0 &&
|
||||
serializer_1.isPlainObject(documentRefsOrReadOptions[documentRefsOrReadOptions.length - 1])) {
|
||||
readOptions = documentRefsOrReadOptions.pop();
|
||||
documents = documentRefsOrReadOptions;
|
||||
}
|
||||
else {
|
||||
documents = documentRefsOrReadOptions;
|
||||
}
|
||||
for (let i = 0; i < documents.length; ++i) {
|
||||
reference_1.validateDocumentReference(i, documents[i]);
|
||||
}
|
||||
validateReadOptions('options', readOptions, { optional: true });
|
||||
const fieldMask = readOptions && readOptions.fieldMask
|
||||
? readOptions.fieldMask.map(fieldPath => path_1.FieldPath.fromArgument(fieldPath))
|
||||
: null;
|
||||
return { fieldMask, documents };
|
||||
}
|
||||
exports.parseGetAllArguments = parseGetAllArguments;
|
||||
/**
|
||||
* Validates the use of 'options' as ReadOptions and enforces that 'fieldMask'
|
||||
* is an array of strings or field paths.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the ReadOptions can be omitted.
|
||||
*/
|
||||
function validateReadOptions(arg, value, options) {
|
||||
if (!validate_1.validateOptional(value, options)) {
|
||||
if (!util_1.isObject(value)) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'read option')} Input is not an object.'`);
|
||||
}
|
||||
const options = value;
|
||||
if (options.fieldMask !== undefined) {
|
||||
if (!Array.isArray(options.fieldMask)) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'read option')} "fieldMask" is not an array.`);
|
||||
}
|
||||
for (let i = 0; i < options.fieldMask.length; ++i) {
|
||||
try {
|
||||
path_1.validateFieldPath(i, options.fieldMask[i]);
|
||||
}
|
||||
catch (err) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'read option')} "fieldMask" is not valid: ${err.message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=transaction.js.map
|
21
node_modules/@google-cloud/firestore/build/src/types.js
generated
vendored
Normal file
21
node_modules/@google-cloud/firestore/build/src/types.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class GrpcError extends Error {
|
||||
}
|
||||
exports.GrpcError = GrpcError;
|
||||
//# sourceMappingURL=types.js.map
|
89
node_modules/@google-cloud/firestore/build/src/util.js
generated
vendored
Normal file
89
node_modules/@google-cloud/firestore/build/src/util.js
generated
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
/**
|
||||
* A Promise implementation that supports deferred resolution.
|
||||
* @private
|
||||
*/
|
||||
class Deferred {
|
||||
constructor() {
|
||||
this.resolve = () => { };
|
||||
this.reject = () => { };
|
||||
this.promise = new Promise((resolve, reject) => {
|
||||
this.resolve = resolve;
|
||||
this.reject = reject;
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.Deferred = Deferred;
|
||||
/**
|
||||
* Generate a unique client-side identifier.
|
||||
*
|
||||
* Used for the creation of new documents.
|
||||
*
|
||||
* @private
|
||||
* @returns {string} A unique 20-character wide identifier.
|
||||
*/
|
||||
function autoId() {
|
||||
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
let autoId = '';
|
||||
for (let i = 0; i < 20; i++) {
|
||||
autoId += chars.charAt(Math.floor(Math.random() * chars.length));
|
||||
}
|
||||
return autoId;
|
||||
}
|
||||
exports.autoId = autoId;
|
||||
/**
|
||||
* Generate a short and semi-random client-side identifier.
|
||||
*
|
||||
* Used for the creation of request tags.
|
||||
*
|
||||
* @private
|
||||
* @returns {string} A random 5-character wide identifier.
|
||||
*/
|
||||
function requestTag() {
|
||||
return autoId().substr(0, 5);
|
||||
}
|
||||
exports.requestTag = requestTag;
|
||||
/**
|
||||
* Determines whether `value` is a JavaScript object.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function isObject(value) {
|
||||
return Object.prototype.toString.call(value) === '[object Object]';
|
||||
}
|
||||
exports.isObject = isObject;
|
||||
/**
|
||||
* Returns whether `value` has no custom properties.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function isEmpty(value) {
|
||||
return Object.keys(value).length === 0;
|
||||
}
|
||||
exports.isEmpty = isEmpty;
|
||||
/**
|
||||
* Determines whether `value` is a JavaScript function.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function isFunction(value) {
|
||||
return typeof value === 'function';
|
||||
}
|
||||
exports.isFunction = isFunction;
|
||||
//# sourceMappingURL=util.js.map
|
101
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/admin/v1/doc_field.js
generated
vendored
Normal file
101
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/admin/v1/doc_field.js
generated
vendored
Normal file
@ -0,0 +1,101 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* Represents a single field in the database.
|
||||
*
|
||||
* Fields are grouped by their "Collection Group", which represent all
|
||||
* collections in the database with the same id.
|
||||
*
|
||||
* @property {string} name
|
||||
* A field name of the form
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}`
|
||||
*
|
||||
* A field path may be a simple field name, e.g. `address` or a path to fields
|
||||
* within map_value , e.g. `address.city`,
|
||||
* or a special field path. The only valid special field is `*`, which
|
||||
* represents any field.
|
||||
*
|
||||
* Field paths may be quoted using ` (backtick). The only character that needs
|
||||
* to be escaped within a quoted field path is the backtick character itself,
|
||||
* escaped using a backslash. Special characters in field paths that
|
||||
* must be quoted include: `*`, `.`,
|
||||
* ``` (backtick), `[`, `]`, as well as any ascii symbolic characters.
|
||||
*
|
||||
* Examples:
|
||||
* (Note: Comments here are written in markdown syntax, so there is an
|
||||
* additional layer of backticks to represent a code block)
|
||||
* `\`address.city\`` represents a field named `address.city`, not the map key
|
||||
* `city` in the field `address`.
|
||||
* `\`*\`` represents a field named `*`, not any field.
|
||||
*
|
||||
* A special `Field` contains the default indexing settings for all fields.
|
||||
* This field's resource name is:
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`
|
||||
* Indexes defined on this `Field` will be applied to all fields which do not
|
||||
* have their own `Field` index configuration.
|
||||
*
|
||||
* @property {Object} indexConfig
|
||||
* The index configuration for this field. If unset, field indexing will
|
||||
* revert to the configuration defined by the `ancestor_field`. To
|
||||
* explicitly remove all indexes for this field, specify an index config
|
||||
* with an empty list of indexes.
|
||||
*
|
||||
* This object should have the same structure as [IndexConfig]{@link google.firestore.admin.v1.IndexConfig}
|
||||
*
|
||||
* @typedef Field
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.Field definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/field.proto}
|
||||
*/
|
||||
const Field = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* The index configuration for this field.
|
||||
*
|
||||
* @property {Object[]} indexes
|
||||
* The indexes supported for this field.
|
||||
*
|
||||
* This object should have the same structure as [Index]{@link google.firestore.admin.v1.Index}
|
||||
*
|
||||
* @property {boolean} usesAncestorConfig
|
||||
* Output only.
|
||||
* When true, the `Field`'s index configuration is set from the
|
||||
* configuration specified by the `ancestor_field`.
|
||||
* When false, the `Field`'s index configuration is defined explicitly.
|
||||
*
|
||||
* @property {string} ancestorField
|
||||
* Output only.
|
||||
* Specifies the resource name of the `Field` from which this field's
|
||||
* index configuration is set (when `uses_ancestor_config` is true),
|
||||
* or from which it *would* be set if this field had no index configuration
|
||||
* (when `uses_ancestor_config` is false).
|
||||
*
|
||||
* @property {boolean} reverting
|
||||
* Output only
|
||||
* When true, the `Field`'s index configuration is in the process of being
|
||||
* reverted. Once complete, the index config will transition to the same
|
||||
* state as the field specified by `ancestor_field`, at which point
|
||||
* `uses_ancestor_config` will be `true` and `reverting` will be `false`.
|
||||
*
|
||||
* @typedef IndexConfig
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.Field.IndexConfig definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/field.proto}
|
||||
*/
|
||||
IndexConfig: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
};
|
||||
//# sourceMappingURL=doc_field.js.map
|
243
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/admin/v1/doc_firestore_admin.js
generated
vendored
Normal file
243
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/admin/v1/doc_firestore_admin.js
generated
vendored
Normal file
@ -0,0 +1,243 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* The request for FirestoreAdmin.CreateIndex.
|
||||
*
|
||||
* @property {string} parent
|
||||
* A parent name of the form
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
||||
*
|
||||
* @property {Object} index
|
||||
* The composite index to create.
|
||||
*
|
||||
* This object should have the same structure as [Index]{@link google.firestore.admin.v1.Index}
|
||||
*
|
||||
* @typedef CreateIndexRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.CreateIndexRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const CreateIndexRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.ListIndexes.
|
||||
*
|
||||
* @property {string} parent
|
||||
* A parent name of the form
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
||||
*
|
||||
* @property {string} filter
|
||||
* The filter to apply to list results.
|
||||
*
|
||||
* @property {number} pageSize
|
||||
* The number of results to return.
|
||||
*
|
||||
* @property {string} pageToken
|
||||
* A page token, returned from a previous call to
|
||||
* FirestoreAdmin.ListIndexes, that may be used to get the next
|
||||
* page of results.
|
||||
*
|
||||
* @typedef ListIndexesRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.ListIndexesRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const ListIndexesRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for FirestoreAdmin.ListIndexes.
|
||||
*
|
||||
* @property {Object[]} indexes
|
||||
* The requested indexes.
|
||||
*
|
||||
* This object should have the same structure as [Index]{@link google.firestore.admin.v1.Index}
|
||||
*
|
||||
* @property {string} nextPageToken
|
||||
* A page token that may be used to request another page of results. If blank,
|
||||
* this is the last page.
|
||||
*
|
||||
* @typedef ListIndexesResponse
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.ListIndexesResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const ListIndexesResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.GetIndex.
|
||||
*
|
||||
* @property {string} name
|
||||
* A name of the form
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
|
||||
*
|
||||
* @typedef GetIndexRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.GetIndexRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const GetIndexRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.DeleteIndex.
|
||||
*
|
||||
* @property {string} name
|
||||
* A name of the form
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
|
||||
*
|
||||
* @typedef DeleteIndexRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.DeleteIndexRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const DeleteIndexRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.UpdateField.
|
||||
*
|
||||
* @property {Object} field
|
||||
* The field to be updated.
|
||||
*
|
||||
* This object should have the same structure as [Field]{@link google.firestore.admin.v1.Field}
|
||||
*
|
||||
* @property {Object} updateMask
|
||||
* A mask, relative to the field. If specified, only configuration specified
|
||||
* by this field_mask will be updated in the field.
|
||||
*
|
||||
* This object should have the same structure as [FieldMask]{@link google.protobuf.FieldMask}
|
||||
*
|
||||
* @typedef UpdateFieldRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.UpdateFieldRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const UpdateFieldRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.GetField.
|
||||
*
|
||||
* @property {string} name
|
||||
* A name of the form
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}`
|
||||
*
|
||||
* @typedef GetFieldRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.GetFieldRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const GetFieldRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.ListFields.
|
||||
*
|
||||
* @property {string} parent
|
||||
* A parent name of the form
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
|
||||
*
|
||||
* @property {string} filter
|
||||
* The filter to apply to list results. Currently,
|
||||
* FirestoreAdmin.ListFields only supports listing fields
|
||||
* that have been explicitly overridden. To issue this query, call
|
||||
* FirestoreAdmin.ListFields with the filter set to
|
||||
* `indexConfig.usesAncestorConfig:false`.
|
||||
*
|
||||
* @property {number} pageSize
|
||||
* The number of results to return.
|
||||
*
|
||||
* @property {string} pageToken
|
||||
* A page token, returned from a previous call to
|
||||
* FirestoreAdmin.ListFields, that may be used to get the next
|
||||
* page of results.
|
||||
*
|
||||
* @typedef ListFieldsRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.ListFieldsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const ListFieldsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for FirestoreAdmin.ListFields.
|
||||
*
|
||||
* @property {Object[]} fields
|
||||
* The requested fields.
|
||||
*
|
||||
* This object should have the same structure as [Field]{@link google.firestore.admin.v1.Field}
|
||||
*
|
||||
* @property {string} nextPageToken
|
||||
* A page token that may be used to request another page of results. If blank,
|
||||
* this is the last page.
|
||||
*
|
||||
* @typedef ListFieldsResponse
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.ListFieldsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const ListFieldsResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.ExportDocuments.
|
||||
*
|
||||
* @property {string} name
|
||||
* Database to export. Should be of the form:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {string[]} collectionIds
|
||||
* Which collection ids to export. Unspecified means all collections.
|
||||
*
|
||||
* @property {string} outputUriPrefix
|
||||
* The output URI. Currently only supports Google Cloud Storage URIs of the
|
||||
* form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name
|
||||
* of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional
|
||||
* Google Cloud Storage namespace path. When
|
||||
* choosing a name, be sure to consider Google Cloud Storage naming
|
||||
* guidelines: https://cloud.google.com/storage/docs/naming.
|
||||
* If the URI is a bucket (without a namespace path), a prefix will be
|
||||
* generated based on the start time.
|
||||
*
|
||||
* @typedef ExportDocumentsRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.ExportDocumentsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const ExportDocumentsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for FirestoreAdmin.ImportDocuments.
|
||||
*
|
||||
* @property {string} name
|
||||
* Database to import into. Should be of the form:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {string[]} collectionIds
|
||||
* Which collection ids to import. Unspecified means all collections included
|
||||
* in the import.
|
||||
*
|
||||
* @property {string} inputUriPrefix
|
||||
* Location of the exported files.
|
||||
* This must match the output_uri_prefix of an ExportDocumentsResponse from
|
||||
* an export that has completed successfully.
|
||||
* See:
|
||||
* google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix.
|
||||
*
|
||||
* @typedef ImportDocumentsRequest
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.ImportDocumentsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/firestore_admin.proto}
|
||||
*/
|
||||
const ImportDocumentsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_firestore_admin.js.map
|
189
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/admin/v1/doc_index.js
generated
vendored
Normal file
189
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/admin/v1/doc_index.js
generated
vendored
Normal file
@ -0,0 +1,189 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* Cloud Firestore indexes enable simple and complex queries against
|
||||
* documents in a database.
|
||||
*
|
||||
* @property {string} name
|
||||
* Output only.
|
||||
* A server defined name for this index.
|
||||
* The form of this name for composite indexes will be:
|
||||
* `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}`
|
||||
* For single field indexes, this field will be empty.
|
||||
*
|
||||
* @property {number} queryScope
|
||||
* Indexes with a collection query scope specified allow queries
|
||||
* against a collection that is the child of a specific document, specified at
|
||||
* query time, and that has the same collection id.
|
||||
*
|
||||
* Indexes with a collection group query scope specified allow queries against
|
||||
* all collections descended from a specific document, specified at query
|
||||
* time, and that have the same collection id as this index.
|
||||
*
|
||||
* The number should be among the values of [QueryScope]{@link google.firestore.admin.v1.QueryScope}
|
||||
*
|
||||
* @property {Object[]} fields
|
||||
* The fields supported by this index.
|
||||
*
|
||||
* For composite indexes, this is always 2 or more fields.
|
||||
* The last field entry is always for the field path `__name__`. If, on
|
||||
* creation, `__name__` was not specified as the last field, it will be added
|
||||
* automatically with the same direction as that of the last field defined. If
|
||||
* the final field in a composite index is not directional, the `__name__`
|
||||
* will be ordered ASCENDING (unless explicitly specified).
|
||||
*
|
||||
* For single field indexes, this will always be exactly one entry with a
|
||||
* field path equal to the field path of the associated field.
|
||||
*
|
||||
* This object should have the same structure as [IndexField]{@link google.firestore.admin.v1.IndexField}
|
||||
*
|
||||
* @property {number} state
|
||||
* Output only.
|
||||
* The serving state of the index.
|
||||
*
|
||||
* The number should be among the values of [State]{@link google.firestore.admin.v1.State}
|
||||
*
|
||||
* @typedef Index
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.Index definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/index.proto}
|
||||
*/
|
||||
const Index = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A field in an index.
|
||||
* The field_path describes which field is indexed, the value_mode describes
|
||||
* how the field value is indexed.
|
||||
*
|
||||
* @property {string} fieldPath
|
||||
* Can be __name__.
|
||||
* For single field indexes, this must match the name of the field or may
|
||||
* be omitted.
|
||||
*
|
||||
* @property {number} order
|
||||
* Indicates that this field supports ordering by the specified order or
|
||||
* comparing using =, <, <=, >, >=.
|
||||
*
|
||||
* The number should be among the values of [Order]{@link google.firestore.admin.v1.Order}
|
||||
*
|
||||
* @property {number} arrayConfig
|
||||
* Indicates that this field supports operations on `array_value`s.
|
||||
*
|
||||
* The number should be among the values of [ArrayConfig]{@link google.firestore.admin.v1.ArrayConfig}
|
||||
*
|
||||
* @typedef IndexField
|
||||
* @memberof google.firestore.admin.v1
|
||||
* @see [google.firestore.admin.v1.Index.IndexField definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/admin/v1/index.proto}
|
||||
*/
|
||||
IndexField: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* The supported array value configurations.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.admin.v1
|
||||
*/
|
||||
ArrayConfig: {
|
||||
/**
|
||||
* The index does not support additional array queries.
|
||||
*/
|
||||
ARRAY_CONFIG_UNSPECIFIED: 0,
|
||||
/**
|
||||
* The index supports array containment queries.
|
||||
*/
|
||||
CONTAINS: 1,
|
||||
},
|
||||
/**
|
||||
* The supported orderings.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.admin.v1
|
||||
*/
|
||||
Order: {
|
||||
/**
|
||||
* The ordering is unspecified. Not a valid option.
|
||||
*/
|
||||
ORDER_UNSPECIFIED: 0,
|
||||
/**
|
||||
* The field is ordered by ascending field value.
|
||||
*/
|
||||
ASCENDING: 1,
|
||||
/**
|
||||
* The field is ordered by descending field value.
|
||||
*/
|
||||
DESCENDING: 2,
|
||||
},
|
||||
},
|
||||
/**
|
||||
* Query Scope defines the scope at which a query is run. This is specified on
|
||||
* a StructuredQuery's `from` field.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.admin.v1
|
||||
*/
|
||||
QueryScope: {
|
||||
/**
|
||||
* The query scope is unspecified. Not a valid option.
|
||||
*/
|
||||
QUERY_SCOPE_UNSPECIFIED: 0,
|
||||
/**
|
||||
* Indexes with a collection query scope specified allow queries
|
||||
* against a collection that is the child of a specific document, specified
|
||||
* at query time, and that has the collection id specified by the index.
|
||||
*/
|
||||
COLLECTION: 1,
|
||||
},
|
||||
/**
|
||||
* The state of an index. During index creation, an index will be in the
|
||||
* `CREATING` state. If the index is created successfully, it will transition
|
||||
* to the `READY` state. If the index creation encounters a problem, the index
|
||||
* will transition to the `NEEDS_REPAIR` state.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.admin.v1
|
||||
*/
|
||||
State: {
|
||||
/**
|
||||
* The state is unspecified.
|
||||
*/
|
||||
STATE_UNSPECIFIED: 0,
|
||||
/**
|
||||
* The index is being created.
|
||||
* There is an active long-running operation for the index.
|
||||
* The index is updated when writing a document.
|
||||
* Some index data may exist.
|
||||
*/
|
||||
CREATING: 1,
|
||||
/**
|
||||
* The index is ready to be used.
|
||||
* The index is updated when writing a document.
|
||||
* The index is fully populated from all stored documents it applies to.
|
||||
*/
|
||||
READY: 2,
|
||||
/**
|
||||
* The index was being created, but something went wrong.
|
||||
* There is no active long-running operation for the index,
|
||||
* and the most recently finished long-running operation failed.
|
||||
* The index is not updated when writing a document.
|
||||
* Some index data may exist.
|
||||
* Use the google.longrunning.Operations API to determine why the operation
|
||||
* that last attempted to create this index failed, then re-create the
|
||||
* index.
|
||||
*/
|
||||
NEEDS_REPAIR: 3,
|
||||
},
|
||||
};
|
||||
//# sourceMappingURL=doc_index.js.map
|
104
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_common.js
generated
vendored
Normal file
104
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_common.js
generated
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A set of field paths on a document.
|
||||
* Used to restrict a get or update operation on a document to a subset of its
|
||||
* fields.
|
||||
* This is different from standard field masks, as this is always scoped to a
|
||||
* Document, and takes in account the dynamic nature of Value.
|
||||
*
|
||||
* @property {string[]} fieldPaths
|
||||
* The list of field paths in the mask. See Document.fields for a field
|
||||
* path syntax reference.
|
||||
*
|
||||
* @typedef DocumentMask
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.DocumentMask definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/common.proto}
|
||||
*/
|
||||
const DocumentMask = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A precondition on a document, used for conditional operations.
|
||||
*
|
||||
* @property {boolean} exists
|
||||
* When set to `true`, the target document must exist.
|
||||
* When set to `false`, the target document must not exist.
|
||||
*
|
||||
* @property {Object} updateTime
|
||||
* When set, the target document must exist and have been last updated at
|
||||
* that time.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef Precondition
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Precondition definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/common.proto}
|
||||
*/
|
||||
const Precondition = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* Options for creating a new transaction.
|
||||
*
|
||||
* @property {Object} readOnly
|
||||
* The transaction can only be used for read operations.
|
||||
*
|
||||
* This object should have the same structure as [ReadOnly]{@link google.firestore.v1.ReadOnly}
|
||||
*
|
||||
* @property {Object} readWrite
|
||||
* The transaction can be used for both read and write operations.
|
||||
*
|
||||
* This object should have the same structure as [ReadWrite]{@link google.firestore.v1.ReadWrite}
|
||||
*
|
||||
* @typedef TransactionOptions
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.TransactionOptions definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/common.proto}
|
||||
*/
|
||||
const TransactionOptions = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* Options for a transaction that can be used to read and write documents.
|
||||
*
|
||||
* @property {Buffer} retryTransaction
|
||||
* An optional transaction to retry.
|
||||
*
|
||||
* @typedef ReadWrite
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.TransactionOptions.ReadWrite definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/common.proto}
|
||||
*/
|
||||
ReadWrite: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* Options for a transaction that can only be used to read documents.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef ReadOnly
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.TransactionOptions.ReadOnly definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/common.proto}
|
||||
*/
|
||||
ReadOnly: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
};
|
||||
//# sourceMappingURL=doc_common.js.map
|
177
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_document.js
generated
vendored
Normal file
177
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_document.js
generated
vendored
Normal file
@ -0,0 +1,177 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A Firestore document.
|
||||
*
|
||||
* Must not exceed 1 MiB - 4 bytes.
|
||||
*
|
||||
* @property {string} name
|
||||
* The resource name of the document, for example
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object.<string, Object>} fields
|
||||
* The document's fields.
|
||||
*
|
||||
* The map keys represent field names.
|
||||
*
|
||||
* A simple field name contains only characters `a` to `z`, `A` to `Z`,
|
||||
* `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
|
||||
* `foo_bar_17`.
|
||||
*
|
||||
* Field names matching the regular expression `__.*__` are reserved. Reserved
|
||||
* field names are forbidden except in certain documented contexts. The map
|
||||
* keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be
|
||||
* empty.
|
||||
*
|
||||
* Field paths may be used in other contexts to refer to structured fields
|
||||
* defined here. For `map_value`, the field path is represented by the simple
|
||||
* or quoted field names of the containing fields, delimited by `.`. For
|
||||
* example, the structured field
|
||||
* `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be
|
||||
* represented by the field path `foo.x&y`.
|
||||
*
|
||||
* Within a field path, a quoted field name starts and ends with `` ` `` and
|
||||
* may contain any character. Some characters, including `` ` ``, must be
|
||||
* escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
|
||||
* `` `bak\`tik` `` represents `` bak`tik ``.
|
||||
*
|
||||
* @property {Object} createTime
|
||||
* Output only. The time at which the document was created.
|
||||
*
|
||||
* This value increases monotonically when a document is deleted then
|
||||
* recreated. It can also be compared to values from other documents and
|
||||
* the `read_time` of a query.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {Object} updateTime
|
||||
* Output only. The time at which the document was last changed.
|
||||
*
|
||||
* This value is initially set to the `create_time` then increases
|
||||
* monotonically with each change to the document. It can also be
|
||||
* compared to values from other documents and the `read_time` of a query.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef Document
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Document definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/document.proto}
|
||||
*/
|
||||
const Document = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A message that can hold any of the supported value types.
|
||||
*
|
||||
* @property {number} nullValue
|
||||
* A null value.
|
||||
*
|
||||
* The number should be among the values of [NullValue]{@link google.protobuf.NullValue}
|
||||
*
|
||||
* @property {boolean} booleanValue
|
||||
* A boolean value.
|
||||
*
|
||||
* @property {number} integerValue
|
||||
* An integer value.
|
||||
*
|
||||
* @property {number} doubleValue
|
||||
* A double value.
|
||||
*
|
||||
* @property {Object} timestampValue
|
||||
* A timestamp value.
|
||||
*
|
||||
* Precise only to microseconds. When stored, any additional precision is
|
||||
* rounded down.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {string} stringValue
|
||||
* A string value.
|
||||
*
|
||||
* The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
|
||||
* Only the first 1,500 bytes of the UTF-8 representation are considered by
|
||||
* queries.
|
||||
*
|
||||
* @property {Buffer} bytesValue
|
||||
* A bytes value.
|
||||
*
|
||||
* Must not exceed 1 MiB - 89 bytes.
|
||||
* Only the first 1,500 bytes are considered by queries.
|
||||
*
|
||||
* @property {string} referenceValue
|
||||
* A reference to a document. For example:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} geoPointValue
|
||||
* A geo point value representing a point on the surface of Earth.
|
||||
*
|
||||
* This object should have the same structure as [LatLng]{@link google.type.LatLng}
|
||||
*
|
||||
* @property {Object} arrayValue
|
||||
* An array value.
|
||||
*
|
||||
* Cannot directly contain another array value, though can contain an
|
||||
* map which contains another array.
|
||||
*
|
||||
* This object should have the same structure as [ArrayValue]{@link google.firestore.v1.ArrayValue}
|
||||
*
|
||||
* @property {Object} mapValue
|
||||
* A map value.
|
||||
*
|
||||
* This object should have the same structure as [MapValue]{@link google.firestore.v1.MapValue}
|
||||
*
|
||||
* @typedef Value
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Value definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/document.proto}
|
||||
*/
|
||||
const Value = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* An array value.
|
||||
*
|
||||
* @property {Object[]} values
|
||||
* Values in the array.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1.Value}
|
||||
*
|
||||
* @typedef ArrayValue
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ArrayValue definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/document.proto}
|
||||
*/
|
||||
const ArrayValue = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A map value.
|
||||
*
|
||||
* @property {Object.<string, Object>} fields
|
||||
* The map's fields.
|
||||
*
|
||||
* The map keys represent field names. Field names matching the regular
|
||||
* expression `__.*__` are reserved. Reserved field names are forbidden except
|
||||
* in certain documented contexts. The map keys, represented as UTF-8, must
|
||||
* not exceed 1,500 bytes and cannot be empty.
|
||||
*
|
||||
* @typedef MapValue
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.MapValue definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/document.proto}
|
||||
*/
|
||||
const MapValue = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_document.js.map
|
840
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_firestore.js
generated
vendored
Normal file
840
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_firestore.js
generated
vendored
Normal file
@ -0,0 +1,840 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* The request for Firestore.GetDocument.
|
||||
*
|
||||
* @property {string} name
|
||||
* The resource name of the Document to get. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If the document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1.DocumentMask}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads the document in a transaction.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads the version of the document at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef GetDocumentRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.GetDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const GetDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.ListDocuments.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents` or
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {string} collectionId
|
||||
* The collection ID, relative to `parent`, to list. For example: `chatrooms`
|
||||
* or `messages`.
|
||||
*
|
||||
* @property {number} pageSize
|
||||
* The maximum number of documents to return.
|
||||
*
|
||||
* @property {string} pageToken
|
||||
* The `next_page_token` value returned from a previous List request, if any.
|
||||
*
|
||||
* @property {string} orderBy
|
||||
* The order to sort results by. For example: `priority desc, name`.
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If a document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1.DocumentMask}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads documents in a transaction.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents as they were at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {boolean} showMissing
|
||||
* If the list should show missing documents. A missing document is a
|
||||
* document that does not exist but has sub-documents. These documents will
|
||||
* be returned with a key but will not have fields, Document.create_time,
|
||||
* or Document.update_time set.
|
||||
*
|
||||
* Requests with `show_missing` may not specify `where` or
|
||||
* `order_by`.
|
||||
*
|
||||
* @typedef ListDocumentsRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ListDocumentsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const ListDocumentsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.ListDocuments.
|
||||
*
|
||||
* @property {Object[]} documents
|
||||
* The Documents found.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1.Document}
|
||||
*
|
||||
* @property {string} nextPageToken
|
||||
* The next page token.
|
||||
*
|
||||
* @typedef ListDocumentsResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ListDocumentsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const ListDocumentsResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.CreateDocument.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource. For example:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
|
||||
*
|
||||
* @property {string} collectionId
|
||||
* The collection ID, relative to `parent`, to list. For example: `chatrooms`.
|
||||
*
|
||||
* @property {string} documentId
|
||||
* The client-assigned document ID to use for this document.
|
||||
*
|
||||
* Optional. If not specified, an ID will be assigned by the service.
|
||||
*
|
||||
* @property {Object} document
|
||||
* The document to create. `name` must not be set.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1.Document}
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If the document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1.DocumentMask}
|
||||
*
|
||||
* @typedef CreateDocumentRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.CreateDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const CreateDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.UpdateDocument.
|
||||
*
|
||||
* @property {Object} document
|
||||
* The updated document.
|
||||
* Creates the document if it does not already exist.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1.Document}
|
||||
*
|
||||
* @property {Object} updateMask
|
||||
* The fields to update.
|
||||
* None of the field paths in the mask may contain a reserved name.
|
||||
*
|
||||
* If the document exists on the server and has fields not referenced in the
|
||||
* mask, they are left unchanged.
|
||||
* Fields referenced in the mask, but not present in the input document, are
|
||||
* deleted from the document on the server.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1.DocumentMask}
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If the document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1.DocumentMask}
|
||||
*
|
||||
* @property {Object} currentDocument
|
||||
* An optional precondition on the document.
|
||||
* The request will fail if this is set and not met by the target document.
|
||||
*
|
||||
* This object should have the same structure as [Precondition]{@link google.firestore.v1.Precondition}
|
||||
*
|
||||
* @typedef UpdateDocumentRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.UpdateDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const UpdateDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.DeleteDocument.
|
||||
*
|
||||
* @property {string} name
|
||||
* The resource name of the Document to delete. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} currentDocument
|
||||
* An optional precondition on the document.
|
||||
* The request will fail if this is set and not met by the target document.
|
||||
*
|
||||
* This object should have the same structure as [Precondition]{@link google.firestore.v1.Precondition}
|
||||
*
|
||||
* @typedef DeleteDocumentRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.DeleteDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const DeleteDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.BatchGetDocuments.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {string[]} documents
|
||||
* The names of the documents to retrieve. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* The request will fail if any of the document is not a child resource of the
|
||||
* given `database`. Duplicate names will be elided.
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If a document has a field that is not present in this mask, that field will
|
||||
* not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1.DocumentMask}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads documents in a transaction.
|
||||
*
|
||||
* @property {Object} newTransaction
|
||||
* Starts a new transaction and reads the documents.
|
||||
* Defaults to a read-only transaction.
|
||||
* The new transaction ID will be returned as the first response in the
|
||||
* stream.
|
||||
*
|
||||
* This object should have the same structure as [TransactionOptions]{@link google.firestore.v1.TransactionOptions}
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents as they were at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef BatchGetDocumentsRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.BatchGetDocumentsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const BatchGetDocumentsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The streamed response for Firestore.BatchGetDocuments.
|
||||
*
|
||||
* @property {Object} found
|
||||
* A document that was requested.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1.Document}
|
||||
*
|
||||
* @property {string} missing
|
||||
* A document name that was requested but does not exist. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction that was started as part of this request.
|
||||
* Will only be set in the first response, and only if
|
||||
* BatchGetDocumentsRequest.new_transaction was set in the request.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The time at which the document was read.
|
||||
* This may be monotically increasing, in this case the previous documents in
|
||||
* the result stream are guaranteed not to have changed between their
|
||||
* read_time and this one.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef BatchGetDocumentsResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.BatchGetDocumentsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const BatchGetDocumentsResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.BeginTransaction.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Object} options
|
||||
* The options for the transaction.
|
||||
* Defaults to a read-write transaction.
|
||||
*
|
||||
* This object should have the same structure as [TransactionOptions]{@link google.firestore.v1.TransactionOptions}
|
||||
*
|
||||
* @typedef BeginTransactionRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.BeginTransactionRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const BeginTransactionRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.BeginTransaction.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction that was started.
|
||||
*
|
||||
* @typedef BeginTransactionResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.BeginTransactionResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const BeginTransactionResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.Commit.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Object[]} writes
|
||||
* The writes to apply.
|
||||
*
|
||||
* Always executed atomically and in order.
|
||||
*
|
||||
* This object should have the same structure as [Write]{@link google.firestore.v1.Write}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* If set, applies all writes in this transaction, and commits it.
|
||||
*
|
||||
* @typedef CommitRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.CommitRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const CommitRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.Commit.
|
||||
*
|
||||
* @property {Object[]} writeResults
|
||||
* The result of applying the writes.
|
||||
*
|
||||
* This i-th write result corresponds to the i-th write in the
|
||||
* request.
|
||||
*
|
||||
* This object should have the same structure as [WriteResult]{@link google.firestore.v1.WriteResult}
|
||||
*
|
||||
* @property {Object} commitTime
|
||||
* The time at which the commit occurred.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef CommitResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.CommitResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const CommitResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.Rollback.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction to roll back.
|
||||
*
|
||||
* @typedef RollbackRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.RollbackRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const RollbackRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.RunQuery.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents` or
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {Object} structuredQuery
|
||||
* A structured query.
|
||||
*
|
||||
* This object should have the same structure as [StructuredQuery]{@link google.firestore.v1.StructuredQuery}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads documents in a transaction.
|
||||
*
|
||||
* @property {Object} newTransaction
|
||||
* Starts a new transaction and reads the documents.
|
||||
* Defaults to a read-only transaction.
|
||||
* The new transaction ID will be returned as the first response in the
|
||||
* stream.
|
||||
*
|
||||
* This object should have the same structure as [TransactionOptions]{@link google.firestore.v1.TransactionOptions}
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents as they were at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef RunQueryRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.RunQueryRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const RunQueryRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.RunQuery.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction that was started as part of this request.
|
||||
* Can only be set in the first response, and only if
|
||||
* RunQueryRequest.new_transaction was set in the request.
|
||||
* If set, no other fields will be set in this response.
|
||||
*
|
||||
* @property {Object} document
|
||||
* A query result.
|
||||
* Not set when reporting partial progress.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1.Document}
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The time at which the document was read. This may be monotonically
|
||||
* increasing; in this case, the previous documents in the result stream are
|
||||
* guaranteed not to have changed between their `read_time` and this one.
|
||||
*
|
||||
* If the query returns no results, a response with `read_time` and no
|
||||
* `document` will be sent, and this represents the time at which the query
|
||||
* was run.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {number} skippedResults
|
||||
* The number of results that have been skipped due to an offset between
|
||||
* the last response and the current response.
|
||||
*
|
||||
* @typedef RunQueryResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.RunQueryResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const RunQueryResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.Write.
|
||||
*
|
||||
* The first request creates a stream, or resumes an existing one from a token.
|
||||
*
|
||||
* When creating a new stream, the server replies with a response containing
|
||||
* only an ID and a token, to use in the next request.
|
||||
*
|
||||
* When resuming a stream, the server first streams any responses later than the
|
||||
* given token, then a response containing only an up-to-date token, to use in
|
||||
* the next request.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
* This is only required in the first message.
|
||||
*
|
||||
* @property {string} streamId
|
||||
* The ID of the write stream to resume.
|
||||
* This may only be set in the first message. When left empty, a new write
|
||||
* stream will be created.
|
||||
*
|
||||
* @property {Object[]} writes
|
||||
* The writes to apply.
|
||||
*
|
||||
* Always executed atomically and in order.
|
||||
* This must be empty on the first request.
|
||||
* This may be empty on the last request.
|
||||
* This must not be empty on all other requests.
|
||||
*
|
||||
* This object should have the same structure as [Write]{@link google.firestore.v1.Write}
|
||||
*
|
||||
* @property {Buffer} streamToken
|
||||
* A stream token that was previously sent by the server.
|
||||
*
|
||||
* The client should set this field to the token from the most recent
|
||||
* WriteResponse it has received. This acknowledges that the client has
|
||||
* received responses up to this token. After sending this token, earlier
|
||||
* tokens may not be used anymore.
|
||||
*
|
||||
* The server may close the stream if there are too many unacknowledged
|
||||
* responses.
|
||||
*
|
||||
* Leave this field unset when creating a new stream. To resume a stream at
|
||||
* a specific point, set this field and the `stream_id` field.
|
||||
*
|
||||
* Leave this field unset when creating a new stream.
|
||||
*
|
||||
* @property {Object.<string, string>} labels
|
||||
* Labels associated with this write request.
|
||||
*
|
||||
* @typedef WriteRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.WriteRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const WriteRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.Write.
|
||||
*
|
||||
* @property {string} streamId
|
||||
* The ID of the stream.
|
||||
* Only set on the first message, when a new stream was created.
|
||||
*
|
||||
* @property {Buffer} streamToken
|
||||
* A token that represents the position of this response in the stream.
|
||||
* This can be used by a client to resume the stream at this point.
|
||||
*
|
||||
* This field is always set.
|
||||
*
|
||||
* @property {Object[]} writeResults
|
||||
* The result of applying the writes.
|
||||
*
|
||||
* This i-th write result corresponds to the i-th write in the
|
||||
* request.
|
||||
*
|
||||
* This object should have the same structure as [WriteResult]{@link google.firestore.v1.WriteResult}
|
||||
*
|
||||
* @property {Object} commitTime
|
||||
* The time at which the commit occurred.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef WriteResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.WriteResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const WriteResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A request for Firestore.Listen
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Object} addTarget
|
||||
* A target to add to this stream.
|
||||
*
|
||||
* This object should have the same structure as [Target]{@link google.firestore.v1.Target}
|
||||
*
|
||||
* @property {number} removeTarget
|
||||
* The ID of a target to remove from this stream.
|
||||
*
|
||||
* @property {Object.<string, string>} labels
|
||||
* Labels associated with this target change.
|
||||
*
|
||||
* @typedef ListenRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ListenRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const ListenRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.Listen.
|
||||
*
|
||||
* @property {Object} targetChange
|
||||
* Targets have changed.
|
||||
*
|
||||
* This object should have the same structure as [TargetChange]{@link google.firestore.v1.TargetChange}
|
||||
*
|
||||
* @property {Object} documentChange
|
||||
* A Document has changed.
|
||||
*
|
||||
* This object should have the same structure as [DocumentChange]{@link google.firestore.v1.DocumentChange}
|
||||
*
|
||||
* @property {Object} documentDelete
|
||||
* A Document has been deleted.
|
||||
*
|
||||
* This object should have the same structure as [DocumentDelete]{@link google.firestore.v1.DocumentDelete}
|
||||
*
|
||||
* @property {Object} documentRemove
|
||||
* A Document has been removed from a target (because it is no longer
|
||||
* relevant to that target).
|
||||
*
|
||||
* This object should have the same structure as [DocumentRemove]{@link google.firestore.v1.DocumentRemove}
|
||||
*
|
||||
* @property {Object} filter
|
||||
* A filter to apply to the set of documents previously returned for the
|
||||
* given target.
|
||||
*
|
||||
* Returned when documents may have been removed from the given target, but
|
||||
* the exact documents are unknown.
|
||||
*
|
||||
* This object should have the same structure as [ExistenceFilter]{@link google.firestore.v1.ExistenceFilter}
|
||||
*
|
||||
* @typedef ListenResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ListenResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const ListenResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A specification of a set of documents to listen to.
|
||||
*
|
||||
* @property {Object} query
|
||||
* A target specified by a query.
|
||||
*
|
||||
* This object should have the same structure as [QueryTarget]{@link google.firestore.v1.QueryTarget}
|
||||
*
|
||||
* @property {Object} documents
|
||||
* A target specified by a set of document names.
|
||||
*
|
||||
* This object should have the same structure as [DocumentsTarget]{@link google.firestore.v1.DocumentsTarget}
|
||||
*
|
||||
* @property {Buffer} resumeToken
|
||||
* A resume token from a prior TargetChange for an identical target.
|
||||
*
|
||||
* Using a resume token with a different target is unsupported and may fail.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Start listening after a specific `read_time`.
|
||||
*
|
||||
* The client must know the state of matching documents at this time.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {number} targetId
|
||||
* A client provided target ID.
|
||||
*
|
||||
* If not set, the server will assign an ID for the target.
|
||||
*
|
||||
* Used for resuming a target without changing IDs. The IDs can either be
|
||||
* client-assigned or be server-assigned in a previous stream. All targets
|
||||
* with client provided IDs must be added before adding a target that needs
|
||||
* a server-assigned id.
|
||||
*
|
||||
* @property {boolean} once
|
||||
* If the target should be removed once it is current and consistent.
|
||||
*
|
||||
* @typedef Target
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Target definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const Target = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A target specified by a set of documents names.
|
||||
*
|
||||
* @property {string[]} documents
|
||||
* The names of the documents to retrieve. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* The request will fail if any of the document is not a child resource of
|
||||
* the given `database`. Duplicate names will be elided.
|
||||
*
|
||||
* @typedef DocumentsTarget
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Target.DocumentsTarget definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
DocumentsTarget: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A target specified by a query.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents` or
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {Object} structuredQuery
|
||||
* A structured query.
|
||||
*
|
||||
* This object should have the same structure as [StructuredQuery]{@link google.firestore.v1.StructuredQuery}
|
||||
*
|
||||
* @typedef QueryTarget
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Target.QueryTarget definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
QueryTarget: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
};
|
||||
/**
|
||||
* Targets being watched have changed.
|
||||
*
|
||||
* @property {number} targetChangeType
|
||||
* The type of change that occurred.
|
||||
*
|
||||
* The number should be among the values of [TargetChangeType]{@link google.firestore.v1.TargetChangeType}
|
||||
*
|
||||
* @property {number[]} targetIds
|
||||
* The target IDs of targets that have changed.
|
||||
*
|
||||
* If empty, the change applies to all targets.
|
||||
*
|
||||
* For `target_change_type=ADD`, the order of the target IDs matches the order
|
||||
* of the requests to add the targets. This allows clients to unambiguously
|
||||
* associate server-assigned target IDs with added targets.
|
||||
*
|
||||
* For other states, the order of the target IDs is not defined.
|
||||
*
|
||||
* @property {Object} cause
|
||||
* The error that resulted in this change, if applicable.
|
||||
*
|
||||
* This object should have the same structure as [Status]{@link google.rpc.Status}
|
||||
*
|
||||
* @property {Buffer} resumeToken
|
||||
* A token that can be used to resume the stream for the given `target_ids`,
|
||||
* or all targets if `target_ids` is empty.
|
||||
*
|
||||
* Not set on every target change.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The consistent `read_time` for the given `target_ids` (omitted when the
|
||||
* target_ids are not at a consistent snapshot).
|
||||
*
|
||||
* The stream is guaranteed to send a `read_time` with `target_ids` empty
|
||||
* whenever the entire stream reaches a new consistent snapshot. ADD,
|
||||
* CURRENT, and RESET messages are guaranteed to (eventually) result in a
|
||||
* new consistent snapshot (while NO_CHANGE and REMOVE messages are not).
|
||||
*
|
||||
* For a given stream, `read_time` is guaranteed to be monotonically
|
||||
* increasing.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef TargetChange
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.TargetChange definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const TargetChange = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* The type of change.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1
|
||||
*/
|
||||
TargetChangeType: {
|
||||
/**
|
||||
* No change has occurred. Used only to send an updated `resume_token`.
|
||||
*/
|
||||
NO_CHANGE: 0,
|
||||
/**
|
||||
* The targets have been added.
|
||||
*/
|
||||
ADD: 1,
|
||||
/**
|
||||
* The targets have been removed.
|
||||
*/
|
||||
REMOVE: 2,
|
||||
/**
|
||||
* The targets reflect all changes committed before the targets were added
|
||||
* to the stream.
|
||||
*
|
||||
* This will be sent after or with a `read_time` that is greater than or
|
||||
* equal to the time at which the targets were added.
|
||||
*
|
||||
* Listeners can wait for this change if read-after-write semantics
|
||||
* are desired.
|
||||
*/
|
||||
CURRENT: 3,
|
||||
/**
|
||||
* The targets have been reset, and a new initial state for the targets
|
||||
* will be returned in subsequent changes.
|
||||
*
|
||||
* After the initial state is complete, `CURRENT` will be returned even
|
||||
* if the target was previously indicated to be `CURRENT`.
|
||||
*/
|
||||
RESET: 4,
|
||||
},
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.ListCollectionIds.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent document. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {number} pageSize
|
||||
* The maximum number of results to return.
|
||||
*
|
||||
* @property {string} pageToken
|
||||
* A page token. Must be a value from
|
||||
* ListCollectionIdsResponse.
|
||||
*
|
||||
* @typedef ListCollectionIdsRequest
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ListCollectionIdsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const ListCollectionIdsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response from Firestore.ListCollectionIds.
|
||||
*
|
||||
* @property {string[]} collectionIds
|
||||
* The collection ids.
|
||||
*
|
||||
* @property {string} nextPageToken
|
||||
* A page token that may be used to continue the list.
|
||||
*
|
||||
* @typedef ListCollectionIdsResponse
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ListCollectionIdsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/firestore.proto}
|
||||
*/
|
||||
const ListCollectionIdsResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_firestore.js.map
|
363
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_query.js
generated
vendored
Normal file
363
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_query.js
generated
vendored
Normal file
@ -0,0 +1,363 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A Firestore query.
|
||||
*
|
||||
* @property {Object} select
|
||||
* The projection to return.
|
||||
*
|
||||
* This object should have the same structure as [Projection]{@link google.firestore.v1.Projection}
|
||||
*
|
||||
* @property {Object[]} from
|
||||
* The collections to query.
|
||||
*
|
||||
* This object should have the same structure as [CollectionSelector]{@link google.firestore.v1.CollectionSelector}
|
||||
*
|
||||
* @property {Object} where
|
||||
* The filter to apply.
|
||||
*
|
||||
* This object should have the same structure as [Filter]{@link google.firestore.v1.Filter}
|
||||
*
|
||||
* @property {Object[]} orderBy
|
||||
* The order to apply to the query results.
|
||||
*
|
||||
* Firestore guarantees a stable ordering through the following rules:
|
||||
*
|
||||
* * Any field required to appear in `order_by`, that is not already
|
||||
* specified in `order_by`, is appended to the order in field name order
|
||||
* by default.
|
||||
* * If an order on `__name__` is not specified, it is appended by default.
|
||||
*
|
||||
* Fields are appended with the same sort direction as the last order
|
||||
* specified, or 'ASCENDING' if no order was specified. For example:
|
||||
*
|
||||
* * `SELECT * FROM Foo ORDER BY A` becomes
|
||||
* `SELECT * FROM Foo ORDER BY A, __name__`
|
||||
* * `SELECT * FROM Foo ORDER BY A DESC` becomes
|
||||
* `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
|
||||
* * `SELECT * FROM Foo WHERE A > 1` becomes
|
||||
* `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
|
||||
*
|
||||
* This object should have the same structure as [Order]{@link google.firestore.v1.Order}
|
||||
*
|
||||
* @property {Object} startAt
|
||||
* A starting point for the query results.
|
||||
*
|
||||
* This object should have the same structure as [Cursor]{@link google.firestore.v1.Cursor}
|
||||
*
|
||||
* @property {Object} endAt
|
||||
* A end point for the query results.
|
||||
*
|
||||
* This object should have the same structure as [Cursor]{@link google.firestore.v1.Cursor}
|
||||
*
|
||||
* @property {number} offset
|
||||
* The number of results to skip.
|
||||
*
|
||||
* Applies before limit, but after all other constraints. Must be >= 0 if
|
||||
* specified.
|
||||
*
|
||||
* @property {Object} limit
|
||||
* The maximum number of results to return.
|
||||
*
|
||||
* Applies after all other constraints.
|
||||
* Must be >= 0 if specified.
|
||||
*
|
||||
* This object should have the same structure as [Int32Value]{@link google.protobuf.Int32Value}
|
||||
*
|
||||
* @typedef StructuredQuery
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
const StructuredQuery = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A selection of a collection, such as `messages as m1`.
|
||||
*
|
||||
* @property {string} collectionId
|
||||
* The collection ID.
|
||||
* When set, selects only collections with this ID.
|
||||
*
|
||||
* @property {boolean} allDescendants
|
||||
* When false, selects only collections that are immediate children of
|
||||
* the `parent` specified in the containing `RunQueryRequest`.
|
||||
* When true, selects all descendant collections.
|
||||
*
|
||||
* @typedef CollectionSelector
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.CollectionSelector definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
CollectionSelector: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A filter.
|
||||
*
|
||||
* @property {Object} compositeFilter
|
||||
* A composite filter.
|
||||
*
|
||||
* This object should have the same structure as [CompositeFilter]{@link google.firestore.v1.CompositeFilter}
|
||||
*
|
||||
* @property {Object} fieldFilter
|
||||
* A filter on a document field.
|
||||
*
|
||||
* This object should have the same structure as [FieldFilter]{@link google.firestore.v1.FieldFilter}
|
||||
*
|
||||
* @property {Object} unaryFilter
|
||||
* A filter that takes exactly one argument.
|
||||
*
|
||||
* This object should have the same structure as [UnaryFilter]{@link google.firestore.v1.UnaryFilter}
|
||||
*
|
||||
* @typedef Filter
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.Filter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
Filter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A filter that merges multiple other filters using the given operator.
|
||||
*
|
||||
* @property {number} op
|
||||
* The operator for combining multiple filters.
|
||||
*
|
||||
* The number should be among the values of [Operator]{@link google.firestore.v1.Operator}
|
||||
*
|
||||
* @property {Object[]} filters
|
||||
* The list of filters to combine.
|
||||
* Must contain at least one filter.
|
||||
*
|
||||
* This object should have the same structure as [Filter]{@link google.firestore.v1.Filter}
|
||||
*
|
||||
* @typedef CompositeFilter
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.CompositeFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
CompositeFilter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A composite filter operator.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1
|
||||
*/
|
||||
Operator: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
OPERATOR_UNSPECIFIED: 0,
|
||||
/**
|
||||
* The results are required to satisfy each of the combined filters.
|
||||
*/
|
||||
AND: 1,
|
||||
},
|
||||
},
|
||||
/**
|
||||
* A filter on a specific field.
|
||||
*
|
||||
* @property {Object} field
|
||||
* The field to filter by.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1.FieldReference}
|
||||
*
|
||||
* @property {number} op
|
||||
* The operator to filter by.
|
||||
*
|
||||
* The number should be among the values of [Operator]{@link google.firestore.v1.Operator}
|
||||
*
|
||||
* @property {Object} value
|
||||
* The value to compare to.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1.Value}
|
||||
*
|
||||
* @typedef FieldFilter
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.FieldFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
FieldFilter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A field filter operator.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1
|
||||
*/
|
||||
Operator: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
OPERATOR_UNSPECIFIED: 0,
|
||||
/**
|
||||
* Less than. Requires that the field come first in `order_by`.
|
||||
*/
|
||||
LESS_THAN: 1,
|
||||
/**
|
||||
* Less than or equal. Requires that the field come first in `order_by`.
|
||||
*/
|
||||
LESS_THAN_OR_EQUAL: 2,
|
||||
/**
|
||||
* Greater than. Requires that the field come first in `order_by`.
|
||||
*/
|
||||
GREATER_THAN: 3,
|
||||
/**
|
||||
* Greater than or equal. Requires that the field come first in
|
||||
* `order_by`.
|
||||
*/
|
||||
GREATER_THAN_OR_EQUAL: 4,
|
||||
/**
|
||||
* Equal.
|
||||
*/
|
||||
EQUAL: 5,
|
||||
/**
|
||||
* Contains. Requires that the field is an array.
|
||||
*/
|
||||
ARRAY_CONTAINS: 7,
|
||||
},
|
||||
},
|
||||
/**
|
||||
* A filter with a single operand.
|
||||
*
|
||||
* @property {number} op
|
||||
* The unary operator to apply.
|
||||
*
|
||||
* The number should be among the values of [Operator]{@link google.firestore.v1.Operator}
|
||||
*
|
||||
* @property {Object} field
|
||||
* The field to which to apply the operator.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1.FieldReference}
|
||||
*
|
||||
* @typedef UnaryFilter
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.UnaryFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
UnaryFilter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A unary operator.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1
|
||||
*/
|
||||
Operator: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
OPERATOR_UNSPECIFIED: 0,
|
||||
/**
|
||||
* Test if a field is equal to NaN.
|
||||
*/
|
||||
IS_NAN: 2,
|
||||
/**
|
||||
* Test if an exprestion evaluates to Null.
|
||||
*/
|
||||
IS_NULL: 3,
|
||||
},
|
||||
},
|
||||
/**
|
||||
* A reference to a field, such as `max(messages.time) as max_time`.
|
||||
*
|
||||
* @property {string} fieldPath
|
||||
*
|
||||
* @typedef FieldReference
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.FieldReference definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
FieldReference: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* An order on a field.
|
||||
*
|
||||
* @property {Object} field
|
||||
* The field to order by.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1.FieldReference}
|
||||
*
|
||||
* @property {number} direction
|
||||
* The direction to order by. Defaults to `ASCENDING`.
|
||||
*
|
||||
* The number should be among the values of [Direction]{@link google.firestore.v1.Direction}
|
||||
*
|
||||
* @typedef Order
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.Order definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
Order: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* The projection of document's fields to return.
|
||||
*
|
||||
* @property {Object[]} fields
|
||||
* The fields to return.
|
||||
*
|
||||
* If empty, all fields are returned. To only return the name
|
||||
* of the document, use `['__name__']`.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1.FieldReference}
|
||||
*
|
||||
* @typedef Projection
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.StructuredQuery.Projection definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
Projection: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A sort direction.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1
|
||||
*/
|
||||
Direction: {
|
||||
/**
|
||||
* Unspecified.
|
||||
*/
|
||||
DIRECTION_UNSPECIFIED: 0,
|
||||
/**
|
||||
* Ascending.
|
||||
*/
|
||||
ASCENDING: 1,
|
||||
/**
|
||||
* Descending.
|
||||
*/
|
||||
DESCENDING: 2,
|
||||
},
|
||||
};
|
||||
/**
|
||||
* A position in a query result set.
|
||||
*
|
||||
* @property {Object[]} values
|
||||
* The values that represent a position, in the order they appear in
|
||||
* the order by clause of a query.
|
||||
*
|
||||
* Can contain fewer values than specified in the order by clause.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1.Value}
|
||||
*
|
||||
* @property {boolean} before
|
||||
* If the position is just before or just after the given values, relative
|
||||
* to the sort order defined by the query.
|
||||
*
|
||||
* @typedef Cursor
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Cursor definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/query.proto}
|
||||
*/
|
||||
const Cursor = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_query.js.map
|
329
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_write.js
generated
vendored
Normal file
329
node_modules/@google-cloud/firestore/build/src/v1/doc/google/firestore/v1/doc_write.js
generated
vendored
Normal file
@ -0,0 +1,329 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A write on a document.
|
||||
*
|
||||
* @property {Object} update
|
||||
* A document to write.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1.Document}
|
||||
*
|
||||
* @property {string} delete
|
||||
* A document name to delete. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} transform
|
||||
* Applies a transformation to a document.
|
||||
* At most one `transform` per document is allowed in a given request.
|
||||
* An `update` cannot follow a `transform` on the same document in a given
|
||||
* request.
|
||||
*
|
||||
* This object should have the same structure as [DocumentTransform]{@link google.firestore.v1.DocumentTransform}
|
||||
*
|
||||
* @property {Object} updateMask
|
||||
* The fields to update in this write.
|
||||
*
|
||||
* This field can be set only when the operation is `update`.
|
||||
* If the mask is not set for an `update` and the document exists, any
|
||||
* existing data will be overwritten.
|
||||
* If the mask is set and the document on the server has fields not covered by
|
||||
* the mask, they are left unchanged.
|
||||
* Fields referenced in the mask, but not present in the input document, are
|
||||
* deleted from the document on the server.
|
||||
* The field paths in this mask must not contain a reserved field name.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1.DocumentMask}
|
||||
*
|
||||
* @property {Object} currentDocument
|
||||
* An optional precondition on the document.
|
||||
*
|
||||
* The write will fail if this is set and not met by the target document.
|
||||
*
|
||||
* This object should have the same structure as [Precondition]{@link google.firestore.v1.Precondition}
|
||||
*
|
||||
* @typedef Write
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.Write definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
const Write = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A transformation of a document.
|
||||
*
|
||||
* @property {string} document
|
||||
* The name of the document to transform.
|
||||
*
|
||||
* @property {Object[]} fieldTransforms
|
||||
* The list of transformations to apply to the fields of the document, in
|
||||
* order.
|
||||
* This must not be empty.
|
||||
*
|
||||
* This object should have the same structure as [FieldTransform]{@link google.firestore.v1.FieldTransform}
|
||||
*
|
||||
* @typedef DocumentTransform
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.DocumentTransform definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
const DocumentTransform = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A transformation of a field of the document.
|
||||
*
|
||||
* @property {string} fieldPath
|
||||
* The path of the field. See Document.fields for the field path syntax
|
||||
* reference.
|
||||
*
|
||||
* @property {number} setToServerValue
|
||||
* Sets the field to the given server value.
|
||||
*
|
||||
* The number should be among the values of [ServerValue]{@link google.firestore.v1.ServerValue}
|
||||
*
|
||||
* @property {Object} increment
|
||||
* Adds the given value to the field's current value.
|
||||
*
|
||||
* This must be an integer or a double value.
|
||||
* If the field is not an integer or double, or if the field does not yet
|
||||
* exist, the transformation will set the field to the given value.
|
||||
* If either of the given value or the current field value are doubles,
|
||||
* both values will be interpreted as doubles. Double arithmetic and
|
||||
* representation of double values follow IEEE 754 semantics.
|
||||
* If there is positive/negative integer overflow, the field is resolved
|
||||
* to the largest magnitude positive/negative integer.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1.Value}
|
||||
*
|
||||
* @property {Object} maximum
|
||||
* Sets the field to the maximum of its current value and the given value.
|
||||
*
|
||||
* This must be an integer or a double value.
|
||||
* If the field is not an integer or double, or if the field does not yet
|
||||
* exist, the transformation will set the field to the given value.
|
||||
* If a maximum operation is applied where the field and the input value
|
||||
* are of mixed types (that is - one is an integer and one is a double)
|
||||
* the field takes on the type of the larger operand. If the operands are
|
||||
* equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
* 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and
|
||||
* zero input value is always the stored value.
|
||||
* The maximum of any numeric value x and NaN is NaN.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1.Value}
|
||||
*
|
||||
* @property {Object} minimum
|
||||
* Sets the field to the minimum of its current value and the given value.
|
||||
*
|
||||
* This must be an integer or a double value.
|
||||
* If the field is not an integer or double, or if the field does not yet
|
||||
* exist, the transformation will set the field to the input value.
|
||||
* If a minimum operation is applied where the field and the input value
|
||||
* are of mixed types (that is - one is an integer and one is a double)
|
||||
* the field takes on the type of the smaller operand. If the operands are
|
||||
* equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
* 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and
|
||||
* zero input value is always the stored value.
|
||||
* The minimum of any numeric value x and NaN is NaN.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1.Value}
|
||||
*
|
||||
* @property {Object} appendMissingElements
|
||||
* Append the given elements in order if they are not already present in
|
||||
* the current field value.
|
||||
* If the field is not an array, or if the field does not yet exist, it is
|
||||
* first set to the empty array.
|
||||
*
|
||||
* Equivalent numbers of different types (e.g. 3L and 3.0) are
|
||||
* considered equal when checking if a value is missing.
|
||||
* NaN is equal to NaN, and Null is equal to Null.
|
||||
* If the input contains multiple equivalent values, only the first will
|
||||
* be considered.
|
||||
*
|
||||
* The corresponding transform_result will be the null value.
|
||||
*
|
||||
* This object should have the same structure as [ArrayValue]{@link google.firestore.v1.ArrayValue}
|
||||
*
|
||||
* @property {Object} removeAllFromArray
|
||||
* Remove all of the given elements from the array in the field.
|
||||
* If the field is not an array, or if the field does not yet exist, it is
|
||||
* set to the empty array.
|
||||
*
|
||||
* Equivalent numbers of the different types (e.g. 3L and 3.0) are
|
||||
* considered equal when deciding whether an element should be removed.
|
||||
* NaN is equal to NaN, and Null is equal to Null.
|
||||
* This will remove all equivalent values if there are duplicates.
|
||||
*
|
||||
* The corresponding transform_result will be the null value.
|
||||
*
|
||||
* This object should have the same structure as [ArrayValue]{@link google.firestore.v1.ArrayValue}
|
||||
*
|
||||
* @typedef FieldTransform
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.DocumentTransform.FieldTransform definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
FieldTransform: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A value that is calculated by the server.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1
|
||||
*/
|
||||
ServerValue: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
SERVER_VALUE_UNSPECIFIED: 0,
|
||||
/**
|
||||
* The time at which the server processed the request, with millisecond
|
||||
* precision.
|
||||
*/
|
||||
REQUEST_TIME: 1,
|
||||
},
|
||||
},
|
||||
};
|
||||
/**
|
||||
* The result of applying a write.
|
||||
*
|
||||
* @property {Object} updateTime
|
||||
* The last update time of the document after applying the write. Not set
|
||||
* after a `delete`.
|
||||
*
|
||||
* If the write did not actually change the document, this will be the
|
||||
* previous update_time.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {Object[]} transformResults
|
||||
* The results of applying each DocumentTransform.FieldTransform, in the
|
||||
* same order.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1.Value}
|
||||
*
|
||||
* @typedef WriteResult
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.WriteResult definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
const WriteResult = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A Document has changed.
|
||||
*
|
||||
* May be the result of multiple writes, including deletes, that
|
||||
* ultimately resulted in a new value for the Document.
|
||||
*
|
||||
* Multiple DocumentChange messages may be returned for the same logical
|
||||
* change, if multiple targets are affected.
|
||||
*
|
||||
* @property {Object} document
|
||||
* The new state of the Document.
|
||||
*
|
||||
* If `mask` is set, contains only fields that were updated or added.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1.Document}
|
||||
*
|
||||
* @property {number[]} targetIds
|
||||
* A set of target IDs of targets that match this document.
|
||||
*
|
||||
* @property {number[]} removedTargetIds
|
||||
* A set of target IDs for targets that no longer match this document.
|
||||
*
|
||||
* @typedef DocumentChange
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.DocumentChange definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
const DocumentChange = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A Document has been deleted.
|
||||
*
|
||||
* May be the result of multiple writes, including updates, the
|
||||
* last of which deleted the Document.
|
||||
*
|
||||
* Multiple DocumentDelete messages may be returned for the same logical
|
||||
* delete, if multiple targets are affected.
|
||||
*
|
||||
* @property {string} document
|
||||
* The resource name of the Document that was deleted.
|
||||
*
|
||||
* @property {number[]} removedTargetIds
|
||||
* A set of target IDs for targets that previously matched this entity.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The read timestamp at which the delete was observed.
|
||||
*
|
||||
* Greater or equal to the `commit_time` of the delete.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef DocumentDelete
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.DocumentDelete definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
const DocumentDelete = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A Document has been removed from the view of the targets.
|
||||
*
|
||||
* Sent if the document is no longer relevant to a target and is out of view.
|
||||
* Can be sent instead of a DocumentDelete or a DocumentChange if the server
|
||||
* can not send the new value of the document.
|
||||
*
|
||||
* Multiple DocumentRemove messages may be returned for the same logical
|
||||
* write or delete, if multiple targets are affected.
|
||||
*
|
||||
* @property {string} document
|
||||
* The resource name of the Document that has gone out of view.
|
||||
*
|
||||
* @property {number[]} removedTargetIds
|
||||
* A set of target IDs for targets that previously matched this document.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The read timestamp at which the remove was observed.
|
||||
*
|
||||
* Greater or equal to the `commit_time` of the change/delete/remove.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef DocumentRemove
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.DocumentRemove definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
const DocumentRemove = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A digest of all the documents that match a given target.
|
||||
*
|
||||
* @property {number} targetId
|
||||
* The target ID to which this filter applies.
|
||||
*
|
||||
* @property {number} count
|
||||
* The total count of documents that match target_id.
|
||||
*
|
||||
* If different from the count of documents in the client that match, the
|
||||
* client must manually determine which documents no longer match the target.
|
||||
*
|
||||
* @typedef ExistenceFilter
|
||||
* @memberof google.firestore.v1
|
||||
* @see [google.firestore.v1.ExistenceFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1/write.proto}
|
||||
*/
|
||||
const ExistenceFilter = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_write.js.map
|
63
node_modules/@google-cloud/firestore/build/src/v1/doc/google/longrunning/doc_operations.js
generated
vendored
Normal file
63
node_modules/@google-cloud/firestore/build/src/v1/doc/google/longrunning/doc_operations.js
generated
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* This resource represents a long-running operation that is the result of a
|
||||
* network API call.
|
||||
*
|
||||
* @property {string} name
|
||||
* The server-assigned name, which is only unique within the same service that
|
||||
* originally returns it. If you use the default HTTP mapping, the
|
||||
* `name` should have the format of `operations/some/unique/name`.
|
||||
*
|
||||
* @property {Object} metadata
|
||||
* Service-specific metadata associated with the operation. It typically
|
||||
* contains progress information and common metadata such as create time.
|
||||
* Some services might not provide such metadata. Any method that returns a
|
||||
* long-running operation should document the metadata type, if any.
|
||||
*
|
||||
* This object should have the same structure as [Any]{@link google.protobuf.Any}
|
||||
*
|
||||
* @property {boolean} done
|
||||
* If the value is `false`, it means the operation is still in progress.
|
||||
* If `true`, the operation is completed, and either `error` or `response` is
|
||||
* available.
|
||||
*
|
||||
* @property {Object} error
|
||||
* The error result of the operation in case of failure or cancellation.
|
||||
*
|
||||
* This object should have the same structure as [Status]{@link google.rpc.Status}
|
||||
*
|
||||
* @property {Object} response
|
||||
* The normal response of the operation in case of success. If the original
|
||||
* method returns no data on success, such as `Delete`, the response is
|
||||
* `google.protobuf.Empty`. If the original method is standard
|
||||
* `Get`/`Create`/`Update`, the response should be the resource. For other
|
||||
* methods, the response should have the type `XxxResponse`, where `Xxx`
|
||||
* is the original method name. For example, if the original method name
|
||||
* is `TakeSnapshot()`, the inferred response type is
|
||||
* `TakeSnapshotResponse`.
|
||||
*
|
||||
* This object should have the same structure as [Any]{@link google.protobuf.Any}
|
||||
*
|
||||
* @typedef Operation
|
||||
* @memberof google.longrunning
|
||||
* @see [google.longrunning.Operation definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/longrunning/operations.proto}
|
||||
*/
|
||||
const Operation = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_operations.js.map
|
137
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_any.js
generated
vendored
Normal file
137
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_any.js
generated
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* `Any` contains an arbitrary serialized protocol buffer message along with a
|
||||
* URL that describes the type of the serialized message.
|
||||
*
|
||||
* Protobuf library provides support to pack/unpack Any values in the form
|
||||
* of utility functions or additional generated methods of the Any type.
|
||||
*
|
||||
* Example 1: Pack and unpack a message in C++.
|
||||
*
|
||||
* Foo foo = ...;
|
||||
* Any any;
|
||||
* any.PackFrom(foo);
|
||||
* ...
|
||||
* if (any.UnpackTo(&foo)) {
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* Example 2: Pack and unpack a message in Java.
|
||||
*
|
||||
* Foo foo = ...;
|
||||
* Any any = Any.pack(foo);
|
||||
* ...
|
||||
* if (any.is(Foo.class)) {
|
||||
* foo = any.unpack(Foo.class);
|
||||
* }
|
||||
*
|
||||
* Example 3: Pack and unpack a message in Python.
|
||||
*
|
||||
* foo = Foo(...)
|
||||
* any = Any()
|
||||
* any.Pack(foo)
|
||||
* ...
|
||||
* if any.Is(Foo.DESCRIPTOR):
|
||||
* any.Unpack(foo)
|
||||
* ...
|
||||
*
|
||||
* Example 4: Pack and unpack a message in Go
|
||||
*
|
||||
* foo := &pb.Foo{...}
|
||||
* any, err := ptypes.MarshalAny(foo)
|
||||
* ...
|
||||
* foo := &pb.Foo{}
|
||||
* if err := ptypes.UnmarshalAny(any, foo); err != nil {
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* The pack methods provided by protobuf library will by default use
|
||||
* 'type.googleapis.com/full.type.name' as the type URL and the unpack
|
||||
* methods only use the fully qualified type name after the last '/'
|
||||
* in the type URL, for example "foo.bar.com/x/y.z" will yield type
|
||||
* name "y.z".
|
||||
*
|
||||
*
|
||||
* # JSON
|
||||
*
|
||||
* The JSON representation of an `Any` value uses the regular
|
||||
* representation of the deserialized, embedded message, with an
|
||||
* additional field `@type` which contains the type URL. Example:
|
||||
*
|
||||
* package google.profile;
|
||||
* message Person {
|
||||
* string first_name = 1;
|
||||
* string last_name = 2;
|
||||
* }
|
||||
*
|
||||
* {
|
||||
* "@type": "type.googleapis.com/google.profile.Person",
|
||||
* "firstName": <string>,
|
||||
* "lastName": <string>
|
||||
* }
|
||||
*
|
||||
* If the embedded message type is well-known and has a custom JSON
|
||||
* representation, that representation will be embedded adding a field
|
||||
* `value` which holds the custom JSON in addition to the `@type`
|
||||
* field. Example (for message google.protobuf.Duration):
|
||||
*
|
||||
* {
|
||||
* "@type": "type.googleapis.com/google.protobuf.Duration",
|
||||
* "value": "1.212s"
|
||||
* }
|
||||
*
|
||||
* @property {string} typeUrl
|
||||
* A URL/resource name that uniquely identifies the type of the serialized
|
||||
* protocol buffer message. This string must contain at least
|
||||
* one "/" character. The last segment of the URL's path must represent
|
||||
* the fully qualified name of the type (as in
|
||||
* `path/google.protobuf.Duration`). The name should be in a canonical form
|
||||
* (e.g., leading "." is not accepted).
|
||||
*
|
||||
* In practice, teams usually precompile into the binary all types that they
|
||||
* expect it to use in the context of Any. However, for URLs which use the
|
||||
* scheme `http`, `https`, or no scheme, one can optionally set up a type
|
||||
* server that maps type URLs to message definitions as follows:
|
||||
*
|
||||
* * If no scheme is provided, `https` is assumed.
|
||||
* * An HTTP GET on the URL must yield a google.protobuf.Type
|
||||
* value in binary format, or produce an error.
|
||||
* * Applications are allowed to cache lookup results based on the
|
||||
* URL, or have them precompiled into a binary to avoid any
|
||||
* lookup. Therefore, binary compatibility needs to be preserved
|
||||
* on changes to types. (Use versioned type names to manage
|
||||
* breaking changes.)
|
||||
*
|
||||
* Note: this functionality is not currently available in the official
|
||||
* protobuf release, and it is not used for type URLs beginning with
|
||||
* type.googleapis.com.
|
||||
*
|
||||
* Schemes other than `http`, `https` (or the empty scheme) might be
|
||||
* used with implementation specific semantics.
|
||||
*
|
||||
* @property {Buffer} value
|
||||
* Must be a valid serialized protocol buffer of the above specified type.
|
||||
*
|
||||
* @typedef Any
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Any definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/any.proto}
|
||||
*/
|
||||
const Any = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_any.js.map
|
34
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_empty.js
generated
vendored
Normal file
34
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_empty.js
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A generic empty message that you can re-use to avoid defining duplicated
|
||||
* empty messages in your APIs. A typical example is to use it as the request
|
||||
* or the response type of an API method. For instance:
|
||||
*
|
||||
* service Foo {
|
||||
* rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
|
||||
* }
|
||||
*
|
||||
* The JSON representation for `Empty` is empty JSON object `{}`.
|
||||
* @typedef Empty
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Empty definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/empty.proto}
|
||||
*/
|
||||
const Empty = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_empty.js.map
|
228
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_field_mask.js
generated
vendored
Normal file
228
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_field_mask.js
generated
vendored
Normal file
@ -0,0 +1,228 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* `FieldMask` represents a set of symbolic field paths, for example:
|
||||
*
|
||||
* paths: "f.a"
|
||||
* paths: "f.b.d"
|
||||
*
|
||||
* Here `f` represents a field in some root message, `a` and `b`
|
||||
* fields in the message found in `f`, and `d` a field found in the
|
||||
* message in `f.b`.
|
||||
*
|
||||
* Field masks are used to specify a subset of fields that should be
|
||||
* returned by a get operation or modified by an update operation.
|
||||
* Field masks also have a custom JSON encoding (see below).
|
||||
*
|
||||
* # Field Masks in Projections
|
||||
*
|
||||
* When used in the context of a projection, a response message or
|
||||
* sub-message is filtered by the API to only contain those fields as
|
||||
* specified in the mask. For example, if the mask in the previous
|
||||
* example is applied to a response message as follows:
|
||||
*
|
||||
* f {
|
||||
* a : 22
|
||||
* b {
|
||||
* d : 1
|
||||
* x : 2
|
||||
* }
|
||||
* y : 13
|
||||
* }
|
||||
* z: 8
|
||||
*
|
||||
* The result will not contain specific values for fields x,y and z
|
||||
* (their value will be set to the default, and omitted in proto text
|
||||
* output):
|
||||
*
|
||||
*
|
||||
* f {
|
||||
* a : 22
|
||||
* b {
|
||||
* d : 1
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* A repeated field is not allowed except at the last position of a
|
||||
* paths string.
|
||||
*
|
||||
* If a FieldMask object is not present in a get operation, the
|
||||
* operation applies to all fields (as if a FieldMask of all fields
|
||||
* had been specified).
|
||||
*
|
||||
* Note that a field mask does not necessarily apply to the
|
||||
* top-level response message. In case of a REST get operation, the
|
||||
* field mask applies directly to the response, but in case of a REST
|
||||
* list operation, the mask instead applies to each individual message
|
||||
* in the returned resource list. In case of a REST custom method,
|
||||
* other definitions may be used. Where the mask applies will be
|
||||
* clearly documented together with its declaration in the API. In
|
||||
* any case, the effect on the returned resource/resources is required
|
||||
* behavior for APIs.
|
||||
*
|
||||
* # Field Masks in Update Operations
|
||||
*
|
||||
* A field mask in update operations specifies which fields of the
|
||||
* targeted resource are going to be updated. The API is required
|
||||
* to only change the values of the fields as specified in the mask
|
||||
* and leave the others untouched. If a resource is passed in to
|
||||
* describe the updated values, the API ignores the values of all
|
||||
* fields not covered by the mask.
|
||||
*
|
||||
* If a repeated field is specified for an update operation, new values will
|
||||
* be appended to the existing repeated field in the target resource. Note that
|
||||
* a repeated field is only allowed in the last position of a `paths` string.
|
||||
*
|
||||
* If a sub-message is specified in the last position of the field mask for an
|
||||
* update operation, then new value will be merged into the existing sub-message
|
||||
* in the target resource.
|
||||
*
|
||||
* For example, given the target message:
|
||||
*
|
||||
* f {
|
||||
* b {
|
||||
* d: 1
|
||||
* x: 2
|
||||
* }
|
||||
* c: [1]
|
||||
* }
|
||||
*
|
||||
* And an update message:
|
||||
*
|
||||
* f {
|
||||
* b {
|
||||
* d: 10
|
||||
* }
|
||||
* c: [2]
|
||||
* }
|
||||
*
|
||||
* then if the field mask is:
|
||||
*
|
||||
* paths: ["f.b", "f.c"]
|
||||
*
|
||||
* then the result will be:
|
||||
*
|
||||
* f {
|
||||
* b {
|
||||
* d: 10
|
||||
* x: 2
|
||||
* }
|
||||
* c: [1, 2]
|
||||
* }
|
||||
*
|
||||
* An implementation may provide options to override this default behavior for
|
||||
* repeated and message fields.
|
||||
*
|
||||
* In order to reset a field's value to the default, the field must
|
||||
* be in the mask and set to the default value in the provided resource.
|
||||
* Hence, in order to reset all fields of a resource, provide a default
|
||||
* instance of the resource and set all fields in the mask, or do
|
||||
* not provide a mask as described below.
|
||||
*
|
||||
* If a field mask is not present on update, the operation applies to
|
||||
* all fields (as if a field mask of all fields has been specified).
|
||||
* Note that in the presence of schema evolution, this may mean that
|
||||
* fields the client does not know and has therefore not filled into
|
||||
* the request will be reset to their default. If this is unwanted
|
||||
* behavior, a specific service may require a client to always specify
|
||||
* a field mask, producing an error if not.
|
||||
*
|
||||
* As with get operations, the location of the resource which
|
||||
* describes the updated values in the request message depends on the
|
||||
* operation kind. In any case, the effect of the field mask is
|
||||
* required to be honored by the API.
|
||||
*
|
||||
* ## Considerations for HTTP REST
|
||||
*
|
||||
* The HTTP kind of an update operation which uses a field mask must
|
||||
* be set to PATCH instead of PUT in order to satisfy HTTP semantics
|
||||
* (PUT must only be used for full updates).
|
||||
*
|
||||
* # JSON Encoding of Field Masks
|
||||
*
|
||||
* In JSON, a field mask is encoded as a single string where paths are
|
||||
* separated by a comma. Fields name in each path are converted
|
||||
* to/from lower-camel naming conventions.
|
||||
*
|
||||
* As an example, consider the following message declarations:
|
||||
*
|
||||
* message Profile {
|
||||
* User user = 1;
|
||||
* Photo photo = 2;
|
||||
* }
|
||||
* message User {
|
||||
* string display_name = 1;
|
||||
* string address = 2;
|
||||
* }
|
||||
*
|
||||
* In proto a field mask for `Profile` may look as such:
|
||||
*
|
||||
* mask {
|
||||
* paths: "user.display_name"
|
||||
* paths: "photo"
|
||||
* }
|
||||
*
|
||||
* In JSON, the same mask is represented as below:
|
||||
*
|
||||
* {
|
||||
* mask: "user.displayName,photo"
|
||||
* }
|
||||
*
|
||||
* # Field Masks and Oneof Fields
|
||||
*
|
||||
* Field masks treat fields in oneofs just as regular fields. Consider the
|
||||
* following message:
|
||||
*
|
||||
* message SampleMessage {
|
||||
* oneof test_oneof {
|
||||
* string name = 4;
|
||||
* SubMessage sub_message = 9;
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* The field mask can be:
|
||||
*
|
||||
* mask {
|
||||
* paths: "name"
|
||||
* }
|
||||
*
|
||||
* Or:
|
||||
*
|
||||
* mask {
|
||||
* paths: "sub_message"
|
||||
* }
|
||||
*
|
||||
* Note that oneof type names ("test_oneof" in this case) cannot be used in
|
||||
* paths.
|
||||
*
|
||||
* ## Field Mask Verification
|
||||
*
|
||||
* The implementation of any API method which has a FieldMask type field in the
|
||||
* request should verify the included field paths, and return an
|
||||
* `INVALID_ARGUMENT` error if any path is duplicated or unmappable.
|
||||
*
|
||||
* @property {string[]} paths
|
||||
* The set of field mask paths.
|
||||
*
|
||||
* @typedef FieldMask
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.FieldMask definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/field_mask.proto}
|
||||
*/
|
||||
const FieldMask = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_field_mask.js.map
|
117
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_timestamp.js
generated
vendored
Normal file
117
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_timestamp.js
generated
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A Timestamp represents a point in time independent of any time zone or local
|
||||
* calendar, encoded as a count of seconds and fractions of seconds at
|
||||
* nanosecond resolution. The count is relative to an epoch at UTC midnight on
|
||||
* January 1, 1970, in the proleptic Gregorian calendar which extends the
|
||||
* Gregorian calendar backwards to year one.
|
||||
*
|
||||
* All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
|
||||
* second table is needed for interpretation, using a [24-hour linear
|
||||
* smear](https://developers.google.com/time/smear).
|
||||
*
|
||||
* The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
|
||||
* restricting to that range, we ensure that we can convert to and from [RFC
|
||||
* 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
|
||||
*
|
||||
* # Examples
|
||||
*
|
||||
* Example 1: Compute Timestamp from POSIX `time()`.
|
||||
*
|
||||
* Timestamp timestamp;
|
||||
* timestamp.set_seconds(time(NULL));
|
||||
* timestamp.set_nanos(0);
|
||||
*
|
||||
* Example 2: Compute Timestamp from POSIX `gettimeofday()`.
|
||||
*
|
||||
* struct timeval tv;
|
||||
* gettimeofday(&tv, NULL);
|
||||
*
|
||||
* Timestamp timestamp;
|
||||
* timestamp.set_seconds(tv.tv_sec);
|
||||
* timestamp.set_nanos(tv.tv_usec * 1000);
|
||||
*
|
||||
* Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
|
||||
*
|
||||
* FILETIME ft;
|
||||
* GetSystemTimeAsFileTime(&ft);
|
||||
* UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
|
||||
*
|
||||
* // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
|
||||
* // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
|
||||
* Timestamp timestamp;
|
||||
* timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
|
||||
* timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
|
||||
*
|
||||
* Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
|
||||
*
|
||||
* long millis = System.currentTimeMillis();
|
||||
*
|
||||
* Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
|
||||
* .setNanos((int) ((millis % 1000) * 1000000)).build();
|
||||
*
|
||||
*
|
||||
* Example 5: Compute Timestamp from current time in Python.
|
||||
*
|
||||
* timestamp = Timestamp()
|
||||
* timestamp.GetCurrentTime()
|
||||
*
|
||||
* # JSON Mapping
|
||||
*
|
||||
* In JSON format, the Timestamp type is encoded as a string in the
|
||||
* [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
|
||||
* format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
|
||||
* where {year} is always expressed using four digits while {month}, {day},
|
||||
* {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
|
||||
* seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
|
||||
* are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
|
||||
* is required. A proto3 JSON serializer should always use UTC (as indicated by
|
||||
* "Z") when printing the Timestamp type and a proto3 JSON parser should be
|
||||
* able to accept both UTC and other timezones (as indicated by an offset).
|
||||
*
|
||||
* For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
|
||||
* 01:30 UTC on January 15, 2017.
|
||||
*
|
||||
* In JavaScript, one can convert a Date object to this format using the
|
||||
* standard
|
||||
* [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
|
||||
* method. In Python, a standard `datetime.datetime` object can be converted
|
||||
* to this format using
|
||||
* [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
|
||||
* the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
|
||||
* the Joda Time's [`ISODateTimeFormat.dateTime()`](https://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D) to obtain a formatter capable of generating timestamps in this format.
|
||||
*
|
||||
* @property {number} seconds
|
||||
* Represents seconds of UTC time since Unix epoch
|
||||
* 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
|
||||
* 9999-12-31T23:59:59Z inclusive.
|
||||
*
|
||||
* @property {number} nanos
|
||||
* Non-negative fractions of a second at nanosecond resolution. Negative
|
||||
* second values with fractions must still have non-negative nanos values
|
||||
* that count forward in time. Must be from 0 to 999,999,999
|
||||
* inclusive.
|
||||
*
|
||||
* @typedef Timestamp
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Timestamp definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto}
|
||||
*/
|
||||
const Timestamp = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_timestamp.js.map
|
32
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_wrappers.js
generated
vendored
Normal file
32
node_modules/@google-cloud/firestore/build/src/v1/doc/google/protobuf/doc_wrappers.js
generated
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* Wrapper message for `int32`.
|
||||
*
|
||||
* The JSON representation for `Int32Value` is JSON number.
|
||||
*
|
||||
* @property {number} value
|
||||
* The int32 value.
|
||||
*
|
||||
* @typedef Int32Value
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Int32Value definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/wrappers.proto}
|
||||
*/
|
||||
const Int32Value = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_wrappers.js.map
|
95
node_modules/@google-cloud/firestore/build/src/v1/doc/google/rpc/doc_status.js
generated
vendored
Normal file
95
node_modules/@google-cloud/firestore/build/src/v1/doc/google/rpc/doc_status.js
generated
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* The `Status` type defines a logical error model that is suitable for
|
||||
* different programming environments, including REST APIs and RPC APIs. It is
|
||||
* used by [gRPC](https://github.com/grpc). The error model is designed to be:
|
||||
*
|
||||
* - Simple to use and understand for most users
|
||||
* - Flexible enough to meet unexpected needs
|
||||
*
|
||||
* # Overview
|
||||
*
|
||||
* The `Status` message contains three pieces of data: error code, error
|
||||
* message, and error details. The error code should be an enum value of
|
||||
* google.rpc.Code, but it may accept additional error codes
|
||||
* if needed. The error message should be a developer-facing English message
|
||||
* that helps developers *understand* and *resolve* the error. If a localized
|
||||
* user-facing error message is needed, put the localized message in the error
|
||||
* details or localize it in the client. The optional error details may contain
|
||||
* arbitrary information about the error. There is a predefined set of error
|
||||
* detail types in the package `google.rpc` that can be used for common error
|
||||
* conditions.
|
||||
*
|
||||
* # Language mapping
|
||||
*
|
||||
* The `Status` message is the logical representation of the error model, but it
|
||||
* is not necessarily the actual wire format. When the `Status` message is
|
||||
* exposed in different client libraries and different wire protocols, it can be
|
||||
* mapped differently. For example, it will likely be mapped to some exceptions
|
||||
* in Java, but more likely mapped to some error codes in C.
|
||||
*
|
||||
* # Other uses
|
||||
*
|
||||
* The error model and the `Status` message can be used in a variety of
|
||||
* environments, either with or without APIs, to provide a
|
||||
* consistent developer experience across different environments.
|
||||
*
|
||||
* Example uses of this error model include:
|
||||
*
|
||||
* - Partial errors. If a service needs to return partial errors to the client,
|
||||
* it may embed the `Status` in the normal response to indicate the partial
|
||||
* errors.
|
||||
*
|
||||
* - Workflow errors. A typical workflow has multiple steps. Each step may
|
||||
* have a `Status` message for error reporting.
|
||||
*
|
||||
* - Batch operations. If a client uses batch request and batch response, the
|
||||
* `Status` message should be used directly inside batch response, one for
|
||||
* each error sub-response.
|
||||
*
|
||||
* - Asynchronous operations. If an API call embeds asynchronous operation
|
||||
* results in its response, the status of those operations should be
|
||||
* represented directly using the `Status` message.
|
||||
*
|
||||
* - Logging. If some API errors are stored in logs, the message `Status` could
|
||||
* be used directly after any stripping needed for security/privacy reasons.
|
||||
*
|
||||
* @property {number} code
|
||||
* The status code, which should be an enum value of
|
||||
* google.rpc.Code.
|
||||
*
|
||||
* @property {string} message
|
||||
* A developer-facing error message, which should be in English. Any
|
||||
* user-facing error message should be localized and sent in the
|
||||
* google.rpc.Status.details field, or localized
|
||||
* by the client.
|
||||
*
|
||||
* @property {Object[]} details
|
||||
* A list of messages that carry the error details. There is a common set of
|
||||
* message types for APIs to use.
|
||||
*
|
||||
* This object should have the same structure as [Any]{@link google.protobuf.Any}
|
||||
*
|
||||
* @typedef Status
|
||||
* @memberof google.rpc
|
||||
* @see [google.rpc.Status definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto}
|
||||
*/
|
||||
const Status = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_status.js.map
|
1096
node_modules/@google-cloud/firestore/build/src/v1/firestore_admin_client.js
generated
vendored
Normal file
1096
node_modules/@google-cloud/firestore/build/src/v1/firestore_admin_client.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
71
node_modules/@google-cloud/firestore/build/src/v1/firestore_admin_client_config.json
generated
vendored
Normal file
71
node_modules/@google-cloud/firestore/build/src/v1/firestore_admin_client_config.json
generated
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
{
|
||||
"interfaces": {
|
||||
"google.firestore.admin.v1.FirestoreAdmin": {
|
||||
"retry_codes": {
|
||||
"idempotent": [
|
||||
"DEADLINE_EXCEEDED",
|
||||
"UNAVAILABLE"
|
||||
],
|
||||
"non_idempotent": []
|
||||
},
|
||||
"retry_params": {
|
||||
"default": {
|
||||
"initial_retry_delay_millis": 100,
|
||||
"retry_delay_multiplier": 1.3,
|
||||
"max_retry_delay_millis": 60000,
|
||||
"initial_rpc_timeout_millis": 20000,
|
||||
"rpc_timeout_multiplier": 1.0,
|
||||
"max_rpc_timeout_millis": 20000,
|
||||
"total_timeout_millis": 600000
|
||||
}
|
||||
},
|
||||
"methods": {
|
||||
"CreateIndex": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"ListIndexes": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"GetIndex": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"DeleteIndex": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"ImportDocuments": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"ExportDocuments": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"GetField": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"ListFields": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"UpdateField": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1382
node_modules/@google-cloud/firestore/build/src/v1/firestore_client.js
generated
vendored
Normal file
1382
node_modules/@google-cloud/firestore/build/src/v1/firestore_client.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
101
node_modules/@google-cloud/firestore/build/src/v1/firestore_client_config.json
generated
vendored
Normal file
101
node_modules/@google-cloud/firestore/build/src/v1/firestore_client_config.json
generated
vendored
Normal file
@ -0,0 +1,101 @@
|
||||
{
|
||||
"interfaces": {
|
||||
"google.firestore.v1.Firestore": {
|
||||
"retry_codes": {
|
||||
"idempotent": [
|
||||
"DEADLINE_EXCEEDED",
|
||||
"INTERNAL",
|
||||
"UNAVAILABLE"
|
||||
],
|
||||
"non_idempotent": []
|
||||
},
|
||||
"retry_params": {
|
||||
"default": {
|
||||
"initial_retry_delay_millis": 100,
|
||||
"retry_delay_multiplier": 1.3,
|
||||
"max_retry_delay_millis": 60000,
|
||||
"initial_rpc_timeout_millis": 20000,
|
||||
"rpc_timeout_multiplier": 1.0,
|
||||
"max_rpc_timeout_millis": 20000,
|
||||
"total_timeout_millis": 600000
|
||||
},
|
||||
"streaming": {
|
||||
"initial_retry_delay_millis": 100,
|
||||
"retry_delay_multiplier": 1.3,
|
||||
"max_retry_delay_millis": 60000,
|
||||
"initial_rpc_timeout_millis": 300000,
|
||||
"rpc_timeout_multiplier": 1.0,
|
||||
"max_rpc_timeout_millis": 300000,
|
||||
"total_timeout_millis": 600000
|
||||
}
|
||||
},
|
||||
"methods": {
|
||||
"GetDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"ListDocuments": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"CreateDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"UpdateDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"DeleteDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"BatchGetDocuments": {
|
||||
"timeout_millis": 300000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"BeginTransaction": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"Commit": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"Rollback": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"RunQuery": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"Write": {
|
||||
"timeout_millis": 86400000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"Listen": {
|
||||
"timeout_millis": 86400000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"ListCollectionIds": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
20
node_modules/@google-cloud/firestore/build/src/v1/index.js
generated
vendored
Normal file
20
node_modules/@google-cloud/firestore/build/src/v1/index.js
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
'use strict';
|
||||
const FirestoreClient = require('./firestore_client');
|
||||
const FirestoreAdminClient = require('./firestore_admin_client');
|
||||
FirestoreClient.FirestoreClient = FirestoreClient;
|
||||
FirestoreClient.FirestoreAdminClient = FirestoreAdminClient;
|
||||
module.exports = FirestoreClient;
|
||||
//# sourceMappingURL=index.js.map
|
104
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_common.js
generated
vendored
Normal file
104
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_common.js
generated
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A set of field paths on a document.
|
||||
* Used to restrict a get or update operation on a document to a subset of its
|
||||
* fields.
|
||||
* This is different from standard field masks, as this is always scoped to a
|
||||
* Document, and takes in account the dynamic nature of Value.
|
||||
*
|
||||
* @property {string[]} fieldPaths
|
||||
* The list of field paths in the mask. See Document.fields for a field
|
||||
* path syntax reference.
|
||||
*
|
||||
* @typedef DocumentMask
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.DocumentMask definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/common.proto}
|
||||
*/
|
||||
const DocumentMask = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A precondition on a document, used for conditional operations.
|
||||
*
|
||||
* @property {boolean} exists
|
||||
* When set to `true`, the target document must exist.
|
||||
* When set to `false`, the target document must not exist.
|
||||
*
|
||||
* @property {Object} updateTime
|
||||
* When set, the target document must exist and have been last updated at
|
||||
* that time.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef Precondition
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Precondition definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/common.proto}
|
||||
*/
|
||||
const Precondition = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* Options for creating a new transaction.
|
||||
*
|
||||
* @property {Object} readOnly
|
||||
* The transaction can only be used for read operations.
|
||||
*
|
||||
* This object should have the same structure as [ReadOnly]{@link google.firestore.v1beta1.ReadOnly}
|
||||
*
|
||||
* @property {Object} readWrite
|
||||
* The transaction can be used for both read and write operations.
|
||||
*
|
||||
* This object should have the same structure as [ReadWrite]{@link google.firestore.v1beta1.ReadWrite}
|
||||
*
|
||||
* @typedef TransactionOptions
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.TransactionOptions definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/common.proto}
|
||||
*/
|
||||
const TransactionOptions = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* Options for a transaction that can be used to read and write documents.
|
||||
*
|
||||
* @property {Buffer} retryTransaction
|
||||
* An optional transaction to retry.
|
||||
*
|
||||
* @typedef ReadWrite
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.TransactionOptions.ReadWrite definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/common.proto}
|
||||
*/
|
||||
ReadWrite: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* Options for a transaction that can only be used to read documents.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef ReadOnly
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.TransactionOptions.ReadOnly definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/common.proto}
|
||||
*/
|
||||
ReadOnly: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
};
|
||||
//# sourceMappingURL=doc_common.js.map
|
177
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_document.js
generated
vendored
Normal file
177
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_document.js
generated
vendored
Normal file
@ -0,0 +1,177 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A Firestore document.
|
||||
*
|
||||
* Must not exceed 1 MiB - 4 bytes.
|
||||
*
|
||||
* @property {string} name
|
||||
* The resource name of the document, for example
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object.<string, Object>} fields
|
||||
* The document's fields.
|
||||
*
|
||||
* The map keys represent field names.
|
||||
*
|
||||
* A simple field name contains only characters `a` to `z`, `A` to `Z`,
|
||||
* `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
|
||||
* `foo_bar_17`.
|
||||
*
|
||||
* Field names matching the regular expression `__.*__` are reserved. Reserved
|
||||
* field names are forbidden except in certain documented contexts. The map
|
||||
* keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be
|
||||
* empty.
|
||||
*
|
||||
* Field paths may be used in other contexts to refer to structured fields
|
||||
* defined here. For `map_value`, the field path is represented by the simple
|
||||
* or quoted field names of the containing fields, delimited by `.`. For
|
||||
* example, the structured field
|
||||
* `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be
|
||||
* represented by the field path `foo.x&y`.
|
||||
*
|
||||
* Within a field path, a quoted field name starts and ends with `` ` `` and
|
||||
* may contain any character. Some characters, including `` ` ``, must be
|
||||
* escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
|
||||
* `` `bak\`tik` `` represents `` bak`tik ``.
|
||||
*
|
||||
* @property {Object} createTime
|
||||
* Output only. The time at which the document was created.
|
||||
*
|
||||
* This value increases monotonically when a document is deleted then
|
||||
* recreated. It can also be compared to values from other documents and
|
||||
* the `read_time` of a query.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {Object} updateTime
|
||||
* Output only. The time at which the document was last changed.
|
||||
*
|
||||
* This value is initially set to the `create_time` then increases
|
||||
* monotonically with each change to the document. It can also be
|
||||
* compared to values from other documents and the `read_time` of a query.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef Document
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Document definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/document.proto}
|
||||
*/
|
||||
const Document = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A message that can hold any of the supported value types.
|
||||
*
|
||||
* @property {number} nullValue
|
||||
* A null value.
|
||||
*
|
||||
* The number should be among the values of [NullValue]{@link google.protobuf.NullValue}
|
||||
*
|
||||
* @property {boolean} booleanValue
|
||||
* A boolean value.
|
||||
*
|
||||
* @property {number} integerValue
|
||||
* An integer value.
|
||||
*
|
||||
* @property {number} doubleValue
|
||||
* A double value.
|
||||
*
|
||||
* @property {Object} timestampValue
|
||||
* A timestamp value.
|
||||
*
|
||||
* Precise only to microseconds. When stored, any additional precision is
|
||||
* rounded down.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {string} stringValue
|
||||
* A string value.
|
||||
*
|
||||
* The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
|
||||
* Only the first 1,500 bytes of the UTF-8 representation are considered by
|
||||
* queries.
|
||||
*
|
||||
* @property {Buffer} bytesValue
|
||||
* A bytes value.
|
||||
*
|
||||
* Must not exceed 1 MiB - 89 bytes.
|
||||
* Only the first 1,500 bytes are considered by queries.
|
||||
*
|
||||
* @property {string} referenceValue
|
||||
* A reference to a document. For example:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} geoPointValue
|
||||
* A geo point value representing a point on the surface of Earth.
|
||||
*
|
||||
* This object should have the same structure as [LatLng]{@link google.type.LatLng}
|
||||
*
|
||||
* @property {Object} arrayValue
|
||||
* An array value.
|
||||
*
|
||||
* Cannot directly contain another array value, though can contain an
|
||||
* map which contains another array.
|
||||
*
|
||||
* This object should have the same structure as [ArrayValue]{@link google.firestore.v1beta1.ArrayValue}
|
||||
*
|
||||
* @property {Object} mapValue
|
||||
* A map value.
|
||||
*
|
||||
* This object should have the same structure as [MapValue]{@link google.firestore.v1beta1.MapValue}
|
||||
*
|
||||
* @typedef Value
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Value definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/document.proto}
|
||||
*/
|
||||
const Value = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* An array value.
|
||||
*
|
||||
* @property {Object[]} values
|
||||
* Values in the array.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1beta1.Value}
|
||||
*
|
||||
* @typedef ArrayValue
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ArrayValue definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/document.proto}
|
||||
*/
|
||||
const ArrayValue = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A map value.
|
||||
*
|
||||
* @property {Object.<string, Object>} fields
|
||||
* The map's fields.
|
||||
*
|
||||
* The map keys represent field names. Field names matching the regular
|
||||
* expression `__.*__` are reserved. Reserved field names are forbidden except
|
||||
* in certain documented contexts. The map keys, represented as UTF-8, must
|
||||
* not exceed 1,500 bytes and cannot be empty.
|
||||
*
|
||||
* @typedef MapValue
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.MapValue definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/document.proto}
|
||||
*/
|
||||
const MapValue = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_document.js.map
|
840
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_firestore.js
generated
vendored
Normal file
840
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_firestore.js
generated
vendored
Normal file
@ -0,0 +1,840 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* The request for Firestore.GetDocument.
|
||||
*
|
||||
* @property {string} name
|
||||
* The resource name of the Document to get. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If the document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1beta1.DocumentMask}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads the document in a transaction.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads the version of the document at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef GetDocumentRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.GetDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const GetDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.ListDocuments.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents` or
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {string} collectionId
|
||||
* The collection ID, relative to `parent`, to list. For example: `chatrooms`
|
||||
* or `messages`.
|
||||
*
|
||||
* @property {number} pageSize
|
||||
* The maximum number of documents to return.
|
||||
*
|
||||
* @property {string} pageToken
|
||||
* The `next_page_token` value returned from a previous List request, if any.
|
||||
*
|
||||
* @property {string} orderBy
|
||||
* The order to sort results by. For example: `priority desc, name`.
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If a document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1beta1.DocumentMask}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads documents in a transaction.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents as they were at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {boolean} showMissing
|
||||
* If the list should show missing documents. A missing document is a
|
||||
* document that does not exist but has sub-documents. These documents will
|
||||
* be returned with a key but will not have fields, Document.create_time,
|
||||
* or Document.update_time set.
|
||||
*
|
||||
* Requests with `show_missing` may not specify `where` or
|
||||
* `order_by`.
|
||||
*
|
||||
* @typedef ListDocumentsRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ListDocumentsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const ListDocumentsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.ListDocuments.
|
||||
*
|
||||
* @property {Object[]} documents
|
||||
* The Documents found.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1beta1.Document}
|
||||
*
|
||||
* @property {string} nextPageToken
|
||||
* The next page token.
|
||||
*
|
||||
* @typedef ListDocumentsResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ListDocumentsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const ListDocumentsResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.CreateDocument.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource. For example:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
|
||||
*
|
||||
* @property {string} collectionId
|
||||
* The collection ID, relative to `parent`, to list. For example: `chatrooms`.
|
||||
*
|
||||
* @property {string} documentId
|
||||
* The client-assigned document ID to use for this document.
|
||||
*
|
||||
* Optional. If not specified, an ID will be assigned by the service.
|
||||
*
|
||||
* @property {Object} document
|
||||
* The document to create. `name` must not be set.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1beta1.Document}
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If the document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1beta1.DocumentMask}
|
||||
*
|
||||
* @typedef CreateDocumentRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.CreateDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const CreateDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.UpdateDocument.
|
||||
*
|
||||
* @property {Object} document
|
||||
* The updated document.
|
||||
* Creates the document if it does not already exist.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1beta1.Document}
|
||||
*
|
||||
* @property {Object} updateMask
|
||||
* The fields to update.
|
||||
* None of the field paths in the mask may contain a reserved name.
|
||||
*
|
||||
* If the document exists on the server and has fields not referenced in the
|
||||
* mask, they are left unchanged.
|
||||
* Fields referenced in the mask, but not present in the input document, are
|
||||
* deleted from the document on the server.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1beta1.DocumentMask}
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If the document has a field that is not present in this mask, that field
|
||||
* will not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1beta1.DocumentMask}
|
||||
*
|
||||
* @property {Object} currentDocument
|
||||
* An optional precondition on the document.
|
||||
* The request will fail if this is set and not met by the target document.
|
||||
*
|
||||
* This object should have the same structure as [Precondition]{@link google.firestore.v1beta1.Precondition}
|
||||
*
|
||||
* @typedef UpdateDocumentRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.UpdateDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const UpdateDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.DeleteDocument.
|
||||
*
|
||||
* @property {string} name
|
||||
* The resource name of the Document to delete. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} currentDocument
|
||||
* An optional precondition on the document.
|
||||
* The request will fail if this is set and not met by the target document.
|
||||
*
|
||||
* This object should have the same structure as [Precondition]{@link google.firestore.v1beta1.Precondition}
|
||||
*
|
||||
* @typedef DeleteDocumentRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.DeleteDocumentRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const DeleteDocumentRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.BatchGetDocuments.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {string[]} documents
|
||||
* The names of the documents to retrieve. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* The request will fail if any of the document is not a child resource of the
|
||||
* given `database`. Duplicate names will be elided.
|
||||
*
|
||||
* @property {Object} mask
|
||||
* The fields to return. If not set, returns all fields.
|
||||
*
|
||||
* If a document has a field that is not present in this mask, that field will
|
||||
* not be returned in the response.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1beta1.DocumentMask}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads documents in a transaction.
|
||||
*
|
||||
* @property {Object} newTransaction
|
||||
* Starts a new transaction and reads the documents.
|
||||
* Defaults to a read-only transaction.
|
||||
* The new transaction ID will be returned as the first response in the
|
||||
* stream.
|
||||
*
|
||||
* This object should have the same structure as [TransactionOptions]{@link google.firestore.v1beta1.TransactionOptions}
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents as they were at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef BatchGetDocumentsRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.BatchGetDocumentsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const BatchGetDocumentsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The streamed response for Firestore.BatchGetDocuments.
|
||||
*
|
||||
* @property {Object} found
|
||||
* A document that was requested.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1beta1.Document}
|
||||
*
|
||||
* @property {string} missing
|
||||
* A document name that was requested but does not exist. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction that was started as part of this request.
|
||||
* Will only be set in the first response, and only if
|
||||
* BatchGetDocumentsRequest.new_transaction was set in the request.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The time at which the document was read.
|
||||
* This may be monotically increasing, in this case the previous documents in
|
||||
* the result stream are guaranteed not to have changed between their
|
||||
* read_time and this one.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef BatchGetDocumentsResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.BatchGetDocumentsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const BatchGetDocumentsResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.BeginTransaction.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Object} options
|
||||
* The options for the transaction.
|
||||
* Defaults to a read-write transaction.
|
||||
*
|
||||
* This object should have the same structure as [TransactionOptions]{@link google.firestore.v1beta1.TransactionOptions}
|
||||
*
|
||||
* @typedef BeginTransactionRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.BeginTransactionRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const BeginTransactionRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.BeginTransaction.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction that was started.
|
||||
*
|
||||
* @typedef BeginTransactionResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.BeginTransactionResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const BeginTransactionResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.Commit.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Object[]} writes
|
||||
* The writes to apply.
|
||||
*
|
||||
* Always executed atomically and in order.
|
||||
*
|
||||
* This object should have the same structure as [Write]{@link google.firestore.v1beta1.Write}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* If set, applies all writes in this transaction, and commits it.
|
||||
*
|
||||
* @typedef CommitRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.CommitRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const CommitRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.Commit.
|
||||
*
|
||||
* @property {Object[]} writeResults
|
||||
* The result of applying the writes.
|
||||
*
|
||||
* This i-th write result corresponds to the i-th write in the
|
||||
* request.
|
||||
*
|
||||
* This object should have the same structure as [WriteResult]{@link google.firestore.v1beta1.WriteResult}
|
||||
*
|
||||
* @property {Object} commitTime
|
||||
* The time at which the commit occurred.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef CommitResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.CommitResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const CommitResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.Rollback.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction to roll back.
|
||||
*
|
||||
* @typedef RollbackRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.RollbackRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const RollbackRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.RunQuery.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents` or
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {Object} structuredQuery
|
||||
* A structured query.
|
||||
*
|
||||
* This object should have the same structure as [StructuredQuery]{@link google.firestore.v1beta1.StructuredQuery}
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* Reads documents in a transaction.
|
||||
*
|
||||
* @property {Object} newTransaction
|
||||
* Starts a new transaction and reads the documents.
|
||||
* Defaults to a read-only transaction.
|
||||
* The new transaction ID will be returned as the first response in the
|
||||
* stream.
|
||||
*
|
||||
* This object should have the same structure as [TransactionOptions]{@link google.firestore.v1beta1.TransactionOptions}
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Reads documents as they were at the given time.
|
||||
* This may not be older than 60 seconds.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef RunQueryRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.RunQueryRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const RunQueryRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.RunQuery.
|
||||
*
|
||||
* @property {Buffer} transaction
|
||||
* The transaction that was started as part of this request.
|
||||
* Can only be set in the first response, and only if
|
||||
* RunQueryRequest.new_transaction was set in the request.
|
||||
* If set, no other fields will be set in this response.
|
||||
*
|
||||
* @property {Object} document
|
||||
* A query result.
|
||||
* Not set when reporting partial progress.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1beta1.Document}
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The time at which the document was read. This may be monotonically
|
||||
* increasing; in this case, the previous documents in the result stream are
|
||||
* guaranteed not to have changed between their `read_time` and this one.
|
||||
*
|
||||
* If the query returns no results, a response with `read_time` and no
|
||||
* `document` will be sent, and this represents the time at which the query
|
||||
* was run.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {number} skippedResults
|
||||
* The number of results that have been skipped due to an offset between
|
||||
* the last response and the current response.
|
||||
*
|
||||
* @typedef RunQueryResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.RunQueryResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const RunQueryResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.Write.
|
||||
*
|
||||
* The first request creates a stream, or resumes an existing one from a token.
|
||||
*
|
||||
* When creating a new stream, the server replies with a response containing
|
||||
* only an ID and a token, to use in the next request.
|
||||
*
|
||||
* When resuming a stream, the server first streams any responses later than the
|
||||
* given token, then a response containing only an up-to-date token, to use in
|
||||
* the next request.
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
* This is only required in the first message.
|
||||
*
|
||||
* @property {string} streamId
|
||||
* The ID of the write stream to resume.
|
||||
* This may only be set in the first message. When left empty, a new write
|
||||
* stream will be created.
|
||||
*
|
||||
* @property {Object[]} writes
|
||||
* The writes to apply.
|
||||
*
|
||||
* Always executed atomically and in order.
|
||||
* This must be empty on the first request.
|
||||
* This may be empty on the last request.
|
||||
* This must not be empty on all other requests.
|
||||
*
|
||||
* This object should have the same structure as [Write]{@link google.firestore.v1beta1.Write}
|
||||
*
|
||||
* @property {Buffer} streamToken
|
||||
* A stream token that was previously sent by the server.
|
||||
*
|
||||
* The client should set this field to the token from the most recent
|
||||
* WriteResponse it has received. This acknowledges that the client has
|
||||
* received responses up to this token. After sending this token, earlier
|
||||
* tokens may not be used anymore.
|
||||
*
|
||||
* The server may close the stream if there are too many unacknowledged
|
||||
* responses.
|
||||
*
|
||||
* Leave this field unset when creating a new stream. To resume a stream at
|
||||
* a specific point, set this field and the `stream_id` field.
|
||||
*
|
||||
* Leave this field unset when creating a new stream.
|
||||
*
|
||||
* @property {Object.<string, string>} labels
|
||||
* Labels associated with this write request.
|
||||
*
|
||||
* @typedef WriteRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.WriteRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const WriteRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.Write.
|
||||
*
|
||||
* @property {string} streamId
|
||||
* The ID of the stream.
|
||||
* Only set on the first message, when a new stream was created.
|
||||
*
|
||||
* @property {Buffer} streamToken
|
||||
* A token that represents the position of this response in the stream.
|
||||
* This can be used by a client to resume the stream at this point.
|
||||
*
|
||||
* This field is always set.
|
||||
*
|
||||
* @property {Object[]} writeResults
|
||||
* The result of applying the writes.
|
||||
*
|
||||
* This i-th write result corresponds to the i-th write in the
|
||||
* request.
|
||||
*
|
||||
* This object should have the same structure as [WriteResult]{@link google.firestore.v1beta1.WriteResult}
|
||||
*
|
||||
* @property {Object} commitTime
|
||||
* The time at which the commit occurred.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef WriteResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.WriteResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const WriteResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A request for Firestore.Listen
|
||||
*
|
||||
* @property {string} database
|
||||
* The database name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}`.
|
||||
*
|
||||
* @property {Object} addTarget
|
||||
* A target to add to this stream.
|
||||
*
|
||||
* This object should have the same structure as [Target]{@link google.firestore.v1beta1.Target}
|
||||
*
|
||||
* @property {number} removeTarget
|
||||
* The ID of a target to remove from this stream.
|
||||
*
|
||||
* @property {Object.<string, string>} labels
|
||||
* Labels associated with this target change.
|
||||
*
|
||||
* @typedef ListenRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ListenRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const ListenRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response for Firestore.Listen.
|
||||
*
|
||||
* @property {Object} targetChange
|
||||
* Targets have changed.
|
||||
*
|
||||
* This object should have the same structure as [TargetChange]{@link google.firestore.v1beta1.TargetChange}
|
||||
*
|
||||
* @property {Object} documentChange
|
||||
* A Document has changed.
|
||||
*
|
||||
* This object should have the same structure as [DocumentChange]{@link google.firestore.v1beta1.DocumentChange}
|
||||
*
|
||||
* @property {Object} documentDelete
|
||||
* A Document has been deleted.
|
||||
*
|
||||
* This object should have the same structure as [DocumentDelete]{@link google.firestore.v1beta1.DocumentDelete}
|
||||
*
|
||||
* @property {Object} documentRemove
|
||||
* A Document has been removed from a target (because it is no longer
|
||||
* relevant to that target).
|
||||
*
|
||||
* This object should have the same structure as [DocumentRemove]{@link google.firestore.v1beta1.DocumentRemove}
|
||||
*
|
||||
* @property {Object} filter
|
||||
* A filter to apply to the set of documents previously returned for the
|
||||
* given target.
|
||||
*
|
||||
* Returned when documents may have been removed from the given target, but
|
||||
* the exact documents are unknown.
|
||||
*
|
||||
* This object should have the same structure as [ExistenceFilter]{@link google.firestore.v1beta1.ExistenceFilter}
|
||||
*
|
||||
* @typedef ListenResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ListenResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const ListenResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A specification of a set of documents to listen to.
|
||||
*
|
||||
* @property {Object} query
|
||||
* A target specified by a query.
|
||||
*
|
||||
* This object should have the same structure as [QueryTarget]{@link google.firestore.v1beta1.QueryTarget}
|
||||
*
|
||||
* @property {Object} documents
|
||||
* A target specified by a set of document names.
|
||||
*
|
||||
* This object should have the same structure as [DocumentsTarget]{@link google.firestore.v1beta1.DocumentsTarget}
|
||||
*
|
||||
* @property {Buffer} resumeToken
|
||||
* A resume token from a prior TargetChange for an identical target.
|
||||
*
|
||||
* Using a resume token with a different target is unsupported and may fail.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* Start listening after a specific `read_time`.
|
||||
*
|
||||
* The client must know the state of matching documents at this time.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {number} targetId
|
||||
* A client provided target ID.
|
||||
*
|
||||
* If not set, the server will assign an ID for the target.
|
||||
*
|
||||
* Used for resuming a target without changing IDs. The IDs can either be
|
||||
* client-assigned or be server-assigned in a previous stream. All targets
|
||||
* with client provided IDs must be added before adding a target that needs
|
||||
* a server-assigned id.
|
||||
*
|
||||
* @property {boolean} once
|
||||
* If the target should be removed once it is current and consistent.
|
||||
*
|
||||
* @typedef Target
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Target definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const Target = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A target specified by a set of documents names.
|
||||
*
|
||||
* @property {string[]} documents
|
||||
* The names of the documents to retrieve. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* The request will fail if any of the document is not a child resource of
|
||||
* the given `database`. Duplicate names will be elided.
|
||||
*
|
||||
* @typedef DocumentsTarget
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Target.DocumentsTarget definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
DocumentsTarget: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A target specified by a query.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent resource name. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents` or
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents` or
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {Object} structuredQuery
|
||||
* A structured query.
|
||||
*
|
||||
* This object should have the same structure as [StructuredQuery]{@link google.firestore.v1beta1.StructuredQuery}
|
||||
*
|
||||
* @typedef QueryTarget
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Target.QueryTarget definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
QueryTarget: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
};
|
||||
/**
|
||||
* Targets being watched have changed.
|
||||
*
|
||||
* @property {number} targetChangeType
|
||||
* The type of change that occurred.
|
||||
*
|
||||
* The number should be among the values of [TargetChangeType]{@link google.firestore.v1beta1.TargetChangeType}
|
||||
*
|
||||
* @property {number[]} targetIds
|
||||
* The target IDs of targets that have changed.
|
||||
*
|
||||
* If empty, the change applies to all targets.
|
||||
*
|
||||
* For `target_change_type=ADD`, the order of the target IDs matches the order
|
||||
* of the requests to add the targets. This allows clients to unambiguously
|
||||
* associate server-assigned target IDs with added targets.
|
||||
*
|
||||
* For other states, the order of the target IDs is not defined.
|
||||
*
|
||||
* @property {Object} cause
|
||||
* The error that resulted in this change, if applicable.
|
||||
*
|
||||
* This object should have the same structure as [Status]{@link google.rpc.Status}
|
||||
*
|
||||
* @property {Buffer} resumeToken
|
||||
* A token that can be used to resume the stream for the given `target_ids`,
|
||||
* or all targets if `target_ids` is empty.
|
||||
*
|
||||
* Not set on every target change.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The consistent `read_time` for the given `target_ids` (omitted when the
|
||||
* target_ids are not at a consistent snapshot).
|
||||
*
|
||||
* The stream is guaranteed to send a `read_time` with `target_ids` empty
|
||||
* whenever the entire stream reaches a new consistent snapshot. ADD,
|
||||
* CURRENT, and RESET messages are guaranteed to (eventually) result in a
|
||||
* new consistent snapshot (while NO_CHANGE and REMOVE messages are not).
|
||||
*
|
||||
* For a given stream, `read_time` is guaranteed to be monotonically
|
||||
* increasing.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef TargetChange
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.TargetChange definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const TargetChange = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* The type of change.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1beta1
|
||||
*/
|
||||
TargetChangeType: {
|
||||
/**
|
||||
* No change has occurred. Used only to send an updated `resume_token`.
|
||||
*/
|
||||
NO_CHANGE: 0,
|
||||
/**
|
||||
* The targets have been added.
|
||||
*/
|
||||
ADD: 1,
|
||||
/**
|
||||
* The targets have been removed.
|
||||
*/
|
||||
REMOVE: 2,
|
||||
/**
|
||||
* The targets reflect all changes committed before the targets were added
|
||||
* to the stream.
|
||||
*
|
||||
* This will be sent after or with a `read_time` that is greater than or
|
||||
* equal to the time at which the targets were added.
|
||||
*
|
||||
* Listeners can wait for this change if read-after-write semantics
|
||||
* are desired.
|
||||
*/
|
||||
CURRENT: 3,
|
||||
/**
|
||||
* The targets have been reset, and a new initial state for the targets
|
||||
* will be returned in subsequent changes.
|
||||
*
|
||||
* After the initial state is complete, `CURRENT` will be returned even
|
||||
* if the target was previously indicated to be `CURRENT`.
|
||||
*/
|
||||
RESET: 4,
|
||||
},
|
||||
};
|
||||
/**
|
||||
* The request for Firestore.ListCollectionIds.
|
||||
*
|
||||
* @property {string} parent
|
||||
* The parent document. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
* For example:
|
||||
* `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
||||
*
|
||||
* @property {number} pageSize
|
||||
* The maximum number of results to return.
|
||||
*
|
||||
* @property {string} pageToken
|
||||
* A page token. Must be a value from
|
||||
* ListCollectionIdsResponse.
|
||||
*
|
||||
* @typedef ListCollectionIdsRequest
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ListCollectionIdsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const ListCollectionIdsRequest = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* The response from Firestore.ListCollectionIds.
|
||||
*
|
||||
* @property {string[]} collectionIds
|
||||
* The collection ids.
|
||||
*
|
||||
* @property {string} nextPageToken
|
||||
* A page token that may be used to continue the list.
|
||||
*
|
||||
* @typedef ListCollectionIdsResponse
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ListCollectionIdsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/firestore.proto}
|
||||
*/
|
||||
const ListCollectionIdsResponse = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_firestore.js.map
|
363
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_query.js
generated
vendored
Normal file
363
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_query.js
generated
vendored
Normal file
@ -0,0 +1,363 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A Firestore query.
|
||||
*
|
||||
* @property {Object} select
|
||||
* The projection to return.
|
||||
*
|
||||
* This object should have the same structure as [Projection]{@link google.firestore.v1beta1.Projection}
|
||||
*
|
||||
* @property {Object[]} from
|
||||
* The collections to query.
|
||||
*
|
||||
* This object should have the same structure as [CollectionSelector]{@link google.firestore.v1beta1.CollectionSelector}
|
||||
*
|
||||
* @property {Object} where
|
||||
* The filter to apply.
|
||||
*
|
||||
* This object should have the same structure as [Filter]{@link google.firestore.v1beta1.Filter}
|
||||
*
|
||||
* @property {Object[]} orderBy
|
||||
* The order to apply to the query results.
|
||||
*
|
||||
* Firestore guarantees a stable ordering through the following rules:
|
||||
*
|
||||
* * Any field required to appear in `order_by`, that is not already
|
||||
* specified in `order_by`, is appended to the order in field name order
|
||||
* by default.
|
||||
* * If an order on `__name__` is not specified, it is appended by default.
|
||||
*
|
||||
* Fields are appended with the same sort direction as the last order
|
||||
* specified, or 'ASCENDING' if no order was specified. For example:
|
||||
*
|
||||
* * `SELECT * FROM Foo ORDER BY A` becomes
|
||||
* `SELECT * FROM Foo ORDER BY A, __name__`
|
||||
* * `SELECT * FROM Foo ORDER BY A DESC` becomes
|
||||
* `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
|
||||
* * `SELECT * FROM Foo WHERE A > 1` becomes
|
||||
* `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
|
||||
*
|
||||
* This object should have the same structure as [Order]{@link google.firestore.v1beta1.Order}
|
||||
*
|
||||
* @property {Object} startAt
|
||||
* A starting point for the query results.
|
||||
*
|
||||
* This object should have the same structure as [Cursor]{@link google.firestore.v1beta1.Cursor}
|
||||
*
|
||||
* @property {Object} endAt
|
||||
* A end point for the query results.
|
||||
*
|
||||
* This object should have the same structure as [Cursor]{@link google.firestore.v1beta1.Cursor}
|
||||
*
|
||||
* @property {number} offset
|
||||
* The number of results to skip.
|
||||
*
|
||||
* Applies before limit, but after all other constraints. Must be >= 0 if
|
||||
* specified.
|
||||
*
|
||||
* @property {Object} limit
|
||||
* The maximum number of results to return.
|
||||
*
|
||||
* Applies after all other constraints.
|
||||
* Must be >= 0 if specified.
|
||||
*
|
||||
* This object should have the same structure as [Int32Value]{@link google.protobuf.Int32Value}
|
||||
*
|
||||
* @typedef StructuredQuery
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
const StructuredQuery = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A selection of a collection, such as `messages as m1`.
|
||||
*
|
||||
* @property {string} collectionId
|
||||
* The collection ID.
|
||||
* When set, selects only collections with this ID.
|
||||
*
|
||||
* @property {boolean} allDescendants
|
||||
* When false, selects only collections that are immediate children of
|
||||
* the `parent` specified in the containing `RunQueryRequest`.
|
||||
* When true, selects all descendant collections.
|
||||
*
|
||||
* @typedef CollectionSelector
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.CollectionSelector definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
CollectionSelector: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A filter.
|
||||
*
|
||||
* @property {Object} compositeFilter
|
||||
* A composite filter.
|
||||
*
|
||||
* This object should have the same structure as [CompositeFilter]{@link google.firestore.v1beta1.CompositeFilter}
|
||||
*
|
||||
* @property {Object} fieldFilter
|
||||
* A filter on a document field.
|
||||
*
|
||||
* This object should have the same structure as [FieldFilter]{@link google.firestore.v1beta1.FieldFilter}
|
||||
*
|
||||
* @property {Object} unaryFilter
|
||||
* A filter that takes exactly one argument.
|
||||
*
|
||||
* This object should have the same structure as [UnaryFilter]{@link google.firestore.v1beta1.UnaryFilter}
|
||||
*
|
||||
* @typedef Filter
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.Filter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
Filter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A filter that merges multiple other filters using the given operator.
|
||||
*
|
||||
* @property {number} op
|
||||
* The operator for combining multiple filters.
|
||||
*
|
||||
* The number should be among the values of [Operator]{@link google.firestore.v1beta1.Operator}
|
||||
*
|
||||
* @property {Object[]} filters
|
||||
* The list of filters to combine.
|
||||
* Must contain at least one filter.
|
||||
*
|
||||
* This object should have the same structure as [Filter]{@link google.firestore.v1beta1.Filter}
|
||||
*
|
||||
* @typedef CompositeFilter
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.CompositeFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
CompositeFilter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A composite filter operator.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1beta1
|
||||
*/
|
||||
Operator: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
OPERATOR_UNSPECIFIED: 0,
|
||||
/**
|
||||
* The results are required to satisfy each of the combined filters.
|
||||
*/
|
||||
AND: 1,
|
||||
},
|
||||
},
|
||||
/**
|
||||
* A filter on a specific field.
|
||||
*
|
||||
* @property {Object} field
|
||||
* The field to filter by.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1beta1.FieldReference}
|
||||
*
|
||||
* @property {number} op
|
||||
* The operator to filter by.
|
||||
*
|
||||
* The number should be among the values of [Operator]{@link google.firestore.v1beta1.Operator}
|
||||
*
|
||||
* @property {Object} value
|
||||
* The value to compare to.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1beta1.Value}
|
||||
*
|
||||
* @typedef FieldFilter
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.FieldFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
FieldFilter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A field filter operator.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1beta1
|
||||
*/
|
||||
Operator: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
OPERATOR_UNSPECIFIED: 0,
|
||||
/**
|
||||
* Less than. Requires that the field come first in `order_by`.
|
||||
*/
|
||||
LESS_THAN: 1,
|
||||
/**
|
||||
* Less than or equal. Requires that the field come first in `order_by`.
|
||||
*/
|
||||
LESS_THAN_OR_EQUAL: 2,
|
||||
/**
|
||||
* Greater than. Requires that the field come first in `order_by`.
|
||||
*/
|
||||
GREATER_THAN: 3,
|
||||
/**
|
||||
* Greater than or equal. Requires that the field come first in
|
||||
* `order_by`.
|
||||
*/
|
||||
GREATER_THAN_OR_EQUAL: 4,
|
||||
/**
|
||||
* Equal.
|
||||
*/
|
||||
EQUAL: 5,
|
||||
/**
|
||||
* Contains. Requires that the field is an array.
|
||||
*/
|
||||
ARRAY_CONTAINS: 7,
|
||||
},
|
||||
},
|
||||
/**
|
||||
* The projection of document's fields to return.
|
||||
*
|
||||
* @property {Object[]} fields
|
||||
* The fields to return.
|
||||
*
|
||||
* If empty, all fields are returned. To only return the name
|
||||
* of the document, use `['__name__']`.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1beta1.FieldReference}
|
||||
*
|
||||
* @typedef Projection
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.Projection definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
Projection: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A filter with a single operand.
|
||||
*
|
||||
* @property {number} op
|
||||
* The unary operator to apply.
|
||||
*
|
||||
* The number should be among the values of [Operator]{@link google.firestore.v1beta1.Operator}
|
||||
*
|
||||
* @property {Object} field
|
||||
* The field to which to apply the operator.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1beta1.FieldReference}
|
||||
*
|
||||
* @typedef UnaryFilter
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.UnaryFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
UnaryFilter: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A unary operator.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1beta1
|
||||
*/
|
||||
Operator: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
OPERATOR_UNSPECIFIED: 0,
|
||||
/**
|
||||
* Test if a field is equal to NaN.
|
||||
*/
|
||||
IS_NAN: 2,
|
||||
/**
|
||||
* Test if an exprestion evaluates to Null.
|
||||
*/
|
||||
IS_NULL: 3,
|
||||
},
|
||||
},
|
||||
/**
|
||||
* An order on a field.
|
||||
*
|
||||
* @property {Object} field
|
||||
* The field to order by.
|
||||
*
|
||||
* This object should have the same structure as [FieldReference]{@link google.firestore.v1beta1.FieldReference}
|
||||
*
|
||||
* @property {number} direction
|
||||
* The direction to order by. Defaults to `ASCENDING`.
|
||||
*
|
||||
* The number should be among the values of [Direction]{@link google.firestore.v1beta1.Direction}
|
||||
*
|
||||
* @typedef Order
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.Order definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
Order: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A reference to a field, such as `max(messages.time) as max_time`.
|
||||
*
|
||||
* @property {string} fieldPath
|
||||
*
|
||||
* @typedef FieldReference
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.StructuredQuery.FieldReference definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
FieldReference: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
},
|
||||
/**
|
||||
* A sort direction.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1beta1
|
||||
*/
|
||||
Direction: {
|
||||
/**
|
||||
* Unspecified.
|
||||
*/
|
||||
DIRECTION_UNSPECIFIED: 0,
|
||||
/**
|
||||
* Ascending.
|
||||
*/
|
||||
ASCENDING: 1,
|
||||
/**
|
||||
* Descending.
|
||||
*/
|
||||
DESCENDING: 2,
|
||||
},
|
||||
};
|
||||
/**
|
||||
* A position in a query result set.
|
||||
*
|
||||
* @property {Object[]} values
|
||||
* The values that represent a position, in the order they appear in
|
||||
* the order by clause of a query.
|
||||
*
|
||||
* Can contain fewer values than specified in the order by clause.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1beta1.Value}
|
||||
*
|
||||
* @property {boolean} before
|
||||
* If the position is just before or just after the given values, relative
|
||||
* to the sort order defined by the query.
|
||||
*
|
||||
* @typedef Cursor
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Cursor definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/query.proto}
|
||||
*/
|
||||
const Cursor = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_query.js.map
|
329
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_write.js
generated
vendored
Normal file
329
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/firestore/v1beta1/doc_write.js
generated
vendored
Normal file
@ -0,0 +1,329 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A write on a document.
|
||||
*
|
||||
* @property {Object} update
|
||||
* A document to write.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1beta1.Document}
|
||||
*
|
||||
* @property {string} delete
|
||||
* A document name to delete. In the format:
|
||||
* `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
||||
*
|
||||
* @property {Object} transform
|
||||
* Applies a transformation to a document.
|
||||
* At most one `transform` per document is allowed in a given request.
|
||||
* An `update` cannot follow a `transform` on the same document in a given
|
||||
* request.
|
||||
*
|
||||
* This object should have the same structure as [DocumentTransform]{@link google.firestore.v1beta1.DocumentTransform}
|
||||
*
|
||||
* @property {Object} updateMask
|
||||
* The fields to update in this write.
|
||||
*
|
||||
* This field can be set only when the operation is `update`.
|
||||
* If the mask is not set for an `update` and the document exists, any
|
||||
* existing data will be overwritten.
|
||||
* If the mask is set and the document on the server has fields not covered by
|
||||
* the mask, they are left unchanged.
|
||||
* Fields referenced in the mask, but not present in the input document, are
|
||||
* deleted from the document on the server.
|
||||
* The field paths in this mask must not contain a reserved field name.
|
||||
*
|
||||
* This object should have the same structure as [DocumentMask]{@link google.firestore.v1beta1.DocumentMask}
|
||||
*
|
||||
* @property {Object} currentDocument
|
||||
* An optional precondition on the document.
|
||||
*
|
||||
* The write will fail if this is set and not met by the target document.
|
||||
*
|
||||
* This object should have the same structure as [Precondition]{@link google.firestore.v1beta1.Precondition}
|
||||
*
|
||||
* @typedef Write
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.Write definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
const Write = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A transformation of a document.
|
||||
*
|
||||
* @property {string} document
|
||||
* The name of the document to transform.
|
||||
*
|
||||
* @property {Object[]} fieldTransforms
|
||||
* The list of transformations to apply to the fields of the document, in
|
||||
* order.
|
||||
* This must not be empty.
|
||||
*
|
||||
* This object should have the same structure as [FieldTransform]{@link google.firestore.v1beta1.FieldTransform}
|
||||
*
|
||||
* @typedef DocumentTransform
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.DocumentTransform definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
const DocumentTransform = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A transformation of a field of the document.
|
||||
*
|
||||
* @property {string} fieldPath
|
||||
* The path of the field. See Document.fields for the field path syntax
|
||||
* reference.
|
||||
*
|
||||
* @property {number} setToServerValue
|
||||
* Sets the field to the given server value.
|
||||
*
|
||||
* The number should be among the values of [ServerValue]{@link google.firestore.v1beta1.ServerValue}
|
||||
*
|
||||
* @property {Object} increment
|
||||
* Adds the given value to the field's current value.
|
||||
*
|
||||
* This must be an integer or a double value.
|
||||
* If the field is not an integer or double, or if the field does not yet
|
||||
* exist, the transformation will set the field to the given value.
|
||||
* If either of the given value or the current field value are doubles,
|
||||
* both values will be interpreted as doubles. Double arithmetic and
|
||||
* representation of double values follow IEEE 754 semantics.
|
||||
* If there is positive/negative integer overflow, the field is resolved
|
||||
* to the largest magnitude positive/negative integer.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1beta1.Value}
|
||||
*
|
||||
* @property {Object} maximum
|
||||
* Sets the field to the maximum of its current value and the given value.
|
||||
*
|
||||
* This must be an integer or a double value.
|
||||
* If the field is not an integer or double, or if the field does not yet
|
||||
* exist, the transformation will set the field to the given value.
|
||||
* If a maximum operation is applied where the field and the input value
|
||||
* are of mixed types (that is - one is an integer and one is a double)
|
||||
* the field takes on the type of the larger operand. If the operands are
|
||||
* equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
* 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and
|
||||
* zero input value is always the stored value.
|
||||
* The maximum of any numeric value x and NaN is NaN.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1beta1.Value}
|
||||
*
|
||||
* @property {Object} minimum
|
||||
* Sets the field to the minimum of its current value and the given value.
|
||||
*
|
||||
* This must be an integer or a double value.
|
||||
* If the field is not an integer or double, or if the field does not yet
|
||||
* exist, the transformation will set the field to the input value.
|
||||
* If a minimum operation is applied where the field and the input value
|
||||
* are of mixed types (that is - one is an integer and one is a double)
|
||||
* the field takes on the type of the smaller operand. If the operands are
|
||||
* equivalent (e.g. 3 and 3.0), the field does not change.
|
||||
* 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and
|
||||
* zero input value is always the stored value.
|
||||
* The minimum of any numeric value x and NaN is NaN.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1beta1.Value}
|
||||
*
|
||||
* @property {Object} appendMissingElements
|
||||
* Append the given elements in order if they are not already present in
|
||||
* the current field value.
|
||||
* If the field is not an array, or if the field does not yet exist, it is
|
||||
* first set to the empty array.
|
||||
*
|
||||
* Equivalent numbers of different types (e.g. 3L and 3.0) are
|
||||
* considered equal when checking if a value is missing.
|
||||
* NaN is equal to NaN, and Null is equal to Null.
|
||||
* If the input contains multiple equivalent values, only the first will
|
||||
* be considered.
|
||||
*
|
||||
* The corresponding transform_result will be the null value.
|
||||
*
|
||||
* This object should have the same structure as [ArrayValue]{@link google.firestore.v1beta1.ArrayValue}
|
||||
*
|
||||
* @property {Object} removeAllFromArray
|
||||
* Remove all of the given elements from the array in the field.
|
||||
* If the field is not an array, or if the field does not yet exist, it is
|
||||
* set to the empty array.
|
||||
*
|
||||
* Equivalent numbers of the different types (e.g. 3L and 3.0) are
|
||||
* considered equal when deciding whether an element should be removed.
|
||||
* NaN is equal to NaN, and Null is equal to Null.
|
||||
* This will remove all equivalent values if there are duplicates.
|
||||
*
|
||||
* The corresponding transform_result will be the null value.
|
||||
*
|
||||
* This object should have the same structure as [ArrayValue]{@link google.firestore.v1beta1.ArrayValue}
|
||||
*
|
||||
* @typedef FieldTransform
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.DocumentTransform.FieldTransform definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
FieldTransform: {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
/**
|
||||
* A value that is calculated by the server.
|
||||
*
|
||||
* @enum {number}
|
||||
* @memberof google.firestore.v1beta1
|
||||
*/
|
||||
ServerValue: {
|
||||
/**
|
||||
* Unspecified. This value must not be used.
|
||||
*/
|
||||
SERVER_VALUE_UNSPECIFIED: 0,
|
||||
/**
|
||||
* The time at which the server processed the request, with millisecond
|
||||
* precision.
|
||||
*/
|
||||
REQUEST_TIME: 1,
|
||||
},
|
||||
},
|
||||
};
|
||||
/**
|
||||
* The result of applying a write.
|
||||
*
|
||||
* @property {Object} updateTime
|
||||
* The last update time of the document after applying the write. Not set
|
||||
* after a `delete`.
|
||||
*
|
||||
* If the write did not actually change the document, this will be the
|
||||
* previous update_time.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @property {Object[]} transformResults
|
||||
* The results of applying each DocumentTransform.FieldTransform, in the
|
||||
* same order.
|
||||
*
|
||||
* This object should have the same structure as [Value]{@link google.firestore.v1beta1.Value}
|
||||
*
|
||||
* @typedef WriteResult
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.WriteResult definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
const WriteResult = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A Document has changed.
|
||||
*
|
||||
* May be the result of multiple writes, including deletes, that
|
||||
* ultimately resulted in a new value for the Document.
|
||||
*
|
||||
* Multiple DocumentChange messages may be returned for the same logical
|
||||
* change, if multiple targets are affected.
|
||||
*
|
||||
* @property {Object} document
|
||||
* The new state of the Document.
|
||||
*
|
||||
* If `mask` is set, contains only fields that were updated or added.
|
||||
*
|
||||
* This object should have the same structure as [Document]{@link google.firestore.v1beta1.Document}
|
||||
*
|
||||
* @property {number[]} targetIds
|
||||
* A set of target IDs of targets that match this document.
|
||||
*
|
||||
* @property {number[]} removedTargetIds
|
||||
* A set of target IDs for targets that no longer match this document.
|
||||
*
|
||||
* @typedef DocumentChange
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.DocumentChange definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
const DocumentChange = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A Document has been deleted.
|
||||
*
|
||||
* May be the result of multiple writes, including updates, the
|
||||
* last of which deleted the Document.
|
||||
*
|
||||
* Multiple DocumentDelete messages may be returned for the same logical
|
||||
* delete, if multiple targets are affected.
|
||||
*
|
||||
* @property {string} document
|
||||
* The resource name of the Document that was deleted.
|
||||
*
|
||||
* @property {number[]} removedTargetIds
|
||||
* A set of target IDs for targets that previously matched this entity.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The read timestamp at which the delete was observed.
|
||||
*
|
||||
* Greater or equal to the `commit_time` of the delete.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef DocumentDelete
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.DocumentDelete definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
const DocumentDelete = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A Document has been removed from the view of the targets.
|
||||
*
|
||||
* Sent if the document is no longer relevant to a target and is out of view.
|
||||
* Can be sent instead of a DocumentDelete or a DocumentChange if the server
|
||||
* can not send the new value of the document.
|
||||
*
|
||||
* Multiple DocumentRemove messages may be returned for the same logical
|
||||
* write or delete, if multiple targets are affected.
|
||||
*
|
||||
* @property {string} document
|
||||
* The resource name of the Document that has gone out of view.
|
||||
*
|
||||
* @property {number[]} removedTargetIds
|
||||
* A set of target IDs for targets that previously matched this document.
|
||||
*
|
||||
* @property {Object} readTime
|
||||
* The read timestamp at which the remove was observed.
|
||||
*
|
||||
* Greater or equal to the `commit_time` of the change/delete/remove.
|
||||
*
|
||||
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
|
||||
*
|
||||
* @typedef DocumentRemove
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.DocumentRemove definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
const DocumentRemove = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
/**
|
||||
* A digest of all the documents that match a given target.
|
||||
*
|
||||
* @property {number} targetId
|
||||
* The target ID to which this filter applies.
|
||||
*
|
||||
* @property {number} count
|
||||
* The total count of documents that match target_id.
|
||||
*
|
||||
* If different from the count of documents in the client that match, the
|
||||
* client must manually determine which documents no longer match the target.
|
||||
*
|
||||
* @typedef ExistenceFilter
|
||||
* @memberof google.firestore.v1beta1
|
||||
* @see [google.firestore.v1beta1.ExistenceFilter definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/firestore/v1beta1/write.proto}
|
||||
*/
|
||||
const ExistenceFilter = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_write.js.map
|
137
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_any.js
generated
vendored
Normal file
137
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_any.js
generated
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* `Any` contains an arbitrary serialized protocol buffer message along with a
|
||||
* URL that describes the type of the serialized message.
|
||||
*
|
||||
* Protobuf library provides support to pack/unpack Any values in the form
|
||||
* of utility functions or additional generated methods of the Any type.
|
||||
*
|
||||
* Example 1: Pack and unpack a message in C++.
|
||||
*
|
||||
* Foo foo = ...;
|
||||
* Any any;
|
||||
* any.PackFrom(foo);
|
||||
* ...
|
||||
* if (any.UnpackTo(&foo)) {
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* Example 2: Pack and unpack a message in Java.
|
||||
*
|
||||
* Foo foo = ...;
|
||||
* Any any = Any.pack(foo);
|
||||
* ...
|
||||
* if (any.is(Foo.class)) {
|
||||
* foo = any.unpack(Foo.class);
|
||||
* }
|
||||
*
|
||||
* Example 3: Pack and unpack a message in Python.
|
||||
*
|
||||
* foo = Foo(...)
|
||||
* any = Any()
|
||||
* any.Pack(foo)
|
||||
* ...
|
||||
* if any.Is(Foo.DESCRIPTOR):
|
||||
* any.Unpack(foo)
|
||||
* ...
|
||||
*
|
||||
* Example 4: Pack and unpack a message in Go
|
||||
*
|
||||
* foo := &pb.Foo{...}
|
||||
* any, err := ptypes.MarshalAny(foo)
|
||||
* ...
|
||||
* foo := &pb.Foo{}
|
||||
* if err := ptypes.UnmarshalAny(any, foo); err != nil {
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* The pack methods provided by protobuf library will by default use
|
||||
* 'type.googleapis.com/full.type.name' as the type URL and the unpack
|
||||
* methods only use the fully qualified type name after the last '/'
|
||||
* in the type URL, for example "foo.bar.com/x/y.z" will yield type
|
||||
* name "y.z".
|
||||
*
|
||||
*
|
||||
* # JSON
|
||||
*
|
||||
* The JSON representation of an `Any` value uses the regular
|
||||
* representation of the deserialized, embedded message, with an
|
||||
* additional field `@type` which contains the type URL. Example:
|
||||
*
|
||||
* package google.profile;
|
||||
* message Person {
|
||||
* string first_name = 1;
|
||||
* string last_name = 2;
|
||||
* }
|
||||
*
|
||||
* {
|
||||
* "@type": "type.googleapis.com/google.profile.Person",
|
||||
* "firstName": <string>,
|
||||
* "lastName": <string>
|
||||
* }
|
||||
*
|
||||
* If the embedded message type is well-known and has a custom JSON
|
||||
* representation, that representation will be embedded adding a field
|
||||
* `value` which holds the custom JSON in addition to the `@type`
|
||||
* field. Example (for message google.protobuf.Duration):
|
||||
*
|
||||
* {
|
||||
* "@type": "type.googleapis.com/google.protobuf.Duration",
|
||||
* "value": "1.212s"
|
||||
* }
|
||||
*
|
||||
* @property {string} typeUrl
|
||||
* A URL/resource name that uniquely identifies the type of the serialized
|
||||
* protocol buffer message. This string must contain at least
|
||||
* one "/" character. The last segment of the URL's path must represent
|
||||
* the fully qualified name of the type (as in
|
||||
* `path/google.protobuf.Duration`). The name should be in a canonical form
|
||||
* (e.g., leading "." is not accepted).
|
||||
*
|
||||
* In practice, teams usually precompile into the binary all types that they
|
||||
* expect it to use in the context of Any. However, for URLs which use the
|
||||
* scheme `http`, `https`, or no scheme, one can optionally set up a type
|
||||
* server that maps type URLs to message definitions as follows:
|
||||
*
|
||||
* * If no scheme is provided, `https` is assumed.
|
||||
* * An HTTP GET on the URL must yield a google.protobuf.Type
|
||||
* value in binary format, or produce an error.
|
||||
* * Applications are allowed to cache lookup results based on the
|
||||
* URL, or have them precompiled into a binary to avoid any
|
||||
* lookup. Therefore, binary compatibility needs to be preserved
|
||||
* on changes to types. (Use versioned type names to manage
|
||||
* breaking changes.)
|
||||
*
|
||||
* Note: this functionality is not currently available in the official
|
||||
* protobuf release, and it is not used for type URLs beginning with
|
||||
* type.googleapis.com.
|
||||
*
|
||||
* Schemes other than `http`, `https` (or the empty scheme) might be
|
||||
* used with implementation specific semantics.
|
||||
*
|
||||
* @property {Buffer} value
|
||||
* Must be a valid serialized protocol buffer of the above specified type.
|
||||
*
|
||||
* @typedef Any
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Any definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/any.proto}
|
||||
*/
|
||||
const Any = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_any.js.map
|
34
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_empty.js
generated
vendored
Normal file
34
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_empty.js
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A generic empty message that you can re-use to avoid defining duplicated
|
||||
* empty messages in your APIs. A typical example is to use it as the request
|
||||
* or the response type of an API method. For instance:
|
||||
*
|
||||
* service Foo {
|
||||
* rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
|
||||
* }
|
||||
*
|
||||
* The JSON representation for `Empty` is empty JSON object `{}`.
|
||||
* @typedef Empty
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Empty definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/empty.proto}
|
||||
*/
|
||||
const Empty = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_empty.js.map
|
117
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_timestamp.js
generated
vendored
Normal file
117
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_timestamp.js
generated
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* A Timestamp represents a point in time independent of any time zone or local
|
||||
* calendar, encoded as a count of seconds and fractions of seconds at
|
||||
* nanosecond resolution. The count is relative to an epoch at UTC midnight on
|
||||
* January 1, 1970, in the proleptic Gregorian calendar which extends the
|
||||
* Gregorian calendar backwards to year one.
|
||||
*
|
||||
* All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
|
||||
* second table is needed for interpretation, using a [24-hour linear
|
||||
* smear](https://developers.google.com/time/smear).
|
||||
*
|
||||
* The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
|
||||
* restricting to that range, we ensure that we can convert to and from [RFC
|
||||
* 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
|
||||
*
|
||||
* # Examples
|
||||
*
|
||||
* Example 1: Compute Timestamp from POSIX `time()`.
|
||||
*
|
||||
* Timestamp timestamp;
|
||||
* timestamp.set_seconds(time(NULL));
|
||||
* timestamp.set_nanos(0);
|
||||
*
|
||||
* Example 2: Compute Timestamp from POSIX `gettimeofday()`.
|
||||
*
|
||||
* struct timeval tv;
|
||||
* gettimeofday(&tv, NULL);
|
||||
*
|
||||
* Timestamp timestamp;
|
||||
* timestamp.set_seconds(tv.tv_sec);
|
||||
* timestamp.set_nanos(tv.tv_usec * 1000);
|
||||
*
|
||||
* Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
|
||||
*
|
||||
* FILETIME ft;
|
||||
* GetSystemTimeAsFileTime(&ft);
|
||||
* UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
|
||||
*
|
||||
* // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
|
||||
* // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
|
||||
* Timestamp timestamp;
|
||||
* timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
|
||||
* timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
|
||||
*
|
||||
* Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
|
||||
*
|
||||
* long millis = System.currentTimeMillis();
|
||||
*
|
||||
* Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
|
||||
* .setNanos((int) ((millis % 1000) * 1000000)).build();
|
||||
*
|
||||
*
|
||||
* Example 5: Compute Timestamp from current time in Python.
|
||||
*
|
||||
* timestamp = Timestamp()
|
||||
* timestamp.GetCurrentTime()
|
||||
*
|
||||
* # JSON Mapping
|
||||
*
|
||||
* In JSON format, the Timestamp type is encoded as a string in the
|
||||
* [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
|
||||
* format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
|
||||
* where {year} is always expressed using four digits while {month}, {day},
|
||||
* {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
|
||||
* seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
|
||||
* are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
|
||||
* is required. A proto3 JSON serializer should always use UTC (as indicated by
|
||||
* "Z") when printing the Timestamp type and a proto3 JSON parser should be
|
||||
* able to accept both UTC and other timezones (as indicated by an offset).
|
||||
*
|
||||
* For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
|
||||
* 01:30 UTC on January 15, 2017.
|
||||
*
|
||||
* In JavaScript, one can convert a Date object to this format using the
|
||||
* standard
|
||||
* [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
|
||||
* method. In Python, a standard `datetime.datetime` object can be converted
|
||||
* to this format using
|
||||
* [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
|
||||
* the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
|
||||
* the Joda Time's [`ISODateTimeFormat.dateTime()`](https://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D) to obtain a formatter capable of generating timestamps in this format.
|
||||
*
|
||||
* @property {number} seconds
|
||||
* Represents seconds of UTC time since Unix epoch
|
||||
* 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
|
||||
* 9999-12-31T23:59:59Z inclusive.
|
||||
*
|
||||
* @property {number} nanos
|
||||
* Non-negative fractions of a second at nanosecond resolution. Negative
|
||||
* second values with fractions must still have non-negative nanos values
|
||||
* that count forward in time. Must be from 0 to 999,999,999
|
||||
* inclusive.
|
||||
*
|
||||
* @typedef Timestamp
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Timestamp definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto}
|
||||
*/
|
||||
const Timestamp = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_timestamp.js.map
|
32
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_wrappers.js
generated
vendored
Normal file
32
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/protobuf/doc_wrappers.js
generated
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* Wrapper message for `int32`.
|
||||
*
|
||||
* The JSON representation for `Int32Value` is JSON number.
|
||||
*
|
||||
* @property {number} value
|
||||
* The int32 value.
|
||||
*
|
||||
* @typedef Int32Value
|
||||
* @memberof google.protobuf
|
||||
* @see [google.protobuf.Int32Value definition in proto format]{@link https://github.com/google/protobuf/blob/master/src/google/protobuf/wrappers.proto}
|
||||
*/
|
||||
const Int32Value = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_wrappers.js.map
|
95
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/rpc/doc_status.js
generated
vendored
Normal file
95
node_modules/@google-cloud/firestore/build/src/v1beta1/doc/google/rpc/doc_status.js
generated
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
"use strict";
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
// Note: this file is purely for documentation. Any contents are not expected
|
||||
// to be loaded as the JS file.
|
||||
/**
|
||||
* The `Status` type defines a logical error model that is suitable for
|
||||
* different programming environments, including REST APIs and RPC APIs. It is
|
||||
* used by [gRPC](https://github.com/grpc). The error model is designed to be:
|
||||
*
|
||||
* - Simple to use and understand for most users
|
||||
* - Flexible enough to meet unexpected needs
|
||||
*
|
||||
* # Overview
|
||||
*
|
||||
* The `Status` message contains three pieces of data: error code, error
|
||||
* message, and error details. The error code should be an enum value of
|
||||
* google.rpc.Code, but it may accept additional error codes
|
||||
* if needed. The error message should be a developer-facing English message
|
||||
* that helps developers *understand* and *resolve* the error. If a localized
|
||||
* user-facing error message is needed, put the localized message in the error
|
||||
* details or localize it in the client. The optional error details may contain
|
||||
* arbitrary information about the error. There is a predefined set of error
|
||||
* detail types in the package `google.rpc` that can be used for common error
|
||||
* conditions.
|
||||
*
|
||||
* # Language mapping
|
||||
*
|
||||
* The `Status` message is the logical representation of the error model, but it
|
||||
* is not necessarily the actual wire format. When the `Status` message is
|
||||
* exposed in different client libraries and different wire protocols, it can be
|
||||
* mapped differently. For example, it will likely be mapped to some exceptions
|
||||
* in Java, but more likely mapped to some error codes in C.
|
||||
*
|
||||
* # Other uses
|
||||
*
|
||||
* The error model and the `Status` message can be used in a variety of
|
||||
* environments, either with or without APIs, to provide a
|
||||
* consistent developer experience across different environments.
|
||||
*
|
||||
* Example uses of this error model include:
|
||||
*
|
||||
* - Partial errors. If a service needs to return partial errors to the client,
|
||||
* it may embed the `Status` in the normal response to indicate the partial
|
||||
* errors.
|
||||
*
|
||||
* - Workflow errors. A typical workflow has multiple steps. Each step may
|
||||
* have a `Status` message for error reporting.
|
||||
*
|
||||
* - Batch operations. If a client uses batch request and batch response, the
|
||||
* `Status` message should be used directly inside batch response, one for
|
||||
* each error sub-response.
|
||||
*
|
||||
* - Asynchronous operations. If an API call embeds asynchronous operation
|
||||
* results in its response, the status of those operations should be
|
||||
* represented directly using the `Status` message.
|
||||
*
|
||||
* - Logging. If some API errors are stored in logs, the message `Status` could
|
||||
* be used directly after any stripping needed for security/privacy reasons.
|
||||
*
|
||||
* @property {number} code
|
||||
* The status code, which should be an enum value of
|
||||
* google.rpc.Code.
|
||||
*
|
||||
* @property {string} message
|
||||
* A developer-facing error message, which should be in English. Any
|
||||
* user-facing error message should be localized and sent in the
|
||||
* google.rpc.Status.details field, or localized
|
||||
* by the client.
|
||||
*
|
||||
* @property {Object[]} details
|
||||
* A list of messages that carry the error details. There is a common set of
|
||||
* message types for APIs to use.
|
||||
*
|
||||
* This object should have the same structure as [Any]{@link google.protobuf.Any}
|
||||
*
|
||||
* @typedef Status
|
||||
* @memberof google.rpc
|
||||
* @see [google.rpc.Status definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto}
|
||||
*/
|
||||
const Status = {
|
||||
// This is for documentation. Actual contents will be loaded by gRPC.
|
||||
};
|
||||
//# sourceMappingURL=doc_status.js.map
|
1382
node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js
generated
vendored
Normal file
1382
node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
100
node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client_config.json
generated
vendored
Normal file
100
node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client_config.json
generated
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
{
|
||||
"interfaces": {
|
||||
"google.firestore.v1beta1.Firestore": {
|
||||
"retry_codes": {
|
||||
"idempotent": [
|
||||
"DEADLINE_EXCEEDED",
|
||||
"UNAVAILABLE"
|
||||
],
|
||||
"non_idempotent": []
|
||||
},
|
||||
"retry_params": {
|
||||
"default": {
|
||||
"initial_retry_delay_millis": 100,
|
||||
"retry_delay_multiplier": 1.3,
|
||||
"max_retry_delay_millis": 60000,
|
||||
"initial_rpc_timeout_millis": 20000,
|
||||
"rpc_timeout_multiplier": 1.0,
|
||||
"max_rpc_timeout_millis": 20000,
|
||||
"total_timeout_millis": 600000
|
||||
},
|
||||
"streaming": {
|
||||
"initial_retry_delay_millis": 100,
|
||||
"retry_delay_multiplier": 1.3,
|
||||
"max_retry_delay_millis": 60000,
|
||||
"initial_rpc_timeout_millis": 300000,
|
||||
"rpc_timeout_multiplier": 1.0,
|
||||
"max_rpc_timeout_millis": 300000,
|
||||
"total_timeout_millis": 600000
|
||||
}
|
||||
},
|
||||
"methods": {
|
||||
"GetDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"ListDocuments": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"CreateDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"UpdateDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"DeleteDocument": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"BatchGetDocuments": {
|
||||
"timeout_millis": 300000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"BeginTransaction": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"Commit": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"Rollback": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
},
|
||||
"RunQuery": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"Write": {
|
||||
"timeout_millis": 86400000,
|
||||
"retry_codes_name": "non_idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"Listen": {
|
||||
"timeout_millis": 86400000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "streaming"
|
||||
},
|
||||
"ListCollectionIds": {
|
||||
"timeout_millis": 60000,
|
||||
"retry_codes_name": "idempotent",
|
||||
"retry_params_name": "default"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
20
node_modules/@google-cloud/firestore/build/src/v1beta1/index.js
generated
vendored
Normal file
20
node_modules/@google-cloud/firestore/build/src/v1beta1/index.js
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
// 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
|
||||
//
|
||||
// https://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.
|
||||
'use strict';
|
||||
const FirestoreClient = require('./firestore_client');
|
||||
// For backwards compatibility, we continue to support the default
|
||||
// export.
|
||||
module.exports = FirestoreClient;
|
||||
module.exports.FirestoreClient = FirestoreClient;
|
||||
//# sourceMappingURL=index.js.map
|
295
node_modules/@google-cloud/firestore/build/src/validate.js
generated
vendored
Normal file
295
node_modules/@google-cloud/firestore/build/src/validate.js
generated
vendored
Normal file
@ -0,0 +1,295 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2017 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const url_1 = require("url");
|
||||
const util_1 = require("./util");
|
||||
/**
|
||||
* Generates an error message to use with custom objects that cannot be
|
||||
* serialized.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The value that failed serialization.
|
||||
* @param path The field path that the object is assigned to.
|
||||
*/
|
||||
function customObjectMessage(arg, value, path) {
|
||||
const fieldPathMessage = path ? ` (found in field ${path})` : '';
|
||||
if (util_1.isObject(value)) {
|
||||
const typeName = value.constructor.name;
|
||||
switch (typeName) {
|
||||
case 'DocumentReference':
|
||||
case 'FieldPath':
|
||||
case 'FieldValue':
|
||||
case 'GeoPoint':
|
||||
case 'Timestamp':
|
||||
return (`${invalidArgumentMessage(arg, 'Firestore document')} Detected an object of type "${typeName}" that doesn't match the ` +
|
||||
`expected instance${fieldPathMessage}. Please ensure that the ` +
|
||||
'Firestore types you are using are from the same NPM package.)');
|
||||
case 'Object':
|
||||
return `${invalidArgumentMessage(arg, 'Firestore document')} Invalid use of type "${typeof value}" as a Firestore argument${fieldPathMessage}.`;
|
||||
default:
|
||||
return (`${invalidArgumentMessage(arg, 'Firestore document')} Couldn't serialize object of type "${typeName}"${fieldPathMessage}. Firestore doesn't support JavaScript ` +
|
||||
'objects with custom prototypes (i.e. objects that were created ' +
|
||||
'via the "new" operator).');
|
||||
}
|
||||
}
|
||||
else {
|
||||
return `${invalidArgumentMessage(arg, 'Firestore document')} Input is not a plain JavaScript object${fieldPathMessage}.`;
|
||||
}
|
||||
}
|
||||
exports.customObjectMessage = customObjectMessage;
|
||||
/**
|
||||
* Validates that 'value' is a function.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the function can be omitted.
|
||||
*/
|
||||
function validateFunction(arg, value, options) {
|
||||
if (!validateOptional(value, options)) {
|
||||
if (!util_1.isFunction(value)) {
|
||||
throw new Error(invalidArgumentMessage(arg, 'function'));
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateFunction = validateFunction;
|
||||
/**
|
||||
* Validates that 'value' is an object.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the object can be omitted.
|
||||
*/
|
||||
function validateObject(arg, value, options) {
|
||||
if (!validateOptional(value, options)) {
|
||||
if (!util_1.isObject(value)) {
|
||||
throw new Error(invalidArgumentMessage(arg, 'object'));
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateObject = validateObject;
|
||||
/**
|
||||
* Validates that 'value' is a string.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the string can be omitted.
|
||||
*/
|
||||
function validateString(arg, value, options) {
|
||||
if (!validateOptional(value, options)) {
|
||||
if (typeof value !== 'string') {
|
||||
throw new Error(invalidArgumentMessage(arg, 'string'));
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateString = validateString;
|
||||
/**
|
||||
* Validates that 'value' is a host.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the host can be omitted.
|
||||
*/
|
||||
function validateHost(arg, value, options) {
|
||||
if (!validateOptional(value, options)) {
|
||||
validateString(arg, value);
|
||||
const urlString = `http://${value}/`;
|
||||
let parsed;
|
||||
try {
|
||||
parsed = new url_1.URL(urlString);
|
||||
}
|
||||
catch (e) {
|
||||
throw new Error(invalidArgumentMessage(arg, 'host'));
|
||||
}
|
||||
if (parsed.search !== '' ||
|
||||
parsed.pathname !== '/' ||
|
||||
parsed.username !== '') {
|
||||
throw new Error(invalidArgumentMessage(arg, 'host'));
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateHost = validateHost;
|
||||
/**
|
||||
* Validates that 'value' is a boolean.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the boolean can be omitted.
|
||||
*/
|
||||
function validateBoolean(arg, value, options) {
|
||||
if (!validateOptional(value, options)) {
|
||||
if (typeof value !== 'boolean') {
|
||||
throw new Error(invalidArgumentMessage(arg, 'boolean'));
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateBoolean = validateBoolean;
|
||||
/**
|
||||
* Validates that 'value' is a number.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the number can be omitted.
|
||||
*/
|
||||
function validateNumber(arg, value, options) {
|
||||
const min = options !== undefined && options.minValue !== undefined
|
||||
? options.minValue
|
||||
: -Infinity;
|
||||
const max = options !== undefined && options.maxValue !== undefined
|
||||
? options.maxValue
|
||||
: Infinity;
|
||||
if (!validateOptional(value, options)) {
|
||||
if (typeof value !== 'number' || isNaN(value)) {
|
||||
throw new Error(invalidArgumentMessage(arg, 'number'));
|
||||
}
|
||||
else if (value < min || value > max) {
|
||||
throw new Error(`${formatArgumentName(arg)} must be within [${min}, ${max}] inclusive, but was: ${value}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateNumber = validateNumber;
|
||||
/**
|
||||
* Validates that 'value' is a integer.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The input to validate.
|
||||
* @param options Options that specify whether the integer can be omitted.
|
||||
*/
|
||||
function validateInteger(arg, value, options) {
|
||||
const min = options !== undefined && options.minValue !== undefined
|
||||
? options.minValue
|
||||
: -Infinity;
|
||||
const max = options !== undefined && options.maxValue !== undefined
|
||||
? options.maxValue
|
||||
: Infinity;
|
||||
if (!validateOptional(value, options)) {
|
||||
if (typeof value !== 'number' || isNaN(value) || value % 1 !== 0) {
|
||||
throw new Error(invalidArgumentMessage(arg, 'integer'));
|
||||
}
|
||||
else if (value < min || value > max) {
|
||||
throw new Error(`${formatArgumentName(arg)} must be within [${min}, ${max}] inclusive, but was: ${value}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateInteger = validateInteger;
|
||||
/**
|
||||
* Generates an error message to use with invalid arguments.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param expectedType The expected input type.
|
||||
*/
|
||||
function invalidArgumentMessage(arg, expectedType) {
|
||||
return `${formatArgumentName(arg)} is not a valid ${expectedType}.`;
|
||||
}
|
||||
exports.invalidArgumentMessage = invalidArgumentMessage;
|
||||
/**
|
||||
* Enforces the 'options.optional' constraint for 'value'.
|
||||
*
|
||||
* @private
|
||||
* @param value The input to validate.
|
||||
* @param options Whether the function can be omitted.
|
||||
* @return Whether the object is omitted and is allowed to be omitted.
|
||||
*/
|
||||
function validateOptional(value, options) {
|
||||
return (value === undefined && options !== undefined && options.optional === true);
|
||||
}
|
||||
exports.validateOptional = validateOptional;
|
||||
/**
|
||||
* Formats the given word as plural conditionally given the preceding number.
|
||||
*
|
||||
* @private
|
||||
* @param num The number to use for formatting.
|
||||
* @param str The string to format.
|
||||
*/
|
||||
function formatPlural(num, str) {
|
||||
return `${num} ${str}` + (num === 1 ? '' : 's');
|
||||
}
|
||||
/**
|
||||
* Creates a descriptive name for the provided argument name or index.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @return Either the argument name or its index description.
|
||||
*/
|
||||
function formatArgumentName(arg) {
|
||||
return typeof arg === 'string'
|
||||
? `Value for argument "${arg}"`
|
||||
: `Element at index ${arg}`;
|
||||
}
|
||||
/**
|
||||
* Verifies that 'args' has at least 'minSize' elements.
|
||||
*
|
||||
* @private
|
||||
* @param funcName The function name to use in the error message.
|
||||
* @param args The array (or array-like structure) to verify.
|
||||
* @param minSize The minimum number of elements to enforce.
|
||||
* @throws if the expectation is not met.
|
||||
*/
|
||||
function validateMinNumberOfArguments(funcName, args, minSize) {
|
||||
if (args.length < minSize) {
|
||||
throw new Error(`Function "${funcName}()" requires at least ` +
|
||||
`${formatPlural(minSize, 'argument')}.`);
|
||||
}
|
||||
}
|
||||
exports.validateMinNumberOfArguments = validateMinNumberOfArguments;
|
||||
/**
|
||||
* Verifies that 'args' has at most 'maxSize' elements.
|
||||
*
|
||||
* @private
|
||||
* @param funcName The function name to use in the error message.
|
||||
* @param args The array (or array-like structure) to verify.
|
||||
* @param maxSize The maximum number of elements to enforce.
|
||||
* @throws if the expectation is not met.
|
||||
*/
|
||||
function validateMaxNumberOfArguments(funcName, args, maxSize) {
|
||||
if (args.length > maxSize) {
|
||||
throw new Error(`Function "${funcName}()" accepts at most ` +
|
||||
`${formatPlural(maxSize, 'argument')}.`);
|
||||
}
|
||||
}
|
||||
exports.validateMaxNumberOfArguments = validateMaxNumberOfArguments;
|
||||
/**
|
||||
* Validates that the provided named option equals one of the expected values.
|
||||
*
|
||||
* @param arg The argument name or argument index (for varargs methods).).
|
||||
* @param value The input to validate.
|
||||
* @param allowedValues A list of expected values.
|
||||
* @param options Whether the input can be omitted.
|
||||
* @private
|
||||
*/
|
||||
function validateEnumValue(arg, value, allowedValues, options) {
|
||||
if (!validateOptional(value, options)) {
|
||||
const expectedDescription = [];
|
||||
for (const allowed of allowedValues) {
|
||||
if (allowed === value) {
|
||||
return;
|
||||
}
|
||||
expectedDescription.push(allowed);
|
||||
}
|
||||
throw new Error(`${formatArgumentName(arg)} is invalid. Acceptable values are: ${expectedDescription.join(', ')}`);
|
||||
}
|
||||
}
|
||||
exports.validateEnumValue = validateEnumValue;
|
||||
//# sourceMappingURL=validate.js.map
|
692
node_modules/@google-cloud/firestore/build/src/watch.js
generated
vendored
Normal file
692
node_modules/@google-cloud/firestore/build/src/watch.js
generated
vendored
Normal file
@ -0,0 +1,692 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2017 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const assert = require("assert");
|
||||
const rbtree = require("functional-red-black-tree");
|
||||
const backoff_1 = require("./backoff");
|
||||
const document_1 = require("./document");
|
||||
const document_change_1 = require("./document-change");
|
||||
const logger_1 = require("./logger");
|
||||
const path_1 = require("./path");
|
||||
const timestamp_1 = require("./timestamp");
|
||||
const types_1 = require("./types");
|
||||
const util_1 = require("./util");
|
||||
/*!
|
||||
* Target ID used by watch. Watch uses a fixed target id since we only support
|
||||
* one target per stream.
|
||||
* @type {number}
|
||||
*/
|
||||
const WATCH_TARGET_ID = 0x1;
|
||||
/*!
|
||||
* Sentinel value for a document remove.
|
||||
*/
|
||||
const REMOVED = {};
|
||||
/*!
|
||||
* The change type for document change events.
|
||||
*/
|
||||
// tslint:disable-next-line:variable-name
|
||||
const ChangeType = {
|
||||
added: 'added',
|
||||
modified: 'modified',
|
||||
removed: 'removed',
|
||||
};
|
||||
/*!
|
||||
* List of GRPC Error Codes.
|
||||
*
|
||||
* This corresponds to
|
||||
* {@link https://github.com/grpc/grpc/blob/master/doc/statuscodes.md}.
|
||||
*/
|
||||
const GRPC_STATUS_CODE = {
|
||||
// Not an error; returned on success.
|
||||
OK: 0,
|
||||
// The operation was cancelled (typically by the caller).
|
||||
CANCELLED: 1,
|
||||
// Unknown error. An example of where this error may be returned is if a
|
||||
// Status value received from another address space belongs to an error-space
|
||||
// that is not known in this address space. Also errors raised by APIs that
|
||||
// do not return enough error information may be converted to this error.
|
||||
UNKNOWN: 2,
|
||||
// Client specified an invalid argument. Note that this differs from
|
||||
// FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are
|
||||
// problematic regardless of the state of the system (e.g., a malformed file
|
||||
// name).
|
||||
INVALID_ARGUMENT: 3,
|
||||
// Deadline expired before operation could complete. For operations that
|
||||
// change the state of the system, this error may be returned even if the
|
||||
// operation has completed successfully. For example, a successful response
|
||||
// from a server could have been delayed long enough for the deadline to
|
||||
// expire.
|
||||
DEADLINE_EXCEEDED: 4,
|
||||
// Some requested entity (e.g., file or directory) was not found.
|
||||
NOT_FOUND: 5,
|
||||
// Some entity that we attempted to create (e.g., file or directory) already
|
||||
// exists.
|
||||
ALREADY_EXISTS: 6,
|
||||
// The caller does not have permission to execute the specified operation.
|
||||
// PERMISSION_DENIED must not be used for rejections caused by exhausting
|
||||
// some resource (use RESOURCE_EXHAUSTED instead for those errors).
|
||||
// PERMISSION_DENIED must not be used if the caller can not be identified
|
||||
// (use UNAUTHENTICATED instead for those errors).
|
||||
PERMISSION_DENIED: 7,
|
||||
// The request does not have valid authentication credentials for the
|
||||
// operation.
|
||||
UNAUTHENTICATED: 16,
|
||||
// Some resource has been exhausted, perhaps a per-user quota, or perhaps the
|
||||
// entire file system is out of space.
|
||||
RESOURCE_EXHAUSTED: 8,
|
||||
// Operation was rejected because the system is not in a state required for
|
||||
// the operation's execution. For example, directory to be deleted may be
|
||||
// non-empty, an rmdir operation is applied to a non-directory, etc.
|
||||
//
|
||||
// A litmus test that may help a service implementor in deciding
|
||||
// between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:
|
||||
// (a) Use UNAVAILABLE if the client can retry just the failing call.
|
||||
// (b) Use ABORTED if the client should retry at a higher-level
|
||||
// (e.g., restarting a read-modify-write sequence).
|
||||
// (c) Use FAILED_PRECONDITION if the client should not retry until
|
||||
// the system state has been explicitly fixed. E.g., if an "rmdir"
|
||||
// fails because the directory is non-empty, FAILED_PRECONDITION
|
||||
// should be returned since the client should not retry unless
|
||||
// they have first fixed up the directory by deleting files from it.
|
||||
// (d) Use FAILED_PRECONDITION if the client performs conditional
|
||||
// REST Get/Update/Delete on a resource and the resource on the
|
||||
// server does not match the condition. E.g., conflicting
|
||||
// read-modify-write on the same resource.
|
||||
FAILED_PRECONDITION: 9,
|
||||
// The operation was aborted, typically due to a concurrency issue like
|
||||
// sequencer check failures, transaction aborts, etc.
|
||||
//
|
||||
// See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,
|
||||
// and UNAVAILABLE.
|
||||
ABORTED: 10,
|
||||
// Operation was attempted past the valid range. E.g., seeking or reading
|
||||
// past end of file.
|
||||
//
|
||||
// Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed
|
||||
// if the system state changes. For example, a 32-bit file system will
|
||||
// generate INVALID_ARGUMENT if asked to read at an offset that is not in the
|
||||
// range [0,2^32-1], but it will generate OUT_OF_RANGE if asked to read from
|
||||
// an offset past the current file size.
|
||||
//
|
||||
// There is a fair bit of overlap between FAILED_PRECONDITION and
|
||||
// OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific error)
|
||||
// when it applies so that callers who are iterating through a space can
|
||||
// easily look for an OUT_OF_RANGE error to detect when they are done.
|
||||
OUT_OF_RANGE: 11,
|
||||
// Operation is not implemented or not supported/enabled in this service.
|
||||
UNIMPLEMENTED: 12,
|
||||
// Internal errors. Means some invariants expected by underlying System has
|
||||
// been broken. If you see one of these errors, Something is very broken.
|
||||
INTERNAL: 13,
|
||||
// The service is currently unavailable. This is a most likely a transient
|
||||
// condition and may be corrected by retrying with a backoff.
|
||||
//
|
||||
// See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,
|
||||
// and UNAVAILABLE.
|
||||
UNAVAILABLE: 14,
|
||||
// Unrecoverable data loss or corruption.
|
||||
DATA_LOSS: 15,
|
||||
// Force users to include a default branch:
|
||||
DO_NOT_USE: -1,
|
||||
};
|
||||
/*!
|
||||
* The comparator used for document watches (which should always get called with
|
||||
* the same document).
|
||||
*/
|
||||
const DOCUMENT_WATCH_COMPARATOR = (doc1, doc2) => {
|
||||
assert(doc1 === doc2, 'Document watches only support one document.');
|
||||
return 0;
|
||||
};
|
||||
const EMPTY_FUNCTION = () => { };
|
||||
/**
|
||||
* Watch provides listen functionality and exposes the 'onSnapshot' observer. It
|
||||
* can be used with a valid Firestore Listen target.
|
||||
*
|
||||
* @class
|
||||
* @private
|
||||
*/
|
||||
class Watch {
|
||||
/**
|
||||
* @private
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param firestore The Firestore Database client.
|
||||
*/
|
||||
constructor(firestore) {
|
||||
/**
|
||||
* Indicates whether we are interested in data from the stream. Set to false in the
|
||||
* 'unsubscribe()' callback.
|
||||
* @private
|
||||
*/
|
||||
this.isActive = true;
|
||||
/**
|
||||
* The current stream to the backend.
|
||||
* @private
|
||||
*/
|
||||
this.currentStream = null;
|
||||
/**
|
||||
* The server assigns and updates the resume token.
|
||||
* @private
|
||||
*/
|
||||
this.resumeToken = undefined;
|
||||
/**
|
||||
* A map of document names to QueryDocumentSnapshots for the last sent snapshot.
|
||||
* @private
|
||||
*/
|
||||
this.docMap = new Map();
|
||||
/**
|
||||
* The accumulated map of document changes (keyed by document name) for the
|
||||
* current snapshot.
|
||||
* @private
|
||||
*/
|
||||
this.changeMap = new Map();
|
||||
/**
|
||||
* The current state of the query results. *
|
||||
* @private
|
||||
*/
|
||||
this.current = false;
|
||||
/**
|
||||
* We need this to track whether we've pushed an initial set of changes,
|
||||
* since we should push those even when there are no changes, if there
|
||||
* aren't docs.
|
||||
* @private
|
||||
*/
|
||||
this.hasPushed = false;
|
||||
this.firestore = firestore;
|
||||
this.backoff = new backoff_1.ExponentialBackoff();
|
||||
this.requestTag = util_1.requestTag();
|
||||
this.onNext = EMPTY_FUNCTION;
|
||||
this.onError = EMPTY_FUNCTION;
|
||||
}
|
||||
/**
|
||||
* Starts a watch and attaches a listener for document change events.
|
||||
*
|
||||
* @private
|
||||
* @param onNext A callback to be called every time a new snapshot is
|
||||
* available.
|
||||
* @param onError A callback to be called if the listen fails or is cancelled.
|
||||
* No further callbacks will occur.
|
||||
*
|
||||
* @returns An unsubscribe function that can be called to cancel the snapshot
|
||||
* listener.
|
||||
*/
|
||||
onSnapshot(onNext, onError) {
|
||||
assert(this.onNext === EMPTY_FUNCTION, 'onNext should not already be defined.');
|
||||
assert(this.onError === EMPTY_FUNCTION, 'onError should not already be defined.');
|
||||
assert(this.docTree === undefined, 'docTree should not already be defined.');
|
||||
this.onNext = onNext;
|
||||
this.onError = onError;
|
||||
this.docTree = rbtree(this.getComparator());
|
||||
this.initStream();
|
||||
return () => {
|
||||
logger_1.logger('Watch.onSnapshot', this.requestTag, 'Ending stream');
|
||||
// Prevent further callbacks.
|
||||
this.isActive = false;
|
||||
this.onNext = () => { };
|
||||
this.onError = () => { };
|
||||
if (this.currentStream) {
|
||||
this.currentStream.end();
|
||||
}
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Returns the current count of all documents, including the changes from
|
||||
* the current changeMap.
|
||||
* @private
|
||||
*/
|
||||
currentSize() {
|
||||
const changes = this.extractCurrentChanges(timestamp_1.Timestamp.now());
|
||||
return this.docMap.size + changes.adds.length - changes.deletes.length;
|
||||
}
|
||||
/**
|
||||
* Splits up document changes into removals, additions, and updates.
|
||||
* @private
|
||||
*/
|
||||
extractCurrentChanges(readTime) {
|
||||
const deletes = [];
|
||||
const adds = [];
|
||||
const updates = [];
|
||||
this.changeMap.forEach((value, name) => {
|
||||
if (value === REMOVED) {
|
||||
if (this.docMap.has(name)) {
|
||||
deletes.push(name);
|
||||
}
|
||||
}
|
||||
else if (this.docMap.has(name)) {
|
||||
value.readTime = readTime;
|
||||
updates.push(value.build());
|
||||
}
|
||||
else {
|
||||
value.readTime = readTime;
|
||||
adds.push(value.build());
|
||||
}
|
||||
});
|
||||
return { deletes, adds, updates };
|
||||
}
|
||||
/**
|
||||
* Helper to clear the docs on RESET or filter mismatch.
|
||||
* @private
|
||||
*/
|
||||
resetDocs() {
|
||||
logger_1.logger('Watch.resetDocs', this.requestTag, 'Resetting documents');
|
||||
this.changeMap.clear();
|
||||
this.resumeToken = undefined;
|
||||
this.docTree.forEach((snapshot) => {
|
||||
// Mark each document as deleted. If documents are not deleted, they
|
||||
// will be send again by the server.
|
||||
this.changeMap.set(snapshot.ref.path, REMOVED);
|
||||
});
|
||||
this.current = false;
|
||||
}
|
||||
/**
|
||||
* Closes the stream and calls onError() if the stream is still active.
|
||||
* @private
|
||||
*/
|
||||
closeStream(err) {
|
||||
if (this.currentStream) {
|
||||
this.currentStream.end();
|
||||
this.currentStream = null;
|
||||
}
|
||||
if (this.isActive) {
|
||||
this.isActive = false;
|
||||
logger_1.logger('Watch.closeStream', this.requestTag, 'Invoking onError: ', err);
|
||||
this.onError(err);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Re-opens the stream unless the specified error is considered permanent.
|
||||
* Clears the change map.
|
||||
* @private
|
||||
*/
|
||||
maybeReopenStream(err) {
|
||||
if (this.isActive && !this.isPermanentError(err)) {
|
||||
logger_1.logger('Watch.maybeReopenStream', this.requestTag, 'Stream ended, re-opening after retryable error: ', err);
|
||||
this.changeMap.clear();
|
||||
if (this.isResourceExhaustedError(err)) {
|
||||
this.backoff.resetToMax();
|
||||
}
|
||||
this.initStream();
|
||||
}
|
||||
else {
|
||||
this.closeStream(err);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Helper to restart the outgoing stream to the backend.
|
||||
* @private
|
||||
*/
|
||||
resetStream() {
|
||||
logger_1.logger('Watch.resetStream', this.requestTag, 'Restarting stream');
|
||||
if (this.currentStream) {
|
||||
this.currentStream.end();
|
||||
this.currentStream = null;
|
||||
}
|
||||
this.initStream();
|
||||
}
|
||||
/**
|
||||
* Initializes a new stream to the backend with backoff.
|
||||
* @private
|
||||
*/
|
||||
initStream() {
|
||||
this.backoff
|
||||
.backoffAndWait()
|
||||
.then(async () => {
|
||||
if (!this.isActive) {
|
||||
logger_1.logger('Watch.initStream', this.requestTag, 'Not initializing inactive stream');
|
||||
return;
|
||||
}
|
||||
await this.firestore.initializeIfNeeded(this.requestTag);
|
||||
const request = {};
|
||||
request.database = this.firestore.formattedName;
|
||||
request.addTarget = this.getTarget(this.resumeToken);
|
||||
// Note that we need to call the internal _listen API to pass additional
|
||||
// header values in readWriteStream.
|
||||
return this.firestore
|
||||
.readWriteStream('listen', request, this.requestTag, true)
|
||||
.then(backendStream => {
|
||||
if (!this.isActive) {
|
||||
logger_1.logger('Watch.initStream', this.requestTag, 'Closing inactive stream');
|
||||
backendStream.end();
|
||||
return;
|
||||
}
|
||||
logger_1.logger('Watch.initStream', this.requestTag, 'Opened new stream');
|
||||
this.currentStream = backendStream;
|
||||
this.currentStream.on('data', (proto) => {
|
||||
this.onData(proto);
|
||||
})
|
||||
.on('error', err => {
|
||||
if (this.currentStream === backendStream) {
|
||||
this.currentStream = null;
|
||||
this.maybeReopenStream(err);
|
||||
}
|
||||
})
|
||||
.on('end', () => {
|
||||
if (this.currentStream === backendStream) {
|
||||
this.currentStream = null;
|
||||
const err = new types_1.GrpcError('Stream ended unexpectedly');
|
||||
err.code = GRPC_STATUS_CODE.UNKNOWN;
|
||||
this.maybeReopenStream(err);
|
||||
}
|
||||
});
|
||||
this.currentStream.resume();
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
this.closeStream(err);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Handles 'data' events and closes the stream if the response type is
|
||||
* invalid.
|
||||
* @private
|
||||
*/
|
||||
onData(proto) {
|
||||
if (proto.targetChange) {
|
||||
logger_1.logger('Watch.onData', this.requestTag, 'Processing target change');
|
||||
const change = proto.targetChange;
|
||||
const noTargetIds = !change.targetIds || change.targetIds.length === 0;
|
||||
if (change.targetChangeType === 'NO_CHANGE') {
|
||||
if (noTargetIds && change.readTime && this.current) {
|
||||
// This means everything is up-to-date, so emit the current
|
||||
// set of docs as a snapshot, if there were changes.
|
||||
this.pushSnapshot(timestamp_1.Timestamp.fromProto(change.readTime), change.resumeToken);
|
||||
}
|
||||
}
|
||||
else if (change.targetChangeType === 'ADD') {
|
||||
if (WATCH_TARGET_ID !== change.targetIds[0]) {
|
||||
this.closeStream(Error('Unexpected target ID sent by server'));
|
||||
}
|
||||
}
|
||||
else if (change.targetChangeType === 'REMOVE') {
|
||||
let code = 13;
|
||||
let message = 'internal error';
|
||||
if (change.cause) {
|
||||
code = change.cause.code;
|
||||
message = change.cause.message;
|
||||
}
|
||||
// @todo: Surface a .code property on the exception.
|
||||
this.closeStream(new Error('Error ' + code + ': ' + message));
|
||||
}
|
||||
else if (change.targetChangeType === 'RESET') {
|
||||
// Whatever changes have happened so far no longer matter.
|
||||
this.resetDocs();
|
||||
}
|
||||
else if (change.targetChangeType === 'CURRENT') {
|
||||
this.current = true;
|
||||
}
|
||||
else {
|
||||
this.closeStream(new Error('Unknown target change type: ' + JSON.stringify(change)));
|
||||
}
|
||||
if (change.resumeToken &&
|
||||
this.affectsTarget(change.targetIds, WATCH_TARGET_ID)) {
|
||||
this.backoff.reset();
|
||||
}
|
||||
}
|
||||
else if (proto.documentChange) {
|
||||
logger_1.logger('Watch.onData', this.requestTag, 'Processing change event');
|
||||
// No other targetIds can show up here, but we still need to see
|
||||
// if the targetId was in the added list or removed list.
|
||||
const targetIds = proto.documentChange.targetIds || [];
|
||||
const removedTargetIds = proto.documentChange.removedTargetIds || [];
|
||||
let changed = false;
|
||||
let removed = false;
|
||||
for (let i = 0; i < targetIds.length; i++) {
|
||||
if (targetIds[i] === WATCH_TARGET_ID) {
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < removedTargetIds.length; i++) {
|
||||
if (removedTargetIds[i] === WATCH_TARGET_ID) {
|
||||
removed = true;
|
||||
}
|
||||
}
|
||||
const document = proto.documentChange.document;
|
||||
const name = document.name;
|
||||
const relativeName = path_1.QualifiedResourcePath.fromSlashSeparatedString(name)
|
||||
.relativeName;
|
||||
if (changed) {
|
||||
logger_1.logger('Watch.onData', this.requestTag, 'Received document change');
|
||||
const snapshot = new document_1.DocumentSnapshotBuilder();
|
||||
snapshot.ref = this.firestore.doc(relativeName);
|
||||
snapshot.fieldsProto = document.fields || {};
|
||||
snapshot.createTime = timestamp_1.Timestamp.fromProto(document.createTime);
|
||||
snapshot.updateTime = timestamp_1.Timestamp.fromProto(document.updateTime);
|
||||
this.changeMap.set(relativeName, snapshot);
|
||||
}
|
||||
else if (removed) {
|
||||
logger_1.logger('Watch.onData', this.requestTag, 'Received document remove');
|
||||
this.changeMap.set(relativeName, REMOVED);
|
||||
}
|
||||
}
|
||||
else if (proto.documentDelete || proto.documentRemove) {
|
||||
logger_1.logger('Watch.onData', this.requestTag, 'Processing remove event');
|
||||
const name = (proto.documentDelete || proto.documentRemove).document;
|
||||
const relativeName = path_1.QualifiedResourcePath.fromSlashSeparatedString(name)
|
||||
.relativeName;
|
||||
this.changeMap.set(relativeName, REMOVED);
|
||||
}
|
||||
else if (proto.filter) {
|
||||
logger_1.logger('Watch.onData', this.requestTag, 'Processing filter update');
|
||||
if (proto.filter.count !== this.currentSize()) {
|
||||
// We need to remove all the current results.
|
||||
this.resetDocs();
|
||||
// The filter didn't match, so re-issue the query.
|
||||
this.resetStream();
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.closeStream(new Error('Unknown listen response type: ' + JSON.stringify(proto)));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Checks if the current target id is included in the list of target ids.
|
||||
* If no targetIds are provided, returns true.
|
||||
* @private
|
||||
*/
|
||||
affectsTarget(targetIds, currentId) {
|
||||
if (targetIds === undefined || targetIds.length === 0) {
|
||||
return true;
|
||||
}
|
||||
for (const targetId of targetIds) {
|
||||
if (targetId === currentId) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Assembles a new snapshot from the current set of changes and invokes the
|
||||
* user's callback. Clears the current changes on completion.
|
||||
* @private
|
||||
*/
|
||||
pushSnapshot(readTime, nextResumeToken) {
|
||||
const appliedChanges = this.computeSnapshot(readTime);
|
||||
if (!this.hasPushed || appliedChanges.length > 0) {
|
||||
logger_1.logger('Watch.pushSnapshot', this.requestTag, 'Sending snapshot with %d changes and %d documents', String(appliedChanges.length), this.docTree.length);
|
||||
// We pass the current set of changes, even if `docTree` is modified later.
|
||||
const currentTree = this.docTree;
|
||||
this.onNext(readTime, currentTree.length, () => currentTree.keys, () => appliedChanges);
|
||||
this.hasPushed = true;
|
||||
}
|
||||
this.changeMap.clear();
|
||||
this.resumeToken = nextResumeToken;
|
||||
}
|
||||
/**
|
||||
* Applies a document delete to the document tree and the document map.
|
||||
* Returns the corresponding DocumentChange event.
|
||||
* @private
|
||||
*/
|
||||
deleteDoc(name) {
|
||||
assert(this.docMap.has(name), 'Document to delete does not exist');
|
||||
const oldDocument = this.docMap.get(name);
|
||||
const existing = this.docTree.find(oldDocument);
|
||||
const oldIndex = existing.index;
|
||||
this.docTree = existing.remove();
|
||||
this.docMap.delete(name);
|
||||
return new document_change_1.DocumentChange(ChangeType.removed, oldDocument, oldIndex, -1);
|
||||
}
|
||||
/**
|
||||
* Applies a document add to the document tree and the document map. Returns
|
||||
* the corresponding DocumentChange event.
|
||||
* @private
|
||||
*/
|
||||
addDoc(newDocument) {
|
||||
const name = newDocument.ref.path;
|
||||
assert(!this.docMap.has(name), 'Document to add already exists');
|
||||
this.docTree = this.docTree.insert(newDocument, null);
|
||||
const newIndex = this.docTree.find(newDocument).index;
|
||||
this.docMap.set(name, newDocument);
|
||||
return new document_change_1.DocumentChange(ChangeType.added, newDocument, -1, newIndex);
|
||||
}
|
||||
/**
|
||||
* Applies a document modification to the document tree and the document map.
|
||||
* Returns the DocumentChange event for successful modifications.
|
||||
* @private
|
||||
*/
|
||||
modifyDoc(newDocument) {
|
||||
const name = newDocument.ref.path;
|
||||
assert(this.docMap.has(name), 'Document to modify does not exist');
|
||||
const oldDocument = this.docMap.get(name);
|
||||
if (!oldDocument.updateTime.isEqual(newDocument.updateTime)) {
|
||||
const removeChange = this.deleteDoc(name);
|
||||
const addChange = this.addDoc(newDocument);
|
||||
return new document_change_1.DocumentChange(ChangeType.modified, newDocument, removeChange.oldIndex, addChange.newIndex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Applies the mutations in changeMap to both the document tree and the
|
||||
* document lookup map. Modified docMap in-place and returns the updated
|
||||
* state.
|
||||
* @private
|
||||
*/
|
||||
computeSnapshot(readTime) {
|
||||
const changeSet = this.extractCurrentChanges(readTime);
|
||||
const appliedChanges = [];
|
||||
// Process the sorted changes in the order that is expected by our clients
|
||||
// (removals, additions, and then modifications). We also need to sort the
|
||||
// individual changes to assure that oldIndex/newIndex keep incrementing.
|
||||
changeSet.deletes.sort((name1, name2) => {
|
||||
// Deletes are sorted based on the order of the existing document.
|
||||
return this.getComparator()(this.docMap.get(name1), this.docMap.get(name2));
|
||||
});
|
||||
changeSet.deletes.forEach(name => {
|
||||
const change = this.deleteDoc(name);
|
||||
appliedChanges.push(change);
|
||||
});
|
||||
changeSet.adds.sort(this.getComparator());
|
||||
changeSet.adds.forEach(snapshot => {
|
||||
const change = this.addDoc(snapshot);
|
||||
appliedChanges.push(change);
|
||||
});
|
||||
changeSet.updates.sort(this.getComparator());
|
||||
changeSet.updates.forEach(snapshot => {
|
||||
const change = this.modifyDoc(snapshot);
|
||||
if (change) {
|
||||
appliedChanges.push(change);
|
||||
}
|
||||
});
|
||||
assert(this.docTree.length === this.docMap.size, 'The update document ' +
|
||||
'tree and document map should have the same number of entries.');
|
||||
return appliedChanges;
|
||||
}
|
||||
/**
|
||||
* Determines whether an error is considered permanent and should not be
|
||||
* retried. Errors that don't provide a GRPC error code are always considered
|
||||
* transient in this context.
|
||||
*
|
||||
* @private
|
||||
* @param error An error object.
|
||||
* @return Whether the error is permanent.
|
||||
*/
|
||||
isPermanentError(error) {
|
||||
if (error.code === undefined) {
|
||||
logger_1.logger('Watch.isPermanentError', this.requestTag, 'Unable to determine error code: ', error);
|
||||
return false;
|
||||
}
|
||||
switch (error.code) {
|
||||
case GRPC_STATUS_CODE.ABORTED:
|
||||
case GRPC_STATUS_CODE.CANCELLED:
|
||||
case GRPC_STATUS_CODE.UNKNOWN:
|
||||
case GRPC_STATUS_CODE.DEADLINE_EXCEEDED:
|
||||
case GRPC_STATUS_CODE.RESOURCE_EXHAUSTED:
|
||||
case GRPC_STATUS_CODE.INTERNAL:
|
||||
case GRPC_STATUS_CODE.UNAVAILABLE:
|
||||
case GRPC_STATUS_CODE.UNAUTHENTICATED:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Determines whether we need to initiate a longer backoff due to system
|
||||
* overload.
|
||||
*
|
||||
* @private
|
||||
* @param error A GRPC Error object that exposes an error code.
|
||||
* @return Whether we need to back off our retries.
|
||||
*/
|
||||
isResourceExhaustedError(error) {
|
||||
return error.code === GRPC_STATUS_CODE.RESOURCE_EXHAUSTED;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Creates a new Watch instance to listen on DocumentReferences.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class DocumentWatch extends Watch {
|
||||
constructor(firestore, ref) {
|
||||
super(firestore);
|
||||
this.ref = ref;
|
||||
}
|
||||
getComparator() {
|
||||
return DOCUMENT_WATCH_COMPARATOR;
|
||||
}
|
||||
getTarget(resumeToken) {
|
||||
const formattedName = this.ref.formattedName;
|
||||
return {
|
||||
documents: {
|
||||
documents: [formattedName],
|
||||
},
|
||||
targetId: WATCH_TARGET_ID,
|
||||
resumeToken,
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.DocumentWatch = DocumentWatch;
|
||||
/**
|
||||
* Creates a new Watch instance to listen on Queries.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
class QueryWatch extends Watch {
|
||||
constructor(firestore, query) {
|
||||
super(firestore);
|
||||
this.query = query;
|
||||
this.comparator = query.comparator();
|
||||
}
|
||||
getComparator() {
|
||||
return this.query.comparator();
|
||||
}
|
||||
getTarget(resumeToken) {
|
||||
const query = this.query.toProto();
|
||||
return { query, targetId: WATCH_TARGET_ID, resumeToken };
|
||||
}
|
||||
}
|
||||
exports.QueryWatch = QueryWatch;
|
||||
//# sourceMappingURL=watch.js.map
|
673
node_modules/@google-cloud/firestore/build/src/write-batch.js
generated
vendored
Normal file
673
node_modules/@google-cloud/firestore/build/src/write-batch.js
generated
vendored
Normal file
@ -0,0 +1,673 @@
|
||||
"use strict";
|
||||
/*!
|
||||
* Copyright 2019 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const assert = require("assert");
|
||||
const document_1 = require("./document");
|
||||
const logger_1 = require("./logger");
|
||||
const path_1 = require("./path");
|
||||
const reference_1 = require("./reference");
|
||||
const serializer_1 = require("./serializer");
|
||||
const timestamp_1 = require("./timestamp");
|
||||
const util_1 = require("./util");
|
||||
const validate_1 = require("./validate");
|
||||
/*!
|
||||
* Google Cloud Functions terminates idle connections after two minutes. After
|
||||
* longer periods of idleness, we issue transactional commits to allow for
|
||||
* retries.
|
||||
*/
|
||||
const GCF_IDLE_TIMEOUT_MS = 110 * 1000;
|
||||
/**
|
||||
* A WriteResult wraps the write time set by the Firestore servers on sets(),
|
||||
* updates(), and creates().
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class WriteResult {
|
||||
/**
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param _writeTime The time of the corresponding document write.
|
||||
*/
|
||||
constructor(_writeTime) {
|
||||
this._writeTime = _writeTime;
|
||||
}
|
||||
/**
|
||||
* The write time as set by the Firestore servers.
|
||||
*
|
||||
* @type {Timestamp}
|
||||
* @name WriteResult#writeTime
|
||||
* @readonly
|
||||
*
|
||||
* @example
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* documentRef.set({foo: 'bar'}).then(writeResult => {
|
||||
* console.log(`Document written at: ${writeResult.writeTime.toDate()}`);
|
||||
* });
|
||||
*/
|
||||
get writeTime() {
|
||||
return this._writeTime;
|
||||
}
|
||||
/**
|
||||
* Returns true if this `WriteResult` is equal to the provided value.
|
||||
*
|
||||
* @param {*} other The value to compare against.
|
||||
* @return true if this `WriteResult` is equal to the provided value.
|
||||
*/
|
||||
isEqual(other) {
|
||||
return (this === other ||
|
||||
(other instanceof WriteResult &&
|
||||
this._writeTime.isEqual(other._writeTime)));
|
||||
}
|
||||
}
|
||||
exports.WriteResult = WriteResult;
|
||||
/**
|
||||
* A Firestore WriteBatch that can be used to atomically commit multiple write
|
||||
* operations at once.
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class WriteBatch {
|
||||
/**
|
||||
* @hideconstructor
|
||||
*
|
||||
* @param firestore The Firestore Database client.
|
||||
*/
|
||||
constructor(firestore) {
|
||||
/**
|
||||
* An array of write operations that are executed as part of the commit. The
|
||||
* resulting `api.IWrite` will be sent to the backend.
|
||||
* @private
|
||||
*/
|
||||
this._ops = [];
|
||||
this._committed = false;
|
||||
this._firestore = firestore;
|
||||
this._serializer = new serializer_1.Serializer(firestore);
|
||||
}
|
||||
/**
|
||||
* Checks if this write batch has any pending operations.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
get isEmpty() {
|
||||
return this._ops.length === 0;
|
||||
}
|
||||
/**
|
||||
* Throws an error if this batch has already been committed.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
verifyNotCommitted() {
|
||||
if (this._committed) {
|
||||
throw new Error('Cannot modify a WriteBatch that has been committed.');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Create a document with the provided object values. This will fail the batch
|
||||
* if a document exists at its location.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* created.
|
||||
* @param {DocumentData} data The object to serialize as the document.
|
||||
* @returns {WriteBatch} This WriteBatch instance. Used for chaining
|
||||
* method calls.
|
||||
*
|
||||
* @example
|
||||
* let writeBatch = firestore.batch();
|
||||
* let documentRef = firestore.collection('col').doc();
|
||||
*
|
||||
* writeBatch.create(documentRef, {foo: 'bar'});
|
||||
*
|
||||
* writeBatch.commit().then(() => {
|
||||
* console.log('Successfully executed batch.');
|
||||
* });
|
||||
*/
|
||||
create(documentRef, data) {
|
||||
reference_1.validateDocumentReference('documentRef', documentRef);
|
||||
validateDocumentData('data', data, /* allowDeletes= */ false);
|
||||
this.verifyNotCommitted();
|
||||
const transform = document_1.DocumentTransform.fromObject(documentRef, data);
|
||||
transform.validate();
|
||||
const precondition = new document_1.Precondition({ exists: false });
|
||||
const op = () => {
|
||||
const document = document_1.DocumentSnapshot.fromObject(documentRef, data);
|
||||
const write = !document.isEmpty || transform.isEmpty ? document.toProto() : null;
|
||||
return {
|
||||
write,
|
||||
transform: transform.toProto(this._serializer),
|
||||
precondition: precondition.toProto(),
|
||||
};
|
||||
};
|
||||
this._ops.push(op);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Deletes a document from the database.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* deleted.
|
||||
* @param {Precondition=} precondition A precondition to enforce for this
|
||||
* delete.
|
||||
* @param {Timestamp=} precondition.lastUpdateTime If set, enforces that the
|
||||
* document was last updated at lastUpdateTime. Fails the batch if the
|
||||
* document doesn't exist or was last updated at a different time.
|
||||
* @returns {WriteBatch} This WriteBatch instance. Used for chaining
|
||||
* method calls.
|
||||
*
|
||||
* @example
|
||||
* let writeBatch = firestore.batch();
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* writeBatch.delete(documentRef);
|
||||
*
|
||||
* writeBatch.commit().then(() => {
|
||||
* console.log('Successfully executed batch.');
|
||||
* });
|
||||
*/
|
||||
delete(documentRef, precondition) {
|
||||
reference_1.validateDocumentReference('documentRef', documentRef);
|
||||
validateDeletePrecondition('precondition', precondition, { optional: true });
|
||||
this.verifyNotCommitted();
|
||||
const conditions = new document_1.Precondition(precondition);
|
||||
const op = () => {
|
||||
return {
|
||||
write: {
|
||||
delete: documentRef.formattedName,
|
||||
},
|
||||
precondition: conditions.toProto(),
|
||||
};
|
||||
};
|
||||
this._ops.push(op);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write to the document referred to by the provided
|
||||
* [DocumentReference]{@link DocumentReference}.
|
||||
* If the document does not exist yet, it will be created. If you pass
|
||||
* [SetOptions]{@link SetOptions}., the provided data can be merged
|
||||
* into the existing document.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* set.
|
||||
* @param {DocumentData} data The object to serialize as the document.
|
||||
* @param {SetOptions=} options An object to configure the set behavior.
|
||||
* @param {boolean=} options.merge - If true, set() merges the values
|
||||
* specified in its data argument. Fields omitted from this set() call
|
||||
* remain untouched.
|
||||
* @param {Array.<string|FieldPath>=} options.mergeFields - If provided,
|
||||
* set() only replaces the specified field paths. Any field path that is not
|
||||
* specified is ignored and remains untouched.
|
||||
* @returns {WriteBatch} This WriteBatch instance. Used for chaining
|
||||
* method calls.
|
||||
*
|
||||
* @example
|
||||
* let writeBatch = firestore.batch();
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* writeBatch.set(documentRef, {foo: 'bar'});
|
||||
*
|
||||
* writeBatch.commit().then(() => {
|
||||
* console.log('Successfully executed batch.');
|
||||
* });
|
||||
*/
|
||||
set(documentRef, data, options) {
|
||||
validateSetOptions('options', options, { optional: true });
|
||||
const mergeLeaves = options && options.merge === true;
|
||||
const mergePaths = options && options.mergeFields;
|
||||
reference_1.validateDocumentReference('documentRef', documentRef);
|
||||
validateDocumentData('data', data,
|
||||
/* allowDeletes= */ !!(mergePaths || mergeLeaves));
|
||||
this.verifyNotCommitted();
|
||||
let documentMask;
|
||||
if (mergePaths) {
|
||||
documentMask = document_1.DocumentMask.fromFieldMask(options.mergeFields);
|
||||
data = documentMask.applyTo(data);
|
||||
}
|
||||
const transform = document_1.DocumentTransform.fromObject(documentRef, data);
|
||||
transform.validate();
|
||||
const op = () => {
|
||||
const document = document_1.DocumentSnapshot.fromObject(documentRef, data);
|
||||
if (mergePaths) {
|
||||
documentMask.removeFields(transform.fields);
|
||||
}
|
||||
else {
|
||||
documentMask = document_1.DocumentMask.fromObject(data);
|
||||
}
|
||||
const hasDocumentData = !document.isEmpty || !documentMask.isEmpty;
|
||||
let write;
|
||||
if (!mergePaths && !mergeLeaves) {
|
||||
write = document.toProto();
|
||||
}
|
||||
else if (hasDocumentData || transform.isEmpty) {
|
||||
write = document.toProto();
|
||||
write.updateMask = documentMask.toProto();
|
||||
}
|
||||
return {
|
||||
write,
|
||||
transform: transform.toProto(this._serializer),
|
||||
};
|
||||
};
|
||||
this._ops.push(op);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Update fields of the document referred to by the provided
|
||||
* [DocumentReference]{@link DocumentReference}. If the document
|
||||
* doesn't yet exist, the update fails and the entire batch will be rejected.
|
||||
*
|
||||
* The update() method accepts either an object with field paths encoded as
|
||||
* keys and field values encoded as values, or a variable number of arguments
|
||||
* that alternate between field paths and field values. Nested fields can be
|
||||
* updated by providing dot-separated field path strings or by providing
|
||||
* FieldPath objects.
|
||||
*
|
||||
* A Precondition restricting this update can be specified as the last
|
||||
* argument.
|
||||
*
|
||||
* @param {DocumentReference} documentRef A reference to the document to be
|
||||
* updated.
|
||||
* @param {UpdateData|string|FieldPath} dataOrField An object
|
||||
* containing the fields and values with which to update the document
|
||||
* or the path of the first field to update.
|
||||
* @param {
|
||||
* ...(Precondition|*|string|FieldPath)} preconditionOrValues -
|
||||
* An alternating list of field paths and values to update or a Precondition
|
||||
* to restrict this update.
|
||||
* @returns {WriteBatch} This WriteBatch instance. Used for chaining
|
||||
* method calls.
|
||||
*
|
||||
* @example
|
||||
* let writeBatch = firestore.batch();
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* writeBatch.update(documentRef, {foo: 'bar'});
|
||||
*
|
||||
* writeBatch.commit().then(() => {
|
||||
* console.log('Successfully executed batch.');
|
||||
* });
|
||||
*/
|
||||
update(documentRef, dataOrField, ...preconditionOrValues) {
|
||||
validate_1.validateMinNumberOfArguments('WriteBatch.update', arguments, 2);
|
||||
reference_1.validateDocumentReference('documentRef', documentRef);
|
||||
this.verifyNotCommitted();
|
||||
const updateMap = new Map();
|
||||
let precondition = new document_1.Precondition({ exists: true });
|
||||
const argumentError = 'Update() requires either a single JavaScript ' +
|
||||
'object or an alternating list of field/value pairs that can be ' +
|
||||
'followed by an optional precondition.';
|
||||
const usesVarargs = typeof dataOrField === 'string' || dataOrField instanceof path_1.FieldPath;
|
||||
if (usesVarargs) {
|
||||
try {
|
||||
for (let i = 1; i < arguments.length; i += 2) {
|
||||
if (i === arguments.length - 1) {
|
||||
validateUpdatePrecondition(i, arguments[i]);
|
||||
precondition = new document_1.Precondition(arguments[i]);
|
||||
}
|
||||
else {
|
||||
path_1.validateFieldPath(i, arguments[i]);
|
||||
// Unlike the `validateMinNumberOfArguments` invocation above, this
|
||||
// validation can be triggered both from `WriteBatch.update()` and
|
||||
// `DocumentReference.update()`. Hence, we don't use the fully
|
||||
// qualified API name in the error message.
|
||||
validate_1.validateMinNumberOfArguments('update', arguments, i + 1);
|
||||
const fieldPath = path_1.FieldPath.fromArgument(arguments[i]);
|
||||
validateFieldValue(i, arguments[i + 1], fieldPath);
|
||||
updateMap.set(fieldPath, arguments[i + 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
logger_1.logger('WriteBatch.update', null, 'Varargs validation failed:', err);
|
||||
// We catch the validation error here and re-throw to provide a better
|
||||
// error message.
|
||||
throw new Error(`${argumentError} ${err.message}`);
|
||||
}
|
||||
}
|
||||
else {
|
||||
try {
|
||||
validateUpdateMap('dataOrField', dataOrField);
|
||||
validate_1.validateMaxNumberOfArguments('update', arguments, 3);
|
||||
const data = dataOrField;
|
||||
Object.keys(data).forEach(key => {
|
||||
path_1.validateFieldPath(key, key);
|
||||
updateMap.set(path_1.FieldPath.fromArgument(key), data[key]);
|
||||
});
|
||||
if (preconditionOrValues.length > 0) {
|
||||
validateUpdatePrecondition('preconditionOrValues', preconditionOrValues[0]);
|
||||
precondition = new document_1.Precondition(preconditionOrValues[0]);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
logger_1.logger('WriteBatch.update', null, 'Non-varargs validation failed:', err);
|
||||
// We catch the validation error here and prefix the error with a custom
|
||||
// message to describe the usage of update() better.
|
||||
throw new Error(`${argumentError} ${err.message}`);
|
||||
}
|
||||
}
|
||||
validateNoConflictingFields('dataOrField', updateMap);
|
||||
const transform = document_1.DocumentTransform.fromUpdateMap(documentRef, updateMap);
|
||||
transform.validate();
|
||||
const documentMask = document_1.DocumentMask.fromUpdateMap(updateMap);
|
||||
const op = () => {
|
||||
const document = document_1.DocumentSnapshot.fromUpdateMap(documentRef, updateMap);
|
||||
let write = null;
|
||||
if (!document.isEmpty || !documentMask.isEmpty) {
|
||||
write = document.toProto();
|
||||
write.updateMask = documentMask.toProto();
|
||||
}
|
||||
return {
|
||||
write,
|
||||
transform: transform.toProto(this._serializer),
|
||||
precondition: precondition.toProto(),
|
||||
};
|
||||
};
|
||||
this._ops.push(op);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Atomically commits all pending operations to the database and verifies all
|
||||
* preconditions. Fails the entire write if any precondition is not met.
|
||||
*
|
||||
* @returns {Promise.<Array.<WriteResult>>} A Promise that resolves
|
||||
* when this batch completes.
|
||||
*
|
||||
* @example
|
||||
* let writeBatch = firestore.batch();
|
||||
* let documentRef = firestore.doc('col/doc');
|
||||
*
|
||||
* writeBatch.set(documentRef, {foo: 'bar'});
|
||||
*
|
||||
* writeBatch.commit().then(() => {
|
||||
* console.log('Successfully executed batch.');
|
||||
* });
|
||||
*/
|
||||
commit() {
|
||||
return this.commit_();
|
||||
}
|
||||
/**
|
||||
* Commit method that takes an optional transaction ID.
|
||||
*
|
||||
* @private
|
||||
* @param commitOptions Options to use for this commit.
|
||||
* @param commitOptions.transactionId The transaction ID of this commit.
|
||||
* @param commitOptions.requestTag A unique client-assigned identifier for
|
||||
* this request.
|
||||
* @returns A Promise that resolves when this batch completes.
|
||||
*/
|
||||
async commit_(commitOptions) {
|
||||
// Note: We don't call `verifyNotCommitted()` to allow for retries.
|
||||
this._committed = true;
|
||||
const tag = (commitOptions && commitOptions.requestTag) || util_1.requestTag();
|
||||
await this._firestore.initializeIfNeeded(tag);
|
||||
const database = this._firestore.formattedName;
|
||||
const request = { database };
|
||||
// On GCF, we periodically force transactional commits to allow for
|
||||
// request retries in case GCF closes our backend connection.
|
||||
const explicitTransaction = commitOptions && commitOptions.transactionId;
|
||||
if (!explicitTransaction && this._shouldCreateTransaction()) {
|
||||
logger_1.logger('WriteBatch.commit', tag, 'Using transaction for commit');
|
||||
return this._firestore
|
||||
.request('beginTransaction', request, tag, true)
|
||||
.then(resp => {
|
||||
return this.commit_({ transactionId: resp.transaction });
|
||||
});
|
||||
}
|
||||
const writes = this._ops.map(op => op());
|
||||
request.writes = [];
|
||||
for (const req of writes) {
|
||||
assert(req.write || req.transform, 'Either a write or transform must be set');
|
||||
if (req.precondition) {
|
||||
(req.write || req.transform).currentDocument = req.precondition;
|
||||
}
|
||||
if (req.write) {
|
||||
request.writes.push(req.write);
|
||||
}
|
||||
if (req.transform) {
|
||||
request.writes.push(req.transform);
|
||||
}
|
||||
}
|
||||
logger_1.logger('WriteBatch.commit', tag, 'Sending %d writes', request.writes.length);
|
||||
if (explicitTransaction) {
|
||||
request.transaction = explicitTransaction;
|
||||
}
|
||||
return this._firestore
|
||||
.request('commit', request, tag,
|
||||
/* allowRetries= */ false)
|
||||
.then(resp => {
|
||||
const writeResults = [];
|
||||
if (request.writes.length > 0) {
|
||||
assert(Array.isArray(resp.writeResults) &&
|
||||
request.writes.length === resp.writeResults.length, `Expected one write result per operation, but got ${resp.writeResults.length} results for ${request.writes.length} operations.`);
|
||||
const commitTime = timestamp_1.Timestamp.fromProto(resp.commitTime);
|
||||
let offset = 0;
|
||||
for (let i = 0; i < writes.length; ++i) {
|
||||
const writeRequest = writes[i];
|
||||
// Don't return two write results for a write that contains a
|
||||
// transform, as the fact that we have to split one write
|
||||
// operation into two distinct write requests is an implementation
|
||||
// detail.
|
||||
if (writeRequest.write && writeRequest.transform) {
|
||||
// The document transform is always sent last and produces the
|
||||
// latest update time.
|
||||
++offset;
|
||||
}
|
||||
const writeResult = resp.writeResults[i + offset];
|
||||
writeResults.push(new WriteResult(writeResult.updateTime
|
||||
? timestamp_1.Timestamp.fromProto(writeResult.updateTime)
|
||||
: commitTime));
|
||||
}
|
||||
}
|
||||
return writeResults;
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Determines whether we should issue a transactional commit. On GCF, this
|
||||
* happens after two minutes of idleness.
|
||||
*
|
||||
* @private
|
||||
* @returns Whether to use a transaction.
|
||||
*/
|
||||
_shouldCreateTransaction() {
|
||||
if (!this._firestore._preferTransactions) {
|
||||
return false;
|
||||
}
|
||||
if (this._firestore._lastSuccessfulRequest) {
|
||||
const now = new Date().getTime();
|
||||
return now - this._firestore._lastSuccessfulRequest > GCF_IDLE_TIMEOUT_MS;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
exports.WriteBatch = WriteBatch;
|
||||
/**
|
||||
* Validates the use of 'value' as a Precondition and enforces that 'exists'
|
||||
* and 'lastUpdateTime' use valid types.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The object to validate
|
||||
* @param allowExists Whether to allow the 'exists' preconditions.
|
||||
*/
|
||||
function validatePrecondition(arg, value, allowExists) {
|
||||
if (typeof value !== 'object' || value === null) {
|
||||
throw new Error('Input is not an object.');
|
||||
}
|
||||
const precondition = value;
|
||||
let conditions = 0;
|
||||
if (precondition.exists !== undefined) {
|
||||
++conditions;
|
||||
if (!allowExists) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'precondition')} "exists" is not an allowed precondition.`);
|
||||
}
|
||||
if (typeof precondition.exists !== 'boolean') {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'precondition')} "exists" is not a boolean.'`);
|
||||
}
|
||||
}
|
||||
if (precondition.lastUpdateTime !== undefined) {
|
||||
++conditions;
|
||||
if (!(precondition.lastUpdateTime instanceof timestamp_1.Timestamp)) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'precondition')} "lastUpdateTime" is not a Firestore Timestamp.`);
|
||||
}
|
||||
}
|
||||
if (conditions > 1) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'precondition')} Input specifies more than one precondition.`);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Validates the use of 'value' as an update Precondition.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The object to validate.
|
||||
* @param options Optional validation options specifying whether the value can
|
||||
* be omitted.
|
||||
*/
|
||||
function validateUpdatePrecondition(arg, value, options) {
|
||||
if (!validate_1.validateOptional(value, options)) {
|
||||
validatePrecondition(arg, value, /* allowExists= */ false);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Validates the use of 'value' as a delete Precondition.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The object to validate.
|
||||
* @param options Optional validation options specifying whether the value can
|
||||
* be omitted.
|
||||
*/
|
||||
function validateDeletePrecondition(arg, value, options) {
|
||||
if (!validate_1.validateOptional(value, options)) {
|
||||
validatePrecondition(arg, value, /* allowExists= */ true);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Validates the use of 'value' as SetOptions and enforces that 'merge' is a
|
||||
* boolean.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param value The object to validate.
|
||||
* @param options Optional validation options specifying whether the value can
|
||||
* be omitted.
|
||||
* @throws if the input is not a valid SetOptions object.
|
||||
*/
|
||||
function validateSetOptions(arg, value, options) {
|
||||
if (!validate_1.validateOptional(value, options)) {
|
||||
if (!util_1.isObject(value)) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'set() options argument')} Input is not an object.`);
|
||||
}
|
||||
const setOptions = value;
|
||||
if ('merge' in setOptions && typeof setOptions.merge !== 'boolean') {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'set() options argument')} "merge" is not a boolean.`);
|
||||
}
|
||||
if ('mergeFields' in setOptions) {
|
||||
if (!Array.isArray(setOptions.mergeFields)) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'set() options argument')} "mergeFields" is not an array.`);
|
||||
}
|
||||
for (let i = 0; i < setOptions.mergeFields.length; ++i) {
|
||||
try {
|
||||
path_1.validateFieldPath(i, setOptions.mergeFields[i]);
|
||||
}
|
||||
catch (err) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'set() options argument')} "mergeFields" is not valid: ${err.message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ('merge' in setOptions && 'mergeFields' in setOptions) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'set() options argument')} You cannot specify both "merge" and "mergeFields".`);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.validateSetOptions = validateSetOptions;
|
||||
/**
|
||||
* Validates a JavaScript object for usage as a Firestore document.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param obj JavaScript object to validate.
|
||||
* @param allowDeletes Whether to allow FieldValue.delete() sentinels.
|
||||
* @throws when the object is invalid.
|
||||
*/
|
||||
function validateDocumentData(arg, obj, allowDeletes) {
|
||||
if (!serializer_1.isPlainObject(obj)) {
|
||||
throw new Error(validate_1.customObjectMessage(arg, obj));
|
||||
}
|
||||
for (const prop of Object.keys(obj)) {
|
||||
serializer_1.validateUserInput(arg, obj[prop], 'Firestore document', {
|
||||
allowDeletes: allowDeletes ? 'all' : 'none',
|
||||
allowTransforms: true,
|
||||
}, new path_1.FieldPath(prop));
|
||||
}
|
||||
}
|
||||
exports.validateDocumentData = validateDocumentData;
|
||||
/**
|
||||
* Validates that a value can be used as field value during an update.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param val The value to verify.
|
||||
* @param path The path to show in the error message.
|
||||
*/
|
||||
function validateFieldValue(arg, val, path) {
|
||||
serializer_1.validateUserInput(arg, val, 'Firestore value', { allowDeletes: 'root', allowTransforms: true }, path);
|
||||
}
|
||||
exports.validateFieldValue = validateFieldValue;
|
||||
/**
|
||||
* Validates that the update data does not contain any ambiguous field
|
||||
* definitions (such as 'a.b' and 'a').
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param data An update map with field/value pairs.
|
||||
*/
|
||||
function validateNoConflictingFields(arg, data) {
|
||||
const fields = [];
|
||||
data.forEach((value, key) => {
|
||||
fields.push(key);
|
||||
});
|
||||
fields.sort((left, right) => left.compareTo(right));
|
||||
for (let i = 1; i < fields.length; ++i) {
|
||||
if (fields[i - 1].isPrefixOf(fields[i])) {
|
||||
throw new Error(`${validate_1.invalidArgumentMessage(arg, 'update map')} Field "${fields[i - 1]}" was specified multiple times.`);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Validates that a JavaScript object is a map of field paths to field values.
|
||||
*
|
||||
* @private
|
||||
* @param arg The argument name or argument index (for varargs methods).
|
||||
* @param obj JavaScript object to validate.
|
||||
* @throws when the object is invalid.
|
||||
*/
|
||||
function validateUpdateMap(arg, obj) {
|
||||
if (!serializer_1.isPlainObject(obj)) {
|
||||
throw new Error(validate_1.customObjectMessage(arg, obj));
|
||||
}
|
||||
let isEmpty = true;
|
||||
if (obj) {
|
||||
for (const prop of Object.keys(obj)) {
|
||||
isEmpty = false;
|
||||
validateFieldValue(arg, obj[prop], new path_1.FieldPath(prop));
|
||||
}
|
||||
}
|
||||
if (isEmpty) {
|
||||
throw new Error('At least one field must be updated.');
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=write-batch.js.map
|
121
node_modules/@google-cloud/firestore/package.json
generated
vendored
Normal file
121
node_modules/@google-cloud/firestore/package.json
generated
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
{
|
||||
"_from": "@google-cloud/firestore@^2.0.0",
|
||||
"_id": "@google-cloud/firestore@2.2.9",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-75MdgTJeZ3TR4EsoKVT09N6PoyFlX4xDtcOe+oH2b63XfOA3/turoJTUplhsiVRGTP9SoEMHOl9kfYa4oepdmg==",
|
||||
"_location": "/@google-cloud/firestore",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "@google-cloud/firestore@^2.0.0",
|
||||
"name": "@google-cloud/firestore",
|
||||
"escapedName": "@google-cloud%2ffirestore",
|
||||
"scope": "@google-cloud",
|
||||
"rawSpec": "^2.0.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^2.0.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/firebase-admin"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-2.2.9.tgz",
|
||||
"_shasum": "1ee31cd439c66a7d5683ffbd582540af19f6a73b",
|
||||
"_spec": "@google-cloud/firestore@^2.0.0",
|
||||
"_where": "C:\\Users\\matia\\Documents\\GitHub\\FutoX-Musix\\node_modules\\firebase-admin",
|
||||
"author": {
|
||||
"name": "Google Inc."
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/googleapis/nodejs-firestore/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"bun": "^0.0.12",
|
||||
"deep-equal": "^1.0.1",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"google-gax": "^1.1.2",
|
||||
"through2": "^3.0.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Firestore Client Library for Node.js",
|
||||
"devDependencies": {
|
||||
"@types/assert": "^1.4.0",
|
||||
"@types/chai": "^4.1.7",
|
||||
"@types/chai-as-promised": "^7.1.0",
|
||||
"@types/duplexify": "^3.5.0",
|
||||
"@types/extend": "^3.0.0",
|
||||
"@types/mocha": "^5.2.3",
|
||||
"@types/node": "^10.3.5",
|
||||
"@types/through2": "^2.0.34",
|
||||
"chai": "^4.1.2",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"codecov": "^3.0.2",
|
||||
"duplexify": "^4.0.0",
|
||||
"extend": "^3.0.2",
|
||||
"gts": "^1.0.0",
|
||||
"hard-rejection": "^2.0.0",
|
||||
"intelli-espower-loader": "^1.0.1",
|
||||
"jsdoc": "^3.6.2",
|
||||
"jsdoc-fresh": "^1.0.1",
|
||||
"linkinator": "^1.5.0",
|
||||
"mocha": "^6.0.0",
|
||||
"nyc": "^14.0.0",
|
||||
"power-assert": "^1.6.1",
|
||||
"protobufjs": "^6.8.6",
|
||||
"proxyquire": "^2.0.1",
|
||||
"source-map-support": "^0.5.6",
|
||||
"ts-node": "^8.0.0",
|
||||
"typescript": "~3.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^8.13.0 || >=10.10.0"
|
||||
},
|
||||
"files": [
|
||||
"build/protos",
|
||||
"build/src",
|
||||
"!build/src/**/*.map",
|
||||
"types"
|
||||
],
|
||||
"homepage": "https://github.com/googleapis/nodejs-firestore#readme",
|
||||
"keywords": [
|
||||
"google apis client",
|
||||
"google api client",
|
||||
"google apis",
|
||||
"google api",
|
||||
"google",
|
||||
"google cloud platform",
|
||||
"google cloud",
|
||||
"cloud",
|
||||
"firestore"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"main": "./build/src/index.js",
|
||||
"name": "@google-cloud/firestore",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/googleapis/nodejs-firestore.git"
|
||||
},
|
||||
"scripts": {
|
||||
"clean": "gts clean",
|
||||
"codecov": "nyc report --reporter=json && codecov -f .coverage/*.json",
|
||||
"compile": "tsc -p . && cp -r dev/protos build && cp -r dev/test/fake-certificate.json build/test/fake-certificate.json && cp dev/src/v1beta1/*.json build/src/v1beta1/ && cp dev/src/v1/*.json build/src/v1/ && cp dev/conformance/test-definition.proto build/conformance && cp dev/conformance/test-suite.binproto build/conformance",
|
||||
"conformance": "mocha build/conformance",
|
||||
"docs": "jsdoc -c .jsdoc.js",
|
||||
"docs-test": "linkinator docs",
|
||||
"fix": "gts fix",
|
||||
"lint": "gts check",
|
||||
"preconformance": "npm run compile",
|
||||
"predocs": "npm run compile",
|
||||
"predocs-test": "npm run docs",
|
||||
"prepare": "npm run compile",
|
||||
"presystem-test": "npm run compile",
|
||||
"pretest-only": "npm run compile",
|
||||
"samples-test": "npm link && cd samples/ && npm link ../ && npm test && cd ../",
|
||||
"system-test": "mocha build/system-test --timeout 600000",
|
||||
"test": "npm run test-only && npm run conformance",
|
||||
"test-only": "nyc mocha build/test"
|
||||
},
|
||||
"types": "./types/firestore.d.ts",
|
||||
"version": "2.2.9"
|
||||
}
|
1369
node_modules/@google-cloud/firestore/types/firestore.d.ts
generated
vendored
Normal file
1369
node_modules/@google-cloud/firestore/types/firestore.d.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user