initial commit

This commit is contained in:
2025-09-01 22:12:29 +02:00
parent b1873f9c1d
commit 02a54f61c0
5598 changed files with 903558 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
/**
* @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.
*/
import { FirebaseApp } from '@firebase/app-types';
import { FirebaseService } from '@firebase/app-types/private';
import { forceLongPolling, forceWebSockets, Database as ModularDatabase } from '@firebase/database';
import { Compat, EmulatorMockTokenOptions } from '@firebase/util';
import { Reference } from './Reference';
/**
* Class representing a firebase database.
*/
export declare class Database implements FirebaseService, Compat<ModularDatabase> {
readonly _delegate: ModularDatabase;
readonly app: FirebaseApp;
static readonly ServerValue: {
TIMESTAMP: object;
increment: (delta: number) => object;
};
/**
* The constructor should not be called by users of our public API.
*/
constructor(_delegate: ModularDatabase, app: FirebaseApp);
INTERNAL: {
delete: () => Promise<void>;
forceWebSockets: typeof forceWebSockets;
forceLongPolling: typeof forceLongPolling;
};
/**
* Modify this instance to communicate with the Realtime Database emulator.
*
* <p>Note: This method must be called before performing any other operation.
*
* @param host - the emulator host (ex: localhost)
* @param port - the emulator port (ex: 8080)
* @param options.mockUserToken - the mock auth token to use for unit testing Security Rules
*/
useEmulator(host: string, port: number, options?: {
mockUserToken?: EmulatorMockTokenOptions;
}): void;
/**
* Returns a reference to the root or to the path specified in the provided
* argument.
*
* @param path - The relative string path or an existing Reference to a database
* location.
* @throws If a Reference is provided, throws if it does not belong to the
* same project.
* @returns Firebase reference.
*/
ref(path?: string): Reference;
ref(path?: Reference): Reference;
/**
* Returns a reference to the root or the path specified in url.
* We throw a exception if the url is not in the same domain as the
* current repo.
* @returns Firebase reference.
*/
refFromURL(url: string): Reference;
goOffline(): void;
goOnline(): void;
}

View File

@@ -0,0 +1,207 @@
/**
* @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.
*/
import { DataSnapshot as ModularDataSnapshot, Query as ExpQuery, DatabaseReference as ModularReference } from '@firebase/database';
import { Compat } from '@firebase/util';
import { Database } from './Database';
import { OnDisconnect } from './onDisconnect';
import { TransactionResult } from './TransactionResult';
/**
* Class representing a firebase data snapshot. It wraps a SnapshotNode and
* surfaces the public methods (val, forEach, etc.) we want to expose.
*/
export declare class DataSnapshot implements Compat<ModularDataSnapshot> {
readonly _database: Database;
readonly _delegate: ModularDataSnapshot;
constructor(_database: Database, _delegate: ModularDataSnapshot);
/**
* Retrieves the snapshot contents as JSON. Returns null if the snapshot is
* empty.
*
* @returns JSON representation of the DataSnapshot contents, or null if empty.
*/
val(): unknown;
/**
* Returns the snapshot contents as JSON, including priorities of node. Suitable for exporting
* the entire node contents.
* @returns JSON representation of the DataSnapshot contents, or null if empty.
*/
exportVal(): unknown;
toJSON(): unknown;
/**
* Returns whether the snapshot contains a non-null value.
*
* @returns Whether the snapshot contains a non-null value, or is empty.
*/
exists(): boolean;
/**
* Returns a DataSnapshot of the specified child node's contents.
*
* @param path - Path to a child.
* @returns DataSnapshot for child node.
*/
child(path: string): DataSnapshot;
/**
* Returns whether the snapshot contains a child at the specified path.
*
* @param path - Path to a child.
* @returns Whether the child exists.
*/
hasChild(path: string): boolean;
/**
* Returns the priority of the object, or null if no priority was set.
*
* @returns The priority.
*/
getPriority(): string | number | null;
/**
* Iterates through child nodes and calls the specified action for each one.
*
* @param action - Callback function to be called
* for each child.
* @returns True if forEach was canceled by action returning true for
* one of the child nodes.
*/
forEach(action: (snapshot: IteratedDataSnapshot) => boolean | void): boolean;
/**
* Returns whether this DataSnapshot has children.
* @returns True if the DataSnapshot contains 1 or more child nodes.
*/
hasChildren(): boolean;
get key(): string;
/**
* Returns the number of children for this DataSnapshot.
* @returns The number of children that this DataSnapshot contains.
*/
numChildren(): number;
/**
* @returns The Firebase reference for the location this snapshot's data came
* from.
*/
getRef(): Reference;
get ref(): Reference;
}
/**
* Represents a child snapshot of a `Reference` that is being iterated over. The key will never be undefined.
*/
export interface IteratedDataSnapshot extends DataSnapshot {
key: string;
}
export interface SnapshotCallback {
(dataSnapshot: DataSnapshot, previousChildName?: string | null): unknown;
}
/**
* A Query represents a filter to be applied to a firebase location. This object purely represents the
* query expression (and exposes our public API to build the query). The actual query logic is in ViewBase.js.
*
* Since every Firebase reference is a query, Firebase inherits from this object.
*/
export declare class Query implements Compat<ExpQuery> {
readonly database: Database;
readonly _delegate: ExpQuery;
constructor(database: Database, _delegate: ExpQuery);
on(eventType: string, callback: SnapshotCallback, cancelCallbackOrContext?: ((a: Error) => unknown) | object | null, context?: object | null): SnapshotCallback;
off(eventType?: string, callback?: SnapshotCallback, context?: object | null): void;
/**
* Get the server-value for this query, or return a cached value if not connected.
*/
get(): Promise<DataSnapshot>;
/**
* Attaches a listener, waits for the first event, and then removes the listener
*/
once(eventType: string, callback?: SnapshotCallback, failureCallbackOrContext?: ((a: Error) => void) | object | null, context?: object | null): Promise<DataSnapshot>;
/**
* Set a limit and anchor it to the start of the window.
*/
limitToFirst(limit: number): Query;
/**
* Set a limit and anchor it to the end of the window.
*/
limitToLast(limit: number): Query;
/**
* Given a child path, return a new query ordered by the specified grandchild path.
*/
orderByChild(path: string): Query;
/**
* Return a new query ordered by the KeyIndex
*/
orderByKey(): Query;
/**
* Return a new query ordered by the PriorityIndex
*/
orderByPriority(): Query;
/**
* Return a new query ordered by the ValueIndex
*/
orderByValue(): Query;
startAt(value?: number | string | boolean | null, name?: string | null): Query;
startAfter(value?: number | string | boolean | null, name?: string | null): Query;
endAt(value?: number | string | boolean | null, name?: string | null): Query;
endBefore(value?: number | string | boolean | null, name?: string | null): Query;
/**
* Load the selection of children with exactly the specified value, and, optionally,
* the specified name.
*/
equalTo(value: number | string | boolean | null, name?: string): Query;
/**
* @returns URL for this location.
*/
toString(): string;
toJSON(): string;
/**
* Return true if this query and the provided query are equivalent; otherwise, return false.
*/
isEqual(other: Query): boolean;
/**
* Helper used by .on and .once to extract the context and or cancel arguments.
* @param fnName - The function name (on or once)
*
*/
private static getCancelAndContextArgs_;
get ref(): Reference;
}
export declare class Reference extends Query implements Compat<ModularReference> {
readonly database: Database;
readonly _delegate: ModularReference;
then: Promise<Reference>['then'];
catch: Promise<Reference>['catch'];
/**
* Call options:
* new Reference(Repo, Path) or
* new Reference(url: string, string|RepoManager)
*
* Externally - this is the firebase.database.Reference type.
*/
constructor(database: Database, _delegate: ModularReference);
/** @returns {?string} */
getKey(): string | null;
child(pathString: string): Reference;
/** @returns {?Reference} */
getParent(): Reference | null;
/** @returns {!Reference} */
getRoot(): Reference;
set(newVal: unknown, onComplete?: (error: Error | null) => void): Promise<void>;
update(values: object, onComplete?: (a: Error | null) => void): Promise<void>;
setWithPriority(newVal: unknown, newPriority: string | number | null, onComplete?: (a: Error | null) => void): Promise<void>;
remove(onComplete?: (a: Error | null) => void): Promise<void>;
transaction(transactionUpdate: (currentData: unknown) => unknown, onComplete?: (error: Error | null, committed: boolean, dataSnapshot: DataSnapshot | null) => void, applyLocally?: boolean): Promise<TransactionResult>;
setPriority(priority: string | number | null, onComplete?: (a: Error | null) => void): Promise<void>;
push(value?: unknown, onComplete?: (a: Error | null) => void): Reference;
onDisconnect(): OnDisconnect;
get key(): string | null;
get parent(): Reference | null;
get root(): Reference;
}

View File

@@ -0,0 +1,26 @@
/**
* @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.
*/
import { DataSnapshot } from './Reference';
export declare class TransactionResult {
committed: boolean;
snapshot: DataSnapshot;
/**
* A type for the resolve value of Firebase.transaction.
*/
constructor(committed: boolean, snapshot: DataSnapshot);
toJSON(): object;
}

View File

@@ -0,0 +1,41 @@
/**
* @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.
*/
import { FirebaseAppCheckInternal } from '@firebase/app-check-interop-types';
import { FirebaseApp } from '@firebase/app-types';
import { FirebaseAuthInternal } from '@firebase/auth-interop-types';
import * as types from '@firebase/database-types';
/**
* Used by console to create a database based on the app,
* passed database URL and a custom auth implementation.
*
* @param app - A valid FirebaseApp-like object
* @param url - A valid Firebase databaseURL
* @param version - custom version e.g. firebase-admin version
* @param customAuthImpl - custom auth implementation
*/
export declare function initStandalone<T>({ app, url, version, customAuthImpl, customAppCheckImpl, namespace, nodeAdmin }: {
app: FirebaseApp;
url: string;
version: string;
customAuthImpl: FirebaseAuthInternal;
customAppCheckImpl?: FirebaseAppCheckInternal;
namespace: T;
nodeAdmin?: boolean;
}): {
instance: types.Database;
namespace: T;
};

View File

@@ -0,0 +1,27 @@
/**
* @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.
*/
import { OnDisconnect as ModularOnDisconnect } from '@firebase/database';
import { Compat } from '@firebase/util';
export declare class OnDisconnect implements Compat<ModularOnDisconnect> {
readonly _delegate: ModularOnDisconnect;
constructor(_delegate: ModularOnDisconnect);
cancel(onComplete?: (a: Error | null) => void): Promise<void>;
remove(onComplete?: (a: Error | null) => void): Promise<void>;
set(value: unknown, onComplete?: (a: Error | null) => void): Promise<void>;
setWithPriority(value: unknown, priority: number | string | null, onComplete?: (a: Error | null) => void): Promise<void>;
update(objectToMerge: Record<string, unknown>, onComplete?: (a: Error | null) => void): Promise<void>;
}

View File

@@ -0,0 +1,32 @@
/**
* @license
* Copyright 2021 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.
*/
import { FirebaseNamespace } from '@firebase/app-compat';
import * as types from '@firebase/database-types';
export declare function registerDatabase(instance: FirebaseNamespace): void;
declare module '@firebase/app-compat' {
interface FirebaseNamespace {
database?: {
(app?: FirebaseApp): types.FirebaseDatabase;
enableLogging: typeof types.enableLogging;
ServerValue: types.ServerValue;
Database: typeof types.FirebaseDatabase;
};
}
interface FirebaseApp {
database?(databaseURL?: string): types.FirebaseDatabase;
}
}

View File

@@ -0,0 +1,30 @@
/**
* @license
* Copyright 2021 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.
*/
import * as types from '@firebase/database-types';
declare module '@firebase/app-compat' {
interface FirebaseNamespace {
database?: {
(app?: FirebaseApp): types.FirebaseDatabase;
enableLogging: typeof types.enableLogging;
ServerValue: types.ServerValue;
Database: typeof types.FirebaseDatabase;
};
}
interface FirebaseApp {
database?(): types.FirebaseDatabase;
}
}

View File

@@ -0,0 +1,52 @@
/**
* @license
* Copyright 2021 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.
*/
import { FirebaseApp } from '@firebase/app-types';
import { enableLogging } from '@firebase/database';
import { Database } from './api/Database';
import * as INTERNAL from './api/internal';
import { DataSnapshot, Query, Reference } from './api/Reference';
declare const ServerValue: {
TIMESTAMP: object;
increment: (delta: number) => object;
};
/**
* A one off register function which returns a database based on the app and
* passed database URL. (Used by the Admin SDK)
*
* @param app - A valid FirebaseApp-like object
* @param url - A valid Firebase databaseURL
* @param version - custom version e.g. firebase-admin version
* @param nodeAdmin - true if the SDK is being initialized from Firebase Admin.
*/
export declare function initStandalone(app: FirebaseApp, url: string, version: string, nodeAdmin?: boolean): {
instance: import("@firebase/database-types").Database;
namespace: {
Reference: typeof Reference;
Query: typeof Query;
Database: typeof Database;
DataSnapshot: typeof DataSnapshot;
enableLogging: typeof enableLogging;
INTERNAL: typeof INTERNAL;
ServerValue: {
TIMESTAMP: object;
increment: (delta: number) => object;
};
};
};
export { Database, Query, Reference, enableLogging, ServerValue };
export { OnDisconnect } from '@firebase/database';
export { DataSnapshot } from './api/Reference';

View File

@@ -0,0 +1,17 @@
/**
* @license
* Copyright 2021 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.
*/
export declare const warn: (msg: string) => void;

View File

@@ -0,0 +1,18 @@
/**
* @license
* Copyright 2021 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.
*/
export declare const validateBoolean: (fnName: string, argumentName: string, bool: unknown, optional: boolean) => void;
export declare const validateEventType: (fnName: string, eventType: string, optional: boolean) => void;

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
import '../src/index';

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

View File

@@ -0,0 +1,34 @@
/**
* @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.
*/
/**
* A set of functions to clean up event handlers.
*/
export declare let eventCleanupHandlers: any[];
/** Clean up outstanding event handlers */
export declare function eventCleanup(): void;
/**
* Creates a struct which waits for many events.
* @param pathAndEvents - an array of tuples of [Firebase, [event type strings]]
*/
export declare function eventTestHelper(pathAndEvents: any, helperName?: any): {
promise: Promise<unknown>;
initPromise: Promise<unknown>;
waiter: () => boolean;
watchesInitializedWaiter: () => boolean;
unregister: () => void;
addExpectedEvents(moreEvents: any): void;
};

View File

@@ -0,0 +1,42 @@
/**
* @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.
*/
import '../../src/index';
import { Path } from '../../../database/src/core/util/Path';
import { Query, Reference } from '../../src/api/Reference';
export declare const TEST_PROJECT: any;
export declare const DATABASE_ADDRESS: any;
export declare const DATABASE_URL: any;
export declare function createTestApp(): import("@firebase/app-compat").FirebaseApp;
/**
* Gets or creates a root node to the test namespace. All calls sharing the
* value of opt_i will share an app context.
*/
export declare function getRootNode(i?: number, ref?: string): any;
/**
* Create multiple refs to the same top level
* push key - each on its own Firebase.Context.
*/
export declare function getRandomNode(numNodes?: any): Reference | Reference[];
export declare function getQueryValue(query: Query): Promise<unknown>;
export declare function pause(milliseconds: number): Promise<void>;
export declare function getPath(query: Query): string;
export declare function shuffle(arr: any, randFn?: () => number): void;
export declare function getFreshRepo(path: Path): any;
export declare function getFreshRepoFromReference(ref: any): any;
export declare function getSnap(path: any): any;
export declare function getVal(path: any): any;
export declare function canCreateExtraConnections(): boolean;

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

View File

@@ -0,0 +1,17 @@
/**
* @license
* 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.
*/
export {};

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
import '../src/index';