Index: frontend/node_modules/promise/index.js.flow
===================================================================
--- frontend/node_modules/promise/index.js.flow	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/promise/index.js.flow	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,52 @@
+// @flow
+
+declare class ThenPromise<+R> extends Promise<R> {
+  constructor(callback: (
+    resolve: (result: Promise<R> | R) => void,
+    reject:  (error: any) => void
+  ) => mixed): void;
+
+
+  then(onFulfill: null | void, onReject: null | void): ThenPromise<R>;
+  then<U>(
+    onFulfill: null | void,
+    onReject: (error: any) => Promise<U> | U
+  ): ThenPromise<R | U>;
+  then<U>(
+    onFulfill: (value: R) => Promise<U> | U,
+    onReject: null | void | ((error: any) => Promise<U> | U)
+  ): ThenPromise<U>;
+
+
+  catch(onReject: null | void): ThenPromise<R>;
+  catch<U>(
+    onReject: (error: any) => Promise<U> | U
+  ): ThenPromise<R | U>;
+
+  // Extensions specific to then/promise
+
+  /**
+   * Attaches callbacks for the resolution and/or rejection of the ThenPromise, without returning a new promise.
+   * @param onfulfilled The callback to execute when the ThenPromise is resolved.
+   * @param onrejected The callback to execute when the ThenPromise is rejected.
+   */
+  done(onfulfilled?: (value: R) => any, onrejected?: (reason: any) => any): void;
+
+
+  /**
+   * Calls a node.js style callback.  If none is provided, the promise is returned.
+   */
+  nodeify(callback: void | null): ThenPromise<R>;
+  nodeify(callback: (err: Error, value: R) => void): void;
+
+  static resolve<T>(object: Promise<T> | T): ThenPromise<T>;
+  static reject<T>(error?: any): ThenPromise<T>;
+  static all<T: Iterable<mixed>>(promises: T): ThenPromise<$TupleMap<T, typeof $await>>;
+  static race<T, Elem: Promise<T> | T>(promises: Iterable<Elem>): ThenPromise<T>;
+
+  // Extensions specific to then/promise
+
+  static denodeify(fn: Function): (...args: any[]) => ThenPromise<any>;
+  static nodeify(fn: Function): Function;
+}
+module.exports = ThenPromise;
