Index: frontend/node_modules/throat/index.d.ts
===================================================================
--- frontend/node_modules/throat/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/throat/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,32 @@
+/**
+ * Throttle the given function to only run `size` times in parallel.
+ * Extra calls will be queued until one of the earlier calls completes.
+ */
+declare function throat<TResult, TArgs extends any[]>(
+  size: number,
+  fn: (...args: TArgs) => Promise<TResult>
+): (...args: TArgs) => Promise<TResult>;
+
+/**
+ * Throttle the given function to only run `size` times in parallel.
+ * Extra calls will be queued until one of the earlier calls completes.
+ */
+declare function throat<TResult, TArgs extends any[]>(
+  fn: (...args: TArgs) => Promise<TResult>,
+  size: number
+): (...args: TArgs) => Promise<TResult>;
+
+/**
+ * Create a throttle that only allows `size` calls in parallel.
+ * Extra calls will be queued until one of the earlier calls completes.
+ *
+ * To create an exclusive lock, just use a `size` of `1`.
+ */
+declare function throat(
+  size: number
+): <TResult, TArgs extends any[] = []>(
+  fn: (...args: TArgs) => Promise<TResult>,
+  ...args: TArgs
+) => Promise<TResult>;
+export default throat;
+
