12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403 |
- /**
- * Cloud Storage for Firebase
- *
- * @packageDocumentation
- */
-
- /// <reference types="node" />
- import { AppCheckInternalComponentName } from '@firebase/app-check-interop-types';
- import { CompleteFn } from '@firebase/util';
- import { EmulatorMockTokenOptions } from '@firebase/util';
- import { FirebaseApp } from '@firebase/app';
- import { FirebaseAuthInternalName } from '@firebase/auth-interop-types';
- import { FirebaseError } from '@firebase/util';
- import { _FirebaseService } from '@firebase/app';
- import { NextFn } from '@firebase/util';
- import { Provider } from '@firebase/component';
- import { Subscribe } from '@firebase/util';
- import { Unsubscribe } from '@firebase/util';
-
- /**
- * A function that is called if the event stream ends normally.
- */
- declare type CompleteFn_2 = () => void;
-
- /**
- * A lightweight wrapper around XMLHttpRequest with a
- * goog.net.XhrIo-like interface.
- *
- * You can create a new connection by invoking `newTextConnection()`,
- * `newBytesConnection()` or `newStreamConnection()`.
- */
- declare interface Connection<T extends ConnectionType> {
- /**
- * Sends a request to the provided URL.
- *
- * This method never rejects its promise. In case of encountering an error,
- * it sets an error code internally which can be accessed by calling
- * getErrorCode() by callers.
- */
- send(url: string, method: string, body?: ArrayBufferView | Blob | string | null, headers?: Headers_2): Promise<void>;
- getErrorCode(): ErrorCode;
- getStatus(): number;
- getResponse(): T;
- getErrorText(): string;
- /**
- * Abort the request.
- */
- abort(): void;
- getResponseHeader(header: string): string | null;
- addUploadProgressListener(listener: (p1: ProgressEvent) => void): void;
- removeUploadProgressListener(listener: (p1: ProgressEvent) => void): void;
- }
-
- /** Response type exposed by the networking APIs. */
- declare type ConnectionType = string | ArrayBuffer | Blob | NodeJS.ReadableStream;
-
- /**
- * Modify this {@link FirebaseStorage} instance to communicate with the Cloud Storage emulator.
- *
- * @param storage - The {@link FirebaseStorage} instance
- * @param host - The emulator host (ex: localhost)
- * @param port - The emulator port (ex: 5001)
- * @param options - Emulator options. `options.mockUserToken` is the mock auth
- * token to use for unit testing Security Rules.
- * @public
- */
- export declare function connectStorageEmulator(storage: FirebaseStorage, host: string, port: number, options?: {
- mockUserToken?: EmulatorMockTokenOptions | string;
- }): void;
-
- /**
- * @internal
- */
- export declare function _dataFromString(format: StringFormat, stringData: string): StringData;
-
- /**
- * Deletes the object at this location.
- * @public
- * @param ref - {@link StorageReference} for object to delete.
- * @returns A `Promise` that resolves if the deletion succeeds.
- */
- export declare function deleteObject(ref: StorageReference): Promise<void>;
- export { EmulatorMockTokenOptions }
-
- /**
- * Error codes for requests made by the the XhrIo wrapper.
- */
- declare enum ErrorCode {
- NO_ERROR = 0,
- NETWORK_ERROR = 1,
- ABORT = 2
- }
-
- /**
- * A function that is called with a `StorageError`
- * if the event stream ends due to an error.
- */
- declare type ErrorFn = (error: StorageError_2) => void;
-
- /** A function to handle an error. */
- declare type ErrorHandler = (connection: Connection<ConnectionType>, response: StorageError_2) => StorageError_2;
-
- /**
- * @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.
- */
- /**
- * @param opt_elideCopy - If true, doesn't copy mutable input data
- * (e.g. Uint8Arrays). Pass true only if you know the objects will not be
- * modified after this blob's construction.
- *
- * @internal
- */
- export declare class _FbsBlob {
- private data_;
- private size_;
- private type_;
- constructor(data: Blob | Uint8Array | ArrayBuffer, elideCopy?: boolean);
- size(): number;
- type(): string;
- slice(startByte: number, endByte: number): _FbsBlob | null;
- static getBlob(...args: Array<string | _FbsBlob>): _FbsBlob | null;
- uploadData(): Blob | Uint8Array;
- }
-
- /**
- * A Firebase Storage instance.
- * @public
- */
- export declare interface FirebaseStorage extends _FirebaseService {
- /**
- * The {@link @firebase/app#FirebaseApp} associated with this `FirebaseStorage` instance.
- */
- readonly app: FirebaseApp;
- /**
- * The maximum time to retry uploads in milliseconds.
- */
- maxUploadRetryTime: number;
- /**
- * The maximum time to retry operations other than uploads or downloads in
- * milliseconds.
- */
- maxOperationRetryTime: number;
- }
-
- /**
- * A service that provides Firebase Storage Reference instances.
- * @param opt_url - gs:// url to a custom Storage Bucket
- *
- * @internal
- */
- export declare class _FirebaseStorageImpl implements FirebaseStorage {
- /**
- * FirebaseApp associated with this StorageService instance.
- */
- readonly app: FirebaseApp;
- readonly _authProvider: Provider<FirebaseAuthInternalName>;
- /**
- * @internal
- */
- readonly _appCheckProvider: Provider<AppCheckInternalComponentName>;
- /**
- * @internal
- */
- readonly _url?: string | undefined;
- readonly _firebaseVersion?: string | undefined;
- _bucket: _Location | null;
- /**
- * This string can be in the formats:
- * - host
- * - host:port
- */
- private _host;
- _protocol: string;
- protected readonly _appId: string | null;
- private readonly _requests;
- private _deleted;
- private _maxOperationRetryTime;
- private _maxUploadRetryTime;
- _overrideAuthToken?: string;
- constructor(
- /**
- * FirebaseApp associated with this StorageService instance.
- */
- app: FirebaseApp, _authProvider: Provider<FirebaseAuthInternalName>,
- /**
- * @internal
- */
- _appCheckProvider: Provider<AppCheckInternalComponentName>,
- /**
- * @internal
- */
- _url?: string | undefined, _firebaseVersion?: string | undefined);
- /**
- * The host string for this service, in the form of `host` or
- * `host:port`.
- */
- get host(): string;
- set host(host: string);
- /**
- * The maximum time to retry uploads in milliseconds.
- */
- get maxUploadRetryTime(): number;
- set maxUploadRetryTime(time: number);
- /**
- * The maximum time to retry operations other than uploads or downloads in
- * milliseconds.
- */
- get maxOperationRetryTime(): number;
- set maxOperationRetryTime(time: number);
- _getAuthToken(): Promise<string | null>;
- _getAppCheckToken(): Promise<string | null>;
- /**
- * Stop running requests and prevent more from being created.
- */
- _delete(): Promise<void>;
- /**
- * Returns a new firebaseStorage.Reference object referencing this StorageService
- * at the given Location.
- */
- _makeStorageReference(loc: _Location): _Reference;
- /**
- * @param requestInfo - HTTP RequestInfo object
- * @param authToken - Firebase auth token
- */
- _makeRequest<I extends ConnectionType, O>(requestInfo: RequestInfo_2<I, O>, requestFactory: () => Connection<I>, authToken: string | null, appCheckToken: string | null, retry?: boolean): Request_2<O>;
- makeRequestWithTokens<I extends ConnectionType, O>(requestInfo: RequestInfo_2<I, O>, requestFactory: () => Connection<I>): Promise<O>;
- }
-
- /**
- * The full set of object metadata, including read-only properties.
- * @public
- */
- export declare interface FullMetadata extends UploadMetadata {
- /**
- * The bucket this object is contained in.
- */
- bucket: string;
- /**
- * The full path of this object.
- */
- fullPath: string;
- /**
- * The object's generation.
- * {@link https://cloud.google.com/storage/docs/metadata#generation-number}
- */
- generation: string;
- /**
- * The object's metageneration.
- * {@link https://cloud.google.com/storage/docs/metadata#generation-number}
- */
- metageneration: string;
- /**
- * The short name of this object, which is the last component of the full path.
- * For example, if fullPath is 'full/path/image.png', name is 'image.png'.
- */
- name: string;
- /**
- * The size of this object, in bytes.
- */
- size: number;
- /**
- * A date string representing when this object was created.
- */
- timeCreated: string;
- /**
- * A date string representing when this object was last updated.
- */
- updated: string;
- /**
- * Tokens to allow access to the downloatd URL.
- */
- downloadTokens: string[] | undefined;
- /**
- * `StorageReference` associated with this upload.
- */
- ref?: StorageReference | undefined;
- }
-
- /**
- * Downloads the data at the object's location. Returns an error if the object
- * is not found.
- *
- * To use this functionality, you have to whitelist your app's origin in your
- * Cloud Storage bucket. See also
- * https://cloud.google.com/storage/docs/configuring-cors
- *
- * This API is not available in Node.
- *
- * @public
- * @param ref - StorageReference where data should be downloaded.
- * @param maxDownloadSizeBytes - If set, the maximum allowed size in bytes to
- * retrieve.
- * @returns A Promise that resolves with a Blob containing the object's bytes
- */
- export declare function getBlob(ref: StorageReference, maxDownloadSizeBytes?: number): Promise<Blob>;
-
- /**
- * Downloads the data at the object's location. Returns an error if the object
- * is not found.
- *
- * To use this functionality, you have to whitelist your app's origin in your
- * Cloud Storage bucket. See also
- * https://cloud.google.com/storage/docs/configuring-cors
- *
- * @public
- * @param ref - StorageReference where data should be downloaded.
- * @param maxDownloadSizeBytes - If set, the maximum allowed size in bytes to
- * retrieve.
- * @returns A Promise containing the object's bytes
- */
- export declare function getBytes(ref: StorageReference, maxDownloadSizeBytes?: number): Promise<ArrayBuffer>;
-
- /**
- * @internal
- */
- export declare function _getChild(ref: StorageReference, childPath: string): _Reference;
-
- /**
- * Returns the download URL for the given {@link StorageReference}.
- * @public
- * @param ref - {@link StorageReference} to get the download URL for.
- * @returns A `Promise` that resolves with the download
- * URL for this object.
- */
- export declare function getDownloadURL(ref: StorageReference): Promise<string>;
-
- /**
- * A `Promise` that resolves with the metadata for this object. If this
- * object doesn't exist or metadata cannot be retreived, the promise is
- * rejected.
- * @public
- * @param ref - {@link StorageReference} to get metadata from.
- */
- export declare function getMetadata(ref: StorageReference): Promise<FullMetadata>;
-
- /**
- * Gets a {@link FirebaseStorage} instance for the given Firebase app.
- * @public
- * @param app - Firebase app to get {@link FirebaseStorage} instance for.
- * @param bucketUrl - The gs:// url to your Firebase Storage Bucket.
- * If not passed, uses the app's default Storage Bucket.
- * @returns A {@link FirebaseStorage} instance.
- */
- export declare function getStorage(app?: FirebaseApp, bucketUrl?: string): FirebaseStorage;
-
- /**
- * Downloads the data at the object's location. Raises an error event if the
- * object is not found.
- *
- * This API is only available in Node.
- *
- * @public
- * @param ref - StorageReference where data should be downloaded.
- * @param maxDownloadSizeBytes - If set, the maximum allowed size in bytes to
- * retrieve.
- * @returns A stream with the object's data as bytes
- */
- export declare function getStream(ref: StorageReference, maxDownloadSizeBytes?: number): NodeJS.ReadableStream;
-
- /**
- * @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.
- */
- /// <reference types="node" />
- /** Network headers */
- declare type Headers_2 = Record<string, string>;
-
- /**
- * Internal enum for task state.
- */
- declare const enum InternalTaskState {
- RUNNING = "running",
- PAUSING = "pausing",
- PAUSED = "paused",
- SUCCESS = "success",
- CANCELING = "canceling",
- CANCELED = "canceled",
- ERROR = "error"
- }
-
- /**
- * @internal
- */
- export declare function _invalidArgument(message: string): StorageError_2;
-
- /**
- * @param name - The name of the operation that was invalid.
- *
- * @internal
- */
- export declare function _invalidRootOperation(name: string): StorageError_2;
-
- /**
- * List items (files) and prefixes (folders) under this storage reference.
- *
- * List API is only available for Firebase Rules Version 2.
- *
- * GCS is a key-blob store. Firebase Storage imposes the semantic of '/'
- * delimited folder structure.
- * Refer to GCS's List API if you want to learn more.
- *
- * To adhere to Firebase Rules's Semantics, Firebase Storage does not
- * support objects whose paths end with "/" or contain two consecutive
- * "/"s. Firebase Storage List API will filter these unsupported objects.
- * list() may fail if there are too many unsupported objects in the bucket.
- * @public
- *
- * @param ref - {@link StorageReference} to get list from.
- * @param options - See {@link ListOptions} for details.
- * @returns A `Promise` that resolves with the items and prefixes.
- * `prefixes` contains references to sub-folders and `items`
- * contains references to objects in this folder. `nextPageToken`
- * can be used to get the rest of the results.
- */
- export declare function list(ref: StorageReference, options?: ListOptions): Promise<ListResult>;
-
- /**
- * List all items (files) and prefixes (folders) under this storage reference.
- *
- * This is a helper method for calling list() repeatedly until there are
- * no more results. The default pagination size is 1000.
- *
- * Note: The results may not be consistent if objects are changed while this
- * operation is running.
- *
- * Warning: `listAll` may potentially consume too many resources if there are
- * too many results.
- * @public
- * @param ref - {@link StorageReference} to get list from.
- *
- * @returns A `Promise` that resolves with all the items and prefixes under
- * the current storage reference. `prefixes` contains references to
- * sub-directories and `items` contains references to objects in this
- * folder. `nextPageToken` is never returned.
- */
- export declare function listAll(ref: StorageReference): Promise<ListResult>;
-
- /**
- * The options `list()` accepts.
- * @public
- */
- export declare interface ListOptions {
- /**
- * If set, limits the total number of `prefixes` and `items` to return.
- * The default and maximum maxResults is 1000.
- */
- maxResults?: number | null;
- /**
- * The `nextPageToken` from a previous call to `list()`. If provided,
- * listing is resumed from the previous position.
- */
- pageToken?: string | null;
- }
-
- /**
- * Result returned by list().
- * @public
- */
- export declare interface ListResult {
- /**
- * References to prefixes (sub-folders). You can call list() on them to
- * get its contents.
- *
- * Folders are implicit based on '/' in the object paths.
- * For example, if a bucket has two objects '/a/b/1' and '/a/b/2', list('/a')
- * will return '/a/b' as a prefix.
- */
- prefixes: StorageReference[];
- /**
- * Objects in this directory.
- * You can call getMetadata() and getDownloadUrl() on them.
- */
- items: StorageReference[];
- /**
- * If set, there might be more results for this list. Use this token to resume the list.
- */
- nextPageToken?: string;
- }
-
- /**
- * @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.
- */
- /**
- * Firebase Storage location data.
- *
- * @internal
- */
- export declare class _Location {
- readonly bucket: string;
- private path_;
- constructor(bucket: string, path: string);
- get path(): string;
- get isRoot(): boolean;
- fullServerUrl(): string;
- bucketOnlyServerUrl(): string;
- static makeFromBucketSpec(bucketString: string, host: string): _Location;
- static makeFromUrl(url: string, host: string): _Location;
- }
-
- /**
- * @fileoverview Documentation for the metadata format.
- */
- /**
- * The full set of object metadata, including read-only properties.
- */
- declare interface Metadata extends FullMetadata {
- [prop: string]: unknown;
- }
-
- /**
- * Function that is called once for each value in a stream of values.
- */
- declare type NextFn_2<T> = (value: T) => void;
-
- /**
- * Returns a {@link StorageReference} for the given url.
- * @param storage - {@link FirebaseStorage} instance.
- * @param url - URL. If empty, returns root reference.
- * @public
- */
- export declare function ref(storage: FirebaseStorage, url?: string): StorageReference;
-
- /**
- * Returns a {@link StorageReference} for the given path in the
- * default bucket.
- * @param storageOrRef - {@link FirebaseStorage} or {@link StorageReference}.
- * @param pathOrUrlStorage - path. If empty, returns root reference (if {@link FirebaseStorage}
- * instance provided) or returns same reference (if {@link StorageReference} provided).
- * @public
- */
- export declare function ref(storageOrRef: FirebaseStorage | StorageReference, path?: string): StorageReference;
-
- /**
- * Provides methods to interact with a bucket in the Firebase Storage service.
- * @internal
- * @param _location - An fbs.location, or the URL at
- * which to base this object, in one of the following forms:
- * gs://<bucket>/<object-path>
- * http[s]://firebasestorage.googleapis.com/
- * <api-version>/b/<bucket>/o/<object-path>
- * Any query or fragment strings will be ignored in the http[s]
- * format. If no value is passed, the storage object will use a URL based on
- * the project ID of the base firebase.App instance.
- */
- export declare class _Reference {
- private _service;
- _location: _Location;
- constructor(_service: _FirebaseStorageImpl, location: string | _Location);
- /**
- * Returns the URL for the bucket and path this object references,
- * in the form gs://<bucket>/<object-path>
- * @override
- */
- toString(): string;
- protected _newRef(service: _FirebaseStorageImpl, location: _Location): _Reference;
- /**
- * A reference to the root of this object's bucket.
- */
- get root(): _Reference;
- /**
- * The name of the bucket containing this reference's object.
- */
- get bucket(): string;
- /**
- * The full path of this object.
- */
- get fullPath(): string;
- /**
- * The short name of this object, which is the last component of the full path.
- * For example, if fullPath is 'full/path/image.png', name is 'image.png'.
- */
- get name(): string;
- /**
- * The `StorageService` instance this `StorageReference` is associated with.
- */
- get storage(): _FirebaseStorageImpl;
- /**
- * A `StorageReference` pointing to the parent location of this `StorageReference`, or null if
- * this reference is the root.
- */
- get parent(): _Reference | null;
- /**
- * Utility function to throw an error in methods that do not accept a root reference.
- */
- _throwIfRoot(name: string): void;
- }
-
- declare interface Request_2<T> {
- getPromise(): Promise<T>;
- /**
- * Cancels the request. IMPORTANT: the promise may still be resolved with an
- * appropriate value (if the request is finished before you call this method,
- * but the promise has not yet been resolved), so don't just assume it will be
- * rejected if you call this function.
- * @param appDelete - True if the cancelation came from the app being deleted.
- */
- cancel(appDelete?: boolean): void;
- }
-
- /**
- * A function that converts a server response to the API type expected by the
- * SDK.
- *
- * @param I - the type of the backend's network response
- * @param O - the output response type used by the rest of the SDK.
- */
- declare type RequestHandler<I extends ConnectionType, O> = (connection: Connection<I>, response: I) => O;
-
- /**
- * Contains a fully specified request.
- *
- * @param I - the type of the backend's network response.
- * @param O - the output response type used by the rest of the SDK.
- */
- declare class RequestInfo_2<I extends ConnectionType, O> {
- url: string;
- method: string;
- /**
- * Returns the value with which to resolve the request's promise. Only called
- * if the request is successful. Throw from this function to reject the
- * returned Request's promise with the thrown error.
- * Note: The XhrIo passed to this function may be reused after this callback
- * returns. Do not keep a reference to it in any way.
- */
- handler: RequestHandler<I, O>;
- timeout: number;
- urlParams: UrlParams;
- headers: Headers_2;
- body: Blob | string | Uint8Array | null;
- errorHandler: ErrorHandler | null;
- /**
- * Called with the current number of bytes uploaded and total size (-1 if not
- * computable) of the request body (i.e. used to report upload progress).
- */
- progressCallback: ((p1: number, p2: number) => void) | null;
- successCodes: number[];
- additionalRetryCodes: number[];
- constructor(url: string, method: string,
- /**
- * Returns the value with which to resolve the request's promise. Only called
- * if the request is successful. Throw from this function to reject the
- * returned Request's promise with the thrown error.
- * Note: The XhrIo passed to this function may be reused after this callback
- * returns. Do not keep a reference to it in any way.
- */
- handler: RequestHandler<I, O>, timeout: number);
- }
-
- /**
- * Object metadata that can be set at any time.
- * @public
- */
- export declare interface SettableMetadata {
- /**
- * Served as the 'Cache-Control' header on object download.
- */
- cacheControl?: string | undefined;
- /**
- * Served as the 'Content-Disposition' header on object download.
- */
- contentDisposition?: string | undefined;
- /**
- * Served as the 'Content-Encoding' header on object download.
- */
- contentEncoding?: string | undefined;
- /**
- * Served as the 'Content-Language' header on object download.
- */
- contentLanguage?: string | undefined;
- /**
- * Served as the 'Content-Type' header on object download.
- */
- contentType?: string | undefined;
- /**
- * Additional user-defined custom metadata.
- */
- customMetadata?: {
- [key: string]: string;
- } | undefined;
- }
-
- /**
- * An error returned by the Firebase Storage SDK.
- * @public
- */
- export declare interface StorageError extends FirebaseError {
- /**
- * A server response message for the error, if applicable.
- */
- serverResponse: string | null;
- }
-
- /**
- * An error returned by the Firebase Storage SDK.
- * @public
- */
- declare class StorageError_2 extends FirebaseError {
- private status_;
- private readonly _baseMessage;
- /**
- * Stores custom error data unque to StorageError.
- */
- customData: {
- serverResponse: string | null;
- };
- /**
- * @param code - A StorageErrorCode string to be prefixed with 'storage/' and
- * added to the end of the message.
- * @param message - Error message.
- * @param status_ - Corresponding HTTP Status Code
- */
- constructor(code: StorageErrorCode, message: string, status_?: number);
- get status(): number;
- set status(status: number);
- /**
- * Compares a StorageErrorCode against this error's code, filtering out the prefix.
- */
- _codeEquals(code: StorageErrorCode): boolean;
- /**
- * Optional response message that was added by the server.
- */
- get serverResponse(): null | string;
- set serverResponse(serverResponse: string | null);
- }
-
- /**
- * @public
- * Error codes that can be attached to `StorageError`s.
- */
- declare const enum StorageErrorCode {
- UNKNOWN = "unknown",
- OBJECT_NOT_FOUND = "object-not-found",
- BUCKET_NOT_FOUND = "bucket-not-found",
- PROJECT_NOT_FOUND = "project-not-found",
- QUOTA_EXCEEDED = "quota-exceeded",
- UNAUTHENTICATED = "unauthenticated",
- UNAUTHORIZED = "unauthorized",
- UNAUTHORIZED_APP = "unauthorized-app",
- RETRY_LIMIT_EXCEEDED = "retry-limit-exceeded",
- INVALID_CHECKSUM = "invalid-checksum",
- CANCELED = "canceled",
- INVALID_EVENT_NAME = "invalid-event-name",
- INVALID_URL = "invalid-url",
- INVALID_DEFAULT_BUCKET = "invalid-default-bucket",
- NO_DEFAULT_BUCKET = "no-default-bucket",
- CANNOT_SLICE_BLOB = "cannot-slice-blob",
- SERVER_FILE_WRONG_SIZE = "server-file-wrong-size",
- NO_DOWNLOAD_URL = "no-download-url",
- INVALID_ARGUMENT = "invalid-argument",
- INVALID_ARGUMENT_COUNT = "invalid-argument-count",
- APP_DELETED = "app-deleted",
- INVALID_ROOT_OPERATION = "invalid-root-operation",
- INVALID_FORMAT = "invalid-format",
- INTERNAL_ERROR = "internal-error",
- UNSUPPORTED_ENVIRONMENT = "unsupported-environment"
- }
-
- /**
- * A stream observer for Firebase Storage.
- * @public
- */
- export declare interface StorageObserver<T> {
- next?: NextFn<T> | null;
- error?: (error: StorageError) => void | null;
- complete?: CompleteFn | null;
- }
-
- /**
- * An observer identical to the `Observer` defined in packages/util except the
- * error passed into the ErrorFn is specifically a `StorageError`.
- */
- declare interface StorageObserver_2<T> {
- /**
- * Function that is called once for each value in the event stream.
- */
- next?: NextFn_2<T>;
- /**
- * A function that is called with a `StorageError`
- * if the event stream ends due to an error.
- */
- error?: ErrorFn;
- /**
- * A function that is called if the event stream ends normally.
- */
- complete?: CompleteFn_2;
- }
-
- /**
- * Represents a reference to a Google Cloud Storage object. Developers can
- * upload, download, and delete objects, as well as get/set object metadata.
- * @public
- */
- export declare interface StorageReference {
- /**
- * Returns a gs:// URL for this object in the form
- * `gs://<bucket>/<path>/<to>/<object>`
- * @returns The gs:// URL.
- */
- toString(): string;
- /**
- * A reference to the root of this object's bucket.
- */
- root: StorageReference;
- /**
- * The name of the bucket containing this reference's object.
- */
- bucket: string;
- /**
- * The full path of this object.
- */
- fullPath: string;
- /**
- * The short name of this object, which is the last component of the full path.
- * For example, if fullPath is 'full/path/image.png', name is 'image.png'.
- */
- name: string;
- /**
- * The {@link FirebaseStorage} instance associated with this reference.
- */
- storage: FirebaseStorage;
- /**
- * A reference pointing to the parent location of this reference, or null if
- * this reference is the root.
- */
- parent: StorageReference | null;
- }
-
- declare class StringData {
- data: Uint8Array;
- contentType: string | null;
- constructor(data: Uint8Array, contentType?: string | null);
- }
-
- /**
- * @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.
- */
- /**
- * An enumeration of the possible string formats for upload.
- * @public
- */
- export declare type StringFormat = typeof StringFormat[keyof typeof StringFormat];
-
- /**
- * An enumeration of the possible string formats for upload.
- * @public
- */
- export declare const StringFormat: {
- /**
- * Indicates the string should be interpreted "raw", that is, as normal text.
- * The string will be interpreted as UTF-16, then uploaded as a UTF-8 byte
- * sequence.
- * Example: The string 'Hello! \\ud83d\\ude0a' becomes the byte sequence
- * 48 65 6c 6c 6f 21 20 f0 9f 98 8a
- */
- readonly RAW: "raw";
- /**
- * Indicates the string should be interpreted as base64-encoded data.
- * Padding characters (trailing '='s) are optional.
- * Example: The string 'rWmO++E6t7/rlw==' becomes the byte sequence
- * ad 69 8e fb e1 3a b7 bf eb 97
- */
- readonly BASE64: "base64";
- /**
- * Indicates the string should be interpreted as base64url-encoded data.
- * Padding characters (trailing '='s) are optional.
- * Example: The string 'rWmO--E6t7_rlw==' becomes the byte sequence
- * ad 69 8e fb e1 3a b7 bf eb 97
- */
- readonly BASE64URL: "base64url";
- /**
- * Indicates the string is a data URL, such as one obtained from
- * canvas.toDataURL().
- * Example: the string 'data:application/octet-stream;base64,aaaa'
- * becomes the byte sequence
- * 69 a6 9a
- * (the content-type "application/octet-stream" is also applied, but can
- * be overridden in the metadata object).
- */
- readonly DATA_URL: "data_url";
- };
-
- /**
- * Subscribes to an event stream.
- */
- declare type Subscribe_2<T> = (next?: NextFn_2<T> | StorageObserver_2<T>, error?: ErrorFn, complete?: CompleteFn_2) => Unsubscribe_2;
-
- /**
- * An event that is triggered on a task.
- * @public
- */
- export declare type TaskEvent = 'state_changed';
-
- /**
- * @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.
- */
- /**
- * @fileoverview Enumerations used for upload tasks.
- */
- /**
- * An event that is triggered on a task.
- * @internal
- */
- export declare type _TaskEvent = string;
-
- /**
- * An event that is triggered on a task.
- * @internal
- */
- export declare const _TaskEvent: {
- /**
- * For this event,
- * <ul>
- * <li>The `next` function is triggered on progress updates and when the
- * task is paused/resumed with an `UploadTaskSnapshot` as the first
- * argument.</li>
- * <li>The `error` function is triggered if the upload is canceled or fails
- * for another reason.</li>
- * <li>The `complete` function is triggered if the upload completes
- * successfully.</li>
- * </ul>
- */
- STATE_CHANGED: string;
- };
-
- /**
- * Represents the current state of a running upload.
- * @public
- */
- export declare type TaskState = 'running' | 'paused' | 'success' | 'canceled' | 'error';
-
- /**
- * Represents the current state of a running upload.
- * @internal
- */
- export declare type _TaskState = typeof _TaskState[keyof typeof _TaskState];
-
- /**
- * Represents the current state of a running upload.
- * @internal
- */
- export declare const _TaskState: {
- /** The task is currently transferring data. */
- readonly RUNNING: "running";
- /** The task was paused by the user. */
- readonly PAUSED: "paused";
- /** The task completed successfully. */
- readonly SUCCESS: "success";
- /** The task was canceled. */
- readonly CANCELED: "canceled";
- /** The task failed with an error. */
- readonly ERROR: "error";
- };
-
- /**
- * Unsubscribes from a stream.
- */
- declare type Unsubscribe_2 = () => void;
-
- /**
- * Updates the metadata for this object.
- * @public
- * @param ref - {@link StorageReference} to update metadata for.
- * @param metadata - The new metadata for the object.
- * Only values that have been explicitly set will be changed. Explicitly
- * setting a value to null will remove the metadata.
- * @returns A `Promise` that resolves with the new metadata for this object.
- */
- export declare function updateMetadata(ref: StorageReference, metadata: SettableMetadata): Promise<FullMetadata>;
-
- /**
- * Uploads data to this object's location.
- * The upload is not resumable.
- * @public
- * @param ref - {@link StorageReference} where data should be uploaded.
- * @param data - The data to upload.
- * @param metadata - Metadata for the data to upload.
- * @returns A Promise containing an UploadResult
- */
- export declare function uploadBytes(ref: StorageReference, data: Blob | Uint8Array | ArrayBuffer, metadata?: UploadMetadata): Promise<UploadResult>;
-
- /**
- * Uploads data to this object's location.
- * The upload can be paused and resumed, and exposes progress updates.
- * @public
- * @param ref - {@link StorageReference} where data should be uploaded.
- * @param data - The data to upload.
- * @param metadata - Metadata for the data to upload.
- * @returns An UploadTask
- */
- export declare function uploadBytesResumable(ref: StorageReference, data: Blob | Uint8Array | ArrayBuffer, metadata?: UploadMetadata): UploadTask;
-
- /**
- * Object metadata that can be set at upload.
- * @public
- */
- export declare interface UploadMetadata extends SettableMetadata {
- /**
- * A Base64-encoded MD5 hash of the object being uploaded.
- */
- md5Hash?: string | undefined;
- }
-
- /**
- * Result returned from a non-resumable upload.
- * @public
- */
- export declare interface UploadResult {
- /**
- * Contains the metadata sent back from the server.
- */
- readonly metadata: FullMetadata;
- /**
- * The reference that spawned this upload.
- */
- readonly ref: StorageReference;
- }
-
- /**
- * Uploads a string to this object's location.
- * The upload is not resumable.
- * @public
- * @param ref - {@link StorageReference} where string should be uploaded.
- * @param value - The string to upload.
- * @param format - The format of the string to upload.
- * @param metadata - Metadata for the string to upload.
- * @returns A Promise containing an UploadResult
- */
- export declare function uploadString(ref: StorageReference, value: string, format?: StringFormat, metadata?: UploadMetadata): Promise<UploadResult>;
-
- /**
- * Represents the process of uploading an object. Allows you to monitor and
- * manage the upload.
- * @public
- */
- export declare interface UploadTask {
- /**
- * Cancels a running task. Has no effect on a complete or failed task.
- * @returns True if the cancel had an effect.
- */
- cancel(): boolean;
- /**
- * Equivalent to calling `then(null, onRejected)`.
- */
- catch(onRejected: (error: StorageError) => unknown): Promise<unknown>;
- /**
- * Listens for events on this task.
- *
- * Events have three callback functions (referred to as `next`, `error`, and
- * `complete`).
- *
- * If only the event is passed, a function that can be used to register the
- * callbacks is returned. Otherwise, the callbacks are passed after the event.
- *
- * Callbacks can be passed either as three separate arguments <em>or</em> as the
- * `next`, `error`, and `complete` properties of an object. Any of the three
- * callbacks is optional, as long as at least one is specified. In addition,
- * when you add your callbacks, you get a function back. You can call this
- * function to unregister the associated callbacks.
- *
- * @example **Pass callbacks separately or in an object.**
- * ```javascript
- * var next = function(snapshot) {};
- * var error = function(error) {};
- * var complete = function() {};
- *
- * // The first example.
- * uploadTask.on(
- * firebase.storage.TaskEvent.STATE_CHANGED,
- * next,
- * error,
- * complete);
- *
- * // This is equivalent to the first example.
- * uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, {
- * 'next': next,
- * 'error': error,
- * 'complete': complete
- * });
- *
- * // This is equivalent to the first example.
- * var subscribe = uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED);
- * subscribe(next, error, complete);
- *
- * // This is equivalent to the first example.
- * var subscribe = uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED);
- * subscribe({
- * 'next': next,
- * 'error': error,
- * 'complete': complete
- * });
- * ```
- *
- * @example **Any callback is optional.**
- * ```javascript
- * // Just listening for completion, this is legal.
- * uploadTask.on(
- * firebase.storage.TaskEvent.STATE_CHANGED,
- * null,
- * null,
- * function() {
- * console.log('upload complete!');
- * });
- *
- * // Just listening for progress/state changes, this is legal.
- * uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, function(snapshot) {
- * var percent = snapshot.bytesTransferred / snapshot.totalBytes * 100;
- * console.log(percent + "% done");
- * });
- *
- * // This is also legal.
- * uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, {
- * 'complete': function() {
- * console.log('upload complete!');
- * }
- * });
- * ```
- *
- * @example **Use the returned function to remove callbacks.**
- * ```javascript
- * var unsubscribe = uploadTask.on(
- * firebase.storage.TaskEvent.STATE_CHANGED,
- * function(snapshot) {
- * var percent = snapshot.bytesTransferred / snapshot.totalBytes * 100;
- * console.log(percent + "% done");
- * // Stop after receiving one update.
- * unsubscribe();
- * });
- *
- * // This code is equivalent to the above.
- * var handle = uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED);
- * unsubscribe = handle(function(snapshot) {
- * var percent = snapshot.bytesTransferred / snapshot.totalBytes * 100;
- * console.log(percent + "% done");
- * // Stop after receiving one update.
- * unsubscribe();
- * });
- * ```
- *
- * @param event - The type of event to listen for.
- * @param nextOrObserver -
- * The `next` function, which gets called for each item in
- * the event stream, or an observer object with some or all of these three
- * properties (`next`, `error`, `complete`).
- * @param error - A function that gets called with a `StorageError`
- * if the event stream ends due to an error.
- * @param completed - A function that gets called if the
- * event stream ends normally.
- * @returns
- * If only the event argument is passed, returns a function you can use to
- * add callbacks (see the examples above). If more than just the event
- * argument is passed, returns a function you can call to unregister the
- * callbacks.
- */
- on(event: TaskEvent, nextOrObserver?: StorageObserver<UploadTaskSnapshot> | null | ((snapshot: UploadTaskSnapshot) => unknown), error?: ((a: StorageError) => unknown) | null, complete?: Unsubscribe | null): Unsubscribe | Subscribe<UploadTaskSnapshot>;
- /**
- * Pauses a currently running task. Has no effect on a paused or failed task.
- * @returns True if the operation took effect, false if ignored.
- */
- pause(): boolean;
- /**
- * Resumes a paused task. Has no effect on a currently running or failed task.
- * @returns True if the operation took effect, false if ignored.
- */
- resume(): boolean;
- /**
- * A snapshot of the current task state.
- */
- snapshot: UploadTaskSnapshot;
- /**
- * This object behaves like a Promise, and resolves with its snapshot data
- * when the upload completes.
- * @param onFulfilled - The fulfillment callback. Promise chaining works as normal.
- * @param onRejected - The rejection callback.
- */
- then(onFulfilled?: ((snapshot: UploadTaskSnapshot) => unknown) | null, onRejected?: ((error: StorageError) => unknown) | null): Promise<unknown>;
- }
-
- /**
- * Represents a blob being uploaded. Can be used to pause/resume/cancel the
- * upload and manage callbacks for various events.
- * @internal
- */
- export declare class _UploadTask {
- private _ref;
- /**
- * The data to be uploaded.
- */
- _blob: _FbsBlob;
- /**
- * Metadata related to the upload.
- */
- _metadata: Metadata | null;
- private _mappings;
- /**
- * Number of bytes transferred so far.
- */
- _transferred: number;
- private _needToFetchStatus;
- private _needToFetchMetadata;
- private _observers;
- private _resumable;
- /**
- * Upload state.
- */
- _state: InternalTaskState;
- private _error?;
- private _uploadUrl?;
- private _request?;
- private _chunkMultiplier;
- private _errorHandler;
- private _metadataErrorHandler;
- private _resolve?;
- private _reject?;
- private pendingTimeout?;
- private _promise;
- private sleepTime;
- private maxSleepTime;
- isExponentialBackoffExpired(): boolean;
- /**
- * @param ref - The firebaseStorage.Reference object this task came
- * from, untyped to avoid cyclic dependencies.
- * @param blob - The blob to upload.
- */
- constructor(ref: _Reference, blob: _FbsBlob, metadata?: Metadata | null);
- private _makeProgressCallback;
- private _shouldDoResumable;
- private _start;
- private _resolveToken;
- private _createResumable;
- private _fetchStatus;
- private _continueUpload;
- private _increaseMultiplier;
- private _fetchMetadata;
- private _oneShotUpload;
- private _updateProgress;
- private _transition;
- private completeTransitions_;
- /**
- * A snapshot of the current task state.
- */
- get snapshot(): UploadTaskSnapshot;
- /**
- * Adds a callback for an event.
- * @param type - The type of event to listen for.
- * @param nextOrObserver -
- * The `next` function, which gets called for each item in
- * the event stream, or an observer object with some or all of these three
- * properties (`next`, `error`, `complete`).
- * @param error - A function that gets called with a `StorageError`
- * if the event stream ends due to an error.
- * @param completed - A function that gets called if the
- * event stream ends normally.
- * @returns
- * If only the event argument is passed, returns a function you can use to
- * add callbacks (see the examples above). If more than just the event
- * argument is passed, returns a function you can call to unregister the
- * callbacks.
- */
- on(type: _TaskEvent, nextOrObserver?: StorageObserver<UploadTaskSnapshot> | null | ((snapshot: UploadTaskSnapshot) => unknown), error?: ((a: StorageError_2) => unknown) | null, completed?: CompleteFn | null): Unsubscribe_2 | Subscribe_2<UploadTaskSnapshot>;
- /**
- * This object behaves like a Promise, and resolves with its snapshot data
- * when the upload completes.
- * @param onFulfilled - The fulfillment callback. Promise chaining works as normal.
- * @param onRejected - The rejection callback.
- */
- then<U>(onFulfilled?: ((value: UploadTaskSnapshot) => U | Promise<U>) | null, onRejected?: ((error: StorageError_2) => U | Promise<U>) | null): Promise<U>;
- /**
- * Equivalent to calling `then(null, onRejected)`.
- */
- catch<T>(onRejected: (p1: StorageError_2) => T | Promise<T>): Promise<T>;
- /**
- * Adds the given observer.
- */
- private _addObserver;
- /**
- * Removes the given observer.
- */
- private _removeObserver;
- private _notifyObservers;
- private _finishPromise;
- private _notifyObserver;
- /**
- * Resumes a paused task. Has no effect on a currently running or failed task.
- * @returns True if the operation took effect, false if ignored.
- */
- resume(): boolean;
- /**
- * Pauses a currently running task. Has no effect on a paused or failed task.
- * @returns True if the operation took effect, false if ignored.
- */
- pause(): boolean;
- /**
- * Cancels a currently running or paused task. Has no effect on a complete or
- * failed task.
- * @returns True if the operation took effect, false if ignored.
- */
- cancel(): boolean;
- }
-
- /**
- * Holds data about the current state of the upload task.
- * @public
- */
- export declare interface UploadTaskSnapshot {
- /**
- * The number of bytes that have been successfully uploaded so far.
- */
- bytesTransferred: number;
- /**
- * Before the upload completes, contains the metadata sent to the server.
- * After the upload completes, contains the metadata sent back from the server.
- */
- metadata: FullMetadata;
- /**
- * The reference that spawned this snapshot's upload task.
- */
- ref: StorageReference;
- /**
- * The current state of the task.
- */
- state: TaskState;
- /**
- * The task of which this is a snapshot.
- */
- task: UploadTask;
- /**
- * The total number of bytes to be uploaded.
- */
- totalBytes: number;
- }
-
- /**
- * Type for url params stored in RequestInfo.
- */
- declare interface UrlParams {
- [name: string]: string | number;
- }
-
- export { }
|