@gardenfi/utils 2.2.1-beta.1 → 2.2.1-beta.3

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.
Files changed (55) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.js +24 -24
  3. package/dist/index10.cjs +1 -1
  4. package/dist/index10.js +124 -2
  5. package/dist/index11.cjs +1 -1
  6. package/dist/index11.js +34 -114
  7. package/dist/index12.cjs +1 -1
  8. package/dist/index12.js +19 -37
  9. package/dist/index13.cjs +1 -1
  10. package/dist/index13.js +135 -19
  11. package/dist/index14.cjs +1 -1
  12. package/dist/index14.js +10 -137
  13. package/dist/index15.cjs +1 -1
  14. package/dist/index15.js +2 -15
  15. package/dist/index16.cjs +1 -1
  16. package/dist/index16.js +27 -2
  17. package/dist/index17.cjs +1 -1
  18. package/dist/index17.js +18 -26
  19. package/dist/index18.cjs +1 -1
  20. package/dist/index18.js +102 -14
  21. package/dist/index24.cjs +1 -1
  22. package/dist/index24.js +12 -26
  23. package/dist/index25.cjs +1 -1
  24. package/dist/index25.js +58 -8
  25. package/dist/index26.cjs +16 -1
  26. package/dist/index26.js +113 -12
  27. package/dist/index27.cjs +1 -1
  28. package/dist/index27.js +32 -58
  29. package/dist/index28.cjs +1 -16
  30. package/dist/index28.js +24 -111
  31. package/dist/index29.cjs +1 -1
  32. package/dist/index29.js +7 -31
  33. package/dist/index7.cjs +1 -1
  34. package/dist/index7.js +8 -105
  35. package/dist/index8.cjs +1 -1
  36. package/dist/index8.js +22 -8
  37. package/dist/index9.cjs +1 -1
  38. package/dist/index9.js +2 -24
  39. package/dist/src/index.d.ts +2 -2
  40. package/dist/src/lib/approve.d.ts +1 -1
  41. package/dist/src/lib/auth/apikey/apikey.d.ts +1 -1
  42. package/dist/src/lib/auth/auth.types.d.ts +1 -1
  43. package/dist/src/lib/auth/passkey/passkey.d.ts +1 -1
  44. package/dist/src/lib/auth/passkey/passkeyLogin.d.ts +1 -1
  45. package/dist/src/lib/auth/siwe/siwe.d.ts +1 -1
  46. package/dist/src/lib/blockNumber/blockNumber.d.ts +1 -1
  47. package/dist/src/lib/digestKey/digestKey.d.ts +1 -1
  48. package/dist/src/lib/fetcher/index.d.ts +1 -0
  49. package/dist/src/lib/result/index.d.ts +1 -0
  50. package/dist/src/lib/tryCatch/index.d.ts +1 -0
  51. package/dist/src/lib/{tryCatch.d.ts → tryCatch/tryCatch.d.ts} +1 -1
  52. package/package.json +1 -1
  53. /package/dist/src/lib/{fetcher.d.ts → fetcher/fetcher.d.ts} +0 -0
  54. /package/dist/src/lib/{safeParseJson.d.ts → fetcher/safeParseJson.d.ts} +0 -0
  55. /package/dist/src/lib/{result.d.ts → result/result.d.ts} +0 -0
package/dist/index25.js CHANGED
@@ -1,10 +1,60 @@
1
- const t = (r) => {
2
- try {
3
- return JSON.parse(r);
4
- } catch {
5
- return r;
6
- }
7
- };
1
+ import { RpcRequestError as O } from "./index50.js";
2
+ import { UrlRequiredError as P } from "./index51.js";
3
+ import { createBatchScheduler as U } from "./index52.js";
4
+ import { getHttpRpcClient as _ } from "./index53.js";
5
+ import { createTransport as j } from "./index54.js";
6
+ function g(k, e = {}) {
7
+ const { batch: o, fetchOptions: u, key: m = "http", methods: a, name: h = "HTTP JSON-RPC", onFetchRequest: f, onFetchResponse: y, retryDelay: d, raw: R } = e;
8
+ return ({ chain: n, retryCount: w, timeout: q }) => {
9
+ const { batchSize: C = 1e3, wait: S = 0 } = typeof o == "object" ? o : {}, b = e.retryCount ?? w, c = q ?? e.timeout ?? 1e4, r = n == null ? void 0 : n.rpcUrls.default.http[0];
10
+ if (!r)
11
+ throw new P();
12
+ const p = _(r, {
13
+ fetchOptions: u,
14
+ onRequest: f,
15
+ onResponse: y,
16
+ timeout: c
17
+ });
18
+ return j({
19
+ key: m,
20
+ methods: a,
21
+ name: h,
22
+ async request({ method: T, params: B }) {
23
+ const i = { method: T, params: B }, { schedule: E } = U({
24
+ id: r,
25
+ wait: S,
26
+ shouldSplitBatch(t) {
27
+ return t.length > C;
28
+ },
29
+ fn: (t) => p.request({
30
+ body: t
31
+ }),
32
+ sort: (t, H) => t.id - H.id
33
+ }), F = async (t) => o ? E(t) : [
34
+ await p.request({
35
+ body: t
36
+ })
37
+ ], [{ error: s, result: l }] = await F(i);
38
+ if (R)
39
+ return { error: s, result: l };
40
+ if (s)
41
+ throw new O({
42
+ body: i,
43
+ error: s,
44
+ url: r
45
+ });
46
+ return l;
47
+ },
48
+ retryCount: b,
49
+ retryDelay: d,
50
+ timeout: c,
51
+ type: "http"
52
+ }, {
53
+ fetchOptions: u,
54
+ url: r
55
+ });
56
+ };
57
+ }
8
58
  export {
9
- t as safeParseJson
59
+ g as http
10
60
  };
package/dist/index26.cjs CHANGED
@@ -1 +1,16 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index47.cjs"),c=require("./index101.cjs");function r(e){const{key:t="wallet",name:l="Wallet Client",transport:n}=e;return i.createClient({...e,key:t,name:l,transport:n,type:"walletClient"}).extend(c.walletActions)}exports.createWalletClient=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index298.cjs"),M=require("./index162.cjs"),h=require("./index299.cjs");function R(r){const{chainId:o,domain:s,expirationTime:l,issuedAt:m=new Date,nonce:a,notBefore:f,requestId:w,resources:g,scheme:i,uri:c,version:d}=r;{if(o!==Math.floor(o))throw new e.SiweInvalidMessageFieldError({field:"chainId",metaMessages:["- Chain ID must be a EIP-155 chain ID.","- See https://eips.ethereum.org/EIPS/eip-155","",`Provided value: ${o}`]});if(!(E.test(s)||F.test(s)||b.test(s)))throw new e.SiweInvalidMessageFieldError({field:"domain",metaMessages:["- Domain must be an RFC 3986 authority.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${s}`]});if(!A.test(a))throw new e.SiweInvalidMessageFieldError({field:"nonce",metaMessages:["- Nonce must be at least 8 characters.","- Nonce must be alphanumeric.","",`Provided value: ${a}`]});if(!h.isUri(c))throw new e.SiweInvalidMessageFieldError({field:"uri",metaMessages:["- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${c}`]});if(d!=="1")throw new e.SiweInvalidMessageFieldError({field:"version",metaMessages:["- Version must be '1'.","",`Provided value: ${d}`]});if(i&&!P.test(i))throw new e.SiweInvalidMessageFieldError({field:"scheme",metaMessages:["- Scheme must be an RFC 3986 URI scheme.","- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1","",`Provided value: ${i}`]});const t=r.statement;if(t!=null&&t.includes(`
2
+ `))throw new e.SiweInvalidMessageFieldError({field:"statement",metaMessages:["- Statement must not include '\\n'.","",`Provided value: ${t}`]})}const $=M.getAddress(r.address),v=i?`${i}://${s}`:s,I=r.statement?`${r.statement}
3
+ `:"",S=`${v} wants you to sign in with your Ethereum account:
4
+ ${$}
5
+
6
+ ${I}`;let n=`URI: ${c}
7
+ Version: ${d}
8
+ Chain ID: ${o}
9
+ Nonce: ${a}
10
+ Issued At: ${m.toISOString()}`;if(l&&(n+=`
11
+ Expiration Time: ${l.toISOString()}`),f&&(n+=`
12
+ Not Before: ${f.toISOString()}`),w&&(n+=`
13
+ Request ID: ${w}`),g){let t=`
14
+ Resources:`;for(const u of g){if(!h.isUri(u))throw new e.SiweInvalidMessageFieldError({field:"resources",metaMessages:["- Every resource must be a RFC 3986 URI.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${u}`]});t+=`
15
+ - ${u}`}n+=t}return`${S}
16
+ ${n}`}const E=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/,F=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/,b=/^localhost(:[0-9]{1,5})?$/,A=/^[a-zA-Z0-9]{8,}$/,P=/^([a-zA-Z][a-zA-Z0-9+-.]*)$/;exports.createSiweMessage=R;
package/dist/index26.js CHANGED
@@ -1,15 +1,116 @@
1
- import { createClient as i } from "./index47.js";
2
- import { walletActions as o } from "./index101.js";
3
- function m(t) {
4
- const { key: e = "wallet", name: l = "Wallet Client", transport: n } = t;
5
- return i({
6
- ...t,
7
- key: e,
8
- name: l,
9
- transport: n,
10
- type: "walletClient"
11
- }).extend(o);
1
+ import { SiweInvalidMessageFieldError as e } from "./index298.js";
2
+ import { getAddress as S } from "./index162.js";
3
+ import { isUri as $ } from "./index299.js";
4
+ function C(n) {
5
+ const { chainId: i, domain: s, expirationTime: u, issuedAt: g = /* @__PURE__ */ new Date(), nonce: a, notBefore: m, requestId: h, resources: w, scheme: o, uri: c, version: f } = n;
6
+ {
7
+ if (i !== Math.floor(i))
8
+ throw new e({
9
+ field: "chainId",
10
+ metaMessages: [
11
+ "- Chain ID must be a EIP-155 chain ID.",
12
+ "- See https://eips.ethereum.org/EIPS/eip-155",
13
+ "",
14
+ `Provided value: ${i}`
15
+ ]
16
+ });
17
+ if (!(p.test(s) || M.test(s) || x.test(s)))
18
+ throw new e({
19
+ field: "domain",
20
+ metaMessages: [
21
+ "- Domain must be an RFC 3986 authority.",
22
+ "- See https://www.rfc-editor.org/rfc/rfc3986",
23
+ "",
24
+ `Provided value: ${s}`
25
+ ]
26
+ });
27
+ if (!A.test(a))
28
+ throw new e({
29
+ field: "nonce",
30
+ metaMessages: [
31
+ "- Nonce must be at least 8 characters.",
32
+ "- Nonce must be alphanumeric.",
33
+ "",
34
+ `Provided value: ${a}`
35
+ ]
36
+ });
37
+ if (!$(c))
38
+ throw new e({
39
+ field: "uri",
40
+ metaMessages: [
41
+ "- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.",
42
+ "- See https://www.rfc-editor.org/rfc/rfc3986",
43
+ "",
44
+ `Provided value: ${c}`
45
+ ]
46
+ });
47
+ if (f !== "1")
48
+ throw new e({
49
+ field: "version",
50
+ metaMessages: [
51
+ "- Version must be '1'.",
52
+ "",
53
+ `Provided value: ${f}`
54
+ ]
55
+ });
56
+ if (o && !P.test(o))
57
+ throw new e({
58
+ field: "scheme",
59
+ metaMessages: [
60
+ "- Scheme must be an RFC 3986 URI scheme.",
61
+ "- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1",
62
+ "",
63
+ `Provided value: ${o}`
64
+ ]
65
+ });
66
+ const t = n.statement;
67
+ if (t != null && t.includes(`
68
+ `))
69
+ throw new e({
70
+ field: "statement",
71
+ metaMessages: [
72
+ "- Statement must not include '\\n'.",
73
+ "",
74
+ `Provided value: ${t}`
75
+ ]
76
+ });
77
+ }
78
+ const l = S(n.address), v = o ? `${o}://${s}` : s, I = n.statement ? `${n.statement}
79
+ ` : "", R = `${v} wants you to sign in with your Ethereum account:
80
+ ${l}
81
+
82
+ ${I}`;
83
+ let r = `URI: ${c}
84
+ Version: ${f}
85
+ Chain ID: ${i}
86
+ Nonce: ${a}
87
+ Issued At: ${g.toISOString()}`;
88
+ if (u && (r += `
89
+ Expiration Time: ${u.toISOString()}`), m && (r += `
90
+ Not Before: ${m.toISOString()}`), h && (r += `
91
+ Request ID: ${h}`), w) {
92
+ let t = `
93
+ Resources:`;
94
+ for (const d of w) {
95
+ if (!$(d))
96
+ throw new e({
97
+ field: "resources",
98
+ metaMessages: [
99
+ "- Every resource must be a RFC 3986 URI.",
100
+ "- See https://www.rfc-editor.org/rfc/rfc3986",
101
+ "",
102
+ `Provided value: ${d}`
103
+ ]
104
+ });
105
+ t += `
106
+ - ${d}`;
107
+ }
108
+ r += t;
109
+ }
110
+ return `${R}
111
+ ${r}`;
12
112
  }
113
+ const p = /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/, M = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/, x = /^localhost(:[0-9]{1,5})?$/, A = /^[a-zA-Z0-9]{8,}$/, P = /^([a-zA-Z][a-zA-Z0-9+-.]*)$/;
13
114
  export {
14
- m as createWalletClient
115
+ C as createSiweMessage
15
116
  };
package/dist/index27.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./index50.cjs"),E=require("./index51.cjs"),F=require("./index52.cjs"),H=require("./index53.cjs"),U=require("./index54.cjs");function _(k,r={}){const{batch:o,fetchOptions:u,key:l="http",methods:h,name:q="HTTP JSON-RPC",onFetchRequest:d,onFetchResponse:y,retryDelay:R,raw:f}=r;return({chain:n,retryCount:w,timeout:S})=>{const{batchSize:m=1e3,wait:C=0}=typeof o=="object"?o:{},b=r.retryCount??w,c=S??r.timeout??1e4,e=n==null?void 0:n.rpcUrls.default.http[0];if(!e)throw new E.UrlRequiredError;const a=H.getHttpRpcClient(e,{fetchOptions:u,onRequest:d,onResponse:y,timeout:c});return U.createTransport({key:l,methods:h,name:q,async request({method:T,params:B}){const i={method:T,params:B},{schedule:O}=F.createBatchScheduler({id:e,wait:C,shouldSplitBatch(t){return t.length>m},fn:t=>a.request({body:t}),sort:(t,g)=>t.id-g.id}),P=async t=>o?O(t):[await a.request({body:t})],[{error:s,result:p}]=await P(i);if(f)return{error:s,result:p};if(s)throw new j.RpcRequestError({body:i,error:s,url:e});return p},retryCount:b,retryDelay:R,timeout:c,type:"http"},{fetchOptions:u,url:e})}}exports.http=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index216.cjs"),t=e.defineChain({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}});exports.mainnet=t;
package/dist/index27.js CHANGED
@@ -1,60 +1,34 @@
1
- import { RpcRequestError as O } from "./index50.js";
2
- import { UrlRequiredError as P } from "./index51.js";
3
- import { createBatchScheduler as U } from "./index52.js";
4
- import { getHttpRpcClient as _ } from "./index53.js";
5
- import { createTransport as j } from "./index54.js";
6
- function g(k, e = {}) {
7
- const { batch: o, fetchOptions: u, key: m = "http", methods: a, name: h = "HTTP JSON-RPC", onFetchRequest: f, onFetchResponse: y, retryDelay: d, raw: R } = e;
8
- return ({ chain: n, retryCount: w, timeout: q }) => {
9
- const { batchSize: C = 1e3, wait: S = 0 } = typeof o == "object" ? o : {}, b = e.retryCount ?? w, c = q ?? e.timeout ?? 1e4, r = n == null ? void 0 : n.rpcUrls.default.http[0];
10
- if (!r)
11
- throw new P();
12
- const p = _(r, {
13
- fetchOptions: u,
14
- onRequest: f,
15
- onResponse: y,
16
- timeout: c
17
- });
18
- return j({
19
- key: m,
20
- methods: a,
21
- name: h,
22
- async request({ method: T, params: B }) {
23
- const i = { method: T, params: B }, { schedule: E } = U({
24
- id: r,
25
- wait: S,
26
- shouldSplitBatch(t) {
27
- return t.length > C;
28
- },
29
- fn: (t) => p.request({
30
- body: t
31
- }),
32
- sort: (t, H) => t.id - H.id
33
- }), F = async (t) => o ? E(t) : [
34
- await p.request({
35
- body: t
36
- })
37
- ], [{ error: s, result: l }] = await F(i);
38
- if (R)
39
- return { error: s, result: l };
40
- if (s)
41
- throw new O({
42
- body: i,
43
- error: s,
44
- url: r
45
- });
46
- return l;
47
- },
48
- retryCount: b,
49
- retryDelay: d,
50
- timeout: c,
51
- type: "http"
52
- }, {
53
- fetchOptions: u,
54
- url: r
55
- });
56
- };
57
- }
1
+ import { defineChain as e } from "./index216.js";
2
+ const t = /* @__PURE__ */ e({
3
+ id: 1,
4
+ name: "Ethereum",
5
+ nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
6
+ rpcUrls: {
7
+ default: {
8
+ http: ["https://eth.merkle.io"]
9
+ }
10
+ },
11
+ blockExplorers: {
12
+ default: {
13
+ name: "Etherscan",
14
+ url: "https://etherscan.io",
15
+ apiUrl: "https://api.etherscan.io/api"
16
+ }
17
+ },
18
+ contracts: {
19
+ ensRegistry: {
20
+ address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
21
+ },
22
+ ensUniversalResolver: {
23
+ address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67",
24
+ blockCreated: 19258213
25
+ },
26
+ multicall3: {
27
+ address: "0xca11bde05977b3631167028862be2a173976ca11",
28
+ blockCreated: 14353601
29
+ }
30
+ }
31
+ });
58
32
  export {
59
- g as http
33
+ t as mainnet
60
34
  };
package/dist/index28.cjs CHANGED
@@ -1,16 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index298.cjs"),M=require("./index162.cjs"),h=require("./index299.cjs");function R(r){const{chainId:o,domain:s,expirationTime:l,issuedAt:m=new Date,nonce:a,notBefore:f,requestId:w,resources:g,scheme:i,uri:c,version:d}=r;{if(o!==Math.floor(o))throw new e.SiweInvalidMessageFieldError({field:"chainId",metaMessages:["- Chain ID must be a EIP-155 chain ID.","- See https://eips.ethereum.org/EIPS/eip-155","",`Provided value: ${o}`]});if(!(E.test(s)||F.test(s)||b.test(s)))throw new e.SiweInvalidMessageFieldError({field:"domain",metaMessages:["- Domain must be an RFC 3986 authority.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${s}`]});if(!A.test(a))throw new e.SiweInvalidMessageFieldError({field:"nonce",metaMessages:["- Nonce must be at least 8 characters.","- Nonce must be alphanumeric.","",`Provided value: ${a}`]});if(!h.isUri(c))throw new e.SiweInvalidMessageFieldError({field:"uri",metaMessages:["- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${c}`]});if(d!=="1")throw new e.SiweInvalidMessageFieldError({field:"version",metaMessages:["- Version must be '1'.","",`Provided value: ${d}`]});if(i&&!P.test(i))throw new e.SiweInvalidMessageFieldError({field:"scheme",metaMessages:["- Scheme must be an RFC 3986 URI scheme.","- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1","",`Provided value: ${i}`]});const t=r.statement;if(t!=null&&t.includes(`
2
- `))throw new e.SiweInvalidMessageFieldError({field:"statement",metaMessages:["- Statement must not include '\\n'.","",`Provided value: ${t}`]})}const $=M.getAddress(r.address),v=i?`${i}://${s}`:s,I=r.statement?`${r.statement}
3
- `:"",S=`${v} wants you to sign in with your Ethereum account:
4
- ${$}
5
-
6
- ${I}`;let n=`URI: ${c}
7
- Version: ${d}
8
- Chain ID: ${o}
9
- Nonce: ${a}
10
- Issued At: ${m.toISOString()}`;if(l&&(n+=`
11
- Expiration Time: ${l.toISOString()}`),f&&(n+=`
12
- Not Before: ${f.toISOString()}`),w&&(n+=`
13
- Request ID: ${w}`),g){let t=`
14
- Resources:`;for(const u of g){if(!h.isUri(u))throw new e.SiweInvalidMessageFieldError({field:"resources",metaMessages:["- Every resource must be a RFC 3986 URI.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${u}`]});t+=`
15
- - ${u}`}n+=t}return`${S}
16
- ${n}`}const E=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/,F=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/,b=/^localhost(:[0-9]{1,5})?$/,A=/^[a-zA-Z0-9]{8,}$/,P=/^([a-zA-Z][a-zA-Z0-9+-.]*)$/;exports.createSiweMessage=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index3.cjs");class i{constructor(e,t){this.maxRetries=Math.max(e,0),this.delay=t}async retry(e){let t=0,r;for(;t<this.maxRetries+1;)try{return await e()}catch(s){t++,r=s,await a.sleep(this.delay*t)}throw r}}exports.Retry=i;
package/dist/index28.js CHANGED
@@ -1,116 +1,29 @@
1
- import { SiweInvalidMessageFieldError as e } from "./index298.js";
2
- import { getAddress as S } from "./index162.js";
3
- import { isUri as $ } from "./index299.js";
4
- function C(n) {
5
- const { chainId: i, domain: s, expirationTime: u, issuedAt: g = /* @__PURE__ */ new Date(), nonce: a, notBefore: m, requestId: h, resources: w, scheme: o, uri: c, version: f } = n;
6
- {
7
- if (i !== Math.floor(i))
8
- throw new e({
9
- field: "chainId",
10
- metaMessages: [
11
- "- Chain ID must be a EIP-155 chain ID.",
12
- "- See https://eips.ethereum.org/EIPS/eip-155",
13
- "",
14
- `Provided value: ${i}`
15
- ]
16
- });
17
- if (!(p.test(s) || M.test(s) || x.test(s)))
18
- throw new e({
19
- field: "domain",
20
- metaMessages: [
21
- "- Domain must be an RFC 3986 authority.",
22
- "- See https://www.rfc-editor.org/rfc/rfc3986",
23
- "",
24
- `Provided value: ${s}`
25
- ]
26
- });
27
- if (!A.test(a))
28
- throw new e({
29
- field: "nonce",
30
- metaMessages: [
31
- "- Nonce must be at least 8 characters.",
32
- "- Nonce must be alphanumeric.",
33
- "",
34
- `Provided value: ${a}`
35
- ]
36
- });
37
- if (!$(c))
38
- throw new e({
39
- field: "uri",
40
- metaMessages: [
41
- "- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.",
42
- "- See https://www.rfc-editor.org/rfc/rfc3986",
43
- "",
44
- `Provided value: ${c}`
45
- ]
46
- });
47
- if (f !== "1")
48
- throw new e({
49
- field: "version",
50
- metaMessages: [
51
- "- Version must be '1'.",
52
- "",
53
- `Provided value: ${f}`
54
- ]
55
- });
56
- if (o && !P.test(o))
57
- throw new e({
58
- field: "scheme",
59
- metaMessages: [
60
- "- Scheme must be an RFC 3986 URI scheme.",
61
- "- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1",
62
- "",
63
- `Provided value: ${o}`
64
- ]
65
- });
66
- const t = n.statement;
67
- if (t != null && t.includes(`
68
- `))
69
- throw new e({
70
- field: "statement",
71
- metaMessages: [
72
- "- Statement must not include '\\n'.",
73
- "",
74
- `Provided value: ${t}`
75
- ]
76
- });
1
+ import { sleep as s } from "./index3.js";
2
+ class l {
3
+ /**
4
+ * @param {number} maxRetries - The maximum number of retries, if less < 0 then it is set to 0
5
+ * @param {number} delay - The delay between retries
6
+ */
7
+ constructor(e, t) {
8
+ this.maxRetries = Math.max(e, 0), this.delay = t;
77
9
  }
78
- const l = S(n.address), v = o ? `${o}://${s}` : s, I = n.statement ? `${n.statement}
79
- ` : "", R = `${v} wants you to sign in with your Ethereum account:
80
- ${l}
81
-
82
- ${I}`;
83
- let r = `URI: ${c}
84
- Version: ${f}
85
- Chain ID: ${i}
86
- Nonce: ${a}
87
- Issued At: ${g.toISOString()}`;
88
- if (u && (r += `
89
- Expiration Time: ${u.toISOString()}`), m && (r += `
90
- Not Before: ${m.toISOString()}`), h && (r += `
91
- Request ID: ${h}`), w) {
92
- let t = `
93
- Resources:`;
94
- for (const d of w) {
95
- if (!$(d))
96
- throw new e({
97
- field: "resources",
98
- metaMessages: [
99
- "- Every resource must be a RFC 3986 URI.",
100
- "- See https://www.rfc-editor.org/rfc/rfc3986",
101
- "",
102
- `Provided value: ${d}`
103
- ]
104
- });
105
- t += `
106
- - ${d}`;
107
- }
108
- r += t;
10
+ /**
11
+ * Retries a function until it succeeds or the max number of retries is reached
12
+ *
13
+ * @param {() => Promise<T>} fn - The function to retry
14
+ * @return {Promise<T>} a Promise that resolves to the result of the function
15
+ */
16
+ async retry(e) {
17
+ let t = 0, r;
18
+ for (; t < this.maxRetries + 1; )
19
+ try {
20
+ return await e();
21
+ } catch (a) {
22
+ t++, r = a, await s(this.delay * t);
23
+ }
24
+ throw r;
109
25
  }
110
- return `${R}
111
- ${r}`;
112
26
  }
113
- const p = /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/, M = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/, x = /^localhost(:[0-9]{1,5})?$/, A = /^[a-zA-Z0-9]{8,}$/, P = /^([a-zA-Z][a-zA-Z0-9+-.]*)$/;
114
27
  export {
115
- C as createSiweMessage
28
+ l as Retry
116
29
  };
package/dist/index29.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index216.cjs"),t=e.defineChain({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}});exports.mainnet=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=e=>{try{return JSON.parse(e)}catch{return e}};exports.safeParseJson=r;
package/dist/index29.js CHANGED
@@ -1,34 +1,10 @@
1
- import { defineChain as e } from "./index216.js";
2
- const t = /* @__PURE__ */ e({
3
- id: 1,
4
- name: "Ethereum",
5
- nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
6
- rpcUrls: {
7
- default: {
8
- http: ["https://eth.merkle.io"]
9
- }
10
- },
11
- blockExplorers: {
12
- default: {
13
- name: "Etherscan",
14
- url: "https://etherscan.io",
15
- apiUrl: "https://api.etherscan.io/api"
16
- }
17
- },
18
- contracts: {
19
- ensRegistry: {
20
- address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
21
- },
22
- ensUniversalResolver: {
23
- address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67",
24
- blockCreated: 19258213
25
- },
26
- multicall3: {
27
- address: "0xca11bde05977b3631167028862be2a173976ca11",
28
- blockCreated: 14353601
29
- }
1
+ const t = (r) => {
2
+ try {
3
+ return JSON.parse(r);
4
+ } catch {
5
+ return r;
30
6
  }
31
- });
7
+ };
32
8
  export {
33
- t as mainnet
9
+ t as safeParseJson
34
10
  };
package/dist/index7.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index24.cjs"),u=require("./index25.cjs");class l{static async _postWithFallback(a,t){let r="";for(const n of a)try{const s=await fetch(n,{method:"POST",...t});if(s.status>=500){r=await(s.text()||s.json());continue}return await this.parse(s)}catch(s){r=o(s);continue}throw new Error(r||"All APIs failed")}static async postWithFallback(a,t){return await c(t).retry(()=>this._postWithFallback(a,t))}static async _getWithFallback(a,t){let r="";for(const n of a)try{const s=await fetch(n,t);if(s.status>=500){r=await(s.text()||s.json());continue}return await this.parse(s)}catch(s){r=o(s);continue}throw new Error(r||"All APIs failed")}static async getWithFallback(a,t){return await c(t).retry(()=>this._getWithFallback(a,t))}static async _get(a,t){return await this.parse(await fetch(a,t))}static async get(a,t){return await c(t).retry(()=>this._get(a,t))}static async _post(a,t){return await this.parse(await fetch(a,{method:"POST",...t}))}static async post(a,t){return await c(t).retry(()=>this._post(a,t))}static async parse(a){const t=await a.text();if(a.status>=200&&a.status<300)return u.safeParseJson(t);throw new Error(t)}}function o(e){return(e==null?void 0:e.message)||(e==null?void 0:e.toString())||"unknown error"}const c=e=>new i.Retry((e==null?void 0:e.retryCount)??2,(e==null?void 0:e.retryDelay)??1e3);exports.Fetcher=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index5.cjs");async function u(r,c="Failed to execute"){try{const e=await r();return typeof e=="object"&&e!==null&&"ok"in e?e:t.Ok(e)}catch(e){return t.Err(c+": ",e)}}exports.executeWithTryCatch=u;
package/dist/index7.js CHANGED
@@ -1,109 +1,12 @@
1
- import { Retry as h } from "./index24.js";
2
- import { safeParseJson as i } from "./index25.js";
3
- class w {
4
- static async _postWithFallback(a, t) {
5
- let r = "";
6
- for (const o of a)
7
- try {
8
- const e = await fetch(o, {
9
- method: "POST",
10
- ...t
11
- });
12
- if (e.status >= 500) {
13
- r = await (e.text() || e.json());
14
- continue;
15
- }
16
- return await this.parse(e);
17
- } catch (e) {
18
- r = n(e);
19
- continue;
20
- }
21
- throw new Error(r || "All APIs failed");
1
+ import { Ok as o, Err as c } from "./index5.js";
2
+ async function u(r, e = "Failed to execute") {
3
+ try {
4
+ const t = await r();
5
+ return typeof t == "object" && t !== null && "ok" in t ? t : o(t);
6
+ } catch (t) {
7
+ return c(e + ": ", t);
22
8
  }
23
- /**
24
- * Asynchronously sends a POST request to multiple URLs with fallback logic.
25
- *
26
- * @param {string[]} input - array of URLs to send the POST request to
27
- * @param {RequestInit} [init] - optional request initialization options
28
- * @return {Promise<T>} a Promise that resolves to the parsed response data
29
- */
30
- static async postWithFallback(a, t) {
31
- return await c(t).retry(
32
- () => this._postWithFallback(a, t)
33
- );
34
- }
35
- static async _getWithFallback(a, t) {
36
- let r = "";
37
- for (const o of a)
38
- try {
39
- const e = await fetch(o, t);
40
- if (e.status >= 500) {
41
- r = await (e.text() || e.json());
42
- continue;
43
- }
44
- return await this.parse(e);
45
- } catch (e) {
46
- r = n(e);
47
- continue;
48
- }
49
- throw new Error(r || "All APIs failed");
50
- }
51
- /**
52
- * Asynchronously sends a POST request to multiple URLs with fallback mechanism.
53
- *
54
- * @param {string[]} input - An array of URLs to retrieve data from.
55
- * @param {RequestInit} [init] - Optional request options.
56
- * @return {Promise<T>} A promise that resolves to the retrieved data.
57
- */
58
- static async getWithFallback(a, t) {
59
- return await c(t).retry(
60
- () => this._getWithFallback(a, t)
61
- );
62
- }
63
- static async _get(a, t) {
64
- return await this.parse(await fetch(a, t));
65
- }
66
- /**
67
- * Asynchronously retrieves data of type T from the specified URL or RequestInfo, with optional initialization options.
68
- *
69
- * @param {RequestInfo | URL} input - The URL or RequestInfo to fetch data from
70
- * @param {RequestInit} init - Optional initialization options for the fetch request
71
- * @return {Promise<T>} The retrieved data of type T
72
- */
73
- static async get(a, t) {
74
- return await c(t).retry(() => this._get(a, t));
75
- }
76
- static async _post(a, t) {
77
- return await this.parse(
78
- await fetch(a, {
79
- method: "POST",
80
- ...t
81
- })
82
- );
83
- }
84
- /**
85
- * Asynchronously sends a POST request to the specified URL or RequestInfo, with optional initialization options.
86
- */
87
- static async post(a, t) {
88
- return await c(t).retry(() => this._post(a, t));
89
- }
90
- /**
91
- * Parses the response and returns the result as the specified type.
92
- *
93
- * @param {Response} res - the response object to be parsed
94
- * @return {Promise<T>} the parsed result of type T
95
- */
96
- static async parse(a) {
97
- const t = await a.text();
98
- if (a.status >= 200 && a.status < 300)
99
- return i(t);
100
- throw new Error(t);
101
- }
102
- }
103
- function n(s) {
104
- return (s == null ? void 0 : s.message) || (s == null ? void 0 : s.toString()) || "unknown error";
105
9
  }
106
- const c = (s) => new h((s == null ? void 0 : s.retryCount) ?? 2, (s == null ? void 0 : s.retryDelay) ?? 1e3);
107
10
  export {
108
- w as Fetcher
11
+ u as executeWithTryCatch
109
12
  };