@descope/sdk-helpers 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.d.ts +38 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("tslib");const t=(e,t)=>e.length===t.length&&e.every(((e,s)=>e===t[s]));var s,r,i,a;function l(e,t){const s=Object.getOwnPropertyNames(e),r=Object.getOwnPropertyNames(t);if(s.length!==r.length)return!1;for(let r=0;r<s.length;r+=1){const i=s[r],a=e[i],
|
|
1
|
+
"use strict";var e=require("tslib");const t=(e,t)=>e.length===t.length&&e.every(((e,s)=>e===t[s]));var s,r,i,a;function l(e,t){const s=Object.getOwnPropertyNames(e),r=Object.getOwnPropertyNames(t);if(s.length!==r.length)return!1;for(let r=0;r<s.length;r+=1){const i=s[r],a=e[i],c=t[i];if(null===a||null===c){if(a!==c)return!1}else if("object"==typeof a&&"object"==typeof c){if(!l(a,c))return!1}else if(a!==c)return!1}return!0}s=new WeakMap,r=new WeakMap,i=new WeakMap,a=new WeakMap;exports.State=class{constructor(t={},{forceUpdate:c=!1}={}){s.set(this,void 0),r.set(this,{}),i.set(this,0),a.set(this,!0),this.update=t=>{const i="function"==typeof t?t(e.__classPrivateFieldGet(this,s,"f")):t,c=Object.assign(Object.assign({},e.__classPrivateFieldGet(this,s,"f")),i);if(e.__classPrivateFieldGet(this,a,"f")||!l(e.__classPrivateFieldGet(this,s,"f"),c)){const t=e.__classPrivateFieldGet(this,s,"f");e.__classPrivateFieldSet(this,s,c,"f"),Object.freeze(e.__classPrivateFieldGet(this,s,"f")),setTimeout((()=>{Object.values(e.__classPrivateFieldGet(this,r,"f")).forEach((e=>e(c,t,((e,t)=>s=>e[s]!==t[s])(c,t))))}),0)}},e.__classPrivateFieldSet(this,s,t,"f"),e.__classPrivateFieldSet(this,a,c,"f")}get current(){return Object.assign({},e.__classPrivateFieldGet(this,s,"f"))}subscribe(t){return e.__classPrivateFieldSet(this,i,e.__classPrivateFieldGet(this,i,"f")+1,"f"),e.__classPrivateFieldGet(this,r,"f")[e.__classPrivateFieldGet(this,i,"f")]=t,e.__classPrivateFieldGet(this,i,"f").toString()}unsubscribe(t){const s=!!e.__classPrivateFieldGet(this,r,"f")[t];return s&&delete e.__classPrivateFieldGet(this,r,"f")[t],s}unsubscribeAll(){return e.__classPrivateFieldSet(this,r,{},"f"),!0}},exports.compareArrays=t,exports.compose=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)},exports.createSingletonMixin=e=>{const t=Symbol((e=>{const t=e.toString();let s=0;for(let e=0;e<t.length;e++)s=(s<<5)-s+t.charCodeAt(e),s&=s;return s.toString(16)})(e));return s=>{if(s[t])return s;const r=e(s);return r[t]=!0,r}},exports.createTemplate=e=>{const t=document.createElement("template");return t.innerHTML=e,t},exports.debounce=(e,t=500)=>{let s;return function(...r){clearTimeout(s),s=setTimeout((()=>e.apply(this,r)),t)}},exports.decodeJWT=e=>{try{const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),s=decodeURIComponent(atob(t).split("").map((e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""));return JSON.parse(s)}catch(e){return null}},exports.isObjEmpty=e=>0===Object.keys(e).length&&e.constructor===Object,exports.isPlainObject=e=>null!==e&&"object"==typeof e&&Object.getPrototypeOf(e)===Object.prototype,exports.kebabCase=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase(),exports.pathJoin=(...e)=>e.join("/").replace(/\/+/g,"/"),exports.pluralize=e=>(t,...s)=>t.reduce(((t,r,i)=>{var a;return`${t}${r}${(null===(a=null==s?void 0:s[i])||void 0===a?void 0:a[e>1?1:0])||""}`}),""),exports.withMemCache=e=>{let s,r;return(...i)=>(s&&t(s,i)||(s=i,r=e(...i)),r)};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../src/dom.ts","../../src/generic.ts","../../src/state.ts","../../src/compose.ts","../../src/mixins.ts"],"sourcesContent":["export const createTemplate = (templateString: string) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n","// preventing duplicate separators\nexport const pathJoin = (...paths: string[]) =>\n paths.join('/').replace(/\\/+/g, '/');\n\nexport const compareArrays = (array1: any[], array2: any[]) =>\n array1.length === array2.length &&\n array1.every((value: any, index: number) => value === array2[index]);\n\nexport const withMemCache = <I extends any[], O>(fn: (...args: I) => O) => {\n let prevArgs: any[];\n let cache: any;\n return (...args: I) => {\n if (prevArgs && compareArrays(prevArgs, args)) return cache as O;\n\n prevArgs = args;\n cache = fn(...args);\n\n return cache as O;\n };\n};\n\nexport const kebabCase = (str: string) =>\n str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_.]+/g, '-')\n .toLowerCase();\n\nexport const isObjEmpty = (obj: object) =>\n Object.keys(obj).length === 0 && obj.constructor === Object;\n\nexport const pluralize =\n (amount: number) =>\n (strings: TemplateStringsArray, ...expressions: (string | number)[][]) =>\n strings.reduce(\n (acc, str, idx) =>\n `${acc}${str}${expressions?.[idx]?.[amount > 1 ? 1 : 0] || ''}`,\n '',\n );\n\nexport const debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function debounced(this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nexport const isPlainObject = (obj: unknown) =>\n obj !== null &&\n typeof obj === 'object' &&\n Object.getPrototypeOf(obj) === Object.prototype;\n","const createIsChanged =\n <T extends Record<string, any>>(state: T, prevState: T) =>\n (attrName: keyof T) =>\n state[attrName] !== prevState[attrName];\n\ntype StateObject = Record<string, any>;\n\ntype UpdateStateCb<T> = (state: T) => Partial<T>;\ntype Subscribers<T> = Record<string, SubscribeCb<T>>;\n\n// eslint-disable-next-line import/exports-last\nexport type SubscribeCb<T> = (\n state: T,\n prevState: T,\n isChanged: ReturnType<typeof createIsChanged>,\n) => void | Promise<void>;\n\nfunction compareObjects(\n objectA: Record<string, any>,\n objectB: Record<string, any>,\n) {\n const aProperties = Object.getOwnPropertyNames(objectA);\n const bProperties = Object.getOwnPropertyNames(objectB);\n\n if (aProperties.length !== bProperties.length) {\n return false;\n }\n\n for (let i = 0; i < aProperties.length; i += 1) {\n const propName = aProperties[i];\n\n const valA = objectA[propName];\n const valB = objectB[propName];\n if (valA === null || valB === null) {\n if (valA !== valB) {\n return false;\n }\n } else if (typeof valA === 'object' && typeof valB === 'object') {\n // compare nested objects\n if (!compareObjects(valA, valB)) {\n return false;\n }\n } else if (valA !== valB) {\n return false;\n }\n }\n\n return true;\n}\n\nexport type IsChanged<T> = Parameters<SubscribeCb<T>>[2];\n\nexport class State<T extends StateObject> {\n #state: T;\n\n #subscribers: Subscribers<T> = {};\n\n #token = 0;\n\n #forceUpdate = true;\n\n constructor(init: T = {} as T, { forceUpdate = false } = {}) {\n this.#state = init;\n this.#forceUpdate = forceUpdate;\n }\n\n get current() {\n return { ...this.#state };\n }\n\n update = (newState: Partial<T> | UpdateStateCb<T>) => {\n const internalNewState =\n typeof newState === 'function' ? newState(this.#state) : newState;\n\n const nextState = { ...this.#state, ...internalNewState };\n if (this.#forceUpdate || !compareObjects(this.#state, nextState)) {\n const prevState = this.#state;\n this.#state = nextState;\n Object.freeze(this.#state);\n\n setTimeout(() => {\n Object.values(this.#subscribers).forEach((cb) =>\n cb(nextState, prevState, createIsChanged(nextState, prevState)),\n );\n }, 0);\n }\n };\n\n subscribe(cb: SubscribeCb<T>) {\n this.#token += 1;\n this.#subscribers[this.#token] = cb;\n\n return this.#token.toString();\n }\n\n unsubscribe(token: string) {\n const isFound = !!this.#subscribers[token];\n\n if (isFound) {\n delete this.#subscribers[token];\n }\n\n return isFound;\n }\n\n unsubscribeAll() {\n this.#subscribers = {};\n\n return true;\n }\n}\n","type Fn = (arg: any) => any;\n\nexport function compose<Input, A1>(\n fn1: (input: Input) => A1,\n): (input: Input) => A1;\n\nexport function compose<Input, A1, A2>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n): (input: Input) => A2;\n\nexport function compose<Input, A1, A2, A3>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n): (input: Input) => A3;\n\nexport function compose<Input, A1, A2, A3, A4>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n): (input: Input) => A4;\n\nexport function compose<Input, A1, A2, A3, A4, A5>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n): (input: Input) => A5;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n): (input: Input) => A6;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n): (input: Input) => A7;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n): (input: Input) => A8;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n): (input: Input) => A9;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n): (input: Input) => A10;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n): (input: Input) => A11;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n): (input: Input) => A12;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n): (input: Input) => A13;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n): (input: Input) => A14;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n): (input: Input) => A15;\n\n/**\n * Currently there is no way to create a compose function in Typescript without using overloading\n * This function currently support up to 15 wrappers\n * If needed you can add more by duplicating the type and add more parameters\n */\n\nexport function compose(...args: Fn[]) {\n return (data: any) => args.reduce((acc, elem) => elem(acc), data) as any;\n}\n","const getFunctionHash = (fn: Function) => {\n const functionSource = fn.toString();\n\n let hash = 0;\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < functionSource.length; i++) {\n const char = functionSource.charCodeAt(i);\n // eslint-disable-next-line no-bitwise\n hash = (hash << 5) - hash + char;\n // eslint-disable-next-line no-bitwise\n hash &= hash; // Convert to 32-bit integer\n }\n\n return hash.toString(16);\n};\n\ntype Mixin = (superclass: CustomElementConstructor) => CustomElementConstructor;\n\n// because a single mixin can be a dependency for many other mixins, a mixin can be loaded multiple times\n// some mixins should not be loaded multiple times, wrapping a mixin with this fn ensures it will load only once\nexport const createSingletonMixin = <T extends Mixin>(mixin: T): T => {\n const mixinNameSym = Symbol(getFunctionHash(mixin));\n\n const singletonMixin = (superclass: CustomElementConstructor) => {\n if (superclass[mixinNameSym]) {\n return superclass;\n }\n\n const cls = mixin(superclass);\n cls[mixinNameSym] = true;\n\n return cls;\n };\n\n return singletonMixin as T;\n};\n"],"names":["compareArrays","array1","array2","length","every","value","index","compareObjects","objectA","objectB","aProperties","Object","getOwnPropertyNames","bProperties","i","propName","valA","valB","constructor","init","forceUpdate","_State_state","set","this","_State_subscribers","_State_token","_State_forceUpdate","update","newState","internalNewState","__classPrivateFieldGet","nextState","prevState","__classPrivateFieldSet","freeze","setTimeout","values","forEach","cb","state","attrName","createIsChanged","current","assign","subscribe","toString","unsubscribe","token","isFound","unsubscribeAll","args","data","reduce","acc","elem","mixin","mixinNameSym","Symbol","fn","functionSource","hash","charCodeAt","getFunctionHash","superclass","cls","templateString","template","document","createElement","innerHTML","ms","timeoutId","clearTimeout","apply","obj","keys","getPrototypeOf","prototype","str","replace","toLowerCase","paths","join","amount","strings","expressions","idx","_a","prevArgs","cache"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/dom.ts","../../src/generic.ts","../../src/state.ts","../../src/compose.ts","../../src/mixins.ts","../../src/jwt.ts"],"sourcesContent":["export const createTemplate = (templateString: string) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n","// preventing duplicate separators\nexport const pathJoin = (...paths: string[]) =>\n paths.join('/').replace(/\\/+/g, '/');\n\nexport const compareArrays = (array1: any[], array2: any[]) =>\n array1.length === array2.length &&\n array1.every((value: any, index: number) => value === array2[index]);\n\nexport const withMemCache = <I extends any[], O>(fn: (...args: I) => O) => {\n let prevArgs: any[];\n let cache: any;\n return (...args: I) => {\n if (prevArgs && compareArrays(prevArgs, args)) return cache as O;\n\n prevArgs = args;\n cache = fn(...args);\n\n return cache as O;\n };\n};\n\nexport const kebabCase = (str: string) =>\n str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_.]+/g, '-')\n .toLowerCase();\n\nexport const isObjEmpty = (obj: object) =>\n Object.keys(obj).length === 0 && obj.constructor === Object;\n\nexport const pluralize =\n (amount: number) =>\n (strings: TemplateStringsArray, ...expressions: (string | number)[][]) =>\n strings.reduce(\n (acc, str, idx) =>\n `${acc}${str}${expressions?.[idx]?.[amount > 1 ? 1 : 0] || ''}`,\n '',\n );\n\nexport const debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function debounced(this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nexport const isPlainObject = (obj: unknown) =>\n obj !== null &&\n typeof obj === 'object' &&\n Object.getPrototypeOf(obj) === Object.prototype;\n","const createIsChanged =\n <T extends Record<string, any>>(state: T, prevState: T) =>\n (attrName: keyof T) =>\n state[attrName] !== prevState[attrName];\n\ntype StateObject = Record<string, any>;\n\ntype UpdateStateCb<T> = (state: T) => Partial<T>;\ntype Subscribers<T> = Record<string, SubscribeCb<T>>;\n\n// eslint-disable-next-line import/exports-last\nexport type SubscribeCb<T> = (\n state: T,\n prevState: T,\n isChanged: ReturnType<typeof createIsChanged>,\n) => void | Promise<void>;\n\nfunction compareObjects(\n objectA: Record<string, any>,\n objectB: Record<string, any>,\n) {\n const aProperties = Object.getOwnPropertyNames(objectA);\n const bProperties = Object.getOwnPropertyNames(objectB);\n\n if (aProperties.length !== bProperties.length) {\n return false;\n }\n\n for (let i = 0; i < aProperties.length; i += 1) {\n const propName = aProperties[i];\n\n const valA = objectA[propName];\n const valB = objectB[propName];\n if (valA === null || valB === null) {\n if (valA !== valB) {\n return false;\n }\n } else if (typeof valA === 'object' && typeof valB === 'object') {\n // compare nested objects\n if (!compareObjects(valA, valB)) {\n return false;\n }\n } else if (valA !== valB) {\n return false;\n }\n }\n\n return true;\n}\n\nexport type IsChanged<T> = Parameters<SubscribeCb<T>>[2];\n\nexport class State<T extends StateObject> {\n #state: T;\n\n #subscribers: Subscribers<T> = {};\n\n #token = 0;\n\n #forceUpdate = true;\n\n constructor(init: T = {} as T, { forceUpdate = false } = {}) {\n this.#state = init;\n this.#forceUpdate = forceUpdate;\n }\n\n get current() {\n return { ...this.#state };\n }\n\n update = (newState: Partial<T> | UpdateStateCb<T>) => {\n const internalNewState =\n typeof newState === 'function' ? newState(this.#state) : newState;\n\n const nextState = { ...this.#state, ...internalNewState };\n if (this.#forceUpdate || !compareObjects(this.#state, nextState)) {\n const prevState = this.#state;\n this.#state = nextState;\n Object.freeze(this.#state);\n\n setTimeout(() => {\n Object.values(this.#subscribers).forEach((cb) =>\n cb(nextState, prevState, createIsChanged(nextState, prevState)),\n );\n }, 0);\n }\n };\n\n subscribe(cb: SubscribeCb<T>) {\n this.#token += 1;\n this.#subscribers[this.#token] = cb;\n\n return this.#token.toString();\n }\n\n unsubscribe(token: string) {\n const isFound = !!this.#subscribers[token];\n\n if (isFound) {\n delete this.#subscribers[token];\n }\n\n return isFound;\n }\n\n unsubscribeAll() {\n this.#subscribers = {};\n\n return true;\n }\n}\n","type Fn = (arg: any) => any;\n\nexport function compose<Input, A1>(\n fn1: (input: Input) => A1,\n): (input: Input) => A1;\n\nexport function compose<Input, A1, A2>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n): (input: Input) => A2;\n\nexport function compose<Input, A1, A2, A3>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n): (input: Input) => A3;\n\nexport function compose<Input, A1, A2, A3, A4>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n): (input: Input) => A4;\n\nexport function compose<Input, A1, A2, A3, A4, A5>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n): (input: Input) => A5;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n): (input: Input) => A6;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n): (input: Input) => A7;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n): (input: Input) => A8;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n): (input: Input) => A9;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n): (input: Input) => A10;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n): (input: Input) => A11;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n): (input: Input) => A12;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n): (input: Input) => A13;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n): (input: Input) => A14;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n): (input: Input) => A15;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n): (input: Input) => A16;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n): (input: Input) => A17;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n): (input: Input) => A18;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n): (input: Input) => A19;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n): (input: Input) => A20;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n): (input: Input) => A21;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n): (input: Input) => A22;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n): (input: Input) => A23;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n): (input: Input) => A24;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n): (input: Input) => A25;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n): (input: Input) => A26;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n): (input: Input) => A27;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n): (input: Input) => A28;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n): (input: Input) => A29;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n): (input: Input) => A30;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n): (input: Input) => A31;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n): (input: Input) => A32;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n): (input: Input) => A33;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n): (input: Input) => A34;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n): (input: Input) => A35;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n): (input: Input) => A36;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n): (input: Input) => A37;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n): (input: Input) => A38;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n): (input: Input) => A39;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n): (input: Input) => A40;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n): (input: Input) => A41;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n): (input: Input) => A42;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n): (input: Input) => A43;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n): (input: Input) => A44;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n): (input: Input) => A45;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n): (input: Input) => A46;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n): (input: Input) => A47;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n A48,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n fn48: (input: A47) => A48,\n): (input: Input) => A48;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n A48,\n A49,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n fn48: (input: A47) => A48,\n fn49: (input: A48) => A49,\n): (input: Input) => A49;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n A48,\n A49,\n A50,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n fn48: (input: A47) => A48,\n fn49: (input: A48) => A49,\n fn50: (input: A49) => A50,\n): (input: Input) => A50;\n\n/**\n * Currently there is no way to create a compose function in Typescript without using overloading\n * This function currently support up to 50 wrappers\n * If needed you can add more by duplicating the type and add more parameters\n */\n\nexport function compose(...args: Fn[]) {\n return (data: any) => args.reduce((acc, elem) => elem(acc), data) as any;\n}\n","const getFunctionHash = (fn: Function) => {\n const functionSource = fn.toString();\n\n let hash = 0;\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < functionSource.length; i++) {\n const char = functionSource.charCodeAt(i);\n // eslint-disable-next-line no-bitwise\n hash = (hash << 5) - hash + char;\n // eslint-disable-next-line no-bitwise\n hash &= hash; // Convert to 32-bit integer\n }\n\n return hash.toString(16);\n};\n\ntype Mixin = (superclass: CustomElementConstructor) => CustomElementConstructor;\n\n// because a single mixin can be a dependency for many other mixins, a mixin can be loaded multiple times\n// some mixins should not be loaded multiple times, wrapping a mixin with this fn ensures it will load only once\nexport const createSingletonMixin = <T extends Mixin>(mixin: T): T => {\n const mixinNameSym = Symbol(getFunctionHash(mixin));\n\n const singletonMixin = (superclass: CustomElementConstructor) => {\n if (superclass[mixinNameSym]) {\n return superclass;\n }\n\n const cls = mixin(superclass);\n cls[mixinNameSym] = true;\n\n return cls;\n };\n\n return singletonMixin as T;\n};\n","// Helper function to decode JWT and extract claims\nexport const decodeJWT = (token: string) => {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join(''),\n );\n return JSON.parse(jsonPayload);\n } catch (e) {\n return null;\n }\n};\n"],"names":["compareArrays","array1","array2","length","every","value","index","compareObjects","objectA","objectB","aProperties","Object","getOwnPropertyNames","bProperties","i","propName","valA","valB","constructor","init","forceUpdate","_State_state","set","this","_State_subscribers","_State_token","_State_forceUpdate","update","newState","internalNewState","__classPrivateFieldGet","nextState","prevState","__classPrivateFieldSet","freeze","setTimeout","values","forEach","cb","state","attrName","createIsChanged","current","assign","subscribe","toString","unsubscribe","token","isFound","unsubscribeAll","args","data","reduce","acc","elem","mixin","mixinNameSym","Symbol","fn","functionSource","hash","charCodeAt","getFunctionHash","superclass","cls","templateString","template","document","createElement","innerHTML","ms","timeoutId","clearTimeout","apply","base64","split","replace","jsonPayload","decodeURIComponent","atob","map","c","slice","join","JSON","parse","e","obj","keys","getPrototypeOf","prototype","str","toLowerCase","paths","amount","strings","expressions","idx","_a","prevArgs","cache"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,41 @@ declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A1
|
|
|
13
13
|
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13): (input: Input) => A13;
|
|
14
14
|
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14): (input: Input) => A14;
|
|
15
15
|
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15): (input: Input) => A15;
|
|
16
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16): (input: Input) => A16;
|
|
17
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17): (input: Input) => A17;
|
|
18
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18): (input: Input) => A18;
|
|
19
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19): (input: Input) => A19;
|
|
20
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20): (input: Input) => A20;
|
|
21
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21): (input: Input) => A21;
|
|
22
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22): (input: Input) => A22;
|
|
23
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23): (input: Input) => A23;
|
|
24
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24): (input: Input) => A24;
|
|
25
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25): (input: Input) => A25;
|
|
26
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26): (input: Input) => A26;
|
|
27
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27): (input: Input) => A27;
|
|
28
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28): (input: Input) => A28;
|
|
29
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29): (input: Input) => A29;
|
|
30
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30): (input: Input) => A30;
|
|
31
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31): (input: Input) => A31;
|
|
32
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32): (input: Input) => A32;
|
|
33
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33): (input: Input) => A33;
|
|
34
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34): (input: Input) => A34;
|
|
35
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35): (input: Input) => A35;
|
|
36
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36): (input: Input) => A36;
|
|
37
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37): (input: Input) => A37;
|
|
38
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38): (input: Input) => A38;
|
|
39
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39): (input: Input) => A39;
|
|
40
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40): (input: Input) => A40;
|
|
41
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41): (input: Input) => A41;
|
|
42
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42): (input: Input) => A42;
|
|
43
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43): (input: Input) => A43;
|
|
44
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44): (input: Input) => A44;
|
|
45
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45): (input: Input) => A45;
|
|
46
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46): (input: Input) => A46;
|
|
47
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47): (input: Input) => A47;
|
|
48
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47, fn48: (input: A47) => A48): (input: Input) => A48;
|
|
49
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48, A49>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47, fn48: (input: A47) => A48, fn49: (input: A48) => A49): (input: Input) => A49;
|
|
50
|
+
declare function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48, A49, A50>(fn1: (input: Input) => A1, fn2: (input: A1) => A2, fn3: (input: A2) => A3, fn4: (input: A3) => A4, fn5: (input: A4) => A5, fn6: (input: A5) => A6, fn7: (input: A6) => A7, fn8: (input: A7) => A8, fn9: (input: A8) => A9, fn10: (input: A9) => A10, fn11: (input: A10) => A11, fn12: (input: A11) => A12, fn13: (input: A12) => A13, fn14: (input: A13) => A14, fn15: (input: A14) => A15, fn16: (input: A15) => A16, fn17: (input: A16) => A17, fn18: (input: A17) => A18, fn19: (input: A18) => A19, fn20: (input: A19) => A20, fn21: (input: A20) => A21, fn22: (input: A21) => A22, fn23: (input: A22) => A23, fn24: (input: A23) => A24, fn25: (input: A24) => A25, fn26: (input: A25) => A26, fn27: (input: A26) => A27, fn28: (input: A27) => A28, fn29: (input: A28) => A29, fn30: (input: A29) => A30, fn31: (input: A30) => A31, fn32: (input: A31) => A32, fn33: (input: A32) => A33, fn34: (input: A33) => A34, fn35: (input: A34) => A35, fn36: (input: A35) => A36, fn37: (input: A36) => A37, fn38: (input: A37) => A38, fn39: (input: A38) => A39, fn40: (input: A39) => A40, fn41: (input: A40) => A41, fn42: (input: A41) => A42, fn43: (input: A42) => A43, fn44: (input: A43) => A44, fn45: (input: A44) => A45, fn46: (input: A45) => A46, fn47: (input: A46) => A47, fn48: (input: A47) => A48, fn49: (input: A48) => A49, fn50: (input: A49) => A50): (input: Input) => A50;
|
|
16
51
|
|
|
17
52
|
declare const createTemplate: (templateString: string) => HTMLTemplateElement;
|
|
18
53
|
|
|
@@ -45,4 +80,6 @@ declare class State<T extends StateObject> {
|
|
|
45
80
|
unsubscribeAll(): boolean;
|
|
46
81
|
}
|
|
47
82
|
|
|
48
|
-
|
|
83
|
+
declare const decodeJWT: (token: string) => any;
|
|
84
|
+
|
|
85
|
+
export { type IsChanged, State, type SubscribeCb, compareArrays, compose, createSingletonMixin, createTemplate, debounce, decodeJWT, isObjEmpty, isPlainObject, kebabCase, pathJoin, pluralize, withMemCache };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__classPrivateFieldGet as t,__classPrivateFieldSet as e}from"tslib";function r(...t){return e=>t.reduce(((t,e)=>e(t)),e)}const n=t=>{const e=document.createElement("template");return e.innerHTML=t,e},s=(...t)=>t.join("/").replace(/\/+/g,"/"),
|
|
1
|
+
import{__classPrivateFieldGet as t,__classPrivateFieldSet as e}from"tslib";function r(...t){return e=>t.reduce(((t,e)=>e(t)),e)}const n=t=>{const e=document.createElement("template");return e.innerHTML=t,e},s=(...t)=>t.join("/").replace(/\/+/g,"/"),o=(t,e)=>t.length===e.length&&t.every(((t,r)=>t===e[r])),i=t=>{let e,r;return(...n)=>(e&&o(e,n)||(e=n,r=t(...n)),r)},c=t=>t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase(),u=t=>0===Object.keys(t).length&&t.constructor===Object,l=t=>(e,...r)=>e.reduce(((e,n,s)=>{var o;return`${e}${n}${(null===(o=null==r?void 0:r[s])||void 0===o?void 0:o[t>1?1:0])||""}`}),""),f=(t,e=500)=>{let r;return function(...n){clearTimeout(r),r=setTimeout((()=>t.apply(this,n)),e)}},a=t=>null!==t&&"object"==typeof t&&Object.getPrototypeOf(t)===Object.prototype,h=t=>{const e=Symbol((t=>{const e=t.toString();let r=0;for(let t=0;t<e.length;t++)r=(r<<5)-r+e.charCodeAt(t),r&=r;return r.toString(16)})(t));return r=>{if(r[e])return r;const n=t(r);return n[e]=!0,n}};var p,b,g,j;function O(t,e){const r=Object.getOwnPropertyNames(t),n=Object.getOwnPropertyNames(e);if(r.length!==n.length)return!1;for(let n=0;n<r.length;n+=1){const s=r[n],o=t[s],i=e[s];if(null===o||null===i){if(o!==i)return!1}else if("object"==typeof o&&"object"==typeof i){if(!O(o,i))return!1}else if(o!==i)return!1}return!0}class d{constructor(r={},{forceUpdate:n=!1}={}){p.set(this,void 0),b.set(this,{}),g.set(this,0),j.set(this,!0),this.update=r=>{const n="function"==typeof r?r(t(this,p,"f")):r,s=Object.assign(Object.assign({},t(this,p,"f")),n);if(t(this,j,"f")||!O(t(this,p,"f"),s)){const r=t(this,p,"f");e(this,p,s,"f"),Object.freeze(t(this,p,"f")),setTimeout((()=>{Object.values(t(this,b,"f")).forEach((t=>t(s,r,((t,e)=>r=>t[r]!==e[r])(s,r))))}),0)}},e(this,p,r,"f"),e(this,j,n,"f")}get current(){return Object.assign({},t(this,p,"f"))}subscribe(r){return e(this,g,t(this,g,"f")+1,"f"),t(this,b,"f")[t(this,g,"f")]=r,t(this,g,"f").toString()}unsubscribe(e){const r=!!t(this,b,"f")[e];return r&&delete t(this,b,"f")[e],r}unsubscribeAll(){return e(this,b,{},"f"),!0}}p=new WeakMap,b=new WeakMap,g=new WeakMap,j=new WeakMap;const m=t=>{try{const e=t.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=decodeURIComponent(atob(e).split("").map((t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2))).join(""));return JSON.parse(r)}catch(t){return null}};export{d as State,o as compareArrays,r as compose,h as createSingletonMixin,n as createTemplate,f as debounce,m as decodeJWT,u as isObjEmpty,a as isPlainObject,c as kebabCase,s as pathJoin,l as pluralize,i as withMemCache};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/compose.ts","../src/dom.ts","../src/generic.ts","../src/mixins.ts","../src/state.ts"],"sourcesContent":["type Fn = (arg: any) => any;\n\nexport function compose<Input, A1>(\n fn1: (input: Input) => A1,\n): (input: Input) => A1;\n\nexport function compose<Input, A1, A2>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n): (input: Input) => A2;\n\nexport function compose<Input, A1, A2, A3>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n): (input: Input) => A3;\n\nexport function compose<Input, A1, A2, A3, A4>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n): (input: Input) => A4;\n\nexport function compose<Input, A1, A2, A3, A4, A5>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n): (input: Input) => A5;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n): (input: Input) => A6;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n): (input: Input) => A7;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n): (input: Input) => A8;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n): (input: Input) => A9;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n): (input: Input) => A10;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n): (input: Input) => A11;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n): (input: Input) => A12;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n): (input: Input) => A13;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n): (input: Input) => A14;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n): (input: Input) => A15;\n\n/**\n * Currently there is no way to create a compose function in Typescript without using overloading\n * This function currently support up to 15 wrappers\n * If needed you can add more by duplicating the type and add more parameters\n */\n\nexport function compose(...args: Fn[]) {\n return (data: any) => args.reduce((acc, elem) => elem(acc), data) as any;\n}\n","export const createTemplate = (templateString: string) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n","// preventing duplicate separators\nexport const pathJoin = (...paths: string[]) =>\n paths.join('/').replace(/\\/+/g, '/');\n\nexport const compareArrays = (array1: any[], array2: any[]) =>\n array1.length === array2.length &&\n array1.every((value: any, index: number) => value === array2[index]);\n\nexport const withMemCache = <I extends any[], O>(fn: (...args: I) => O) => {\n let prevArgs: any[];\n let cache: any;\n return (...args: I) => {\n if (prevArgs && compareArrays(prevArgs, args)) return cache as O;\n\n prevArgs = args;\n cache = fn(...args);\n\n return cache as O;\n };\n};\n\nexport const kebabCase = (str: string) =>\n str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_.]+/g, '-')\n .toLowerCase();\n\nexport const isObjEmpty = (obj: object) =>\n Object.keys(obj).length === 0 && obj.constructor === Object;\n\nexport const pluralize =\n (amount: number) =>\n (strings: TemplateStringsArray, ...expressions: (string | number)[][]) =>\n strings.reduce(\n (acc, str, idx) =>\n `${acc}${str}${expressions?.[idx]?.[amount > 1 ? 1 : 0] || ''}`,\n '',\n );\n\nexport const debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function debounced(this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nexport const isPlainObject = (obj: unknown) =>\n obj !== null &&\n typeof obj === 'object' &&\n Object.getPrototypeOf(obj) === Object.prototype;\n","const getFunctionHash = (fn: Function) => {\n const functionSource = fn.toString();\n\n let hash = 0;\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < functionSource.length; i++) {\n const char = functionSource.charCodeAt(i);\n // eslint-disable-next-line no-bitwise\n hash = (hash << 5) - hash + char;\n // eslint-disable-next-line no-bitwise\n hash &= hash; // Convert to 32-bit integer\n }\n\n return hash.toString(16);\n};\n\ntype Mixin = (superclass: CustomElementConstructor) => CustomElementConstructor;\n\n// because a single mixin can be a dependency for many other mixins, a mixin can be loaded multiple times\n// some mixins should not be loaded multiple times, wrapping a mixin with this fn ensures it will load only once\nexport const createSingletonMixin = <T extends Mixin>(mixin: T): T => {\n const mixinNameSym = Symbol(getFunctionHash(mixin));\n\n const singletonMixin = (superclass: CustomElementConstructor) => {\n if (superclass[mixinNameSym]) {\n return superclass;\n }\n\n const cls = mixin(superclass);\n cls[mixinNameSym] = true;\n\n return cls;\n };\n\n return singletonMixin as T;\n};\n","const createIsChanged =\n <T extends Record<string, any>>(state: T, prevState: T) =>\n (attrName: keyof T) =>\n state[attrName] !== prevState[attrName];\n\ntype StateObject = Record<string, any>;\n\ntype UpdateStateCb<T> = (state: T) => Partial<T>;\ntype Subscribers<T> = Record<string, SubscribeCb<T>>;\n\n// eslint-disable-next-line import/exports-last\nexport type SubscribeCb<T> = (\n state: T,\n prevState: T,\n isChanged: ReturnType<typeof createIsChanged>,\n) => void | Promise<void>;\n\nfunction compareObjects(\n objectA: Record<string, any>,\n objectB: Record<string, any>,\n) {\n const aProperties = Object.getOwnPropertyNames(objectA);\n const bProperties = Object.getOwnPropertyNames(objectB);\n\n if (aProperties.length !== bProperties.length) {\n return false;\n }\n\n for (let i = 0; i < aProperties.length; i += 1) {\n const propName = aProperties[i];\n\n const valA = objectA[propName];\n const valB = objectB[propName];\n if (valA === null || valB === null) {\n if (valA !== valB) {\n return false;\n }\n } else if (typeof valA === 'object' && typeof valB === 'object') {\n // compare nested objects\n if (!compareObjects(valA, valB)) {\n return false;\n }\n } else if (valA !== valB) {\n return false;\n }\n }\n\n return true;\n}\n\nexport type IsChanged<T> = Parameters<SubscribeCb<T>>[2];\n\nexport class State<T extends StateObject> {\n #state: T;\n\n #subscribers: Subscribers<T> = {};\n\n #token = 0;\n\n #forceUpdate = true;\n\n constructor(init: T = {} as T, { forceUpdate = false } = {}) {\n this.#state = init;\n this.#forceUpdate = forceUpdate;\n }\n\n get current() {\n return { ...this.#state };\n }\n\n update = (newState: Partial<T> | UpdateStateCb<T>) => {\n const internalNewState =\n typeof newState === 'function' ? newState(this.#state) : newState;\n\n const nextState = { ...this.#state, ...internalNewState };\n if (this.#forceUpdate || !compareObjects(this.#state, nextState)) {\n const prevState = this.#state;\n this.#state = nextState;\n Object.freeze(this.#state);\n\n setTimeout(() => {\n Object.values(this.#subscribers).forEach((cb) =>\n cb(nextState, prevState, createIsChanged(nextState, prevState)),\n );\n }, 0);\n }\n };\n\n subscribe(cb: SubscribeCb<T>) {\n this.#token += 1;\n this.#subscribers[this.#token] = cb;\n\n return this.#token.toString();\n }\n\n unsubscribe(token: string) {\n const isFound = !!this.#subscribers[token];\n\n if (isFound) {\n delete this.#subscribers[token];\n }\n\n return isFound;\n }\n\n unsubscribeAll() {\n this.#subscribers = {};\n\n return true;\n }\n}\n"],"names":["compose","args","data","reduce","acc","elem","createTemplate","templateString","template","document","createElement","innerHTML","pathJoin","paths","join","replace","compareArrays","array1","array2","length","every","value","index","withMemCache","fn","prevArgs","cache","kebabCase","str","toLowerCase","isObjEmpty","obj","Object","keys","constructor","pluralize","amount","strings","expressions","idx","_a","debounce","ms","timeoutId","clearTimeout","setTimeout","apply","this","isPlainObject","getPrototypeOf","prototype","createSingletonMixin","mixin","mixinNameSym","Symbol","functionSource","toString","hash","i","charCodeAt","getFunctionHash","superclass","cls","compareObjects","objectA","objectB","aProperties","getOwnPropertyNames","bProperties","propName","valA","valB","State","init","forceUpdate","_State_state","set","_State_subscribers","_State_token","_State_forceUpdate","update","newState","internalNewState","__classPrivateFieldGet","nextState","prevState","__classPrivateFieldSet","freeze","values","forEach","cb","state","attrName","createIsChanged","current","assign","subscribe","unsubscribe","token","isFound","unsubscribeAll"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/compose.ts","../src/dom.ts","../src/generic.ts","../src/mixins.ts","../src/state.ts","../src/jwt.ts"],"sourcesContent":["type Fn = (arg: any) => any;\n\nexport function compose<Input, A1>(\n fn1: (input: Input) => A1,\n): (input: Input) => A1;\n\nexport function compose<Input, A1, A2>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n): (input: Input) => A2;\n\nexport function compose<Input, A1, A2, A3>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n): (input: Input) => A3;\n\nexport function compose<Input, A1, A2, A3, A4>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n): (input: Input) => A4;\n\nexport function compose<Input, A1, A2, A3, A4, A5>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n): (input: Input) => A5;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n): (input: Input) => A6;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n): (input: Input) => A7;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n): (input: Input) => A8;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n): (input: Input) => A9;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n): (input: Input) => A10;\n\nexport function compose<Input, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n): (input: Input) => A11;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n): (input: Input) => A12;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n): (input: Input) => A13;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n): (input: Input) => A14;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n): (input: Input) => A15;\n\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n): (input: Input) => A16;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n): (input: Input) => A17;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n): (input: Input) => A18;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n): (input: Input) => A19;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n): (input: Input) => A20;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n): (input: Input) => A21;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n): (input: Input) => A22;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n): (input: Input) => A23;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n): (input: Input) => A24;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n): (input: Input) => A25;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n): (input: Input) => A26;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n): (input: Input) => A27;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n): (input: Input) => A28;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n): (input: Input) => A29;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n): (input: Input) => A30;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n): (input: Input) => A31;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n): (input: Input) => A32;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n): (input: Input) => A33;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n): (input: Input) => A34;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n): (input: Input) => A35;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n): (input: Input) => A36;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n): (input: Input) => A37;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n): (input: Input) => A38;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n): (input: Input) => A39;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n): (input: Input) => A40;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n): (input: Input) => A41;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n): (input: Input) => A42;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n): (input: Input) => A43;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n): (input: Input) => A44;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n): (input: Input) => A45;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n): (input: Input) => A46;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n): (input: Input) => A47;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n A48,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n fn48: (input: A47) => A48,\n): (input: Input) => A48;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n A48,\n A49,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n fn48: (input: A47) => A48,\n fn49: (input: A48) => A49,\n): (input: Input) => A49;\nexport function compose<\n Input,\n A1,\n A2,\n A3,\n A4,\n A5,\n A6,\n A7,\n A8,\n A9,\n A10,\n A11,\n A12,\n A13,\n A14,\n A15,\n A16,\n A17,\n A18,\n A19,\n A20,\n A21,\n A22,\n A23,\n A24,\n A25,\n A26,\n A27,\n A28,\n A29,\n A30,\n A31,\n A32,\n A33,\n A34,\n A35,\n A36,\n A37,\n A38,\n A39,\n A40,\n A41,\n A42,\n A43,\n A44,\n A45,\n A46,\n A47,\n A48,\n A49,\n A50,\n>(\n fn1: (input: Input) => A1,\n fn2: (input: A1) => A2,\n fn3: (input: A2) => A3,\n fn4: (input: A3) => A4,\n fn5: (input: A4) => A5,\n fn6: (input: A5) => A6,\n fn7: (input: A6) => A7,\n fn8: (input: A7) => A8,\n fn9: (input: A8) => A9,\n fn10: (input: A9) => A10,\n fn11: (input: A10) => A11,\n fn12: (input: A11) => A12,\n fn13: (input: A12) => A13,\n fn14: (input: A13) => A14,\n fn15: (input: A14) => A15,\n fn16: (input: A15) => A16,\n fn17: (input: A16) => A17,\n fn18: (input: A17) => A18,\n fn19: (input: A18) => A19,\n fn20: (input: A19) => A20,\n fn21: (input: A20) => A21,\n fn22: (input: A21) => A22,\n fn23: (input: A22) => A23,\n fn24: (input: A23) => A24,\n fn25: (input: A24) => A25,\n fn26: (input: A25) => A26,\n fn27: (input: A26) => A27,\n fn28: (input: A27) => A28,\n fn29: (input: A28) => A29,\n fn30: (input: A29) => A30,\n fn31: (input: A30) => A31,\n fn32: (input: A31) => A32,\n fn33: (input: A32) => A33,\n fn34: (input: A33) => A34,\n fn35: (input: A34) => A35,\n fn36: (input: A35) => A36,\n fn37: (input: A36) => A37,\n fn38: (input: A37) => A38,\n fn39: (input: A38) => A39,\n fn40: (input: A39) => A40,\n fn41: (input: A40) => A41,\n fn42: (input: A41) => A42,\n fn43: (input: A42) => A43,\n fn44: (input: A43) => A44,\n fn45: (input: A44) => A45,\n fn46: (input: A45) => A46,\n fn47: (input: A46) => A47,\n fn48: (input: A47) => A48,\n fn49: (input: A48) => A49,\n fn50: (input: A49) => A50,\n): (input: Input) => A50;\n\n/**\n * Currently there is no way to create a compose function in Typescript without using overloading\n * This function currently support up to 50 wrappers\n * If needed you can add more by duplicating the type and add more parameters\n */\n\nexport function compose(...args: Fn[]) {\n return (data: any) => args.reduce((acc, elem) => elem(acc), data) as any;\n}\n","export const createTemplate = (templateString: string) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n","// preventing duplicate separators\nexport const pathJoin = (...paths: string[]) =>\n paths.join('/').replace(/\\/+/g, '/');\n\nexport const compareArrays = (array1: any[], array2: any[]) =>\n array1.length === array2.length &&\n array1.every((value: any, index: number) => value === array2[index]);\n\nexport const withMemCache = <I extends any[], O>(fn: (...args: I) => O) => {\n let prevArgs: any[];\n let cache: any;\n return (...args: I) => {\n if (prevArgs && compareArrays(prevArgs, args)) return cache as O;\n\n prevArgs = args;\n cache = fn(...args);\n\n return cache as O;\n };\n};\n\nexport const kebabCase = (str: string) =>\n str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_.]+/g, '-')\n .toLowerCase();\n\nexport const isObjEmpty = (obj: object) =>\n Object.keys(obj).length === 0 && obj.constructor === Object;\n\nexport const pluralize =\n (amount: number) =>\n (strings: TemplateStringsArray, ...expressions: (string | number)[][]) =>\n strings.reduce(\n (acc, str, idx) =>\n `${acc}${str}${expressions?.[idx]?.[amount > 1 ? 1 : 0] || ''}`,\n '',\n );\n\nexport const debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function debounced(this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nexport const isPlainObject = (obj: unknown) =>\n obj !== null &&\n typeof obj === 'object' &&\n Object.getPrototypeOf(obj) === Object.prototype;\n","const getFunctionHash = (fn: Function) => {\n const functionSource = fn.toString();\n\n let hash = 0;\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < functionSource.length; i++) {\n const char = functionSource.charCodeAt(i);\n // eslint-disable-next-line no-bitwise\n hash = (hash << 5) - hash + char;\n // eslint-disable-next-line no-bitwise\n hash &= hash; // Convert to 32-bit integer\n }\n\n return hash.toString(16);\n};\n\ntype Mixin = (superclass: CustomElementConstructor) => CustomElementConstructor;\n\n// because a single mixin can be a dependency for many other mixins, a mixin can be loaded multiple times\n// some mixins should not be loaded multiple times, wrapping a mixin with this fn ensures it will load only once\nexport const createSingletonMixin = <T extends Mixin>(mixin: T): T => {\n const mixinNameSym = Symbol(getFunctionHash(mixin));\n\n const singletonMixin = (superclass: CustomElementConstructor) => {\n if (superclass[mixinNameSym]) {\n return superclass;\n }\n\n const cls = mixin(superclass);\n cls[mixinNameSym] = true;\n\n return cls;\n };\n\n return singletonMixin as T;\n};\n","const createIsChanged =\n <T extends Record<string, any>>(state: T, prevState: T) =>\n (attrName: keyof T) =>\n state[attrName] !== prevState[attrName];\n\ntype StateObject = Record<string, any>;\n\ntype UpdateStateCb<T> = (state: T) => Partial<T>;\ntype Subscribers<T> = Record<string, SubscribeCb<T>>;\n\n// eslint-disable-next-line import/exports-last\nexport type SubscribeCb<T> = (\n state: T,\n prevState: T,\n isChanged: ReturnType<typeof createIsChanged>,\n) => void | Promise<void>;\n\nfunction compareObjects(\n objectA: Record<string, any>,\n objectB: Record<string, any>,\n) {\n const aProperties = Object.getOwnPropertyNames(objectA);\n const bProperties = Object.getOwnPropertyNames(objectB);\n\n if (aProperties.length !== bProperties.length) {\n return false;\n }\n\n for (let i = 0; i < aProperties.length; i += 1) {\n const propName = aProperties[i];\n\n const valA = objectA[propName];\n const valB = objectB[propName];\n if (valA === null || valB === null) {\n if (valA !== valB) {\n return false;\n }\n } else if (typeof valA === 'object' && typeof valB === 'object') {\n // compare nested objects\n if (!compareObjects(valA, valB)) {\n return false;\n }\n } else if (valA !== valB) {\n return false;\n }\n }\n\n return true;\n}\n\nexport type IsChanged<T> = Parameters<SubscribeCb<T>>[2];\n\nexport class State<T extends StateObject> {\n #state: T;\n\n #subscribers: Subscribers<T> = {};\n\n #token = 0;\n\n #forceUpdate = true;\n\n constructor(init: T = {} as T, { forceUpdate = false } = {}) {\n this.#state = init;\n this.#forceUpdate = forceUpdate;\n }\n\n get current() {\n return { ...this.#state };\n }\n\n update = (newState: Partial<T> | UpdateStateCb<T>) => {\n const internalNewState =\n typeof newState === 'function' ? newState(this.#state) : newState;\n\n const nextState = { ...this.#state, ...internalNewState };\n if (this.#forceUpdate || !compareObjects(this.#state, nextState)) {\n const prevState = this.#state;\n this.#state = nextState;\n Object.freeze(this.#state);\n\n setTimeout(() => {\n Object.values(this.#subscribers).forEach((cb) =>\n cb(nextState, prevState, createIsChanged(nextState, prevState)),\n );\n }, 0);\n }\n };\n\n subscribe(cb: SubscribeCb<T>) {\n this.#token += 1;\n this.#subscribers[this.#token] = cb;\n\n return this.#token.toString();\n }\n\n unsubscribe(token: string) {\n const isFound = !!this.#subscribers[token];\n\n if (isFound) {\n delete this.#subscribers[token];\n }\n\n return isFound;\n }\n\n unsubscribeAll() {\n this.#subscribers = {};\n\n return true;\n }\n}\n","// Helper function to decode JWT and extract claims\nexport const decodeJWT = (token: string) => {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join(''),\n );\n return JSON.parse(jsonPayload);\n } catch (e) {\n return null;\n }\n};\n"],"names":["compose","args","data","reduce","acc","elem","createTemplate","templateString","template","document","createElement","innerHTML","pathJoin","paths","join","replace","compareArrays","array1","array2","length","every","value","index","withMemCache","fn","prevArgs","cache","kebabCase","str","toLowerCase","isObjEmpty","obj","Object","keys","constructor","pluralize","amount","strings","expressions","idx","_a","debounce","ms","timeoutId","clearTimeout","setTimeout","apply","this","isPlainObject","getPrototypeOf","prototype","createSingletonMixin","mixin","mixinNameSym","Symbol","functionSource","toString","hash","i","charCodeAt","getFunctionHash","superclass","cls","compareObjects","objectA","objectB","aProperties","getOwnPropertyNames","bProperties","propName","valA","valB","State","init","forceUpdate","_State_state","set","_State_subscribers","_State_token","_State_forceUpdate","update","newState","internalNewState","__classPrivateFieldGet","nextState","prevState","__classPrivateFieldSet","freeze","values","forEach","cb","state","attrName","createIsChanged","current","assign","subscribe","unsubscribe","token","isFound","unsubscribeAll","decodeJWT","base64","split","jsonPayload","decodeURIComponent","atob","map","c","slice","JSON","parse","e"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descope/sdk-helpers",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"author": "Descope Team <info@descope.com>",
|
|
5
5
|
"homepage": "https://github.com/descope/sdk-helpers",
|
|
6
6
|
"bugs": {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
"scripts": {
|
|
87
87
|
"build": "rimraf dist && rollup -c",
|
|
88
|
-
"test": "
|
|
88
|
+
"test": "jest",
|
|
89
89
|
"lint": "eslint '+(src|test|examples)/**/*.ts'"
|
|
90
90
|
}
|
|
91
91
|
}
|