@hairy/ether-lib 1.1.1 → 1.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.
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2019-PRESENT Hairyf<https://github.com/hairyf>
3
+ Copyright (c) 2025-PRESENT Hairyf <https://github.com/antfu>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -19,5 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.
22
-
23
-
package/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # @hairy/ether-lib
2
+
3
+ [![npm version][npm-version-src]][npm-version-href]
4
+ [![npm downloads][npm-downloads-src]][npm-downloads-href]
5
+ [![bundle][bundle-src]][bundle-href]
6
+ [![JSDocs][jsdocs-src]][jsdocs-href]
7
+ [![License][license-src]][license-href]
8
+
9
+ ## Install
10
+
11
+ ```
12
+ ni @hairy/ether-lib
13
+ ```
14
+
15
+ ## CDN
16
+
17
+ ```html
18
+ <script src="https://unpkg.com/@hairy/ether-lib"></script>
19
+ ```
20
+
21
+ ## License
22
+
23
+ [MIT](./LICENSE) License © [Hairyf](https://github.com/hairyf)
24
+
25
+ <!-- Badges -->
26
+
27
+ [npm-version-src]: https://img.shields.io/npm/v/@hairy/ether-lib?style=flat&colorA=080f12&colorB=1fa669
28
+ [npm-version-href]: https://npmjs.com/package/@hairy/ether-lib
29
+ [npm-downloads-src]: https://img.shields.io/npm/dm/@hairy/ether-lib?style=flat&colorA=080f12&colorB=1fa669
30
+ [npm-downloads-href]: https://npmjs.com/package/@hairy/ether-lib
31
+ [bundle-src]: https://img.shields.io/bundlephobia/minzip/@hairy/ether-lib?style=flat&colorA=080f12&colorB=1fa669&label=minzip
32
+ [bundle-href]: https://bundlephobia.com/result?p=@hairy/ether-lib
33
+ [license-src]: https://img.shields.io/github/license/hairyf/hairylib.svg?style=flat&colorA=080f12&colorB=1fa669
34
+ [license-href]: https://github.com/hairyf/hairylib/blob/main/LICENSE
35
+ [jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat&colorA=080f12&colorB=1fa669
36
+ [jsdocs-href]: https://www.jsdocs.io/package/@hairy/ether-lib
package/dist/index.cjs CHANGED
@@ -28,8 +28,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
30
  // src/index.ts
31
- var src_exports = {};
32
- __export(src_exports, {
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
33
  Bignumber: () => import_utils.Bignumber,
34
34
  Errors: () => Errors,
35
35
  formatEther: () => formatEther,
@@ -37,7 +37,7 @@ __export(src_exports, {
37
37
  subscribeForTransaction: () => subscribeForTransaction,
38
38
  wait: () => wait
39
39
  });
40
- module.exports = __toCommonJS(src_exports);
40
+ module.exports = __toCommonJS(index_exports);
41
41
 
42
42
  // src/constants.ts
43
43
  var Errors = /* @__PURE__ */ ((Errors2) => {
@@ -70,8 +70,8 @@ function idprefix(errorCallString) {
70
70
  }
71
71
 
72
72
  // src/number.ts
73
- var import_ethers2 = require("ethers");
74
73
  var import_utils = require("@hairy/utils");
74
+ var import_ethers2 = require("ethers");
75
75
  function formatEther(value = "0", options = {}) {
76
76
  const { separator = false, decimals, delimiters = false, rounding, zeromove = true } = options;
77
77
  const number = (0, import_ethers2.formatEther)((0, import_utils.unum)((0, import_utils.numerfix)(value)).toFixed(0));
@@ -87,7 +87,7 @@ function formatEther(value = "0", options = {}) {
87
87
 
88
88
  // src/wait.ts
89
89
  var import_ethers3 = require("ethers");
90
- var import_mitt = __toESM(require("mitt"));
90
+ var import_mitt = __toESM(require("mitt"), 1);
91
91
  var emitter = (0, import_mitt.default)();
92
92
  for (const Response of [import_ethers3.TransactionResponse, import_ethers3.ContractTransactionResponse]) {
93
93
  const waitForTransaction = Response.prototype.wait;
@@ -111,7 +111,7 @@ async function wait(transaction) {
111
111
  transaction = await transaction();
112
112
  if (transaction instanceof Promise)
113
113
  transaction = await transaction;
114
- const receipt = await transaction.getTransaction().then((transaction2) => transaction2 == null ? void 0 : transaction2._wait());
114
+ const receipt = await transaction.getTransaction().then((transaction2) => transaction2?._wait());
115
115
  emitter.emit("after", receipt);
116
116
  return receipt;
117
117
  } catch (error) {
package/dist/index.d.ts CHANGED
@@ -3,53 +3,53 @@ export { Bignumber } from '@hairy/utils';
3
3
  import * as mitt from 'mitt';
4
4
  import { TransactionResponse, ContractTransactionResponse, TransactionReceipt } from 'ethers';
5
5
 
6
- declare enum Errors {
7
- UNKNOWN_ERROR = "UNKNOWN_ERROR",
8
- NOT_IMPLEMENTED = "NOT_IMPLEMENTED",
9
- UNSUPPORTED_OPERATION = "UNSUPPORTED_OPERATION",
10
- NETWORK_ERROR = "NETWORK_ERROR",
11
- SERVER_ERROR = "SERVER_ERROR",
12
- TIMEOUT = "TIMEOUT",
13
- BUFFER_OVERRUN = "BUFFER_OVERRUN",
14
- NUMERIC_FAULT = "NUMERIC_FAULT",
15
- MISSING_NEW = "MISSING_NEW",
16
- INVALID_ARGUMENT = "INVALID_ARGUMENT",
17
- MISSING_ARGUMENT = "MISSING_ARGUMENT",
18
- UNEXPECTED_ARGUMENT = "UNEXPECTED_ARGUMENT",
19
- CALL_EXCEPTION = "CALL_EXCEPTION",
20
- INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS",
21
- NONCE_EXPIRED = "NONCE_EXPIRED",
22
- REPLACEMENT_UNDERPRICED = "REPLACEMENT_UNDERPRICED",
23
- UNPREDICTABLE_GAS_LIMIT = "UNPREDICTABLE_GAS_LIMIT",
24
- TRANSACTION_REPLACED = "TRANSACTION_REPLACED",
25
- ACTION_REJECTED = "ACTION_REJECTED"
6
+ declare enum Errors {
7
+ UNKNOWN_ERROR = "UNKNOWN_ERROR",
8
+ NOT_IMPLEMENTED = "NOT_IMPLEMENTED",
9
+ UNSUPPORTED_OPERATION = "UNSUPPORTED_OPERATION",
10
+ NETWORK_ERROR = "NETWORK_ERROR",
11
+ SERVER_ERROR = "SERVER_ERROR",
12
+ TIMEOUT = "TIMEOUT",
13
+ BUFFER_OVERRUN = "BUFFER_OVERRUN",
14
+ NUMERIC_FAULT = "NUMERIC_FAULT",
15
+ MISSING_NEW = "MISSING_NEW",
16
+ INVALID_ARGUMENT = "INVALID_ARGUMENT",
17
+ MISSING_ARGUMENT = "MISSING_ARGUMENT",
18
+ UNEXPECTED_ARGUMENT = "UNEXPECTED_ARGUMENT",
19
+ CALL_EXCEPTION = "CALL_EXCEPTION",
20
+ INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS",
21
+ NONCE_EXPIRED = "NONCE_EXPIRED",
22
+ REPLACEMENT_UNDERPRICED = "REPLACEMENT_UNDERPRICED",
23
+ UNPREDICTABLE_GAS_LIMIT = "UNPREDICTABLE_GAS_LIMIT",
24
+ TRANSACTION_REPLACED = "TRANSACTION_REPLACED",
25
+ ACTION_REJECTED = "ACTION_REJECTED"
26
26
  }
27
27
 
28
28
  declare function idprefix(errorCallString: string): string;
29
29
 
30
- interface FormatEtherOptions {
31
- delimiters?: Delimiter[] | boolean;
32
- separator?: boolean;
33
- rounding?: Bignumber.RoundingMode;
34
- zeromove?: boolean;
35
- decimals?: number;
36
- format?: Bignumber.Format;
37
- }
30
+ interface FormatEtherOptions {
31
+ delimiters?: Delimiter[] | boolean;
32
+ separator?: boolean;
33
+ rounding?: Bignumber.RoundingMode;
34
+ zeromove?: boolean;
35
+ decimals?: number;
36
+ format?: Bignumber.Format;
37
+ }
38
38
  declare function formatEther(value?: Numberish, options?: FormatEtherOptions): string;
39
39
 
40
- type GenericTransactionResponse = TransactionResponse | ContractTransactionResponse | Promise<TransactionResponse | ContractTransactionResponse> | (() => TransactionResponse | ContractTransactionResponse) | (() => Promise<TransactionResponse | ContractTransactionResponse>);
41
- declare function wait(transaction: GenericTransactionResponse): Promise<any>;
42
- declare const subscribeForTransaction: {
43
- <Key extends "before" | "after" | "error">(type: Key, handler: mitt.Handler<{
44
- before: void;
45
- after: TransactionReceipt | null;
46
- error: Error;
47
- }[Key]>): void;
48
- (type: "*", handler: mitt.WildcardHandler<{
49
- before: void;
50
- after: TransactionReceipt | null;
51
- error: Error;
52
- }>): void;
40
+ type GenericTransactionResponse = TransactionResponse | ContractTransactionResponse | Promise<TransactionResponse | ContractTransactionResponse> | (() => TransactionResponse | ContractTransactionResponse) | (() => Promise<TransactionResponse | ContractTransactionResponse>);
41
+ declare function wait(transaction: GenericTransactionResponse): Promise<any>;
42
+ declare const subscribeForTransaction: {
43
+ <Key extends "before" | "after" | "error">(type: Key, handler: mitt.Handler<{
44
+ before: void;
45
+ after: TransactionReceipt | null;
46
+ error: Error;
47
+ }[Key]>): void;
48
+ (type: "*", handler: mitt.WildcardHandler<{
49
+ before: void;
50
+ after: TransactionReceipt | null;
51
+ error: Error;
52
+ }>): void;
53
53
  };
54
54
 
55
- export { Errors, FormatEtherOptions, GenericTransactionResponse, formatEther, idprefix, subscribeForTransaction, wait };
55
+ export { Errors, type FormatEtherOptions, type GenericTransactionResponse, formatEther, idprefix, subscribeForTransaction, wait };
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ (() => {
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __commonJS = (cb, mod) => function __require() {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+
29
+ // globals:ethers
30
+ var require_ethers = __commonJS({
31
+ "globals:ethers"(exports, module) {
32
+ "use strict";
33
+ module.exports = ethers;
34
+ }
35
+ });
36
+
37
+ // globals:bignumber.js
38
+ var require_bignumber = __commonJS({
39
+ "globals:bignumber.js"(exports, module) {
40
+ "use strict";
41
+ module.exports = BigNumber;
42
+ }
43
+ });
44
+
45
+ // src/constants.ts
46
+ var Errors = /* @__PURE__ */ ((Errors2) => {
47
+ Errors2["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
48
+ Errors2["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED";
49
+ Errors2["UNSUPPORTED_OPERATION"] = "UNSUPPORTED_OPERATION";
50
+ Errors2["NETWORK_ERROR"] = "NETWORK_ERROR";
51
+ Errors2["SERVER_ERROR"] = "SERVER_ERROR";
52
+ Errors2["TIMEOUT"] = "TIMEOUT";
53
+ Errors2["BUFFER_OVERRUN"] = "BUFFER_OVERRUN";
54
+ Errors2["NUMERIC_FAULT"] = "NUMERIC_FAULT";
55
+ Errors2["MISSING_NEW"] = "MISSING_NEW";
56
+ Errors2["INVALID_ARGUMENT"] = "INVALID_ARGUMENT";
57
+ Errors2["MISSING_ARGUMENT"] = "MISSING_ARGUMENT";
58
+ Errors2["UNEXPECTED_ARGUMENT"] = "UNEXPECTED_ARGUMENT";
59
+ Errors2["CALL_EXCEPTION"] = "CALL_EXCEPTION";
60
+ Errors2["INSUFFICIENT_FUNDS"] = "INSUFFICIENT_FUNDS";
61
+ Errors2["NONCE_EXPIRED"] = "NONCE_EXPIRED";
62
+ Errors2["REPLACEMENT_UNDERPRICED"] = "REPLACEMENT_UNDERPRICED";
63
+ Errors2["UNPREDICTABLE_GAS_LIMIT"] = "UNPREDICTABLE_GAS_LIMIT";
64
+ Errors2["TRANSACTION_REPLACED"] = "TRANSACTION_REPLACED";
65
+ Errors2["ACTION_REJECTED"] = "ACTION_REJECTED";
66
+ return Errors2;
67
+ })(Errors || {});
68
+
69
+ // src/hash.ts
70
+ var import_ethers = __toESM(require_ethers(), 1);
71
+ function idprefix(errorCallString) {
72
+ return (0, import_ethers.id)(errorCallString).slice(0, 10);
73
+ }
74
+
75
+ // ../util-core/src/number/index.ts
76
+ var import_bignumber = __toESM(require_bignumber(), 1);
77
+ var BIG_INTS = {
78
+ t: { v: 10 ** 12, d: 13, n: "t" },
79
+ b: { v: 10 ** 9, d: 10, n: "b" },
80
+ m: { v: 10 ** 6, d: 7, n: "m" },
81
+ k: { v: 10 ** 3, d: 4, n: "k" }
82
+ };
83
+ function unum(num = "0") {
84
+ return new import_bignumber.default(numerfix(num));
85
+ }
86
+ function gte(num, n) {
87
+ return unum(num).gte(unum(n));
88
+ }
89
+ function lt(num, n) {
90
+ return unum(num).lt(unum(n));
91
+ }
92
+ function zeromove(value) {
93
+ return value.toString().replace(/\.?0+$/, "");
94
+ }
95
+ function numerfix(value) {
96
+ const _isNaN = Number.isNaN(Number(value)) || value.toString() === "NaN";
97
+ if (_isNaN)
98
+ console.warn(`numerfix(${value}): value is not the correct value. To ensure the normal operation of the program, it will be converted to zero`);
99
+ return _isNaN ? "0" : String(value);
100
+ }
101
+ function parseNumeric(num, delimiters = ["t", "b", "m"]) {
102
+ const mappings = [
103
+ delimiters.includes("t") && ((n) => gte(n, BIG_INTS.t.v) && BIG_INTS.t),
104
+ delimiters.includes("b") && ((n) => gte(n, BIG_INTS.b.v) && lt(n, BIG_INTS.t.v) && BIG_INTS.b),
105
+ delimiters.includes("m") && ((n) => gte(n, BIG_INTS.m.v) && lt(n, BIG_INTS.b.v) && BIG_INTS.m),
106
+ delimiters.includes("k") && ((n) => gte(n, BIG_INTS.k.v) && lt(n, BIG_INTS.m.v) && BIG_INTS.k)
107
+ ];
108
+ let options;
109
+ for (const analy of mappings) {
110
+ const opts = analy && analy(unum(num).toFixed(0));
111
+ opts && (options = opts);
112
+ }
113
+ return options || { v: 1, d: 0, n: "" };
114
+ }
115
+ function formatNumeric(value = "0", options) {
116
+ const {
117
+ rounding = import_bignumber.default.ROUND_DOWN,
118
+ delimiters,
119
+ format,
120
+ decimals = 2
121
+ } = options || {};
122
+ const config = parseNumeric(value, delimiters || []);
123
+ let number = unum(value).div(config.v).toFormat(decimals, rounding, {
124
+ decimalSeparator: ".",
125
+ groupSeparator: ",",
126
+ groupSize: 3,
127
+ secondaryGroupSize: 0,
128
+ fractionGroupSeparator: " ",
129
+ fractionGroupSize: 0,
130
+ ...format
131
+ });
132
+ number = options?.zeromove ? zeromove(number) : number;
133
+ return `${number}${config.n}`;
134
+ }
135
+
136
+ // src/number.ts
137
+ var import_ethers2 = __toESM(require_ethers(), 1);
138
+ function formatEther(value = "0", options = {}) {
139
+ const { separator = false, decimals, delimiters = false, rounding, zeromove: zeromove2 = true } = options;
140
+ const number = (0, import_ethers2.formatEther)(unum(numerfix(value)).toFixed(0));
141
+ const groupSeparator = separator === false ? "" : ",";
142
+ return formatNumeric(number, {
143
+ format: { groupSeparator, ...options.format },
144
+ delimiters: typeof delimiters === "boolean" ? delimiters && ["m", "b", "t"] : delimiters,
145
+ decimals,
146
+ rounding,
147
+ zeromove: zeromove2
148
+ });
149
+ }
150
+
151
+ // src/wait.ts
152
+ var import_ethers3 = __toESM(require_ethers(), 1);
153
+
154
+ // ../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs
155
+ function mitt_default(n) {
156
+ return { all: n = n || /* @__PURE__ */ new Map(), on: function(t, e) {
157
+ var i = n.get(t);
158
+ i ? i.push(e) : n.set(t, [e]);
159
+ }, off: function(t, e) {
160
+ var i = n.get(t);
161
+ i && (e ? i.splice(i.indexOf(e) >>> 0, 1) : n.set(t, []));
162
+ }, emit: function(t, e) {
163
+ var i = n.get(t);
164
+ i && i.slice().map(function(n2) {
165
+ n2(e);
166
+ }), (i = n.get("*")) && i.slice().map(function(n2) {
167
+ n2(t, e);
168
+ });
169
+ } };
170
+ }
171
+
172
+ // src/wait.ts
173
+ var emitter = mitt_default();
174
+ for (const Response of [import_ethers3.TransactionResponse, import_ethers3.ContractTransactionResponse]) {
175
+ const waitForTransaction = Response.prototype.wait;
176
+ Response.prototype._wait = waitForTransaction;
177
+ Response.prototype.wait = async function(...args) {
178
+ try {
179
+ emitter.emit("before");
180
+ const receipt = await waitForTransaction.call(this, ...args);
181
+ emitter.emit("after", receipt);
182
+ return receipt;
183
+ } catch (error) {
184
+ emitter.emit("error", error);
185
+ throw error;
186
+ }
187
+ };
188
+ }
189
+ async function wait(transaction) {
190
+ try {
191
+ emitter.emit("before");
192
+ if (typeof transaction === "function")
193
+ transaction = await transaction();
194
+ if (transaction instanceof Promise)
195
+ transaction = await transaction;
196
+ const receipt = await transaction.getTransaction().then((transaction2) => transaction2?._wait());
197
+ emitter.emit("after", receipt);
198
+ return receipt;
199
+ } catch (error) {
200
+ emitter.emit("error", error);
201
+ throw error;
202
+ }
203
+ }
204
+ var subscribeForTransaction = emitter.on.bind(emitter);
205
+ })();
@@ -29,8 +29,8 @@ function idprefix(errorCallString) {
29
29
  }
30
30
 
31
31
  // src/number.ts
32
- import { formatEther as _formatEther } from "ethers";
33
32
  import { Bignumber, formatNumeric, numerfix, unum } from "@hairy/utils";
33
+ import { formatEther as _formatEther } from "ethers";
34
34
  function formatEther(value = "0", options = {}) {
35
35
  const { separator = false, decimals, delimiters = false, rounding, zeromove = true } = options;
36
36
  const number = _formatEther(unum(numerfix(value)).toFixed(0));
@@ -70,7 +70,7 @@ async function wait(transaction) {
70
70
  transaction = await transaction();
71
71
  if (transaction instanceof Promise)
72
72
  transaction = await transaction;
73
- const receipt = await transaction.getTransaction().then((transaction2) => transaction2 == null ? void 0 : transaction2._wait());
73
+ const receipt = await transaction.getTransaction().then((transaction2) => transaction2?._wait());
74
74
  emitter.emit("after", receipt);
75
75
  return receipt;
76
76
  } catch (error) {
package/package.json CHANGED
@@ -1,33 +1,47 @@
1
1
  {
2
2
  "name": "@hairy/ether-lib",
3
- "version": "1.1.1",
3
+ "type": "module",
4
+ "version": "1.6.0",
5
+ "description": "Library for ether",
6
+ "author": "Hairyf <wwu710632@gmail.com>",
4
7
  "license": "MIT",
5
- "main": "./dist/index.cjs",
8
+ "funding": "https://github.com/sponsors/hairyf",
9
+ "homepage": "https://github.com/hairyf/hairylib#readme",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/hairyf/hairylib.git"
13
+ },
14
+ "bugs": "https://github.com/hairyf/hairylib/issues",
15
+ "keywords": [],
16
+ "sideEffects": false,
17
+ "main": "./dist/index.js",
6
18
  "publishConfig": {
7
- "jsdelivr": "./dist/index.iife.min.js"
19
+ "jsdelivr": "./dist/index.global.js"
8
20
  },
9
21
  "files": [
10
22
  "dist"
11
23
  ],
24
+ "peerDependencies": {
25
+ "ethers": ">=6"
26
+ },
12
27
  "dependencies": {
13
28
  "mitt": "^3.0.1",
14
- "@hairy/utils": "0.7.3"
29
+ "@hairy/utils": "1.6.0"
15
30
  },
16
31
  "devDependencies": {
17
32
  "ethers": "^6"
18
33
  },
19
- "peerDependencies": {
20
- "ethers": ">=6"
21
- },
22
34
  "scripts": {
23
- "build": "ptsup src/index.ts --dts"
35
+ "build": "tsup",
36
+ "dev": "tsup --watch",
37
+ "start": "tsx src/index.ts"
24
38
  },
25
- "module": "./dist/index.mjs",
39
+ "module": "./dist/index.js",
26
40
  "types": "./dist/index.d.ts",
27
- "unpkg": "./dist/index.iife.min.js",
41
+ "unpkg": "./dist/index.global.js",
28
42
  "exports": {
29
43
  ".": {
30
- "import": "./dist/index.mjs",
44
+ "import": "./dist/index.js",
31
45
  "require": "./dist/index.cjs",
32
46
  "types": "./dist/index.d.ts"
33
47
  },