UNPKG

@firebase/firestore

Version:

The Cloud Firestore component of the Firebase JS SDK.

288 lines (276 loc) • 11.8 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var firebase = require('@firebase/app'); var util = require('@firebase/util'); var component = require('@firebase/component'); require('@firebase/logger'); require('util'); require('crypto'); require('@grpc/grpc-js'); require('@grpc/grpc-js/package.json'); require('path'); require('@grpc/proto-loader'); var database4cdb5b72 = require('./database-4cdb5b72-a21c9d94.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var firebase__default = /*#__PURE__*/_interopDefaultLegacy(firebase); const name = "@firebase/firestore"; const version = "2.3.6"; /** * @license * Copyright 2020 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. */ /** * Returns a sentinel for use with {@link @firebase/firestore/lite#(updateDoc:1)} or * {@link @firebase/firestore/lite#(setDoc:1)} with `{merge: true}` to mark a field for deletion. */ function deleteField() { return new database4cdb5b72.DeleteFieldValueImpl('deleteField'); } /** * Returns a sentinel used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link @firebase/firestore/lite#(updateDoc:1)} to * include a server-generated timestamp in the written data. */ function serverTimestamp() { return new database4cdb5b72.ServerTimestampFieldValueImpl('serverTimestamp'); } /** * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link * @firebase/firestore/lite#(updateDoc:1)} 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. * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or * `updateDoc()`. */ function arrayUnion(...elements) { // NOTE: We don't actually parse the data until it's used in set() or // update() since we'd need the Firestore instance to do this. return new database4cdb5b72.ArrayUnionFieldValueImpl('arrayUnion', elements); } /** * Returns a special value that can be used with {@link (setDoc:1)} or {@link * updateDoc:1} 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. * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or * `updateDoc()` */ function arrayRemove(...elements) { // NOTE: We don't actually parse the data until it's used in set() or // update() since we'd need the Firestore instance to do this. return new database4cdb5b72.ArrayRemoveFieldValueImpl('arrayRemove', elements); } /** * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link * @firebase/firestore/lite#(updateDoc:1)} that tells the server to increment the field's current value by * the given value. * * If either the operand or the current field value uses floating point * precision, all arithmetic follows IEEE 754 semantics. If both values are * integers, values outside of JavaScript's safe number range * (`Number.MIN_SAFE_INTEGER` to `Number.MAX_SAFE_INTEGER`) are also subject to * precision loss. Furthermore, once processed by the Firestore backend, all * integer operations are 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 sets the field to the given value. * * @param n - The value to increment by. * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or * `updateDoc()` */ function increment(n) { return new database4cdb5b72.NumericIncrementFieldValueImpl('increment', n); } /** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // The objects that are a part of this API are exposed to third-parties as // compiled javascript so we want to flag our private members with a leading // underscore to discourage their use. /** * A `FieldPath` refers to a field in a document. The path may consist of a * single field name (referring to a top-level field in the document), or a list * of field names (referring to a nested field in the document). */ class FieldPath { /** * Creates a FieldPath from the provided field names. If more than one field * name is provided, the path will point to a nested field in a document. * * @param fieldNames - A list of field names. */ constructor(...fieldNames) { this._delegate = new database4cdb5b72.FieldPath$1(...fieldNames); } static documentId() { /** * Internal Note: The backend doesn't technically support querying by * document ID. Instead it queries by the entire document name (full path * included), but in the cases we currently support documentId(), the net * effect is the same. */ return new FieldPath(database4cdb5b72.FieldPath.keyField().canonicalString()); } isEqual(other) { other = util.getModularInstance(other); if (!(other instanceof database4cdb5b72.FieldPath$1)) { return false; } return this._delegate._internalPath.isEqual(other._internalPath); } } /** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ class FieldValue { constructor(_delegate) { this._delegate = _delegate; } static serverTimestamp() { const delegate = serverTimestamp(); delegate._methodName = 'FieldValue.serverTimestamp'; return new FieldValue(delegate); } static delete() { const delegate = deleteField(); delegate._methodName = 'FieldValue.delete'; return new FieldValue(delegate); } static arrayUnion(...elements) { const delegate = arrayUnion(...elements); delegate._methodName = 'FieldValue.arrayUnion'; return new FieldValue(delegate); } static arrayRemove(...elements) { const delegate = arrayRemove(...elements); delegate._methodName = 'FieldValue.arrayRemove'; return new FieldValue(delegate); } static increment(n) { const delegate = increment(n); delegate._methodName = 'FieldValue.increment'; return new FieldValue(delegate); } isEqual(other) { return this._delegate.isEqual(other._delegate); } } /** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const firestoreNamespace = { Firestore: database4cdb5b72.Firestore, GeoPoint: database4cdb5b72.GeoPoint, Timestamp: database4cdb5b72.Timestamp, Blob: database4cdb5b72.Blob, Transaction: database4cdb5b72.Transaction$3, WriteBatch: database4cdb5b72.WriteBatch$1, DocumentReference: database4cdb5b72.DocumentReference$1, DocumentSnapshot: database4cdb5b72.DocumentSnapshot$2, Query: database4cdb5b72.Query$1, QueryDocumentSnapshot: database4cdb5b72.QueryDocumentSnapshot$2, QuerySnapshot: database4cdb5b72.QuerySnapshot$1, CollectionReference: database4cdb5b72.CollectionReference$1, FieldPath, FieldValue, setLogLevel: database4cdb5b72.setLogLevel$1, CACHE_SIZE_UNLIMITED: database4cdb5b72.CACHE_SIZE_UNLIMITED }; /** * Configures Firestore as part of the Firebase SDK by calling registerService. * * @param firebase - The FirebaseNamespace to register Firestore with * @param firestoreFactory - A factory function that returns a new Firestore * instance. */ function configureForFirebase(firebase, firestoreFactory) { firebase.INTERNAL.registerComponent(new component.Component('firestore', container => { const app = container.getProvider('app').getImmediate(); return firestoreFactory(app, container.getProvider('auth-internal')); }, "PUBLIC" /* PUBLIC */).setServiceProps(Object.assign({}, firestoreNamespace))); } /** * @license * Copyright 2020 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. */ /** * Registers the memory-only Firestore build for Node with the components * framework. */ function registerFirestore(instance) { configureForFirebase(instance, (app, auth) => new database4cdb5b72.Firestore(app, new database4cdb5b72.FirebaseFirestore$1(app, auth), new database4cdb5b72.MemoryPersistenceProvider())); instance.registerVersion(name, version, 'node'); } registerFirestore(firebase__default['default']); exports.registerFirestore = registerFirestore; //# sourceMappingURL=index.js.map