!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.hooks=t():e.hooks=t()}(this,(function(){return(()=>{"use strict";var e={150:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.setMiddleware=t.getMiddleware=t.setManager=t.getManager=t.convertOptions=t.HookManager=t.BaseHookContext=t.HOOKS=void 0;const r=o(930);t.HOOKS=Symbol("@feathersjs/hooks");class n{constructor(e={}){Object.defineProperty(this,"self",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.assign(this,e)}}t.BaseHookContext=n;class i{constructor(){Object.defineProperty(this,"_parent",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_params",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_middleware",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_props",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_defaults",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}parent(e){return this._parent=e,this}middleware(e){return this._middleware=(null==e?void 0:e.length)?e:null,this}getMiddleware(){var e;const t=null===(e=this._parent)||void 0===e?void 0:e.getMiddleware();return t&&this._middleware?t.concat(this._middleware):t||this._middleware}collectMiddleware(e,t){const o=c(e),r=this.getMiddleware();return o&&r?o.concat(r):o||r||[]}props(e){return this._props||(this._props={}),r.copyProperties(this._props,e),this}getProps(){var e;const t=null===(e=this._parent)||void 0===e?void 0:e.getProps();return t&&this._props?r.copyProperties({},t,this._props):t||this._props||null}params(...e){return this._params=e,this}getParams(){var e;const t=null===(e=this._parent)||void 0===e?void 0:e.getParams();return t&&this._params?t.concat(this._params):t||this._params}defaults(e){return this._defaults=e,this}getDefaults(e,t,o){var r;const n="function"==typeof this._defaults?this._defaults(e,t,o):null,i=null===(r=this._parent)||void 0===r?void 0:r.getDefaults(e,t,o);return i&&n?Object.assign({},i,n):i||n}getContextClass(e=n){const t=class extends e{constructor(e){super(e),r.copyToSelf(this)}},o=this.getParams(),i=this.getProps();return o&&o.forEach(((e,o)=>{if(void 0!==(null==i?void 0:i[e]))throw new Error(`Hooks can not have a property and param named '${e}'. Use .defaults instead.`);Object.defineProperty(t.prototype,e,{enumerable:!0,get(){return null==this?void 0:this.arguments[o]},set(e){this.arguments[o]=e}})})),i&&r.copyProperties(t.prototype,i),t}initializeContext(e,t,o){const r=this._parent?this._parent.initializeContext(e,t,o):o,n=this.getDefaults(e,t,r);if(e&&(r.self=e),r.arguments=t,n)for(const e of Object.keys(n))void 0===r[e]&&(r[e]=n[e]);return r}}function s(e){return e&&e[t.HOOKS]||null}function a(e,o){const r=s(e);return e[t.HOOKS]=o.parent(r),e}function c(e){const t=s(e);return t?t.getMiddleware():null}t.HookManager=i,t.convertOptions=function(e=null){return e?Array.isArray(e)?(new i).middleware(e):e:new i},t.getManager=s,t.setManager=a,t.getMiddleware=c,t.setMiddleware=function(e,t){return a(e,(new i).middleware(t))}},85:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.compose=void 0,t.compose=function(e){if(!Array.isArray(e))throw new TypeError("Middleware stack must be an array!");for(const t of e)if("function"!=typeof t)throw new TypeError("Middleware must be composed of functions!");return function(t,o){let r=-1;return function n(i){if(i<=r)return Promise.reject(new Error("next() called multiple times"));r=i;let s=e[i];if(i===e.length&&(s=o),!s)return Promise.resolve();try{return Promise.resolve(s.call(this,t,n.bind(this,i+1)))}catch(e){return Promise.reject(e)}}.call(this,0)}}},460:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hookDecorator=t.objectHooks=t.functionHooks=t.getOriginal=void 0;const r=o(85),n=o(150),i=o(930);function s(e){return"function"==typeof e.original?s(e.original):e}function a(e,t){if("function"!=typeof e)throw new Error("Can not apply hooks to non-function");const o=n.convertOptions(t),a=function(...e){const{Context:t,original:n}=a,i=e[e.length-1]instanceof t,s=i?e.pop():new t,c=o.initializeContext(this,e,s),l=[(e,t)=>t().then((()=>i?e:e.result))],p=o.collectMiddleware(this,e);return p&&Array.prototype.push.apply(l,p),l.push(((e,t)=>Object.prototype.hasOwnProperty.call(c,"result")?t():Promise.resolve(n.apply(this,e.arguments)).then((o=>(e.result=o,t()))))),r.compose(l).call(this,c)};return i.copyFnProperties(a,e),i.copyProperties(a,e),n.setManager(a,o),Object.assign(a,{original:s(e),Context:o.getContextClass(),createContext:(e={})=>new a.Context(e)})}t.getOriginal=s,t.functionHooks=a,t.objectHooks=function(e,t){const o="function"==typeof e?e.prototype:e;return Array.isArray(t)?n.setMiddleware(o,t):Object.keys(t).reduce(((e,r)=>{const i=o[r];if("function"!=typeof i)throw new Error(`Can not apply hooks. '${r}' is not a function`);const s=n.convertOptions(t[r]);return e[r]=a(i,s.props({method:r})),e}),o)},t.hookDecorator=e=>(t,o,r)=>{const i=n.convertOptions(e);if(!r)return n.setManager(t.prototype,i),t;const s=r.value;if("function"!=typeof s)throw new Error(`Can not apply hooks. '${o}' is not a function`);return r.value=a(s,i.props({method:o})),r}},920:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),t.hooks=t.middleware=void 0;const i=o(150),s=o(460);n(o(460),t),n(o(85),t),n(o(150),t),t.middleware=function(e,t){const o=(new i.HookManager).middleware(e);return t&&(t.params&&o.params(...t.params),t.defaults&&o.defaults(t.defaults),t.props&&o.props(t.props)),o},t.hooks=function(...e){const[t,o]=e;return"function"==typeof t&&(o instanceof i.HookManager||Array.isArray(o)||1===e.length)?s.functionHooks(t,o):2===e.length?s.objectHooks(t,o):s.hookDecorator(t)}},930:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.copyFnProperties=t.copyProperties=t.copyToSelf=void 0;const o=Object.prototype,r="function"==typeof o.__lookupGetter__&&"function"==typeof o.__defineGetter__&&"function"==typeof o.__defineSetter__;t.copyToSelf=function(e){for(const t in e)if(!e.hasOwnProperty(t)){const o=r?e.constructor.prototype.__lookupGetter__(t):Object.getOwnPropertyDescriptor(e,t);if(r&&o){e.__defineGetter__(t,o);const r=e.constructor.prototype.__lookupSetter__(t);r&&e.__defineSetter__(t,r)}else o?Object.defineProperty(e,t,o):e[t]=e[t]}},t.copyProperties=function(e,...t){for(const o of t){const t=Object.keys(o).concat(Object.getOwnPropertySymbols(o));for(const r of t){const t=Object.getOwnPropertyDescriptor(o,r);t&&!Object.prototype.hasOwnProperty.call(e,r)&&Object.defineProperty(e,r,t)}}return e},t.copyFnProperties=function(e,t){const o=["name","length"];try{for(const r of o){const o=t[r];Object.defineProperty(e,r,{value:o})}}catch(e){}return e}}},t={};return function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,o),i.exports}(920)})()}));