123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /*!
- * 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.
- */
- import { DocumentData } from '@google-cloud/firestore';
- import * as proto from '../protos/firestore_v1_proto_api';
- import { Firestore } from './index';
- import { FieldPath } from './path';
- import { ApiMapValue, ValidationOptions } from './types';
- import api = proto.google.firestore.v1;
- /**
- * An interface for Firestore types that can be serialized to Protobuf.
- *
- * @private
- * @internal
- */
- export interface Serializable {
- toProto(): api.IValue;
- }
- /**
- * Serializer that is used to convert between JavaScript types and their
- * Firestore Protobuf representation.
- *
- * @private
- * @internal
- */
- export declare class Serializer {
- private allowUndefined;
- private createReference;
- private createInteger;
- constructor(firestore: Firestore);
- /**
- * Encodes a JavaScript object into the Firestore 'Fields' representation.
- *
- * @private
- * @internal
- * @param obj The object to encode.
- * @returns The Firestore 'Fields' representation
- */
- encodeFields(obj: DocumentData): ApiMapValue;
- /**
- * Encodes a JavaScript value into the Firestore 'Value' representation.
- *
- * @private
- * @internal
- * @param val The object to encode
- * @returns The Firestore Proto or null if we are deleting a field.
- */
- encodeValue(val: unknown): api.IValue | null;
- /**
- * @private
- */
- encodeVector(rawVector: number[]): api.IValue;
- /**
- * Decodes a single Firestore 'Value' Protobuf.
- *
- * @private
- * @internal
- * @param proto A Firestore 'Value' Protobuf.
- * @returns The converted JS type.
- */
- decodeValue(proto: api.IValue): unknown;
- /**
- * Decodes a google.protobuf.Value
- *
- * @private
- * @internal
- * @param proto A Google Protobuf 'Value'.
- * @returns The converted JS type.
- */
- decodeGoogleProtobufValue(proto: proto.google.protobuf.IValue): unknown;
- /**
- * Decodes a google.protobuf.ListValue
- *
- * @private
- * @internal
- * @param proto A Google Protobuf 'ListValue'.
- * @returns The converted JS type.
- */
- decodeGoogleProtobufList(proto: proto.google.protobuf.IListValue | null | undefined): unknown[];
- /**
- * Decodes a google.protobuf.Struct
- *
- * @private
- * @internal
- * @param proto A Google Protobuf 'Struct'.
- * @returns The converted JS type.
- */
- decodeGoogleProtobufStruct(proto: proto.google.protobuf.IStruct | null | undefined): Record<string, unknown>;
- }
- /**
- * Validates a JavaScript value for usage as a Firestore value.
- *
- * @private
- * @internal
- * @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 undefined values or deletes are allowed.
- * @param inArray Whether we are inside an array.
- * @throws when the object is invalid.
- */
- export declare function validateUserInput(arg: string | number, value: unknown, desc: string, options: ValidationOptions, path?: FieldPath, level?: number, inArray?: boolean): void;
|