{"version":3,"file":"js/9924-0446cbc73bf469dd9e33.js","mappings":"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","sources":["webpack://app/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://app/./node_modules/react-beforeunload/lib/index.esm.js","webpack://app/./node_modules/@rest-hooks/core/lib/react-integration/hooks/useController.js","webpack://app/./node_modules/@rest-hooks/normalizr/lib/schemas/Delete.js","webpack://app/./node_modules/@rest-hooks/endpoint/lib/endpoint.js","webpack://app/./node_modules/@rest-hooks/rest/lib/BaseResource.js","webpack://app/./node_modules/@rest-hooks/rest/lib/paramsToString.js","webpack://app/./node_modules/@rest-hooks/rest/lib/Resource.js"],"sourcesContent":["var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import PropTypes from 'prop-types';\nimport { useRef, useEffect } from 'react';\nimport invariant from 'tiny-invariant';\n\nvar useBeforeunload = function useBeforeunload(handler) {\n !(handler == null || typeof handler === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `handler` to be a function') : invariant(false) : void 0;\n var eventListenerRef = useRef();\n useEffect(function () {\n eventListenerRef.current = function (event) {\n var returnValue = handler === null || handler === void 0 ? void 0 : handler(event); // Handle legacy `event.returnValue` property\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n\n if (typeof returnValue === 'string') {\n return event.returnValue = returnValue;\n } // Chrome doesn't support `event.preventDefault()` on `BeforeUnloadEvent`,\n // instead it requires `event.returnValue` to be set\n // https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#browser_compatibility\n\n\n if (event.defaultPrevented) {\n return event.returnValue = '';\n }\n };\n }, [handler]);\n useEffect(function () {\n var eventListener = function eventListener(event) {\n return eventListenerRef.current(event);\n };\n\n window.addEventListener('beforeunload', eventListener);\n return function () {\n window.removeEventListener('beforeunload', eventListener);\n };\n }, []);\n};\n\nvar Beforeunload = function Beforeunload(_ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? null : _ref$children,\n onBeforeunload = _ref.onBeforeunload;\n useBeforeunload(onBeforeunload);\n return children;\n};\n\nBeforeunload.propTypes\n/* remove-proptypes */\n= process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.any,\n onBeforeunload: PropTypes.func.isRequired\n} : {};\n\nexport { Beforeunload, useBeforeunload };\n//# sourceMappingURL=index.esm.js.map\n","import { useContext } from 'react';\nimport { ControllerContext } from '../context.js';\n/**\n * Imperative control of Rest Hooks store\n * @see https://resthooks.io/docs/api/useController\n */\n\nexport default function useController() {\n return useContext(ControllerContext);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDb250ZXh0IiwiQ29udHJvbGxlckNvbnRleHQiLCJ1c2VDb250cm9sbGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlYWN0LWludGVncmF0aW9uL2hvb2tzL3VzZUNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB7IENvbnRyb2xsZXJDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC5qcyc7XG5cbi8qKlxuICogSW1wZXJhdGl2ZSBjb250cm9sIG9mIFJlc3QgSG9va3Mgc3RvcmVcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvdXNlQ29udHJvbGxlclxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VDb250cm9sbGVyKCk6IENvbnRyb2xsZXIge1xuICByZXR1cm4gdXNlQ29udGV4dChDb250cm9sbGVyQ29udGV4dCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVQsUUFBMkIsT0FBM0I7QUFHQSxTQUFTQyxpQkFBVCxRQUFrQyxlQUFsQztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsU0FBU0MsYUFBVCxHQUFxQztFQUNsRCxPQUFPRixVQUFVLENBQUNDLGlCQUFELENBQWpCO0FBQ0QifQ==","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { DELETED } from '../special.js';\n\n/**\n * Marks entity as deleted.\n * @see https://resthooks.io/docs/api/Delete\n */\nexport default class Delete {\n constructor(entity) {\n if (process.env.NODE_ENV !== 'production' && !entity) {\n throw new Error('Expected option \"entity\" not found on DeleteSchema.');\n }\n\n this._entity = entity;\n }\n\n get key() {\n return this._entity.key;\n }\n\n normalize(input, parent, key, visit, addEntity, visitedEntities) {\n // TODO: what's store needs to be a differing type from fromJS\n const processedEntity = this._entity.process(input, parent, key);\n\n const id = this._entity.pk(processedEntity, parent, key);\n\n if (process.env.NODE_ENV !== 'production' && (id === undefined || id === '')) {\n var _name;\n\n const error = new Error(`Missing usable primary key when normalizing response.\n\n This is likely due to a malformed response.\n Try inspecting the network response or fetch() return value.\n Or use debugging tools: https://resthooks.io/docs/guides/debugging\n Learn more about schemas: https://resthooks.io/docs/api/schema\n\n Delete(Entity): Delete(${(_name = this._entity.name) != null ? _name : this._entity})\n Value: ${input && JSON.stringify(input, null, 2)}\n `);\n error.status = 400;\n throw error;\n }\n\n addEntity(this, DELETED, id);\n return id;\n }\n\n infer(args, indexes, recurse) {\n return undefined;\n }\n\n denormalize(id, unvisit) {\n return unvisit(id, this._entity);\n }\n /* istanbul ignore next */\n\n\n _denormalizeNullable() {\n return [];\n }\n /* istanbul ignore next */\n\n\n _normalizeNullable() {\n return [];\n }\n /* istanbul ignore next */\n\n\n merge(existing, incoming) {\n return incoming;\n }\n\n useIncoming(existingMeta, incomingMeta, existing, incoming) {\n return existingMeta.date <= incomingMeta.date;\n }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUxFVEVEIiwiRGVsZXRlIiwiY29uc3RydWN0b3IiLCJlbnRpdHkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJFcnJvciIsIl9lbnRpdHkiLCJrZXkiLCJub3JtYWxpemUiLCJpbnB1dCIsInBhcmVudCIsInZpc2l0IiwiYWRkRW50aXR5IiwidmlzaXRlZEVudGl0aWVzIiwicHJvY2Vzc2VkRW50aXR5IiwiaWQiLCJwayIsInVuZGVmaW5lZCIsImVycm9yIiwibmFtZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0dXMiLCJpbmZlciIsImFyZ3MiLCJpbmRleGVzIiwicmVjdXJzZSIsImRlbm9ybWFsaXplIiwidW52aXNpdCIsIl9kZW5vcm1hbGl6ZU51bGxhYmxlIiwiX25vcm1hbGl6ZU51bGxhYmxlIiwibWVyZ2UiLCJleGlzdGluZyIsImluY29taW5nIiwidXNlSW5jb21pbmciLCJleGlzdGluZ01ldGEiLCJpbmNvbWluZ01ldGEiLCJkYXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvRGVsZXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXMgKi9cbmltcG9ydCB7IFNjaGVtYUNsYXNzLCBVbnZpc2l0RnVuY3Rpb24sIEVudGl0eUludGVyZmFjZSB9IGZyb20gJy4uL3NjaGVtYS5qcyc7XG5pbXBvcnQgeyBERUxFVEVEIH0gZnJvbSAnLi4vc3BlY2lhbC5qcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0SW5zdGFuY2VUeXBlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIE1hcmtzIGVudGl0eSBhcyBkZWxldGVkLlxuICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9EZWxldGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVsZXRlPEUgZXh0ZW5kcyBFbnRpdHlJbnRlcmZhY2UgJiB7IHByb2Nlc3M6IGFueSB9PlxuICBpbXBsZW1lbnRzIFNjaGVtYUNsYXNzXG57XG4gIHByaXZhdGUgZGVjbGFyZSBfZW50aXR5OiBFO1xuXG4gIGNvbnN0cnVjdG9yKGVudGl0eTogRSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFlbnRpdHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgb3B0aW9uIFwiZW50aXR5XCIgbm90IGZvdW5kIG9uIERlbGV0ZVNjaGVtYS4nKTtcbiAgICB9XG4gICAgdGhpcy5fZW50aXR5ID0gZW50aXR5O1xuICB9XG5cbiAgZ2V0IGtleSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmtleTtcbiAgfVxuXG4gIG5vcm1hbGl6ZShcbiAgICBpbnB1dDogYW55LFxuICAgIHBhcmVudDogYW55LFxuICAgIGtleTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHZpc2l0OiAoLi4uYXJnczogYW55KSA9PiBhbnksXG4gICAgYWRkRW50aXR5OiAoLi4uYXJnczogYW55KSA9PiBhbnksXG4gICAgdmlzaXRlZEVudGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIC8vIFRPRE86IHdoYXQncyBzdG9yZSBuZWVkcyB0byBiZSBhIGRpZmZlcmluZyB0eXBlIGZyb20gZnJvbUpTXG4gICAgY29uc3QgcHJvY2Vzc2VkRW50aXR5ID0gdGhpcy5fZW50aXR5LnByb2Nlc3MoaW5wdXQsIHBhcmVudCwga2V5KTtcbiAgICBjb25zdCBpZCA9IHRoaXMuX2VudGl0eS5wayhwcm9jZXNzZWRFbnRpdHksIHBhcmVudCwga2V5KTtcblxuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSAnJylcbiAgICApIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICBgTWlzc2luZyB1c2FibGUgcHJpbWFyeSBrZXkgd2hlbiBub3JtYWxpemluZyByZXNwb25zZS5cblxuICBUaGlzIGlzIGxpa2VseSBkdWUgdG8gYSBtYWxmb3JtZWQgcmVzcG9uc2UuXG4gIFRyeSBpbnNwZWN0aW5nIHRoZSBuZXR3b3JrIHJlc3BvbnNlIG9yIGZldGNoKCkgcmV0dXJuIHZhbHVlLlxuICBPciB1c2UgZGVidWdnaW5nIHRvb2xzOiBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2d1aWRlcy9kZWJ1Z2dpbmdcbiAgTGVhcm4gbW9yZSBhYm91dCBzY2hlbWFzOiBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9zY2hlbWFcblxuICBEZWxldGUoRW50aXR5KTogRGVsZXRlKCR7KHRoaXMuX2VudGl0eSBhcyBhbnkpLm5hbWUgPz8gdGhpcy5fZW50aXR5fSlcbiAgVmFsdWU6ICR7aW5wdXQgJiYgSlNPTi5zdHJpbmdpZnkoaW5wdXQsIG51bGwsIDIpfVxuICBgLFxuICAgICAgKTtcbiAgICAgIChlcnJvciBhcyBhbnkpLnN0YXR1cyA9IDQwMDtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBhZGRFbnRpdHkodGhpcywgREVMRVRFRCwgaWQpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGluZmVyKGFyZ3M6IGFueSwgaW5kZXhlczogYW55LCByZWN1cnNlOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBkZW5vcm1hbGl6ZShcbiAgICBpZDogc3RyaW5nLFxuICAgIHVudmlzaXQ6IFVudmlzaXRGdW5jdGlvbixcbiAgKTogW2Rlbm9ybWFsaXplZDogQWJzdHJhY3RJbnN0YW5jZVR5cGU8RT4sIGZvdW5kOiBib29sZWFuLCBzdXNwZW5kOiBib29sZWFuXSB7XG4gICAgcmV0dXJuIHVudmlzaXQoaWQsIHRoaXMuX2VudGl0eSkgYXMgYW55O1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgX2Rlbm9ybWFsaXplTnVsbGFibGUoKTogW1xuICAgIEFic3RyYWN0SW5zdGFuY2VUeXBlPEU+IHwgdW5kZWZpbmVkLFxuICAgIGJvb2xlYW4sXG4gICAgZmFsc2UsXG4gIF0ge1xuICAgIHJldHVybiBbXSBhcyBhbnk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBfbm9ybWFsaXplTnVsbGFibGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gW10gYXMgYW55O1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgbWVyZ2UoZXhpc3Rpbmc6IGFueSwgaW5jb21pbmc6IGFueSkge1xuICAgIHJldHVybiBpbmNvbWluZztcbiAgfVxuXG4gIHVzZUluY29taW5nKFxuICAgIGV4aXN0aW5nTWV0YTogeyBkYXRlOiBudW1iZXI7IGZldGNoZWRBdDogbnVtYmVyIH0sXG4gICAgaW5jb21pbmdNZXRhOiB7IGRhdGU6IG51bWJlcjsgZmV0Y2hlZEF0OiBudW1iZXIgfSxcbiAgICBleGlzdGluZzogYW55LFxuICAgIGluY29taW5nOiBhbnksXG4gICkge1xuICAgIHJldHVybiBleGlzdGluZ01ldGEuZGF0ZSA8PSBpbmNvbWluZ01ldGEuZGF0ZTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBLFNBQVNBLE9BQVQsUUFBd0IsZUFBeEI7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLE1BQU4sQ0FFZjtFQUdFQyxXQUFXLENBQUNDLE1BQUQsRUFBWTtJQUNyQixJQUFJQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixJQUF5QyxDQUFDSCxNQUE5QyxFQUFzRDtNQUNwRCxNQUFNLElBQUlJLEtBQUosQ0FBVSxxREFBVixDQUFOO0lBQ0Q7O0lBQ0QsS0FBS0MsT0FBTCxHQUFlTCxNQUFmO0VBQ0Q7O0VBRU0sSUFBSE0sR0FBRyxHQUFHO0lBQ1IsT0FBTyxLQUFLRCxPQUFMLENBQWFDLEdBQXBCO0VBQ0Q7O0VBRURDLFNBQVMsQ0FDUEMsS0FETyxFQUVQQyxNQUZPLEVBR1BILEdBSE8sRUFJUEksS0FKTyxFQUtQQyxTQUxPLEVBTVBDLGVBTk8sRUFPYTtJQUNwQjtJQUNBLE1BQU1DLGVBQWUsR0FBRyxLQUFLUixPQUFMLENBQWFKLE9BQWIsQ0FBcUJPLEtBQXJCLEVBQTRCQyxNQUE1QixFQUFvQ0gsR0FBcEMsQ0FBeEI7O0lBQ0EsTUFBTVEsRUFBRSxHQUFHLEtBQUtULE9BQUwsQ0FBYVUsRUFBYixDQUFnQkYsZUFBaEIsRUFBaUNKLE1BQWpDLEVBQXlDSCxHQUF6QyxDQUFYOztJQUVBLElBQ0VMLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEtBQ0NXLEVBQUUsS0FBS0UsU0FBUCxJQUFvQkYsRUFBRSxLQUFLLEVBRDVCLENBREYsRUFHRTtNQUFBOztNQUNBLE1BQU1HLEtBQUssR0FBRyxJQUFJYixLQUFKLENBQ1g7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFQUSxTQU9vQixLQUFLQyxPQUFOLENBQXNCYSxJQVB6QyxvQkFPaUQsS0FBS2IsT0FBUTtBQUN0RSxXQUFXRyxLQUFLLElBQUlXLElBQUksQ0FBQ0MsU0FBTCxDQUFlWixLQUFmLEVBQXNCLElBQXRCLEVBQTRCLENBQTVCLENBQStCO0FBQ25ELEdBVm9CLENBQWQ7TUFZQ1MsS0FBRCxDQUFlSSxNQUFmLEdBQXdCLEdBQXhCO01BQ0EsTUFBTUosS0FBTjtJQUNEOztJQUNETixTQUFTLENBQUMsSUFBRCxFQUFPZCxPQUFQLEVBQWdCaUIsRUFBaEIsQ0FBVDtJQUNBLE9BQU9BLEVBQVA7RUFDRDs7RUFFRFEsS0FBSyxDQUFDQyxJQUFELEVBQVlDLE9BQVosRUFBMEJDLE9BQTFCLEVBQTZDO0lBQ2hELE9BQU9ULFNBQVA7RUFDRDs7RUFFRFUsV0FBVyxDQUNUWixFQURTLEVBRVRhLE9BRlMsRUFHa0U7SUFDM0UsT0FBT0EsT0FBTyxDQUFDYixFQUFELEVBQUssS0FBS1QsT0FBVixDQUFkO0VBQ0Q7RUFFRDs7O0VBQ0F1QixvQkFBb0IsR0FJbEI7SUFDQSxPQUFPLEVBQVA7RUFDRDtFQUVEOzs7RUFDQUMsa0JBQWtCLEdBQXVCO0lBQ3ZDLE9BQU8sRUFBUDtFQUNEO0VBRUQ7OztFQUNBQyxLQUFLLENBQUNDLFFBQUQsRUFBZ0JDLFFBQWhCLEVBQStCO0lBQ2xDLE9BQU9BLFFBQVA7RUFDRDs7RUFFREMsV0FBVyxDQUNUQyxZQURTLEVBRVRDLFlBRlMsRUFHVEosUUFIUyxFQUlUQyxRQUpTLEVBS1Q7SUFDQSxPQUFPRSxZQUFZLENBQUNFLElBQWIsSUFBcUJELFlBQVksQ0FBQ0MsSUFBekM7RUFDRDs7QUF0RkgifQ==","function runCompat(endpoint, options) {\n endpoint.type = endpoint.sideEffect ? 'mutate' : 'read';\n endpoint.options = { ...options\n };\n delete endpoint.options.key;\n delete endpoint.options.schema;\n delete endpoint.options.sideEffect;\n delete endpoint.options.fetch;\n delete endpoint.options.getFetchKey;\n delete endpoint.options.options;\n\n if (Object.keys(endpoint.options).length === 0) {\n delete endpoint.options;\n }\n\n if (endpoint.schema === undefined) endpoint.schema = null;\n}\n\nlet CSP = false;\n\ntry {\n Function();\n} catch (e) {\n /* istanbul ignore next */\n CSP = true;\n}\n/**\n * Defines an async data source.\n * @see https://resthooks.io/docs/api/Endpoint\n */\n\n\nexport default class Endpoint extends Function {\n constructor(fetchFunction, options) {\n let self; // TODO: Test the fallback?\n\n /* istanbul ignore if */\n\n /* istanbul ignore next */\n\n if (CSP) {\n self = (...args) => self.fetch(...args);\n\n Object.setPrototypeOf(self, new.target.prototype);\n } else {\n super('return arguments.callee.fetch.apply(arguments.callee, arguments)');\n self = this;\n }\n /** The following is for compatibility with FetchShape */\n\n\n self.getFetchKey = params => self.key(params);\n\n if (fetchFunction) self.fetch = fetchFunction;\n\n if (options && 'name' in options) {\n self.__name = options.name;\n delete options.name;\n } else if (fetchFunction) {\n self.__name = fetchFunction.name;\n }\n\n Object.assign(self, options);\n Object.defineProperty(self, 'name', {\n get: function () {\n return this.__name;\n }\n });\n /** The following is for compatibility with FetchShape */\n\n runCompat(self, options);\n return self;\n }\n\n key(...args) {\n return `${this.name} ${JSON.stringify(args)}`;\n }\n\n bind(thisArg, ...args) {\n const fetchFunc = this.fetch;\n const keyFunc = this.key;\n return this.extend({\n fetch() {\n return fetchFunc.apply(thisArg != null ? thisArg : this, args);\n },\n\n key() {\n return keyFunc.apply(this, args);\n }\n\n });\n }\n\n extend(options) {\n // make a constructor/prototype based off this\n // extend from it and init with options sent\n class E extends this.constructor {}\n\n Object.assign(E.prototype, this);\n const instance = new E(options.fetch, options);\n /** The following is for compatibility with FetchShape */\n\n runCompat(instance, { ...this.options,\n ...options\n });\n return instance;\n }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJydW5Db21wYXQiLCJlbmRwb2ludCIsIm9wdGlvbnMiLCJ0eXBlIiwic2lkZUVmZmVjdCIsImtleSIsInNjaGVtYSIsImZldGNoIiwiZ2V0RmV0Y2hLZXkiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiQ1NQIiwiRnVuY3Rpb24iLCJlIiwiRW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoRnVuY3Rpb24iLCJzZWxmIiwiYXJncyIsInNldFByb3RvdHlwZU9mIiwibmV3IiwidGFyZ2V0IiwicHJvdG90eXBlIiwicGFyYW1zIiwiX19uYW1lIiwibmFtZSIsImFzc2lnbiIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwiSlNPTiIsInN0cmluZ2lmeSIsImJpbmQiLCJ0aGlzQXJnIiwiZmV0Y2hGdW5jIiwia2V5RnVuYyIsImV4dGVuZCIsImFwcGx5IiwiRSIsImluc3RhbmNlIl0sInNvdXJjZXMiOlsiLi4vc3JjL2VuZHBvaW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHJ1bkNvbXBhdChlbmRwb2ludCwgb3B0aW9ucykge1xuICBlbmRwb2ludC50eXBlID0gZW5kcG9pbnQuc2lkZUVmZmVjdCA/ICdtdXRhdGUnIDogJ3JlYWQnO1xuICBlbmRwb2ludC5vcHRpb25zID0geyAuLi5vcHRpb25zIH07XG4gIGRlbGV0ZSBlbmRwb2ludC5vcHRpb25zLmtleTtcbiAgZGVsZXRlIGVuZHBvaW50Lm9wdGlvbnMuc2NoZW1hO1xuICBkZWxldGUgZW5kcG9pbnQub3B0aW9ucy5zaWRlRWZmZWN0O1xuICBkZWxldGUgZW5kcG9pbnQub3B0aW9ucy5mZXRjaDtcbiAgZGVsZXRlIGVuZHBvaW50Lm9wdGlvbnMuZ2V0RmV0Y2hLZXk7XG4gIGRlbGV0ZSBlbmRwb2ludC5vcHRpb25zLm9wdGlvbnM7XG4gIGlmIChPYmplY3Qua2V5cyhlbmRwb2ludC5vcHRpb25zKS5sZW5ndGggPT09IDApIHtcbiAgICBkZWxldGUgZW5kcG9pbnQub3B0aW9ucztcbiAgfVxuICBpZiAoZW5kcG9pbnQuc2NoZW1hID09PSB1bmRlZmluZWQpIGVuZHBvaW50LnNjaGVtYSA9IG51bGw7XG59XG5cbmxldCBDU1AgPSBmYWxzZTtcbnRyeSB7XG4gIEZ1bmN0aW9uKCk7XG59IGNhdGNoIChlKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIENTUCA9IHRydWU7XG59XG5cbi8qKlxuICogRGVmaW5lcyBhbiBhc3luYyBkYXRhIHNvdXJjZS5cbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvRW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW5kcG9pbnQgZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGZldGNoRnVuY3Rpb24sIG9wdGlvbnMpIHtcbiAgICBsZXQgc2VsZjtcbiAgICAvLyBUT0RPOiBUZXN0IHRoZSBmYWxsYmFjaz9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChDU1ApIHtcbiAgICAgIHNlbGYgPSAoLi4uYXJncykgPT4gc2VsZi5mZXRjaCguLi5hcmdzKTtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihzZWxmLCBuZXcudGFyZ2V0LnByb3RvdHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyKCdyZXR1cm4gYXJndW1lbnRzLmNhbGxlZS5mZXRjaC5hcHBseShhcmd1bWVudHMuY2FsbGVlLCBhcmd1bWVudHMpJyk7XG4gICAgICBzZWxmID0gdGhpcztcbiAgICB9XG4gICAgLyoqIFRoZSBmb2xsb3dpbmcgaXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBGZXRjaFNoYXBlICovXG4gICAgc2VsZi5nZXRGZXRjaEtleSA9IHBhcmFtcyA9PiBzZWxmLmtleShwYXJhbXMpO1xuXG4gICAgaWYgKGZldGNoRnVuY3Rpb24pIHNlbGYuZmV0Y2ggPSBmZXRjaEZ1bmN0aW9uO1xuXG4gICAgaWYgKG9wdGlvbnMgJiYgJ25hbWUnIGluIG9wdGlvbnMpIHtcbiAgICAgIHNlbGYuX19uYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgICAgZGVsZXRlIG9wdGlvbnMubmFtZTtcbiAgICB9IGVsc2UgaWYgKGZldGNoRnVuY3Rpb24pIHtcbiAgICAgIHNlbGYuX19uYW1lID0gZmV0Y2hGdW5jdGlvbi5uYW1lO1xuICAgIH1cbiAgICBPYmplY3QuYXNzaWduKHNlbGYsIG9wdGlvbnMpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZWxmLCAnbmFtZScsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fX25hbWU7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLyoqIFRoZSBmb2xsb3dpbmcgaXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBGZXRjaFNoYXBlICovXG4gICAgcnVuQ29tcGF0KHNlbGYsIG9wdGlvbnMpO1xuICAgIHJldHVybiBzZWxmO1xuICB9XG5cbiAga2V5KC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfSAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfWA7XG4gIH1cblxuICBiaW5kKHRoaXNBcmcsIC4uLmFyZ3MpIHtcbiAgICBjb25zdCBmZXRjaEZ1bmMgPSB0aGlzLmZldGNoO1xuICAgIGNvbnN0IGtleUZ1bmMgPSB0aGlzLmtleTtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgZmV0Y2goKSB7XG4gICAgICAgIHJldHVybiBmZXRjaEZ1bmMuYXBwbHkodGhpc0FyZyA/PyB0aGlzLCBhcmdzKTtcbiAgICAgIH0sXG4gICAgICBrZXkoKSB7XG4gICAgICAgIHJldHVybiBrZXlGdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGV4dGVuZChvcHRpb25zKSB7XG4gICAgLy8gbWFrZSBhIGNvbnN0cnVjdG9yL3Byb3RvdHlwZSBiYXNlZCBvZmYgdGhpc1xuICAgIC8vIGV4dGVuZCBmcm9tIGl0IGFuZCBpbml0IHdpdGggb3B0aW9ucyBzZW50XG4gICAgY2xhc3MgRSBleHRlbmRzIHRoaXMuY29uc3RydWN0b3Ige31cblxuICAgIE9iamVjdC5hc3NpZ24oRS5wcm90b3R5cGUsIHRoaXMpO1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IEUob3B0aW9ucy5mZXRjaCwgb3B0aW9ucyk7XG5cbiAgICAvKiogVGhlIGZvbGxvd2luZyBpcyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEZldGNoU2hhcGUgKi9cbiAgICBydW5Db21wYXQoaW5zdGFuY2UsIHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zIH0pO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVQsQ0FBbUJDLFFBQW5CLEVBQTZCQyxPQUE3QixFQUFzQztFQUNwQ0QsUUFBUSxDQUFDRSxJQUFULEdBQWdCRixRQUFRLENBQUNHLFVBQVQsR0FBc0IsUUFBdEIsR0FBaUMsTUFBakQ7RUFDQUgsUUFBUSxDQUFDQyxPQUFULEdBQW1CLEVBQUUsR0FBR0E7RUFBTCxDQUFuQjtFQUNBLE9BQU9ELFFBQVEsQ0FBQ0MsT0FBVCxDQUFpQkcsR0FBeEI7RUFDQSxPQUFPSixRQUFRLENBQUNDLE9BQVQsQ0FBaUJJLE1BQXhCO0VBQ0EsT0FBT0wsUUFBUSxDQUFDQyxPQUFULENBQWlCRSxVQUF4QjtFQUNBLE9BQU9ILFFBQVEsQ0FBQ0MsT0FBVCxDQUFpQkssS0FBeEI7RUFDQSxPQUFPTixRQUFRLENBQUNDLE9BQVQsQ0FBaUJNLFdBQXhCO0VBQ0EsT0FBT1AsUUFBUSxDQUFDQyxPQUFULENBQWlCQSxPQUF4Qjs7RUFDQSxJQUFJTyxNQUFNLENBQUNDLElBQVAsQ0FBWVQsUUFBUSxDQUFDQyxPQUFyQixFQUE4QlMsTUFBOUIsS0FBeUMsQ0FBN0MsRUFBZ0Q7SUFDOUMsT0FBT1YsUUFBUSxDQUFDQyxPQUFoQjtFQUNEOztFQUNELElBQUlELFFBQVEsQ0FBQ0ssTUFBVCxLQUFv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","import { Endpoint } from '@rest-hooks/endpoint';\nimport { Entity } from '@rest-hooks/endpoint';\nimport paramsToString from './paramsToString.js';\n\nclass NetworkError extends Error {\n constructor(response) {\n super(response.statusText || `Network response not 'ok': ${response.status}`);\n this.name = 'NetworkError';\n this.status = response.status;\n this.response = response;\n }\n\n}\n/** Represents an entity to be retrieved from a server.\n * Typically 1:1 with a url endpoint.\n *\n * This can be a useful organization for many REST-like API patterns.\n * @see https://resthooks.io/docs/api/resource\n */\n\n\nexport default class BaseResource extends Entity {\n // typescript todo: require subclasses to implement\n\n /** Used as base of url construction */\n static toString() {\n return `${this.name}::${this.urlRoot}`;\n }\n /** Returns the globally unique identifier for this BaseResource */\n\n\n static get key() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (this.urlRoot === undefined) {\n throw new Error(`urlRoot is not defined for Resource \"${this.name}\"\n\n Resources require a 'static urlRoot' or 'static get key()' defined.\n (See https://resthooks.io/docs/api/resource#static-urlroot-string)\n`);\n }\n }\n\n return this.urlRoot;\n }\n /** URL to find this BaseResource */\n\n\n /** Get the url for a BaseResource\n *\n * Default implementation conforms to common REST patterns\n */\n static url(urlParams) {\n if (Object.prototype.hasOwnProperty.call(urlParams, 'url') && urlParams.url && typeof urlParams.url === 'string') {\n return urlParams.url;\n }\n\n if (this.pk(urlParams) !== undefined) {\n return `${this.urlRoot.replace(/\\/$/, '')}/${this.pk(urlParams)}`;\n }\n\n return this.urlRoot;\n }\n /** Get the url for many BaseResources\n *\n * Default implementation conforms to common REST patterns\n */\n\n\n static listUrl(searchParams = {}) {\n if (Object.keys(searchParams).length) {\n return `${this.urlRoot}?${paramsToString(searchParams)}`;\n }\n\n return this.urlRoot;\n }\n /** Perform network request and resolve with HTTP Response */\n\n\n static fetchResponse(input, init) {\n let options = init;\n\n if (!options.body || typeof options.body === 'string') {\n options = { ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n };\n }\n\n return fetch(input, options).then(response => {\n if (!response.ok) {\n throw new NetworkError(response);\n }\n\n return response;\n }).catch(error => {\n // ensure CORS, network down, and parse errors are still caught by NetworkErrorBoundary\n if (error instanceof TypeError) {\n error.status = 400;\n }\n\n throw error;\n });\n }\n /** Perform network request and resolve with json body */\n\n\n static fetch(input, init) {\n return this.fetchResponse(input, init).then(response => {\n var _response$headers$get;\n\n if (!((_response$headers$get = response.headers.get('content-type')) != null && _response$headers$get.includes('json')) || response.status === 204) return response.text();\n return response.json().catch(error => {\n error.status = 400;\n throw error;\n });\n });\n }\n /** Init options for fetch - run at fetch */\n\n\n static getFetchInit(init) {\n return init;\n }\n /** Get the request options for this BaseResource */\n\n\n static getEndpointExtra() {\n return {\n errorPolicy: error => error.status >= 500 ? 'soft' : undefined\n };\n }\n /** Field where endpoint cache is stored */\n\n\n /** Used to memoize endpoint methods\n *\n * Relies on existance of runInit() member.\n */\n static memo(name, construct) {\n if (!Object.hasOwnProperty.call(this, this.cacheSymbol)) {\n this[this.cacheSymbol] = {};\n }\n\n const cache = this[this.cacheSymbol];\n\n if (!(name in cache)) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const resource = this;\n cache[name] = construct().extend({\n get name() {\n return `${resource.name}.${name.replace(/#/, '')}`;\n }\n\n });\n }\n\n return cache[name];\n }\n /** Base endpoint that uses all the hooks provided by Resource */\n\n\n static endpoint() {\n return this.memo('#endpoint', () => {\n // eslint-disable-next-line\n const resource = this;\n const instanceFetch = this.fetch.bind(this);\n const url = this.url.bind(this);\n return new Endpoint(function (params) {\n return instanceFetch(this.url(params), this.getFetchInit());\n }, { ...this.getEndpointExtra(),\n key: function (params) {\n return `${this.method} ${this.url(params)}`;\n },\n url,\n fetchInit: {},\n\n getFetchInit(body) {\n if (isPojo(body)) {\n body = JSON.stringify(body);\n }\n\n return resource.getFetchInit({ ...this.fetchInit,\n method: this.method,\n signal: this.signal,\n body\n });\n },\n\n method: 'GET',\n signal: undefined\n });\n });\n }\n /** Base endpoint but for sideEffects */\n\n\n static endpointMutate() {\n const instanceFetch = this.fetch.bind(this);\n const endpoint = this.endpoint();\n return this.memo('#endpointMutate', () => endpoint.extend({\n fetch(params, body) {\n return instanceFetch(this.url(params), this.getFetchInit(body));\n },\n\n sideEffect: true,\n method: 'POST'\n }));\n }\n\n}\nBaseResource.urlRoot = void 0;\nBaseResource.cacheSymbol = Symbol('memo');\nObject.defineProperty(BaseResource.prototype, 'url', {\n get() {\n // typescript thinks constructor is just a function\n const Static = this.constructor;\n return Static.url(this);\n },\n\n set(v) {\n Object.defineProperty(this, 'url', {\n value: v,\n writable: true,\n enumerable: true\n });\n }\n\n});\nconst proto = Object.prototype;\nconst gpo = Object.getPrototypeOf;\n\nfunction isPojo(obj) {\n if (obj === null || typeof obj !== 'object') {\n return false;\n }\n\n return gpo(obj) === proto;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsIkVudGl0eSIsInBhcmFtc1RvU3RyaW5nIiwiTmV0d29ya0Vycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsInJlc3BvbnNlIiwic3RhdHVzVGV4dCIsInN0YXR1cyIsIm5hbWUiLCJCYXNlUmVzb3VyY2UiLCJ0b1N0cmluZyIsInVybFJvb3QiLCJrZXkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJ1cmwiLCJ1cmxQYXJhbXMiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJwayIsInJlcGxhY2UiLCJsaXN0VXJsIiwic2VhcmNoUGFyYW1zIiwia2V5cyIsImxlbmd0aCIsImZldGNoUmVzcG9uc2UiLCJpbnB1dCIsImluaXQiLCJvcHRpb25zIiwiYm9keSIsImhlYWRlcnMiLCJmZXRjaCIsInRoZW4iLCJvayIsImNhdGNoIiwiZXJyb3IiLCJUeXBlRXJyb3IiLCJnZXQiLCJpbmNsdWRlcyIsInRleHQiLCJqc29uIiwiZ2V0RmV0Y2hJbml0IiwiZ2V0RW5kcG9pbnRFeHRyYSIsImVycm9yUG9saWN5IiwibWVtbyIsImNvbnN0cnVjdCIsImNhY2hlU3ltYm9sIiwiY2FjaGUiLCJyZXNvdXJjZSIsImV4dGVuZCIsImVuZHBvaW50IiwiaW5zdGFuY2VGZXRjaCIsImJpbmQiLCJwYXJhbXMiLCJtZXRob2QiLCJmZXRjaEluaXQiLCJpc1Bvam8iLCJKU09OIiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiZW5kcG9pbnRNdXRhdGUiLCJzaWRlRWZmZWN0IiwiU3ltYm9sIiwiZGVmaW5lUHJvcGVydHkiLCJTdGF0aWMiLCJzZXQiLCJ2IiwidmFsdWUiLCJ3cml0YWJsZSIsImVudW1lcmFibGUiLCJwcm90byIsImdwbyIsImdldFByb3RvdHlwZU9mIiwib2JqIl0sInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VSZXNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJ0ByZXN0LWhvb2tzL2VuZHBvaW50JztcbmltcG9ydCB0eXBlIHsgRW5kcG9pbnRFeHRyYU9wdGlvbnMsIFNjaGVtYSB9IGZyb20gJ0ByZXN0LWhvb2tzL2VuZHBvaW50JztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJ0ByZXN0LWhvb2tzL2VuZHBvaW50JztcblxuaW1wb3J0IHBhcmFtc1RvU3RyaW5nIGZyb20gJy4vcGFyYW1zVG9TdHJpbmcuanMnO1xuaW1wb3J0IHsgUmVzdEVuZHBvaW50IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNsYXNzIE5ldHdvcmtFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGVjbGFyZSBzdGF0dXM6IG51bWJlcjtcbiAgZGVjbGFyZSByZXNwb25zZTogUmVzcG9uc2U7XG4gIG5hbWUgPSAnTmV0d29ya0Vycm9yJztcblxuICBjb25zdHJ1Y3RvcihyZXNwb25zZTogUmVzcG9uc2UpIHtcbiAgICBzdXBlcihcbiAgICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgfHwgYE5ldHdvcmsgcmVzcG9uc2Ugbm90ICdvayc6ICR7cmVzcG9uc2Uuc3RhdHVzfWAsXG4gICAgKTtcbiAgICB0aGlzLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcbiAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gIH1cbn1cblxuLyoqIFJlcHJlc2VudHMgYW4gZW50aXR5IHRvIGJlIHJldHJpZXZlZCBmcm9tIGEgc2VydmVyLlxuICogVHlwaWNhbGx5IDE6MSB3aXRoIGEgdXJsIGVuZHBvaW50LlxuICpcbiAqIFRoaXMgY2FuIGJlIGEgdXNlZnVsIG9yZ2FuaXphdGlvbiBmb3IgbWFueSBSRVNULWxpa2UgQVBJIHBhdHRlcm5zLlxuICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9yZXNvdXJjZVxuICovXG5leHBvcnQgZGVmYXVsdCBhYnN0cmFjdCBjbGFzcyBCYXNlUmVzb3VyY2UgZXh0ZW5kcyBFbnRpdHkge1xuICAvLyB0eXBlc2NyaXB0IHRvZG86IHJlcXVpcmUgc3ViY2xhc3NlcyB0byBpbXBsZW1lbnRcbiAgLyoqIFVzZWQgYXMgYmFzZSBvZiB1cmwgY29uc3RydWN0aW9uICovXG4gIHN0YXRpYyByZWFkb25seSB1cmxSb290OiBzdHJpbmc7XG5cbiAgc3RhdGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9Ojoke3RoaXMudXJsUm9vdH1gO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIEJhc2VSZXNvdXJjZSAqL1xuICBzdGF0aWMgZ2V0IGtleSgpOiBzdHJpbmcge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmICh0aGlzLnVybFJvb3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVybFJvb3QgaXMgbm90IGRlZmluZWQgZm9yIFJlc291cmNlIFwiJHt0aGlzLm5hbWV9XCJcblxuICBSZXNvdXJjZXMgcmVxdWlyZSBhICdzdGF0aWMgdXJsUm9vdCcgb3IgJ3N0YXRpYyBnZXQga2V5KCknIGRlZmluZWQuXG4gIChTZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvcmVzb3VyY2Ujc3RhdGljLXVybHJvb3Qtc3RyaW5nKVxuYCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVybFJvb3Q7XG4gIH1cblxuICAvKiogVVJMIHRvIGZpbmQgdGhpcyBCYXNlUmVzb3VyY2UgKi9cbiAgZGVjbGFyZSByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKiogR2V0IHRoZSB1cmwgZm9yIGEgQmFzZVJlc291cmNlXG4gICAqXG4gICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gY29uZm9ybXMgdG8gY29tbW9uIFJFU1QgcGF0dGVybnNcbiAgICovXG4gIHN0YXRpYyB1cmwodXJsUGFyYW1zOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pik6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVybFBhcmFtcywgJ3VybCcpICYmXG4gICAgICB1cmxQYXJhbXMudXJsICYmXG4gICAgICB0eXBlb2YgdXJsUGFyYW1zLnVybCA9PT0gJ3N0cmluZydcbiAgICApIHtcbiAgICAgIHJldHVybiB1cmxQYXJhbXMudXJsO1xuICAgIH1cbiAgICBpZiAodGhpcy5wayh1cmxQYXJhbXMgYXMgYW55KSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy51cmxSb290LnJlcGxhY2UoL1xcLyQvLCAnJyl9LyR7dGhpcy5wayh1cmxQYXJhbXMgYXMgYW55KX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51cmxSb290O1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdXJsIGZvciBtYW55IEJhc2VSZXNvdXJjZXNcbiAgICpcbiAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBjb25mb3JtcyB0byBjb21tb24gUkVTVCBwYXR0ZXJuc1xuICAgKi9cbiAgc3RhdGljIGxpc3RVcmwoXG4gICAgc2VhcmNoUGFyYW1zOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPj4gPSB7fSxcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFJvb3R9PyR7cGFyYW1zVG9TdHJpbmcoc2VhcmNoUGFyYW1zKX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51cmxSb290O1xuICB9XG5cbiAgLyoqIFBlcmZvcm0gbmV0d29yayByZXF1ZXN0IGFuZCByZXNvbHZlIHdpdGggSFRUUCBSZXNwb25zZSAqL1xuICBzdGF0aWMgZmV0Y2hSZXNwb25zZShpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KSB7XG4gICAgbGV0IG9wdGlvbnM6IFJlcXVlc3RJbml0ID0gaW5pdDtcbiAgICBpZiAoIW9wdGlvbnMuYm9keSB8fCB0eXBlb2Ygb3B0aW9ucy5ib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgLi4ub3B0aW9ucy5oZWFkZXJzLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGZldGNoKGlucHV0LCBvcHRpb25zKVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIC8vIGVuc3VyZSBDT1JTLCBuZXR3b3JrIGRvd24sIGFuZCBwYXJzZSBlcnJvcnMgYXJlIHN0aWxsIGNhdWdodCBieSBOZXR3b3JrRXJyb3JCb3VuZGFyeVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgICAoZXJyb3IgYXMgYW55KS5zdGF0dXMgPSA0MDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIGpzb24gYm9keSAqL1xuICBzdGF0aWMgZmV0Y2goaW5wdXQ6IFJlcXVlc3RJbmZvLCBpbml0OiBSZXF1ZXN0SW5pdCkge1xuICAgIHJldHVybiB0aGlzLmZldGNoUmVzcG9uc2UoaW5wdXQsIGluaXQpLnRoZW4oKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5pbmNsdWRlcygnanNvbicpIHx8XG4gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0XG4gICAgICApXG4gICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEluaXQgb3B0aW9ucyBmb3IgZmV0Y2ggLSBydW4gYXQgZmV0Y2ggKi9cbiAgc3RhdGljIGdldEZldGNoSW5pdChpbml0OiBSZWFkb25seTxSZXF1ZXN0SW5pdD4pOiBSZXF1ZXN0SW5pdCB7XG4gICAgcmV0dXJuIGluaXQ7XG4gIH1cblxuICAvKiogR2V0IHRoZSByZXF1ZXN0IG9wdGlvbnMgZm9yIHRoaXMgQmFzZVJlc291cmNlICovXG4gIHN0YXRpYyBnZXRFbmRwb2ludEV4dHJhKCk6IEVuZHBvaW50RXh0cmFPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3JQb2xpY3k6IGVycm9yID0+XG4gICAgICAgIGVycm9yLnN0YXR1cyA+PSA1MDAgPyAoJ3NvZnQnIGFzIGNvbnN0KSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEZpZWxkIHdoZXJlIGVuZHBvaW50IGNhY2hlIGlzIHN0b3JlZCAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IGNhY2hlU3ltYm9sID0gU3ltYm9sKCdtZW1vJyk7XG5cbiAgLyoqIFVzZWQgdG8gbWVtb2l6ZSBlbmRwb2ludCBtZXRob2RzXG4gICAqXG4gICAqIFJlbGllcyBvbiBleGlzdGFuY2Ugb2YgcnVuSW5pdCgpIG1lbWJlci5cbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgbWVtbzxUIGV4dGVuZHMgeyBleHRlbmQ6ICguLi5hcmdzOiBhbnkpID0+IGFueSB9PihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY29uc3RydWN0OiAoKSA9PiBULFxuICApOiBUIHtcbiAgICBpZiAoIU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsIHRoaXMuY2FjaGVTeW1ib2wpKSB7XG4gICAgICAodGhpcyBhcyBhbnkpW3RoaXMuY2FjaGVTeW1ib2xdID0ge307XG4gICAgfVxuICAgIGNvbnN0IGNhY2hlID0gKHRoaXMgYXMgYW55KVt0aGlzLmNhY2hlU3ltYm9sXTtcbiAgICBpZiAoIShuYW1lIGluIGNhY2hlKSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgICBjb25zdCByZXNvdXJjZTogYW55ID0gdGhpcztcbiAgICAgIGNhY2hlW25hbWVdID0gY29uc3RydWN0KCkuZXh0ZW5kKHtcbiAgICAgICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3Jlc291cmNlLm5hbWV9LiR7bmFtZS5yZXBsYWNlKC8jLywgJycpfWA7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlW25hbWVdIGFzIFQ7XG4gIH1cblxuICAvKiogQmFzZSBlbmRwb2ludCB0aGF0IHVzZXMgYWxsIHRoZSBob29rcyBwcm92aWRlZCBieSBSZXNvdXJjZSAgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyBlbmRwb2ludCgpOiBSZXN0RW5kcG9pbnQ8XG4gICAgKHRoaXM6IFJlc3RFbmRwb2ludCwgcGFyYW1zOiBhbnkpID0+IFByb21pc2U8YW55PixcbiAgICBTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgdW5kZWZpbmVkXG4gID4ge1xuICAgIHJldHVybiB0aGlzLm1lbW8oJyNlbmRwb2ludCcsICgpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzO1xuICAgICAgY29uc3QgaW5zdGFuY2VGZXRjaCA9IHRoaXMuZmV0Y2guYmluZCh0aGlzKTtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsLmJpbmQodGhpcyk7XG5cbiAgICAgIHJldHVybiBuZXcgRW5kcG9pbnQoXG4gICAgICAgIGZ1bmN0aW9uIChwYXJhbXM6IGFueSkge1xuICAgICAgICAgIHJldHVybiBpbnN0YW5jZUZldGNoKHRoaXMudXJsKHBhcmFtcyksIHRoaXMuZ2V0RmV0Y2hJbml0KCkpO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLi4udGhpcy5nZXRFbmRwb2ludEV4dHJhKCksXG4gICAgICAgICAga2V5OiBmdW5jdGlvbiAodGhpczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMubWV0aG9kfSAke3RoaXMudXJsKHBhcmFtcyl9YDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICBmZXRjaEluaXQ6IHt9IGFzIFJlcXVlc3RJbml0LFxuICAgICAgICAgIGdldEZldGNoSW5pdCh0aGlzOiBhbnksIGJvZHk/OiBhbnkpIHtcbiAgICAgICAgICAgIGlmIChpc1Bvam8oYm9keSkpIHtcbiAgICAgICAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlLmdldEZldGNoSW5pdCh7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZmV0Y2hJbml0LFxuICAgICAgICAgICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgICAgICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxuICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgIHNpZ25hbDogdW5kZWZpbmVkIGFzIEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBCYXNlIGVuZHBvaW50IGJ1dCBmb3Igc2lkZUVmZmVjdHMgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyBlbmRwb2ludE11dGF0ZSgpOiBSZXN0RW5kcG9pbnQ8XG4gICAgKHRoaXM6IFJlc3RFbmRwb2ludCwgcGFyYW1zOiBhbnksIGJvZHk/OiBhbnkpID0+IFByb21pc2U8YW55PixcbiAgICBTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgdHJ1ZVxuICA+IHtcbiAgICBjb25zdCBpbnN0YW5jZUZldGNoID0gdGhpcy5mZXRjaC5iaW5kKHRoaXMpO1xuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5lbmRwb2ludCgpO1xuICAgIHJldHVybiB0aGlzLm1lbW8oJyNlbmRwb2ludE11dGF0ZScsICgpID0+XG4gICAgICBlbmRwb2ludC5leHRlbmQoe1xuICAgICAgICBmZXRjaCh0aGlzOiBSZXN0RW5kcG9pbnQsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICAgICAgICByZXR1cm4gaW5zdGFuY2VGZXRjaCh0aGlzLnVybChwYXJhbXMpLCB0aGlzLmdldEZldGNoSW5pdChib2R5KSk7XG4gICAgICAgIH0sXG4gICAgICAgIHNpZGVFZmZlY3Q6IHRydWUsXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMucHJvdG90eXBlLCAndXJsJywge1xuICAgICAgZ2V0KCk6IHN0cmluZyB7XG4gICAgICAgIC8vIHR5cGVzY3JpcHQgdGhpbmtzIGNvbnN0cnVjdG9yIGlzIGp1c3QgYSBmdW5jdGlvblxuICAgICAgICBjb25zdCBTdGF0aWMgPSB0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBCYXNlUmVzb3VyY2U7XG4gICAgICAgIHJldHVybiBTdGF0aWMudXJsKHRoaXMpO1xuICAgICAgfSxcbiAgICAgIHNldCh2OiBzdHJpbmcpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd1cmwnLCB7XG4gICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcbmNvbnN0IGdwbyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuZnVuY3Rpb24gaXNQb2pvKG9iajogdW5rbm93bik6IG9iaiBpcyBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gZ3BvKG9iaikgPT09IHByb3RvO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFULFFBQXlCLHNCQUF6QjtBQUVBLFNBQVNDLE1BQVQsUUFBdUIsc0JBQXZCO0FBRUEsT0FBT0MsY0FBUCxNQUEyQixxQkFBM0I7O0FBR0EsTUFBTUMsWUFBTixTQUEyQkMsS0FBM0IsQ0FBaUM7RUFLL0JDLFdBQVcsQ0FBQ0MsUUFBRCxFQUFxQjtJQUM5QixNQUNFQSxRQUFRLENBQUNDLFVBQVQsSUFBd0IsOEJBQTZCRCxRQUFRLENBQUNFLE1BQU8sRUFEdkU7SUFEOEIsS0FGaENDLElBRWdDLEdBRnpCLGNBRXlCO0lBSTlCLEtBQUtELE1BQUwsR0FBY0YsUUFBUSxDQUFDRSxNQUF2QjtJQUNBLEtBQUtGLFFBQUwsR0FBZ0JBLFFBQWhCO0VBQ0Q7O0FBWDhCO0FBY2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsZUFBZSxNQUFlSSxZQUFmLFNBQW9DVCxNQUFwQyxDQUEyQztFQUN4RDs7RUFDQTtFQUdlLE9BQVJVLFFBQVEsR0FBRztJQUNoQixPQUFRLEdBQUUs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","export default function paramsToString(searchParams) {\n const params = new URLSearchParams(searchParams);\n params.sort();\n return params.toString();\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJhbXNUb1N0cmluZyIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNvcnQiLCJ0b1N0cmluZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJhbXNUb1N0cmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJhbXNUb1N0cmluZyhcbiAgc2VhcmNoUGFyYW1zOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPj4sXG4pIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMgYXMgYW55KTtcbiAgcGFyYW1zLnNvcnQoKTtcbiAgcmV0dXJuIHBhcmFtcy50b1N0cmluZygpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLFNBQVNBLGNBQVQsQ0FDYkMsWUFEYSxFQUViO0VBQ0EsTUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQUosQ0FBb0JGLFlBQXBCLENBQWY7RUFDQUMsTUFBTSxDQUFDRSxJQUFQO0VBQ0EsT0FBT0YsTUFBTSxDQUFDRyxRQUFQLEVBQVA7QUFDRCJ9","import { schema } from '@rest-hooks/endpoint';\nimport BaseResource from './BaseResource.js';\n\n/**\n * Represents an entity to be retrieved from a server.\n * Typically 1:1 with a url endpoint.\n * @see https://resthooks.io/docs/api/resource\n */\nexport default class Resource extends BaseResource {\n /** Endpoint to get a single entity */\n static detail() {\n const endpoint = this.endpoint();\n return this.memo('#detail', () => endpoint.extend({\n schema: this\n }));\n }\n /** Endpoint to get a list of entities */\n\n\n static list() {\n const endpoint = this.endpoint();\n return this.memo('#list', () => endpoint.extend({\n schema: [this],\n url: this.listUrl.bind(this)\n }));\n }\n /** Endpoint to create a new entity (post) */\n\n\n static create() {\n return this.memo('#create', () => {\n const endpoint = this.endpointMutate();\n const instanceFetch = this.fetch.bind(this);\n return endpoint.extend({\n fetch(...args) {\n return instanceFetch(this.url(...args), this.getFetchInit(args[args.length - 1]));\n },\n\n url: (...args) => {\n return args.length > 1 ? this.listUrl(args[0]) : this.listUrl();\n },\n schema: this\n });\n });\n }\n /** Endpoint to update an existing entity (put) */\n\n\n static update() {\n const endpoint = this.endpointMutate();\n return this.memo('#update', () => endpoint.extend({\n method: 'PUT',\n schema: this\n }));\n }\n /** Endpoint to update a subset of fields of an existing entity (patch) */\n\n\n static partialUpdate() {\n const endpoint = this.endpointMutate();\n return this.memo('#partialUpdate', () => endpoint.extend({\n method: 'PATCH',\n schema: this\n }));\n }\n /** Endpoint to delete an entity (delete) */\n\n\n static delete() {\n const endpoint = this.endpointMutate();\n return this.memo('#delete', () => endpoint.extend({\n fetch(params) {\n return endpoint.fetch.call(this, params).then(res => res && Object.keys(res).length ? res : params);\n },\n\n method: 'DELETE',\n schema: new schema.Delete(this)\n }));\n }\n\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJCYXNlUmVzb3VyY2UiLCJSZXNvdXJjZSIsImRldGFpbCIsImVuZHBvaW50IiwibWVtbyIsImV4dGVuZCIsImxpc3QiLCJ1cmwiLCJsaXN0VXJsIiwiYmluZCIsImNyZWF0ZSIsImVuZHBvaW50TXV0YXRlIiwiaW5zdGFuY2VGZXRjaCIsImZldGNoIiwiYXJncyIsImdldEZldGNoSW5pdCIsImxlbmd0aCIsInVwZGF0ZSIsIm1ldGhvZCIsInBhcnRpYWxVcGRhdGUiLCJkZWxldGUiLCJwYXJhbXMiLCJjYWxsIiwidGhlbiIsInJlcyIsIk9iamVjdCIsImtleXMiLCJEZWxldGUiXSwic291cmNlcyI6WyIuLi9zcmMvUmVzb3VyY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBTY2hlbWFEZXRhaWwsXG4gIFNjaGVtYUxpc3QsXG4gIEFic3RyYWN0SW5zdGFuY2VUeXBlLFxufSBmcm9tICdAcmVzdC1ob29rcy9lbmRwb2ludCc7XG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tICdAcmVzdC1ob29rcy9lbmRwb2ludCc7XG5cbmltcG9ydCBCYXNlUmVzb3VyY2UgZnJvbSAnLi9CYXNlUmVzb3VyY2UuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXN0RW5kcG9pbnQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVudGl0eSB0byBiZSByZXRyaWV2ZWQgZnJvbSBhIHNlcnZlci5cbiAqIFR5cGljYWxseSAxOjEgd2l0aCBhIHVybCBlbmRwb2ludC5cbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYWJzdHJhY3QgY2xhc3MgUmVzb3VyY2UgZXh0ZW5kcyBCYXNlUmVzb3VyY2Uge1xuICAvKiogRW5kcG9pbnQgdG8gZ2V0IGEgc2luZ2xlIGVudGl0eSAqL1xuICBzdGF0aWMgZGV0YWlsPFQgZXh0ZW5kcyB0eXBlb2YgUmVzb3VyY2U+KFxuICAgIHRoaXM6IFQsXG4gICk6IFJlc3RFbmRwb2ludDxcbiAgICAodGhpczogUmVzdEVuZHBvaW50LCBwYXJhbXM6IGFueSkgPT4gUHJvbWlzZTxhbnk+LFxuICAgIFNjaGVtYURldGFpbDxBYnN0cmFjdEluc3RhbmNlVHlwZTxUPj4sXG4gICAgdW5kZWZpbmVkXG4gID4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5lbmRwb2ludCgpO1xuICAgIHJldHVybiB0aGlzLm1lbW8oJyNkZXRhaWwnLCAoKSA9PlxuICAgICAgZW5kcG9pbnQuZXh0ZW5kKHtcbiAgICAgICAgc2NoZW1hOiB0aGlzLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBFbmRwb2ludCB0byBnZXQgYSBsaXN0IG9mIGVudGl0aWVzICovXG4gIHN0YXRpYyBsaXN0PFQgZXh0ZW5kcyB0eXBlb2YgUmVzb3VyY2U+KFxuICAgIHRoaXM6IFQsXG4gICk6IFJlc3RFbmRwb2ludDxcbiAgICAodGhpczogUmVzdEVuZHBvaW50LCBwYXJhbXM/OiBhbnkpID0+IFByb21pc2U8YW55PixcbiAgICBTY2hlbWFMaXN0PEFic3RyYWN0SW5zdGFuY2VUeXBlPFQ+PixcbiAgICB1bmRlZmluZWRcbiAgPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmVuZHBvaW50KCk7XG4gICAgcmV0dXJuIHRoaXMubWVtbygnI2xpc3QnLCAoKSA9PlxuICAgICAgZW5kcG9pbnQuZXh0ZW5kKHtcbiAgICAgICAgc2NoZW1hOiBbdGhpc10sXG4gICAgICAgIHVybDogdGhpcy5saXN0VXJsLmJpbmQodGhpcyksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqIEVuZHBvaW50IHRvIGNyZWF0ZSBhIG5ldyBlbnRpdHkgKHBvc3QpICovXG4gIHN0YXRpYyBjcmVhdGU8VCBleHRlbmRzIHR5cGVvZiBSZXNvdXJjZT4oXG4gICAgdGhpczogVCxcbiAgKTogUmVzdEVuZHBvaW50PFxuICAgICh0aGlzOiBSZXN0RW5kcG9pbnQsIGZpcnN0OiBhbnksIHNlY29uZD86IGFueSkgPT4gUHJvbWlzZTxhbnk+LFxuICAgIFNjaGVtYURldGFpbDxBYnN0cmFjdEluc3RhbmNlVHlwZTxUPj4sXG4gICAgdHJ1ZVxuICA+IHtcbiAgICByZXR1cm4gdGhpcy5tZW1vKCcjY3JlYXRlJywgKCkgPT4ge1xuICAgICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmVuZHBvaW50TXV0YXRlKCk7XG4gICAgICBjb25zdCBpbnN0YW5jZUZldGNoID0gdGhpcy5mZXRjaC5iaW5kKHRoaXMpO1xuICAgICAgcmV0dXJuIGVuZHBvaW50LmV4dGVuZCh7XG4gICAgICAgIGZldGNoKC4uLmFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gaW5zdGFuY2VGZXRjaChcbiAgICAgICAgICAgIHRoaXMudXJsKC4uLmFyZ3MpLFxuICAgICAgICAgICAgdGhpcy5nZXRGZXRjaEluaXQoYXJnc1thcmdzLmxlbmd0aCAtIDFdKSxcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICB1cmw6ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGFyZ3MubGVuZ3RoID4gMSA/IHRoaXMubGlzdFVybChhcmdzWzBdKSA6IHRoaXMubGlzdFVybCgpO1xuICAgICAgICB9LFxuICAgICAgICBzY2hlbWE6IHRoaXMsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBFbmRwb2ludCB0byB1cGRhdGUgYW4gZXhpc3RpbmcgZW50aXR5IChwdXQpICovXG4gIHN0YXRpYyB1cGRhdGU8VCBleHRlbmRzIHR5cGVvZiBSZXNvdXJjZT4oXG4gICAgdGhpczogVCxcbiAgKTogUmVzdEVuZHBvaW50PFxuICAgICh0aGlzOiBSZXN0RW5kcG9pbnQsIHBhcmFtczogYW55LCBib2R5OiBhbnkpID0+IFByb21pc2U8YW55PixcbiAgICBTY2hlbWFEZXRhaWw8QWJzdHJhY3RJbnN0YW5jZVR5cGU8VD4+LFxuICAgIHRydWVcbiAgPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmVuZHBvaW50TXV0YXRlKCk7XG4gICAgcmV0dXJuIHRoaXMubWVtbygnI3VwZGF0ZScsICgpID0+XG4gICAgICBlbmRwb2ludC5leHRlbmQoe1xuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBzY2hlbWE6IHRoaXMsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqIEVuZHBvaW50IHRvIHVwZGF0ZSBhIHN1YnNldCBvZiBmaWVsZHMgb2YgYW4gZXhpc3RpbmcgZW50aXR5IChwYXRjaCkgKi9cbiAgc3RhdGljIHBhcnRpYWxVcGRhdGU8VCBleHRlbmRzIHR5cGVvZiBSZXNvdXJjZT4oXG4gICAgdGhpczogVCxcbiAgKTogUmVzdEVuZHBvaW50PFxuICAgICh0aGlzOiBSZXN0RW5kcG9pbnQsIHBhcmFtczogYW55LCBib2R5OiBhbnkpID0+IFByb21pc2U8YW55PixcbiAgICBTY2hlbWFEZXRhaWw8QWJzdHJhY3RJbnN0YW5jZVR5cGU8VD4+LFxuICAgIHRydWVcbiAgPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmVuZHBvaW50TXV0YXRlKCk7XG4gICAgcmV0dXJuIHRoaXMubWVtbygnI3BhcnRpYWxVcGRhdGUnLCAoKSA9PlxuICAgICAgZW5kcG9pbnQuZXh0ZW5kKHtcbiAgICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgICBzY2hlbWE6IHRoaXMsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqIEVuZHBvaW50IHRvIGRlbGV0ZSBhbiBlbnRpdHkgKGRlbGV0ZSkgKi9cbiAgc3RhdGljIGRlbGV0ZTxUIGV4dGVuZHMgdHlwZW9mIFJlc291cmNlPihcbiAgICB0aGlzOiBULFxuICApOiBSZXN0RW5kcG9pbnQ8XG4gICAgKHRoaXM6IFJlc3RFbmRwb2ludCwgcGFyYW1zOiBhbnkpID0+IFByb21pc2U8YW55PixcbiAgICBzY2hlbWEuRGVsZXRlPFQ+LFxuICAgIHRydWVcbiAgPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmVuZHBvaW50TXV0YXRlKCk7XG4gICAgcmV0dXJuIHRoaXMubWVtbygnI2RlbGV0ZScsICgpID0+XG4gICAgICBlbmRwb2ludC5leHRlbmQoe1xuICAgICAgICBmZXRjaCh0aGlzOiBSZXN0RW5kcG9pbnQsIHBhcmFtczogYW55KSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50LmZldGNoXG4gICAgICAgICAgICAuY2FsbCh0aGlzLCBwYXJhbXMpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gKHJlcyAmJiBPYmplY3Qua2V5cyhyZXMpLmxlbmd0aCA/IHJlcyA6IHBhcmFtcykpO1xuICAgICAgICB9LFxuICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICBzY2hlbWE6IG5ldyBzY2hlbWEuRGVsZXRlKHRoaXMpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFLQSxTQUFTQSxNQUFULFFBQXVCLHNCQUF2QjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsbUJBQXpCOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQWVDLFFBQWYsU0FBZ0NELFlBQWhDLENBQTZDO0VBQzFEO0VBQ2EsT0FBTkUsTUFBTSxHQU1YO0lBQ0EsTUFBTUMsUUFBUSxHQUFHLEtBQUtBLFFBQUwsRUFBakI7SUFDQSxPQUFPLEtBQUtDLElBQUwsQ0FBVSxTQUFWLEVBQXFCLE1BQzFCRCxRQUFRLENBQUNFLE1BQVQsQ0FBZ0I7TUFDZE4sTUFBTSxFQUFFO0lBRE0sQ0FBaEIsQ0FESyxDQUFQO0VBS0Q7RUFFRDs7O0VBQ1csT0FBSk8sSUFBSSxHQU1UO0lBQ0EsTUFBTUgsUUFBUSxHQUFHLEtBQUtBLFFBQUwsRUFBakI7SUFDQSxPQUFPLEtBQUtDLElBQUwsQ0FBVSxPQUFWLEVBQW1CLE1BQ3hCRCxRQUFRLENBQUNFLE1BQVQsQ0FBZ0I7TUFDZE4sTUFBTSxFQUFFLENBQUMsSUFBRCxDQURNO01BRWRRLEdBQUcsRUFBRSxLQUFLQyxPQUFMLENBQWFDLElBQWIsQ0FBa0IsSUFBbEI7SUFGUyxDQUFoQixDQURLLENBQVA7RUFNRDtFQUVEOzs7RUFDYSxPQUFOQyxNQUFNLEdBTVg7SUFDQSxPQUFPLEtBQUtOLElBQUwsQ0FBVSxTQUFWLEVBQXFCLE1BQU07TUFDaEMsTUFBTUQsUUFBUSxHQUFHLEtBQUtRLGNBQUwsRUFBakI7TUFDQSxNQUFNQyxhQUFhLEdBQUcsS0FBS0MsS0FBTCxDQUFXSixJQUFYLENBQWdCLElBQWhCLENBQXRCO01BQ0EsT0FBT04sUUFBUSxDQUFDRSxNQUFULENBQWdCO1FBQ3JCUSxLQUFLLENBQUMsR0FBR0MsSUFBSixFQUFVO1VBQ2IsT0FBT0YsYUFBYSxDQUNsQixLQUFLTCxHQUFMLENBQVMsR0FBR08sSUFBWixDQURrQixFQUVsQixLQUFLQyxZQUFMLENBQWtCRCxJQUFJLENBQUNBLElBQUksQ0FBQ0UsTUFBTCxHQUFjLENBQWYsQ0FBdEIsQ0FGa0IsQ0FBcEI7UUFJRCxDQU5vQjs7UUFPckJULEdBQUcsRUFBRSxDQUFDLEdBQUdPLElBQUosS0FBYTtVQUNoQixPQUFPQSxJQUFJLENBQUNFLE1BQUwsR0FBYyxDQUFkLEdBQWtCLEtBQUtSLE9BQUwsQ0FBYU0sSUFBSSxDQUFDLENBQUQsQ0FBakIsQ0FBbEIsR0FBMEMsS0FBS04sT0FBTCxFQUFqRDtRQUNELENBVG9CO1FBVXJCVCxNQUFNLEVBQUU7TUFWYSxDQUFoQixDQUFQO0lBWUQsQ0FmTSxDQUFQO0VBZ0JEO0VBRUQ7OztFQUNhLE9BQU5rQixNQUFNLEdBTVg7SUFDQSxNQUFNZCxRQUFRLEdBQUcsS0FBS1EsY0FBTCxFQUFqQjtJQUNBLE9BQU8sS0FBS1AsSUFBTCxDQUFVLFNBQVYsRUFBcUIsTUFDMUJELFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQjtNQUNkYSxNQUFNLEVBQUUsS0FETTtNQUVkbkIsTUFBTSxFQUFFO0lBRk0sQ0FBaEIsQ0FESyxDQUFQO0VBTUQ7RUFFRDs7O0VBQ29CLE9BQWJvQixhQUFhLEdBTWxCO0lBQ0EsTUFBTWhCLFFBQVEsR0FBRyxLQUFLUSxjQUFMLEVBQWpCO0lBQ0EsT0FBTyxLQUFLUCxJQUFMLENBQVUsZ0JBQVYsRUFBNEIsTUFDakNELFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQjtNQUNkYSxNQUFNLEVBQUUsT0FETTtNQUVkbkIsTUFBTSxFQUFFO0lBRk0sQ0FBaEIsQ0FESyxDQUFQO0VBTUQ7RUFFRDs7O0VBQ2EsT0FBTnFCLE1BQU0sR0FNWDtJQUNBLE1BQU1qQixRQUFRLEdBQUcsS0FBS1EsY0FBTCxFQUFqQjtJQUNBLE9BQU8sS0FBS1AsSUFBTCxDQUFVLFNBQVYsRUFBcUIsTUFDMUJELFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQjtNQUNkUSxLQUFLLENBQXFCUSxNQUFyQixFQUFrQztRQUNyQyxPQUFPbEIsUUFBUSxDQUFDVSxLQUFULENBQ0pTLElBREksQ0FDQyxJQURELEVBQ09ELE1BRFAsRUFFSkUsSUFGSSxDQUVDQyxHQUFHLElBQUtBLEdBQUcsSUFBSUMsTUFBTSxDQUFDQyxJQUFQLENBQVlGLEdBQVosRUFBaUJSLE1BQXhCLEdBQWlDUSxHQUFqQyxHQUF1Q0gsTUFGaEQsQ0FBUDtNQUdELENBTGE7O01BTWRILE1BQU0sRUFBRSxRQU5NO01BT2RuQixNQUFNLEVBQUUsSUFBSUEsTUFBTSxDQUFDNEIsTUFBWCxDQUFrQixJQUFsQjtJQVBNLENBQWhCLENBREssQ0FBUDtFQVdEOztBQWxIeUQifQ=="],"names":["prefix","useBeforeunload","handler","condition","message","Error","invariant","eventListenerRef","useRef","useEffect","current","event","returnValue","defaultPrevented","eventListener","window","addEventListener","removeEventListener","useController","useContext","Delete","constructor","entity","this","_entity","key","normalize","input","parent","visit","addEntity","visitedEntities","processedEntity","process","id","pk","infer","args","indexes","recurse","denormalize","unvisit","_denormalizeNullable","_normalizeNullable","merge","existing","incoming","useIncoming","existingMeta","incomingMeta","date","runCompat","endpoint","options","type","sideEffect","schema","fetch","getFetchKey","Object","keys","length","undefined","CSP","Function","e","Endpoint","fetchFunction","self","setPrototypeOf","prototype","super","params","__name","name","assign","defineProperty","get","JSON","stringify","bind","thisArg","fetchFunc","keyFunc","extend","apply","E","instance","NetworkError","response","statusText","status","BaseResource","Entity","toString","urlRoot","url","urlParams","hasOwnProperty","call","replace","listUrl","searchParams","URLSearchParams","sort","paramsToString","fetchResponse","init","body","headers","then","ok","catch","error","TypeError","_response$headers$get","includes","json","text","getFetchInit","getEndpointExtra","errorPolicy","memo","construct","cacheSymbol","cache","resource","instanceFetch","method","fetchInit","obj","gpo","proto","isPojo","signal","endpointMutate","Symbol","set","v","value","writable","enumerable","getPrototypeOf","Resource","detail","list","create","update","partialUpdate","res"],"sourceRoot":""}