{"version":3,"sources":["jsdelivr-header.js","/npm/use-amplify@0.0.3/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","/npm/use-amplify@0.0.3/src/utils/currentUser.ts","/npm/use-amplify@0.0.3/src/utils/graphqlOperation.ts","/npm/use-amplify@0.0.3/src/modules/useQuery/index.tsx","/npm/use-amplify@0.0.3/src/modules/useMutation/index.tsx","/npm/use-amplify@0.0.3/src/modules/useSubscription/index.tsx","/npm/use-amplify@0.0.3/src/types/global.ts","/npm/use-amplify@0.0.3/src/modules/useLazyQuery/index.tsx","/npm/use-amplify@0.0.3/src/modules/useLazySubscription/index.tsx","/npm/use-amplify@0.0.3/src/modules/usePaginatedQuery/index.tsx","/npm/use-amplify@0.0.3/src/modules/useDataStoreQuery/index.tsx","/npm/use-amplify@0.0.3/src/modules/useDataStoreSave/index.tsx","/npm/use-amplify@0.0.3/src/modules/useDataStoreDelete/index.tsx"],"names":[],"mappings":"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","file":"/npm/use-amplify@0.0.3/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/use-amplify@0.0.3/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import { Auth } from 'aws-amplify'\n\nexport const currentUser = async () => {\n  let user = null;\n  try {\n    user = await Auth.currentAuthenticatedUser();\n  } catch (e) {\n    console.log(e);\n  }\n\n  return user;\n};\n","import { currentUser } from \"./currentUser\";\nimport { API } from \"aws-amplify\";\n\nexport const graphqlOperation = async <\n  ResultType extends {},\n  VariablesType extends {} = {}\n>(\n  query: string,\n  variables?: VariablesType\n) => {\n  const user = await currentUser();\n\n  const authMode = (variables as any)?.authMode\n    ? (variables as any)?.authMode\n    : user\n    ? \"AMAZON_COGNITO_USER_POOLS\"\n    : \"AWS_IAM\";\n\n  const { data } = (await API.graphql({\n    query: query,\n    authMode,\n    variables,\n  })) as any;\n\n  return data;\n};\n","import _ from \"lodash\";\nimport React from \"react\";\nimport { useDeepCompareEffectNoCheck } from \"use-deep-compare-effect\";\nimport { graphqlOperation } from \"../../utils/graphqlOperation\";\nimport { UseQueryType } from \"./types\";\n\nexport const useQuery = <ResultType extends {}, VariablesType extends {} = {}>(\n  query: string,\n  variables?: VariablesType\n): UseQueryType<ResultType> => {\n  const [loading, setLoading] = React.useState(true);\n  const [mutationLoading, setMutationLoading] = React.useState(false);\n  const [error,] = React.useState(\"\");\n  const [data, setData] = React.useState<any>([]);\n  const [nextToken, setNextToken] = React.useState<any>([]);\n\n  const mutation = async <ResultType extends {}, VariablesType extends {} = {}>(\n    query: string,\n    variables?: VariablesType\n  ) => {\n    let data = null;\n    try {\n      await setMutationLoading(true);\n      data = await graphqlOperation<ResultType, VariablesType>(\n        query,\n        variables\n      );\n      await setMutationLoading(false);\n      return data;\n    } catch (e) {\n      console.log(e);\n      await setMutationLoading(false);\n      data = e;\n    }\n\n    return data;\n  };\n\n  const fetchQuery = async (\n    query: string,\n    variables?: any,\n    concat?: boolean\n  ) => {\n    setLoading(true);\n\n    const newData: any = await graphqlOperation<ResultType, VariablesType>(\n      query,\n      variables\n    );\n\n    if (variables && variables?.nextToken && concat) {\n      const node = _.get(data, variables.name);\n      setData({\n        [variables.name]: {\n          items: (node?.items || [])?.concat(newData[variables.name]?.items),\n          nextToken: newData[variables.name]?.nextToken,\n        },\n      });\n    } else {\n      setData(newData);\n    }\n    setLoading(false);\n    // setError(error);\n  };\n\n  const refetch = () => {\n    if (query) fetchQuery(query, variables, false);\n  };\n\n  useDeepCompareEffectNoCheck(() => {\n    if (query) fetchQuery(query, variables, true);\n  }, [query, variables]);\n\n  return {\n    loading,\n    data,\n    error,\n    refetch,\n    mutation,\n    mutationLoading,\n  };\n};\n","import React from \"react\";\nimport {\n  MutationHookOptions,\n  MutationTuple,\n  OperationVariables,\n} from \"./types\";\nimport { graphqlOperation } from \"../../utils/graphqlOperation\";\n\nexport const useMutation = <\n  TInputData extends {},\n  TResponseData = any | null,\n  TVariables = OperationVariables,\n  TContext = any,\n  TCache = any\n  >\n(\n  mutation: any,\n  options?: MutationHookOptions<TInputData>\n): MutationTuple<TResponseData>  => {\n  const [loading, setLoading] = React.useState<boolean>(false);\n  const [error, setError] = React.useState<any>(\"\");\n  const [data, setData] = React.useState<TResponseData | null>(null);\n\n  const mutate = async <ResultType extends {}, VariablesType extends {} = {}>(\n    variables?: VariablesType\n  ) => {\n    await setLoading(true);\n    const result:any = await graphqlOperation(mutation, variables);\n    await setError(result.error);\n    await setData(result as TResponseData);\n    await setLoading(false);\n    return result;\n  };\n\n  return [\n    mutate,\n    {\n      data,\n      loading,\n      error,\n    },\n  ];\n};\n","import { useEffect, useState } from \"react\";\nimport { API, Auth } from \"aws-amplify\";\nimport { SubscriptionHookOptions, UseSubscriptionType } from \"./types\";\n\nexport const useSubscription = <\n  TResponseData extends {},\n  VariablesType extends {} = {}\n  >(\n  query: string,\n  variables?: VariablesType,\n  options?: SubscriptionHookOptions<TResponseData>\n): UseSubscriptionType<TResponseData> => {\n  const [error, setError] = useState<any>(\"\");\n  const [loading, setLoading] = useState<boolean>(false);\n  const [data, setData] = useState<TResponseData | null>(null);\n\n  useEffect(() => {\n    let subscription: any = null;\n\n    const setUpSubscription = async () => {\n      const user = await Auth.currentAuthenticatedUser();\n\n      const authMode = (options as any)?.authMode\n        ? (options as any)?.authMode\n        : user\n          ? \"AMAZON_COGNITO_USER_POOLS\"\n          : \"AWS_IAM\";\n\n      const queryVariables =\n        user && options?.withOwner\n          ? { ...variables, owner: user?.username }\n          : variables;\n\n      subscription = (\n        API.graphql({\n          authMode: authMode,\n          query: query,\n          variables: queryVariables,\n        }) as any\n      ).subscribe({\n        next(payload: any) {\n          setLoading(true);\n          const data = payload.value?.data;\n          setData(data);\n          options?.onSubscriptionData &&\n          data &&\n          options?.onSubscriptionData(data);\n          setLoading(false);\n        },\n      });\n    };\n    setUpSubscription();\n    return () => {\n      subscription && subscription?.unsubscribe();\n    };\n  }, [variables]);\n\n  return {\n    loading,\n    data,\n    error,\n  };\n};\n","export enum AuthMode {\n  AWS_IAM = \"AWS_IAM\",\n  AMAZON_COGNITO_USER_POOLS = \"AMAZON_COGNITO_USER_POOLS\",\n}\n","import React, { useEffect } from \"react\";\nimport { graphqlOperation } from \"../../utils/graphqlOperation\";\nimport { LazyQueryTuple } from \"./types\";\n\nexport const useLazyQuery = <\n  ResultType extends {},\n  VariablesType extends {} = {}\n  >(\n  query: string\n): LazyQueryTuple<ResultType> => {\n  const [totalPages, setTotalPages] = React.useState<number>(1);\n  const [loading, setLoading] = React.useState(false);\n  const [error, setErrors] = React.useState(\"\");\n  const [data, setData] = React.useState<any>([]);\n\n  const [nextTokens, setNextTokens] = React.useState<any>([undefined]);\n\n  const execute = async <ResultType extends {}, VariablesType extends {} = {}>(\n    variables?: any\n  ) => {\n    try {\n      await setLoading(true);\n\n      const response: any = await graphqlOperation<ResultType, VariablesType>(\n        query,\n        variables\n      );\n\n      setData(response);\n\n      if (response.errors) setErrors(response.errors);\n\n      const token = response[variables?.name].nextToken;\n\n      if (!token) return;\n\n      checkNextPage(variables.page, variables, token);\n\n    } catch (e) {\n      setErrors(e);\n    } finally {\n      await setLoading(false);\n    }\n  };\n\n  const checkNextPage = async (\n    page: number,\n    variables: any,\n    token: string\n  ) => {\n    if (!token) return;\n\n    const response: any = await graphqlOperation<ResultType, VariablesType>(\n      query,\n      { ...variables, nextToken: token }\n    );\n\n    if (\n      variables &&\n      response &&\n      response[variables?.name] &&\n      response[variables?.name]?.items.length > 0\n    ){\n      const shallow = nextTokens;\n\n      const nextPage = page + 1;\n\n      shallow[nextPage] = token;\n\n      await setNextTokens([...shallow]);\n      await setTotalPages(shallow.length);\n    }\n  };\n\n  return [\n    execute,\n    {\n      data,\n      loading,\n      error,\n      nextTokens,\n      setNextTokens,\n      totalPages,\n    },\n  ];\n};\n","import { useEffect, useState } from \"react\";\nimport { API, Auth } from \"aws-amplify\";\nimport { LazySubscriptionTuple, SubscriptionHookOptions } from \"./types\";\n\nexport const useLazySubscription = <TResponseData extends {},\n  VariablesType extends {} = {}>(\n  query: string,\n\n): LazySubscriptionTuple<TResponseData> => {\n  const [error, setError] = useState<any>(\"\");\n  const [loading, setLoading] = useState<boolean>(false);\n  const [data, setData] = useState<TResponseData | null>(null);\n  let subscription: any = null;\n\n  const execute = async <ResultType extends {}, VariablesType extends {} = {}>(\n    variables?: VariablesType,\n    options?: SubscriptionHookOptions<TResponseData>\n  ) => {\n    const user = await Auth.currentAuthenticatedUser();\n\n    const authMode = (options as any)?.authMode\n      ? (options as any)?.authMode\n      : user\n        ? \"AMAZON_COGNITO_USER_POOLS\"\n        : \"AWS_IAM\";\n\n    const queryVariables =\n      user && options?.withOwner\n        ? { ...variables, owner: user?.username }\n        : variables;\n\n    subscription = (\n      API.graphql({\n        authMode: authMode,\n        query: query,\n        variables: queryVariables\n      }) as any\n    ).subscribe({\n      next(payload: any) {\n        setLoading(true);\n        const data = payload.value?.data;\n        setData(data);\n        options?.onSubscriptionData &&\n        data &&\n        options?.onSubscriptionData(data);\n        setLoading(false);\n      }\n    });\n  };\n  useEffect(() => {\n    return () => {\n      subscription && subscription?.unsubscribe();\n    };\n  }, []);\n\n  return [\n    execute,\n    {\n      data,\n      loading,\n      error\n    }\n  ];\n};\n","import React from \"react\";\nimport { useEffect } from \"react\";\nimport { useDeepCompareEffectNoCheck } from \"use-deep-compare-effect\";\nimport { UseQueryType } from \"./types\";\nimport { graphqlOperation } from \"../../utils/graphqlOperation\";\n\nexport const usePaginatedQuery = <\n  ResultType extends {},\n  VariablesType extends {} = {}\n  >(\n  query: string,\n  variables?: any\n): UseQueryType<ResultType> => {\n  const [loading, setLoading] = React.useState(true);\n  const [errors, setErrors] = React.useState(\"\");\n  const [data, setData] = React.useState<any>([]);\n  const [totalPages, setTotalPages] = React.useState<number>(1);\n\n  const [nextTokens, setNextTokens] = React.useState<any>([undefined]);\n  const [page, setPage] = React.useState<number>(0);\n  const [nextToken, setNextToken] = React.useState<string | undefined | number>(\n    undefined\n  );\n\n  const fetchQuery = async (query: string, variables?: any) => {\n    try {\n      setLoading(true);\n\n      const response: any = await graphqlOperation<ResultType, VariablesType>(\n        query,\n        { ...variables, nextToken }\n      );\n\n      setData(response);\n\n      if (response.errors) setErrors(response.errors);\n\n      const token = response[variables?.name].nextToken;\n\n      if (!token) return;\n\n      checkNextPage(page, token);\n    } catch (e) {\n      setErrors(e);\n    } finally {\n      await setLoading(false);\n    }\n  };\n\n  const checkNextPage = async (page: number, token: string) => {\n    if (!token) return;\n\n    const response: any = await graphqlOperation<ResultType, VariablesType>(\n      query,\n      { ...variables, nextToken: token }\n    );\n    if (\n      response &&\n      response[variables.name] &&\n      response[variables.name]?.items.length > 0\n    ) {\n      const shallow = nextTokens;\n\n      const nextPage = page + 1;\n\n      shallow[nextPage] = token;\n      setNextTokens([...shallow]);\n      setTotalPages(shallow.length);\n    }\n  };\n\n  const refetch = async () => {\n    if (!query) return;\n\n    try {\n      setLoading(true);\n\n      const response: any = await graphqlOperation<ResultType, VariablesType>(\n        query,\n        { ...variables, nextToken }\n      );\n\n      setData(response);\n\n      if (response.errors) setErrors(response.errors);\n    } catch (e) {\n      setErrors(e);\n    } finally {\n      await setLoading(false);\n    }\n  };\n\n  useDeepCompareEffectNoCheck(() => {\n    if (query) fetchQuery(query, variables);\n  }, [query, variables, nextToken]);\n\n  useEffect(() => {\n    if (page === 0) {\n      setNextToken(undefined);\n      return;\n    }\n    setNextToken(nextTokens[page]);\n  }, [page]);\n\n  return {\n    loading,\n    data,\n    errors,\n    refetch,\n    nextTokens,\n    setNextTokens,\n    nextToken,\n    setNextToken,\n    totalPages,\n    page,\n    setPage,\n  };\n};\n","import { useState } from \"react\";\nimport { DataStore } from \"aws-amplify\";\n\nexport interface QueryResult<TData = any> {\n  data?: TData | null;\n  error?: any;\n  loading: boolean;\n}\n\nexport type LazyQueryTuple<TData> = [\n  (predicates?: any, pagination?: any) => any,\n  QueryResult<TData>\n];\n\nexport const useDataStoreQuery = <\n  ResultType extends {},\n  VariablesType extends {} = {}\n>(\n  entity: any\n): LazyQueryTuple<ResultType> => {\n  const [loading, setLoading] = useState(false);\n  const [error, setErrors] = useState(\"\");\n  const [data, setData] = useState<any>([]);\n\n  const execute = async <ResultType extends {}, VariablesType extends {} = {}>(\n    query?: any,\n    pagination?: any\n  ) => {\n    let response: any = null;\n    try {\n      setLoading(true);\n\n      response = await DataStore.query(entity, query, pagination);\n\n      setData(response);\n\n      if (response.errors) setErrors(response.errors);\n    } catch (e) {\n      setErrors(e);\n    } finally {\n      setLoading(false);\n    }\n\n    return response;\n  };\n\n  return [\n    execute,\n    {\n      data,\n      loading,\n      error,\n    },\n  ];\n};\n","import { useState } from \"react\";\nimport { DataStore } from \"aws-amplify\";\n\nexport interface QueryResult<TData = any> {\n  data?: TData | null;\n  error?: any;\n  loading: boolean;\n}\n\nexport type LazyQueryTuple<TData> = [\n  (predicates?: any, pagination?: any) => any,\n  QueryResult<TData>\n];\n\nexport const useDataStoreSave = <\n  ResultType extends {},\n  VariablesType extends {} = {}\n>(\n  entity: any\n): LazyQueryTuple<ResultType> => {\n  const [loading, setLoading] = useState(false);\n  const [error, setErrors] = useState(\"\");\n  const [data, setData] = useState<any>([]);\n\n  const execute = async <ResultType extends {}, VariablesType extends {} = {}>(\n    entity?: any\n  ) => {\n    let response = null;\n    try {\n      setLoading(true);\n\n      response = await DataStore.save(entity);\n\n      setData(response);\n\n      if (response.errors) setErrors(response.errors);\n    } catch (e) {\n      setErrors(e);\n    } finally {\n      setLoading(false);\n    }\n    return response;\n  };\n\n  return [\n    execute,\n    {\n      data,\n      loading,\n      error,\n    },\n  ];\n};\n","import { useState } from \"react\";\nimport { DataStore } from \"aws-amplify\";\n\nexport interface QueryResult<TData = any> {\n  data?: TData | null;\n  error?: any;\n  loading: boolean;\n}\n\nexport type LazyQueryTuple<TData> = [\n  (predicates?: any, pagination?: any) => any,\n  QueryResult<TData>\n];\n\nexport const useDataStoreDelete = <\n  ResultType extends {},\n  VariablesType extends {} = {}\n>(\n  entity: any\n): LazyQueryTuple<ResultType> => {\n  const [loading, setLoading] = useState(false);\n  const [error, setErrors] = useState(\"\");\n  const [data, setData] = useState<any>([]);\n\n  const execute = async <ResultType extends {}, VariablesType extends {} = {}>(\n    entity?: any,\n    predicates?: any\n  ) => {\n    let response: any = null;\n    try {\n      setLoading(true);\n\n      response = await DataStore.delete(entity, predicates);\n\n      setData(response);\n\n      if (response.errors) setErrors(response.errors);\n    } catch (e) {\n      setErrors(e);\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  return [\n    execute,\n    {\n      data,\n      loading,\n      error,\n    },\n  ];\n};\n"]}