@evergonlabs/tmi-protocol-utils 0.2.1 → 0.7.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/common.cjs +1 -1
- package/dist/common.cjs.map +1 -1
- package/dist/common.d.cts +13 -6
- package/dist/common.d.ts +13 -6
- package/dist/common.js +1 -1
- package/dist/common.js.map +1 -1
- package/dist/typeUtils.cjs.map +1 -1
- package/dist/typeUtils.d.cts +1 -1
- package/dist/typeUtils.d.ts +1 -1
- package/dist/viem.cjs +1 -1
- package/dist/viem.cjs.map +1 -1
- package/dist/viem.d.cts +3 -3
- package/dist/viem.d.ts +3 -3
- package/dist/viem.js +1 -1
- package/dist/viem.js.map +1 -1
- package/package.json +7 -6
package/dist/common.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var u=(e,t)=>{for(var r in t)d(e,r,{get:t[r],enumerable:!0})},p=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!o.call(e,n)&&n!==r&&d(e,n,{get:()=>t[n],enumerable:!(i=s(t,n))||i.enumerable});return e};var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var u=(e,t)=>{for(var r in t)d(e,r,{get:t[r],enumerable:!0})},p=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!o.call(e,n)&&n!==r&&d(e,n,{get:()=>t[n],enumerable:!(i=s(t,n))||i.enumerable});return e};var w=e=>p(d({},"__esModule",{value:!0}),e);var g={};u(g,{bpToFixedPercentage:()=>x,createMiddlewares:()=>a,identityMiddleware:()=>I,joinPaths:()=>T,toCamelCase:()=>f});module.exports=w(g);function x(e){if(!Number.isInteger(e))throw new Error(`Basis points must be an integer, got ${e}`);if(e<0||e>1e4)throw new Error(`Basis points must be in [0, 10000], got ${e}`);return BigInt(e)*100n}function T(...e){return M(...e)}function M(...e){return m(e.join("/").replace(/\/+/g,"/").replace(/\/+$/,""))}function m(e){return e.startsWith("/")?e:`/${e}`}function a(e){return{run:t=>e(t),add:t=>a(r=>e(r).then(i=>t(i)))}}var I=e=>Promise.resolve(e);function f(e){return e.map(t=>t.trim()).filter(t=>t.length>0).map((t,r)=>(r===0?t.charAt(0).toLowerCase():t.charAt(0).toUpperCase())+t.slice(1)).join("")}0&&(module.exports={bpToFixedPercentage,createMiddlewares,identityMiddleware,joinPaths,toCamelCase});
|
|
2
2
|
//# sourceMappingURL=common.cjs.map
|
package/dist/common.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/index.ts","../src/common/
|
|
1
|
+
{"version":3,"sources":["../src/common/index.ts","../src/common/bpToFixedPercentage/bpToFixedPercentage.ts","../src/common/joinPath/joinPath.ts","../src/common/middlewares/middlewares.ts","../src/common/toCamelCase/toCamelCase.ts"],"sourcesContent":["export * from \"./bpToFixedPercentage/bpToFixedPercentage.js\";\nexport * from \"./joinPath/joinPath.js\";\nexport * from \"./middlewares/middlewares.js\";\nexport * from \"./toCamelCase/toCamelCase.js\";\n","/**\n * TMI uses percentage with 10^6 base, i.e. 1000000p = 100%\n * @param basisPoints basis points value, i.e. 10000bp = 100%\n * @returns 10^6 bases value\n */\nexport function bpToFixedPercentage(basisPoints: number): bigint {\n if (!Number.isInteger(basisPoints)) {\n throw new Error(`Basis points must be an integer, got ${basisPoints}`);\n }\n\n if (basisPoints < 0 || basisPoints > 10_000) {\n throw new Error(`Basis points must be in [0, 10000], got ${basisPoints}`);\n }\n\n // 1 bp = 0.01%, scale by 10^2 to reach 10^6 base\n return BigInt(basisPoints) * 100n;\n}\n","import { NonEmptyArray } from \"../../typeUtils/nonEmptyArray.js\";\n\ntype RemoveConsecutiveSlashes<T extends string> = T extends `${infer First}//${infer Rest}`\n ? RemoveConsecutiveSlashes<`${First}/${Rest}`>\n : T;\n\nexport type JoinPathResult<T extends string[]> = T extends [infer First, ...infer Rest]\n ? First extends string\n ? Rest extends NonEmptyArray<string>\n ? RemoveConsecutiveSlashes<`/${First}/${JoinPathResult<Rest>}`>\n : RemoveConsecutiveSlashes<`/${First}`>\n : never\n : never;\n\ntype RemoveTrailingSlash<T extends string> = T extends `${infer First}/` ? First : T;\n\nexport function joinPaths<T extends string[]>(...segments: T): RemoveTrailingSlash<JoinPathResult<T>> {\n return joinPathsSimple(...segments) as RemoveTrailingSlash<JoinPathResult<T>>;\n}\n\nfunction joinPathsSimple(...strings: string[]) {\n return prependLeadingSlash(\n strings\n .join(\"/\")\n .replace(/\\/+/g, \"/\") // Remove double slashes\n .replace(/\\/+$/, \"\"), // Remove trailing slash\n );\n}\n\nfunction prependLeadingSlash(str: string) {\n return str.startsWith(\"/\") ? str : `/${str}`;\n}\n","export type IMiddleware<InitData = any, NextData = any> = (init: InitData) => Promise<NextData>;\nexport type IMiddlewareRequire<InitData, NextData = any> = (input: InitData) => Promise<NextData>;\n\ntype InferMiddlewareInput<T extends IMiddleware> = T extends IMiddleware<infer C, any> ? C : never;\ntype InferMiddlewareOutput<T extends IMiddleware> = T extends IMiddleware<any, infer C> ? C : never;\n\nexport type IMiddlewares<TMiddleware extends IMiddleware> = {\n add: <TNextMiddleware extends IMiddleware<InferMiddlewareOutput<TMiddleware>, any>>(\n next: TNextMiddleware,\n ) => IMiddlewares<IMiddleware<InferMiddlewareInput<TMiddleware>, InferMiddlewareOutput<TNextMiddleware>>>;\n run: (input: InferMiddlewareInput<TMiddleware>) => Promise<InferMiddlewareOutput<TMiddleware>>;\n};\n\nexport function createMiddlewares<TMiddleware extends IMiddleware>(middleware: TMiddleware): IMiddlewares<TMiddleware> {\n return {\n run: (input: InferMiddlewareInput<TMiddleware>) => middleware(input),\n add: <TNextMiddleware extends IMiddleware<InferMiddlewareOutput<TMiddleware>, any>>(\n next: TNextMiddleware,\n ): IMiddlewares<IMiddleware<InferMiddlewareInput<TMiddleware>, InferMiddlewareOutput<TNextMiddleware>>> =>\n createMiddlewares((input) => middleware(input).then((output) => next(output))),\n };\n}\n\nexport type IIdentityMiddleware<T> = IMiddleware<T, T>;\nexport const identityMiddleware = <T>(input: T): Promise<T> => Promise.resolve(input);\n","import { Trim } from \"type-fest\";\n\nexport type JoinCamelCaseResult<\n Words extends string[],\n IsFirst = false,\n OutputString extends string = \"\",\n> = Words extends [infer FirstWord extends string, ...infer RemainingWords extends string[]]\n ? Trim<FirstWord> extends \"\"\n ? JoinCamelCaseResult<RemainingWords>\n : IsFirst extends false\n ? `${Trim<FirstWord>}${JoinCamelCaseResult<RemainingWords, true>}`\n : `${Capitalize<Trim<FirstWord>>}${JoinCamelCaseResult<RemainingWords, true>}`\n : OutputString;\n\nexport function toCamelCase<const T extends string[]>(args: T): JoinCamelCaseResult<T> {\n return args\n .map((arg) => arg.trim())\n .filter((arg) => arg.length > 0)\n .map((arg, index) => {\n const first = index === 0 ? arg.charAt(0).toLowerCase() : arg.charAt(0).toUpperCase();\n return first + arg.slice(1);\n })\n .join(\"\") as JoinCamelCaseResult<T>;\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,sBAAAC,EAAA,uBAAAC,EAAA,cAAAC,EAAA,gBAAAC,IAAA,eAAAC,EAAAP,GCKO,SAASQ,EAAoBC,EAA6B,CAC/D,GAAI,CAAC,OAAO,UAAUA,CAAW,EAC/B,MAAM,IAAI,MAAM,wCAAwCA,CAAW,EAAE,EAGvE,GAAIA,EAAc,GAAKA,EAAc,IACnC,MAAM,IAAI,MAAM,2CAA2CA,CAAW,EAAE,EAI1E,OAAO,OAAOA,CAAW,EAAI,IAC/B,CCAO,SAASC,KAAiCC,EAAqD,CACpG,OAAOC,EAAgB,GAAGD,CAAQ,CACpC,CAEA,SAASC,KAAmBC,EAAmB,CAC7C,OAAOC,EACLD,EACG,KAAK,GAAG,EACR,QAAQ,OAAQ,GAAG,EACnB,QAAQ,OAAQ,EAAE,CACvB,CACF,CAEA,SAASC,EAAoBC,EAAa,CACxC,OAAOA,EAAI,WAAW,GAAG,EAAIA,EAAM,IAAIA,CAAG,EAC5C,CClBO,SAASC,EAAmDC,EAAoD,CACrH,MAAO,CACL,IAAMC,GAA6CD,EAAWC,CAAK,EACnE,IACEC,GAEAH,EAAmBE,GAAUD,EAAWC,CAAK,EAAE,KAAME,GAAWD,EAAKC,CAAM,CAAC,CAAC,CACjF,CACF,CAGO,IAAMC,EAAyBH,GAAyB,QAAQ,QAAQA,CAAK,ECV7E,SAASI,EAAsCC,EAAiC,CACrF,OAAOA,EACJ,IAAKC,GAAQA,EAAI,KAAK,CAAC,EACvB,OAAQA,GAAQA,EAAI,OAAS,CAAC,EAC9B,IAAI,CAACA,EAAKC,KACKA,IAAU,EAAID,EAAI,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAI,OAAO,CAAC,EAAE,YAAY,GACrEA,EAAI,MAAM,CAAC,CAC3B,EACA,KAAK,EAAE,CACZ","names":["common_exports","__export","bpToFixedPercentage","createMiddlewares","identityMiddleware","joinPaths","toCamelCase","__toCommonJS","bpToFixedPercentage","basisPoints","joinPaths","segments","joinPathsSimple","strings","prependLeadingSlash","str","createMiddlewares","middleware","input","next","output","identityMiddleware","toCamelCase","args","arg","index"]}
|
package/dist/common.d.cts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { N as NonEmptyArray } from './nonEmptyArray-GKx7EeID.cjs';
|
|
2
2
|
import { Trim } from 'type-fest';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* TMI uses percentage with 10^6 base, i.e. 1000000p = 100%
|
|
6
|
+
* @param basisPoints basis points value, i.e. 10000bp = 100%
|
|
7
|
+
* @returns 10^6 bases value
|
|
8
|
+
*/
|
|
9
|
+
declare function bpToFixedPercentage(basisPoints: number): bigint;
|
|
10
|
+
|
|
11
|
+
type RemoveConsecutiveSlashes<T extends string> = T extends `${infer First}//${infer Rest}` ? RemoveConsecutiveSlashes<`${First}/${Rest}`> : T;
|
|
12
|
+
type JoinPathResult<T extends string[]> = T extends [infer First, ...infer Rest] ? First extends string ? Rest extends NonEmptyArray<string> ? RemoveConsecutiveSlashes<`/${First}/${JoinPathResult<Rest>}`> : RemoveConsecutiveSlashes<`/${First}`> : never : never;
|
|
13
|
+
type RemoveTrailingSlash<T extends string> = T extends `${infer First}/` ? First : T;
|
|
14
|
+
declare function joinPaths<T extends string[]>(...segments: T): RemoveTrailingSlash<JoinPathResult<T>>;
|
|
15
|
+
|
|
4
16
|
type IMiddleware<InitData = any, NextData = any> = (init: InitData) => Promise<NextData>;
|
|
5
17
|
type IMiddlewareRequire<InitData, NextData = any> = (input: InitData) => Promise<NextData>;
|
|
6
18
|
type InferMiddlewareInput<T extends IMiddleware> = T extends IMiddleware<infer C, any> ? C : never;
|
|
@@ -13,12 +25,7 @@ declare function createMiddlewares<TMiddleware extends IMiddleware>(middleware:
|
|
|
13
25
|
type IIdentityMiddleware<T> = IMiddleware<T, T>;
|
|
14
26
|
declare const identityMiddleware: <T>(input: T) => Promise<T>;
|
|
15
27
|
|
|
16
|
-
type RemoveConsecutiveSlashes<T extends string> = T extends `${infer First}//${infer Rest}` ? RemoveConsecutiveSlashes<`${First}/${Rest}`> : T;
|
|
17
|
-
type JoinPathResult<T extends string[]> = T extends [infer First, ...infer Rest] ? First extends string ? Rest extends NonEmptyArray<string> ? RemoveConsecutiveSlashes<`/${First}/${JoinPathResult<Rest>}`> : RemoveConsecutiveSlashes<`/${First}`> : never : never;
|
|
18
|
-
type RemoveTrailingSlash<T extends string> = T extends `${infer First}/` ? First : T;
|
|
19
|
-
declare function joinPaths<T extends string[]>(...segments: T): RemoveTrailingSlash<JoinPathResult<T>>;
|
|
20
|
-
|
|
21
28
|
type JoinCamelCaseResult<Words extends string[], IsFirst = false, OutputString extends string = ""> = Words extends [infer FirstWord extends string, ...infer RemainingWords extends string[]] ? Trim<FirstWord> extends "" ? JoinCamelCaseResult<RemainingWords> : IsFirst extends false ? `${Trim<FirstWord>}${JoinCamelCaseResult<RemainingWords, true>}` : `${Capitalize<Trim<FirstWord>>}${JoinCamelCaseResult<RemainingWords, true>}` : OutputString;
|
|
22
29
|
declare function toCamelCase<const T extends string[]>(args: T): JoinCamelCaseResult<T>;
|
|
23
30
|
|
|
24
|
-
export { type IIdentityMiddleware, type IMiddleware, type IMiddlewareRequire, type IMiddlewares, type JoinCamelCaseResult, type JoinPathResult, createMiddlewares, identityMiddleware, joinPaths, toCamelCase };
|
|
31
|
+
export { type IIdentityMiddleware, type IMiddleware, type IMiddlewareRequire, type IMiddlewares, type JoinCamelCaseResult, type JoinPathResult, bpToFixedPercentage, createMiddlewares, identityMiddleware, joinPaths, toCamelCase };
|
package/dist/common.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { N as NonEmptyArray } from './nonEmptyArray-GKx7EeID.js';
|
|
2
2
|
import { Trim } from 'type-fest';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* TMI uses percentage with 10^6 base, i.e. 1000000p = 100%
|
|
6
|
+
* @param basisPoints basis points value, i.e. 10000bp = 100%
|
|
7
|
+
* @returns 10^6 bases value
|
|
8
|
+
*/
|
|
9
|
+
declare function bpToFixedPercentage(basisPoints: number): bigint;
|
|
10
|
+
|
|
11
|
+
type RemoveConsecutiveSlashes<T extends string> = T extends `${infer First}//${infer Rest}` ? RemoveConsecutiveSlashes<`${First}/${Rest}`> : T;
|
|
12
|
+
type JoinPathResult<T extends string[]> = T extends [infer First, ...infer Rest] ? First extends string ? Rest extends NonEmptyArray<string> ? RemoveConsecutiveSlashes<`/${First}/${JoinPathResult<Rest>}`> : RemoveConsecutiveSlashes<`/${First}`> : never : never;
|
|
13
|
+
type RemoveTrailingSlash<T extends string> = T extends `${infer First}/` ? First : T;
|
|
14
|
+
declare function joinPaths<T extends string[]>(...segments: T): RemoveTrailingSlash<JoinPathResult<T>>;
|
|
15
|
+
|
|
4
16
|
type IMiddleware<InitData = any, NextData = any> = (init: InitData) => Promise<NextData>;
|
|
5
17
|
type IMiddlewareRequire<InitData, NextData = any> = (input: InitData) => Promise<NextData>;
|
|
6
18
|
type InferMiddlewareInput<T extends IMiddleware> = T extends IMiddleware<infer C, any> ? C : never;
|
|
@@ -13,12 +25,7 @@ declare function createMiddlewares<TMiddleware extends IMiddleware>(middleware:
|
|
|
13
25
|
type IIdentityMiddleware<T> = IMiddleware<T, T>;
|
|
14
26
|
declare const identityMiddleware: <T>(input: T) => Promise<T>;
|
|
15
27
|
|
|
16
|
-
type RemoveConsecutiveSlashes<T extends string> = T extends `${infer First}//${infer Rest}` ? RemoveConsecutiveSlashes<`${First}/${Rest}`> : T;
|
|
17
|
-
type JoinPathResult<T extends string[]> = T extends [infer First, ...infer Rest] ? First extends string ? Rest extends NonEmptyArray<string> ? RemoveConsecutiveSlashes<`/${First}/${JoinPathResult<Rest>}`> : RemoveConsecutiveSlashes<`/${First}`> : never : never;
|
|
18
|
-
type RemoveTrailingSlash<T extends string> = T extends `${infer First}/` ? First : T;
|
|
19
|
-
declare function joinPaths<T extends string[]>(...segments: T): RemoveTrailingSlash<JoinPathResult<T>>;
|
|
20
|
-
|
|
21
28
|
type JoinCamelCaseResult<Words extends string[], IsFirst = false, OutputString extends string = ""> = Words extends [infer FirstWord extends string, ...infer RemainingWords extends string[]] ? Trim<FirstWord> extends "" ? JoinCamelCaseResult<RemainingWords> : IsFirst extends false ? `${Trim<FirstWord>}${JoinCamelCaseResult<RemainingWords, true>}` : `${Capitalize<Trim<FirstWord>>}${JoinCamelCaseResult<RemainingWords, true>}` : OutputString;
|
|
22
29
|
declare function toCamelCase<const T extends string[]>(args: T): JoinCamelCaseResult<T>;
|
|
23
30
|
|
|
24
|
-
export { type IIdentityMiddleware, type IMiddleware, type IMiddlewareRequire, type IMiddlewares, type JoinCamelCaseResult, type JoinPathResult, createMiddlewares, identityMiddleware, joinPaths, toCamelCase };
|
|
31
|
+
export { type IIdentityMiddleware, type IMiddleware, type IMiddlewareRequire, type IMiddlewares, type JoinCamelCaseResult, type JoinPathResult, bpToFixedPercentage, createMiddlewares, identityMiddleware, joinPaths, toCamelCase };
|
package/dist/common.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function s(e){if(!Number.isInteger(e))throw new Error(`Basis points must be an integer, got ${e}`);if(e<0||e>1e4)throw new Error(`Basis points must be in [0, 10000], got ${e}`);return BigInt(e)*100n}function o(...e){return n(...e)}function n(...e){return d(e.join("/").replace(/\/+/g,"/").replace(/\/+$/,""))}function d(e){return e.startsWith("/")?e:`/${e}`}function a(e){return{run:t=>e(t),add:t=>a(r=>e(r).then(i=>t(i)))}}var p=e=>Promise.resolve(e);function x(e){return e.map(t=>t.trim()).filter(t=>t.length>0).map((t,r)=>(r===0?t.charAt(0).toLowerCase():t.charAt(0).toUpperCase())+t.slice(1)).join("")}export{s as bpToFixedPercentage,a as createMiddlewares,p as identityMiddleware,o as joinPaths,x as toCamelCase};
|
|
2
2
|
//# sourceMappingURL=common.js.map
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/
|
|
1
|
+
{"version":3,"sources":["../src/common/bpToFixedPercentage/bpToFixedPercentage.ts","../src/common/joinPath/joinPath.ts","../src/common/middlewares/middlewares.ts","../src/common/toCamelCase/toCamelCase.ts"],"sourcesContent":["/**\n * TMI uses percentage with 10^6 base, i.e. 1000000p = 100%\n * @param basisPoints basis points value, i.e. 10000bp = 100%\n * @returns 10^6 bases value\n */\nexport function bpToFixedPercentage(basisPoints: number): bigint {\n if (!Number.isInteger(basisPoints)) {\n throw new Error(`Basis points must be an integer, got ${basisPoints}`);\n }\n\n if (basisPoints < 0 || basisPoints > 10_000) {\n throw new Error(`Basis points must be in [0, 10000], got ${basisPoints}`);\n }\n\n // 1 bp = 0.01%, scale by 10^2 to reach 10^6 base\n return BigInt(basisPoints) * 100n;\n}\n","import { NonEmptyArray } from \"../../typeUtils/nonEmptyArray.js\";\n\ntype RemoveConsecutiveSlashes<T extends string> = T extends `${infer First}//${infer Rest}`\n ? RemoveConsecutiveSlashes<`${First}/${Rest}`>\n : T;\n\nexport type JoinPathResult<T extends string[]> = T extends [infer First, ...infer Rest]\n ? First extends string\n ? Rest extends NonEmptyArray<string>\n ? RemoveConsecutiveSlashes<`/${First}/${JoinPathResult<Rest>}`>\n : RemoveConsecutiveSlashes<`/${First}`>\n : never\n : never;\n\ntype RemoveTrailingSlash<T extends string> = T extends `${infer First}/` ? First : T;\n\nexport function joinPaths<T extends string[]>(...segments: T): RemoveTrailingSlash<JoinPathResult<T>> {\n return joinPathsSimple(...segments) as RemoveTrailingSlash<JoinPathResult<T>>;\n}\n\nfunction joinPathsSimple(...strings: string[]) {\n return prependLeadingSlash(\n strings\n .join(\"/\")\n .replace(/\\/+/g, \"/\") // Remove double slashes\n .replace(/\\/+$/, \"\"), // Remove trailing slash\n );\n}\n\nfunction prependLeadingSlash(str: string) {\n return str.startsWith(\"/\") ? str : `/${str}`;\n}\n","export type IMiddleware<InitData = any, NextData = any> = (init: InitData) => Promise<NextData>;\nexport type IMiddlewareRequire<InitData, NextData = any> = (input: InitData) => Promise<NextData>;\n\ntype InferMiddlewareInput<T extends IMiddleware> = T extends IMiddleware<infer C, any> ? C : never;\ntype InferMiddlewareOutput<T extends IMiddleware> = T extends IMiddleware<any, infer C> ? C : never;\n\nexport type IMiddlewares<TMiddleware extends IMiddleware> = {\n add: <TNextMiddleware extends IMiddleware<InferMiddlewareOutput<TMiddleware>, any>>(\n next: TNextMiddleware,\n ) => IMiddlewares<IMiddleware<InferMiddlewareInput<TMiddleware>, InferMiddlewareOutput<TNextMiddleware>>>;\n run: (input: InferMiddlewareInput<TMiddleware>) => Promise<InferMiddlewareOutput<TMiddleware>>;\n};\n\nexport function createMiddlewares<TMiddleware extends IMiddleware>(middleware: TMiddleware): IMiddlewares<TMiddleware> {\n return {\n run: (input: InferMiddlewareInput<TMiddleware>) => middleware(input),\n add: <TNextMiddleware extends IMiddleware<InferMiddlewareOutput<TMiddleware>, any>>(\n next: TNextMiddleware,\n ): IMiddlewares<IMiddleware<InferMiddlewareInput<TMiddleware>, InferMiddlewareOutput<TNextMiddleware>>> =>\n createMiddlewares((input) => middleware(input).then((output) => next(output))),\n };\n}\n\nexport type IIdentityMiddleware<T> = IMiddleware<T, T>;\nexport const identityMiddleware = <T>(input: T): Promise<T> => Promise.resolve(input);\n","import { Trim } from \"type-fest\";\n\nexport type JoinCamelCaseResult<\n Words extends string[],\n IsFirst = false,\n OutputString extends string = \"\",\n> = Words extends [infer FirstWord extends string, ...infer RemainingWords extends string[]]\n ? Trim<FirstWord> extends \"\"\n ? JoinCamelCaseResult<RemainingWords>\n : IsFirst extends false\n ? `${Trim<FirstWord>}${JoinCamelCaseResult<RemainingWords, true>}`\n : `${Capitalize<Trim<FirstWord>>}${JoinCamelCaseResult<RemainingWords, true>}`\n : OutputString;\n\nexport function toCamelCase<const T extends string[]>(args: T): JoinCamelCaseResult<T> {\n return args\n .map((arg) => arg.trim())\n .filter((arg) => arg.length > 0)\n .map((arg, index) => {\n const first = index === 0 ? arg.charAt(0).toLowerCase() : arg.charAt(0).toUpperCase();\n return first + arg.slice(1);\n })\n .join(\"\") as JoinCamelCaseResult<T>;\n}\n"],"mappings":"AAKO,SAASA,EAAoBC,EAA6B,CAC/D,GAAI,CAAC,OAAO,UAAUA,CAAW,EAC/B,MAAM,IAAI,MAAM,wCAAwCA,CAAW,EAAE,EAGvE,GAAIA,EAAc,GAAKA,EAAc,IACnC,MAAM,IAAI,MAAM,2CAA2CA,CAAW,EAAE,EAI1E,OAAO,OAAOA,CAAW,EAAI,IAC/B,CCAO,SAASC,KAAiCC,EAAqD,CACpG,OAAOC,EAAgB,GAAGD,CAAQ,CACpC,CAEA,SAASC,KAAmBC,EAAmB,CAC7C,OAAOC,EACLD,EACG,KAAK,GAAG,EACR,QAAQ,OAAQ,GAAG,EACnB,QAAQ,OAAQ,EAAE,CACvB,CACF,CAEA,SAASC,EAAoBC,EAAa,CACxC,OAAOA,EAAI,WAAW,GAAG,EAAIA,EAAM,IAAIA,CAAG,EAC5C,CClBO,SAASC,EAAmDC,EAAoD,CACrH,MAAO,CACL,IAAMC,GAA6CD,EAAWC,CAAK,EACnE,IACEC,GAEAH,EAAmBE,GAAUD,EAAWC,CAAK,EAAE,KAAME,GAAWD,EAAKC,CAAM,CAAC,CAAC,CACjF,CACF,CAGO,IAAMC,EAAyBH,GAAyB,QAAQ,QAAQA,CAAK,ECV7E,SAASI,EAAsCC,EAAiC,CACrF,OAAOA,EACJ,IAAKC,GAAQA,EAAI,KAAK,CAAC,EACvB,OAAQA,GAAQA,EAAI,OAAS,CAAC,EAC9B,IAAI,CAACA,EAAKC,KACKA,IAAU,EAAID,EAAI,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAI,OAAO,CAAC,EAAE,YAAY,GACrEA,EAAI,MAAM,CAAC,CAC3B,EACA,KAAK,EAAE,CACZ","names":["bpToFixedPercentage","basisPoints","joinPaths","segments","joinPathsSimple","strings","prependLeadingSlash","str","createMiddlewares","middleware","input","next","output","identityMiddleware","toCamelCase","args","arg","index"]}
|
package/dist/typeUtils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/typeUtils/index.ts","../src/typeUtils/nonEmptyArray.ts"],"sourcesContent":["export * from \"./
|
|
1
|
+
{"version":3,"sources":["../src/typeUtils/index.ts","../src/typeUtils/nonEmptyArray.ts"],"sourcesContent":["export * from \"./common.js\";\nexport * from \"./nonEmptyArray.js\";\n","export type NonEmptyArray<T> = [T, ...T[]];\n\nexport function isNonEmptyArray<T>(arr: T[]): arr is NonEmptyArray<T> {\n return arr.length > 0;\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GCEO,SAASI,EAAmBC,EAAmC,CACpE,OAAOA,EAAI,OAAS,CACtB","names":["typeUtils_exports","__export","isNonEmptyArray","__toCommonJS","isNonEmptyArray","arr"]}
|
package/dist/typeUtils.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { N as NonEmptyArray, i as isNonEmptyArray } from './nonEmptyArray-GKx7EeID.cjs';
|
|
2
1
|
import { ConditionalKeys } from 'type-fest';
|
|
2
|
+
export { N as NonEmptyArray, i as isNonEmptyArray } from './nonEmptyArray-GKx7EeID.cjs';
|
|
3
3
|
|
|
4
4
|
type ExcludeVoidKeys<T> = Exclude<keyof T, ConditionalKeys<T, void>>;
|
|
5
5
|
type ExcludeVoidProperties<T> = Pick<T, ExcludeVoidKeys<T>>;
|
package/dist/typeUtils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { N as NonEmptyArray, i as isNonEmptyArray } from './nonEmptyArray-GKx7EeID.js';
|
|
2
1
|
import { ConditionalKeys } from 'type-fest';
|
|
2
|
+
export { N as NonEmptyArray, i as isNonEmptyArray } from './nonEmptyArray-GKx7EeID.js';
|
|
3
3
|
|
|
4
4
|
type ExcludeVoidKeys<T> = Exclude<keyof T, ConditionalKeys<T, void>>;
|
|
5
5
|
type ExcludeVoidProperties<T> = Pick<T, ExcludeVoidKeys<T>>;
|
package/dist/viem.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(e,n)=>{for(var t in n)i(e,t,{get:n[t],enumerable:!0})},d=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of m(n))!p.call(e,a)&&a!==t&&i(e,a,{get:()=>n[a],enumerable:!(r=c(n,a))||r.enumerable});return e};var f=e=>d(i({},"__esModule",{value:!0}),e);var C={};u(C,{parseTransaction:()=>
|
|
1
|
+
"use strict";var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(e,n)=>{for(var t in n)i(e,t,{get:n[t],enumerable:!0})},d=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of m(n))!p.call(e,a)&&a!==t&&i(e,a,{get:()=>n[a],enumerable:!(r=c(n,a))||r.enumerable});return e};var f=e=>d(i({},"__esModule",{value:!0}),e);var C={};u(C,{parseTransaction:()=>b,viemClientAsMiddleware:()=>l});module.exports=f(C);var s=require("viem");function b(e,n,t,r){let a=(0,s.parseEventLogs)({eventName:t,abi:n,logs:e.logs})[0];return r(a?.args)}var o=require("viem/actions");function l(e){return n=>(0,o.simulateContract)(e,{abi:n.abi,functionName:n.functionName,args:n.args,address:n.address}).then(({request:t})=>(0,o.writeContract)(e,t).then(r=>(0,o.waitForTransactionReceipt)(e,{hash:r})))}0&&(module.exports={parseTransaction,viemClientAsMiddleware});
|
|
2
2
|
//# sourceMappingURL=viem.cjs.map
|
package/dist/viem.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/viem/index.ts","../src/viem/
|
|
1
|
+
{"version":3,"sources":["../src/viem/index.ts","../src/viem/parseEvent.ts","../src/viem/viemClientAsMiddleware.ts"],"sourcesContent":["export * from \"./parseEvent.js\";\nexport * from \"./viemClientAsMiddleware.js\";\n","import { Abi, ContractEventName, parseEventLogs, TransactionReceipt } from \"viem\";\n\nexport function parseTransaction<\n O,\n abi extends Abi = Abi,\n eventName extends ContractEventName<abi> | ContractEventName<abi>[] | undefined = undefined,\n>(txReciept: TransactionReceipt, abi: Abi, eventName: eventName, getResult: (args: any) => O | null): O | null {\n const result = parseEventLogs({\n eventName: eventName,\n abi: abi,\n logs: txReciept.logs,\n })[0];\n\n return getResult(result?.args);\n}\n","import { Account, Chain, Client, Transport } from \"viem\";\nimport { simulateContract, waitForTransactionReceipt, writeContract } from \"viem/actions\";\nimport { ITransaction } from \"@evergonlabs/tmi-protocol-types/evm\";\n\nexport function viemClientAsMiddleware(client: Client<Transport, Chain, Account>) {\n return (tx: ITransaction) =>\n simulateContract(client, {\n abi: tx.abi,\n functionName: tx.functionName,\n args: tx.args,\n address: tx.address,\n }).then(({ request }) =>\n writeContract(client, request).then((hash) =>\n waitForTransactionReceipt(client, {\n hash,\n }),\n ),\n );\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GCAA,IAAAK,EAA2E,gBAEpE,SAASC,EAIdC,EAA+BC,EAAUC,EAAsBC,EAA8C,CAC7G,IAAMC,KAAS,kBAAe,CAC5B,UAAWF,EACX,IAAKD,EACL,KAAMD,EAAU,IAClB,CAAC,EAAE,CAAC,EAEJ,OAAOG,EAAUC,GAAQ,IAAI,CAC/B,CCbA,IAAAC,EAA2E,wBAGpE,SAASC,EAAuBC,EAA2C,CAChF,OAAQC,MACN,oBAAiBD,EAAQ,CACvB,IAAKC,EAAG,IACR,aAAcA,EAAG,aACjB,KAAMA,EAAG,KACT,QAASA,EAAG,OACd,CAAC,EAAE,KAAK,CAAC,CAAE,QAAAC,CAAQ,OACjB,iBAAcF,EAAQE,CAAO,EAAE,KAAMC,MACnC,6BAA0BH,EAAQ,CAChC,KAAAG,CACF,CAAC,CACH,CACF,CACJ","names":["viem_exports","__export","parseTransaction","viemClientAsMiddleware","__toCommonJS","import_viem","parseTransaction","txReciept","abi","eventName","getResult","result","import_actions","viemClientAsMiddleware","client","tx","request","hash"]}
|
package/dist/viem.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as viem from 'viem';
|
|
2
|
-
import {
|
|
2
|
+
import { Abi, ContractEventName, TransactionReceipt, Client, Transport, Chain, Account } from 'viem';
|
|
3
3
|
import { ITransaction } from '@evergonlabs/tmi-protocol-types/evm';
|
|
4
4
|
|
|
5
|
-
declare function viemClientAsMiddleware(client: Client<Transport, Chain, Account>): (tx: ITransaction) => Promise<viem.TransactionReceipt>;
|
|
6
|
-
|
|
7
5
|
declare function parseTransaction<O, abi extends Abi = Abi, eventName extends ContractEventName<abi> | ContractEventName<abi>[] | undefined = undefined>(txReciept: TransactionReceipt, abi: Abi, eventName: eventName, getResult: (args: any) => O | null): O | null;
|
|
8
6
|
|
|
7
|
+
declare function viemClientAsMiddleware(client: Client<Transport, Chain, Account>): (tx: ITransaction) => Promise<viem.TransactionReceipt>;
|
|
8
|
+
|
|
9
9
|
export { parseTransaction, viemClientAsMiddleware };
|
package/dist/viem.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as viem from 'viem';
|
|
2
|
-
import {
|
|
2
|
+
import { Abi, ContractEventName, TransactionReceipt, Client, Transport, Chain, Account } from 'viem';
|
|
3
3
|
import { ITransaction } from '@evergonlabs/tmi-protocol-types/evm';
|
|
4
4
|
|
|
5
|
-
declare function viemClientAsMiddleware(client: Client<Transport, Chain, Account>): (tx: ITransaction) => Promise<viem.TransactionReceipt>;
|
|
6
|
-
|
|
7
5
|
declare function parseTransaction<O, abi extends Abi = Abi, eventName extends ContractEventName<abi> | ContractEventName<abi>[] | undefined = undefined>(txReciept: TransactionReceipt, abi: Abi, eventName: eventName, getResult: (args: any) => O | null): O | null;
|
|
8
6
|
|
|
7
|
+
declare function viemClientAsMiddleware(client: Client<Transport, Chain, Account>): (tx: ITransaction) => Promise<viem.TransactionReceipt>;
|
|
8
|
+
|
|
9
9
|
export { parseTransaction, viemClientAsMiddleware };
|
package/dist/viem.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{parseEventLogs as o}from"viem";function f(e,n,t,a){let r=o({eventName:t,abi:n,logs:e.logs})[0];return a(r?.args)}import{simulateContract as i,waitForTransactionReceipt as s,writeContract as c}from"viem/actions";function C(e){return n=>i(e,{abi:n.abi,functionName:n.functionName,args:n.args,address:n.address}).then(({request:t})=>c(e,t).then(a=>s(e,{hash:a})))}export{f as parseTransaction,C as viemClientAsMiddleware};
|
|
2
2
|
//# sourceMappingURL=viem.js.map
|
package/dist/viem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/viem/
|
|
1
|
+
{"version":3,"sources":["../src/viem/parseEvent.ts","../src/viem/viemClientAsMiddleware.ts"],"sourcesContent":["import { Abi, ContractEventName, parseEventLogs, TransactionReceipt } from \"viem\";\n\nexport function parseTransaction<\n O,\n abi extends Abi = Abi,\n eventName extends ContractEventName<abi> | ContractEventName<abi>[] | undefined = undefined,\n>(txReciept: TransactionReceipt, abi: Abi, eventName: eventName, getResult: (args: any) => O | null): O | null {\n const result = parseEventLogs({\n eventName: eventName,\n abi: abi,\n logs: txReciept.logs,\n })[0];\n\n return getResult(result?.args);\n}\n","import { Account, Chain, Client, Transport } from \"viem\";\nimport { simulateContract, waitForTransactionReceipt, writeContract } from \"viem/actions\";\nimport { ITransaction } from \"@evergonlabs/tmi-protocol-types/evm\";\n\nexport function viemClientAsMiddleware(client: Client<Transport, Chain, Account>) {\n return (tx: ITransaction) =>\n simulateContract(client, {\n abi: tx.abi,\n functionName: tx.functionName,\n args: tx.args,\n address: tx.address,\n }).then(({ request }) =>\n writeContract(client, request).then((hash) =>\n waitForTransactionReceipt(client, {\n hash,\n }),\n ),\n );\n}\n"],"mappings":"AAAA,OAAiC,kBAAAA,MAA0C,OAEpE,SAASC,EAIdC,EAA+BC,EAAUC,EAAsBC,EAA8C,CAC7G,IAAMC,EAASN,EAAe,CAC5B,UAAWI,EACX,IAAKD,EACL,KAAMD,EAAU,IAClB,CAAC,EAAE,CAAC,EAEJ,OAAOG,EAAUC,GAAQ,IAAI,CAC/B,CCbA,OAAS,oBAAAC,EAAkB,6BAAAC,EAA2B,iBAAAC,MAAqB,eAGpE,SAASC,EAAuBC,EAA2C,CAChF,OAAQC,GACNL,EAAiBI,EAAQ,CACvB,IAAKC,EAAG,IACR,aAAcA,EAAG,aACjB,KAAMA,EAAG,KACT,QAASA,EAAG,OACd,CAAC,EAAE,KAAK,CAAC,CAAE,QAAAC,CAAQ,IACjBJ,EAAcE,EAAQE,CAAO,EAAE,KAAMC,GACnCN,EAA0BG,EAAQ,CAChC,KAAAG,CACF,CAAC,CACH,CACF,CACJ","names":["parseEventLogs","parseTransaction","txReciept","abi","eventName","getResult","result","simulateContract","waitForTransactionReceipt","writeContract","viemClientAsMiddleware","client","tx","request","hash"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evergonlabs/tmi-protocol-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"dist"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@evergonlabs/tmi-protocol-types": "0.
|
|
32
|
+
"@evergonlabs/tmi-protocol-types": "0.7.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@evergonlabs/tmi-eslint-config": "
|
|
36
|
-
"@evergonlabs/tmi-typescript-config": "
|
|
37
|
-
"eslint": "^9.
|
|
35
|
+
"@evergonlabs/tmi-eslint-config": "0.3.0",
|
|
36
|
+
"@evergonlabs/tmi-typescript-config": "0.2.1",
|
|
37
|
+
"eslint": "^9.39.2",
|
|
38
38
|
"jiti": "^2.4.2",
|
|
39
39
|
"npm-run-all": "^4.1.5",
|
|
40
40
|
"rimraf": "^6.0.1",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@evergonlabs/internal": "0.0.0"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"type-fest": "^
|
|
48
|
+
"type-fest": "^5.0.0",
|
|
49
49
|
"viem": "^2.0.0"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"clean": "rimraf ./dist",
|
|
59
59
|
"dev": "tsx ./scripts/compile-dev.ts",
|
|
60
60
|
"lint": "eslint .",
|
|
61
|
+
"lint:fix": "eslint . --fix",
|
|
61
62
|
"test": "vitest run"
|
|
62
63
|
}
|
|
63
64
|
}
|