Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@leather.io/utils

Package Overview
Dependencies
Maintainers
1
Versions
121
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@leather.io/utils - npm Package Compare versions

Comparing version
0.49.1
to
0.49.2
+1
dist/index.d.ts.map
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/counter.ts","../src/math/calculate-averages.ts","../src/math/fibonacci.ts","../src/math/helpers.ts","../src/math/scale-value.ts","../src/money/calculate-money.ts","../src/money/create-money.ts","../src/money/is-money.ts","../src/money/is-fiat-currency-code.ts","../src/money/unit-conversion.ts","../src/accounts/account-addresses.ts","../src/assets/sort-assets.ts","../src/assets/asset-display-name.ts","../src/assets/balance-helpers.ts","../src/assets/inscription-helpers.ts","../src/assets/asset-id.ts","../src/truncate-middle.ts","../src/time.ts","../src/market-data.ts","../src/currency-formatter/currency-formatter.types.ts","../src/currency-formatter/currency-formatter.ts","../src/flatten-object.ts","../src/special-char.ts","../src/spam-filter/spam-filter.ts","../src/extract-phrase-from-string/extract-phrase-from-string.ts","../src/px-string-to-number/px-string-to-number.ts","../src/explorer/make-stacks-tx-explorer-link.ts","../src/sanitize-content.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
import { defineConfig } from 'tsdown';
export default defineConfig({
entry: ['src/index.ts'],
dts: true,
external: ['dompurify'],
fixedExtension: false,
});
+13
-14
> @leather.io/utils@0.49.1 build /home/runner/work/mono/mono/packages/utils
> tsup
> @leather.io/utils@0.49.2 build /home/runner/work/mono/mono/packages/utils
> tsdown
CLI Building entry: src/index.ts
CLI Using tsconfig: tsconfig.json
CLI tsup v8.4.0
CLI Using tsup config: /home/runner/work/mono/mono/packages/utils/tsup.config.ts
CLI Target: es2022
ESM Build start
ESM dist/index.js 73.66 KB
ESM dist/index.js.map 139.51 KB
ESM ⚡️ Build success in 79ms
DTS Build start
DTS ⚡️ Build success in 3365ms
DTS dist/index.d.ts 15.02 KB
ℹ tsdown v0.16.5 powered by rolldown v1.0.0-beta.50
ℹ Using tsdown config: /home/runner/work/mono/mono/packages/utils/tsdown.config.ts
ℹ entry: src/index.ts
ℹ tsconfig: tsconfig.json
ℹ Build start
ℹ dist/index.js  70.55 kB │ gzip: 19.71 kB
ℹ dist/index.js.map 126.67 kB │ gzip: 28.05 kB
ℹ dist/index.d.ts.map  7.69 kB │ gzip: 3.09 kB
ℹ dist/index.d.ts  16.83 kB │ gzip: 4.46 kB
ℹ 4 files, total: 221.74 kB
✔ Build complete in 2987ms

@@ -371,2 +371,20 @@ # Changelog

## [0.49.2](https://github.com/leather-io/mono/compare/@leather.io/utils-v0.49.1...@leather.io/utils-v0.49.2) (2025-12-02)
### Bug Fixes
* tsdown upgrade ([9bd347b](https://github.com/leather-io/mono/commit/9bd347b62e2deb9f7b65fa462b5fa281f4d106aa))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @leather.io/constants bumped to 0.28.2
* @leather.io/models bumped to 0.50.1
* devDependencies
* @leather.io/test-config bumped to 0.1.1
* @leather.io/tsconfig-config bumped to 0.11.1
## [0.49.1](https://github.com/leather-io/mono/compare/@leather.io/utils-v0.49.0...@leather.io/utils-v0.49.1) (2025-11-26)

@@ -373,0 +391,0 @@

@@ -1,15 +0,19 @@

import BigNumber, { BigNumber as BigNumber$1 } from 'bignumber.js';
import { Money, MarketData, NumType, Currency, AccountId, AccountAddresses, BitcoinAddressInfo, StacksAddressInfo, CryptoAsset, BaseCryptoAssetBalance, BtcBalance, StxBalance, InscriptionMimeType, InscriptionAsset, CryptoAssetId, Sip9Asset, BitcoinNetworkModes, NetworkModes } from '@leather.io/models';
import BigNumber, { BigNumber as BigNumber$1 } from "bignumber.js";
import { AccountAddresses, AccountId, BaseCryptoAssetBalance, BitcoinAddressInfo, BitcoinNetworkModes, BtcBalance, CryptoAsset, CryptoAssetId, Currency, InscriptionAsset, InscriptionMimeType, MarketData, Money, NetworkModes, NumType, Sip9Asset, StacksAddressInfo, StxBalance } from "@leather.io/models";
//#region src/counter.d.ts
declare function createCounter(startPosition?: number): {
getValue(): number;
increment(): number;
incrementBy(amount: number): number;
decrement(): number;
getValue(): number;
increment(): number;
incrementBy(amount: number): number;
decrement(): number;
};
//#endregion
//#region src/math/calculate-averages.d.ts
declare function calculateMeanAverage(numbers: BigNumber[] | number[]): BigNumber;
//#endregion
//#region src/math/fibonacci.d.ts
declare function fibonacciGenerator(startIndex?: number): IterableIterator<number>;
//#endregion
//#region src/math/helpers.d.ts
declare function initBigNumber(num: string | number | BigNumber | bigint): BigNumber;

@@ -19,8 +23,16 @@ declare function isEven(num: number): boolean;

declare function increaseValueByOneMicroStx(value: string | number | BigNumber): number;
//#endregion
//#region src/math/scale-value.d.ts
declare function scaleValue(num: number): number;
//#endregion
//#region src/money/calculate-money.d.ts
declare function baseCurrencyAmountInQuoteWithFallback(quantity: Money, marketData?: MarketData): Money;
declare function baseCurrencyAmountInQuote(quantity: Money, { pair, price }: MarketData): Money;
declare function quoteCurrencyAmountToBase(quantity: Money, { pair, price }: MarketData, decimals: number): Money;
declare function baseCurrencyAmountInQuote(quantity: Money, {
pair,
price
}: MarketData): Money;
declare function quoteCurrencyAmountToBase(quantity: Money, {
pair,
price
}: MarketData, decimals: number): Money;
declare function convertAmountToFractionalUnit(num: Money | BigNumber$1, decimals?: number): BigNumber$1;

@@ -33,3 +45,4 @@ declare function convertToMoneyTypeWithDefaultOfZero(symbol: string, num?: NumType, decimals?: number): Money;

declare function maxMoney(moneyArr: Money[]): Money;
//#endregion
//#region src/money/create-money.d.ts
/**

@@ -47,8 +60,11 @@ * @param value Amount described in currency's primary unit

declare function createMoney(value: NumType, symbol: Currency, resolution?: number): Money;
//#endregion
//#region src/money/is-money.d.ts
declare function isMoney(val: unknown): val is Money;
declare function isMoneyGreaterThanZero(money: Money): boolean | undefined;
//#endregion
//#region src/money/is-fiat-currency-code.d.ts
declare function isFiatCurrencyCode(code: string): boolean;
//#endregion
//#region src/money/unit-conversion.d.ts
declare function unitToFractionalUnit(decimals: number): (unit: number | string | BigNumber) => BigNumber;

@@ -60,20 +76,24 @@ declare const satToBtc: (unit: number | string | BigNumber) => BigNumber;

declare function moneyToBaseUnit(sum: Money): BigNumber;
//#endregion
//#region src/accounts/account-addresses.d.ts
declare function createAccountAddresses(accountId: AccountId, btcDescriptors?: string[], stxAddress?: string): AccountAddresses;
declare function hasBitcoinAddress(account: AccountAddresses): account is AccountAddresses & {
bitcoin: BitcoinAddressInfo;
bitcoin: BitcoinAddressInfo;
};
declare function hasStacksAddress(account: AccountAddresses): account is AccountAddresses & {
stacks: StacksAddressInfo;
stacks: StacksAddressInfo;
};
//#endregion
//#region src/assets/sort-assets.d.ts
declare function sortAssetsByName<T extends {
name: string;
name: string;
}[]>(assets: T): T;
declare function migratePositiveAssetBalancesToTop<T extends {
balance: Money;
balance: Money;
}[]>(assets: T): T;
//#endregion
//#region src/assets/asset-display-name.d.ts
declare function getAssetDisplayName(asset: CryptoAsset): string;
//#endregion
//#region src/assets/balance-helpers.d.ts
declare function createBaseCryptoAssetBalance(totalBalance: Money, inboundBal?: Money, outboundBal?: Money): BaseCryptoAssetBalance;

@@ -85,21 +105,21 @@ declare function createBtcBalance(totalBalance: Money, inboundBal?: Money, outboundBal?: Money, protectedBal?: Money, dustBal?: Money, unspendableBal?: Money): BtcBalance;

declare function aggregateStxBalances(balances: StxBalance[]): StxBalance;
declare function whenInscriptionMimeType<T>(mimeType: string, branches: {
[k in InscriptionMimeType]?: () => T;
}): T;
//#endregion
//#region src/assets/inscription-helpers.d.ts
declare function whenInscriptionMimeType<T>(mimeType: string, branches: { [k in InscriptionMimeType]?: () => T }): T;
interface CreateInscriptionData {
readonly id: string;
readonly number: number;
readonly contentSrc: string;
readonly mimeType?: string;
readonly ownerAddress: string;
readonly satPoint: string;
readonly genesisBlockHash: string;
readonly genesisTimestamp: string | number;
readonly genesisBlockHeight: number;
readonly outputValue: string;
readonly thumbnailSrc?: string;
readonly id: string;
readonly number: number;
readonly contentSrc: string;
readonly mimeType?: string;
readonly ownerAddress: string;
readonly satPoint: string;
readonly genesisBlockHash: string;
readonly genesisTimestamp: string | number;
readonly genesisBlockHeight: number;
readonly outputValue: string;
readonly thumbnailSrc?: string;
}
declare function createInscriptionAsset(data: CreateInscriptionData): InscriptionAsset;
//#endregion
//#region src/assets/asset-id.d.ts
declare function matchesAssetId(asset: CryptoAsset, assetId: CryptoAssetId): boolean;

@@ -112,4 +132,4 @@ declare function isSameAssetId(assetId1: CryptoAssetId, assetId2: CryptoAssetId): boolean;

declare function parseSip9IdField(id: string): {
assetId: string;
tokenId: number;
assetId: string;
tokenId: number;
};

@@ -119,5 +139,7 @@ type SerializedCryptoAssetId = `${string}|${string}`;

declare function deserializeAssetId(serializedAssetId: SerializedCryptoAssetId): CryptoAssetId;
//#endregion
//#region src/truncate-middle.d.ts
declare function truncateMiddle(input: string, offset?: number): string;
//#endregion
//#region src/time.d.ts
declare const oneMinInMs: number;

@@ -137,3 +159,4 @@ declare const fiveMinInMs: number;

declare function minutesInSec(minutes: number): number;
//#endregion
//#region src/market-data.d.ts
/**

@@ -151,48 +174,54 @@ * Rebases MarketData to a different quote currency using exchange rate.

declare function invertExchangeRate(exchangeRate: MarketData): MarketData;
//#endregion
//#region src/currency-formatter/currency-formatter.types.d.ts
interface FormatAmountInput {
amount: number;
currencyCode: string;
decimals: number;
amount: number;
currencyCode: string;
decimals: number;
}
interface FormatAmountCustomOptions {
compactThreshold?: number;
showCurrency?: boolean;
approximateDust?: boolean;
compactThreshold?: number;
showCurrency?: boolean;
approximateDust?: boolean;
}
interface FormatAmountOptions extends FormatAmountCustomOptions {
preset?: CurrencyFormatterPreset;
numberFormatOptions?: Intl.NumberFormatOptions;
preset?: CurrencyFormatterPreset;
numberFormatOptions?: Intl.NumberFormatOptions;
}
type CurrencyFormatterPreset = 'price' | 'shorthand-balance' | 'pad-decimals';
//#endregion
//#region src/currency-formatter/currency-formatter.d.ts
interface CreateCurrencyFormatterParams {
locale: string;
onError?: (error: unknown, context: {
locale: string;
onError?: (error: unknown, context: {
locale: string;
options: Intl.NumberFormatOptions;
}) => void;
options: Intl.NumberFormatOptions;
}) => void;
}
declare function createCurrencyFormatter({ locale, onError }: CreateCurrencyFormatterParams): {
formatAmount: (input: FormatAmountInput, options?: FormatAmountOptions) => string;
formatAmountWithMeta: (input: FormatAmountInput, options?: FormatAmountOptions) => {
valid: boolean;
result: string;
parts: never[];
resolvedOptions: {};
} | {
valid: boolean;
result: string;
parts: Intl.NumberFormatPart[];
resolvedOptions: Intl.ResolvedNumberFormatOptions;
};
formatPercentage: (amount: number, decimals?: number) => string;
declare function createCurrencyFormatter({
locale,
onError
}: CreateCurrencyFormatterParams): {
formatAmount: (input: FormatAmountInput, options?: FormatAmountOptions) => string;
formatAmountWithMeta: (input: FormatAmountInput, options?: FormatAmountOptions) => {
valid: boolean;
result: string;
parts: never[];
resolvedOptions: {};
} | {
valid: boolean;
result: string;
parts: Intl.NumberFormatPart[];
resolvedOptions: Intl.ResolvedNumberFormatOptions;
};
formatPercentage: (amount: number, decimals?: number) => string;
};
//#endregion
//#region src/flatten-object.d.ts
type ObjectValue = string | number | boolean | null | NestedObject | ObjectValue[];
interface NestedObject {
[key: string]: ObjectValue;
[key: string]: ObjectValue;
}
interface FlattenedObject {
[key: string]: string | number | boolean | null;
[key: string]: string | number | boolean | null;
}

@@ -222,23 +251,37 @@ /**

declare function flattenObject(input: ObjectValue, prefix?: string): FlattenedObject;
//#endregion
//#region src/special-char.d.ts
declare const minusSign = "\u2212";
//#endregion
//#region src/spam-filter/spam-filter.d.ts
interface SpamFilterArgs {
input: string;
whitelist: string[];
input: string;
whitelist: string[];
}
declare function spamFilter({ input, whitelist }: SpamFilterArgs): string;
declare function spamFilter({
input,
whitelist
}: SpamFilterArgs): string;
//#endregion
//#region src/extract-phrase-from-string/extract-phrase-from-string.d.ts
declare function extractPhraseFromString(value: string): string;
//#endregion
//#region src/px-string-to-number/px-string-to-number.d.ts
declare function pxStringToNumber(pxString: string): number;
//#endregion
//#region src/explorer/make-stacks-tx-explorer-link.d.ts
interface MakeStacksTxExplorerLinkArgs {
mode: BitcoinNetworkModes;
searchParams?: URLSearchParams;
txid: string;
isNakamoto?: boolean;
mode: BitcoinNetworkModes;
searchParams?: URLSearchParams;
txid: string;
isNakamoto?: boolean;
}
declare function makeStacksTxExplorerLink({ mode, searchParams, txid, isNakamoto, }: MakeStacksTxExplorerLinkArgs): string;
declare function makeStacksTxExplorerLink({
mode,
searchParams,
txid,
isNakamoto
}: MakeStacksTxExplorerLinkArgs): string;
//#endregion
//#region src/sanitize-content.d.ts
/**

@@ -249,3 +292,4 @@ * Universal sanitizer for dynamic HTML content.

declare function sanitizeContent(dirty: string): string;
//#endregion
//#region src/index.d.ts
declare function isNumber(value: unknown): value is number;

@@ -282,3 +326,3 @@ declare function isString(value: unknown): value is string;

declare function propIfDefined(prop: string, value: any): {
[prop]: boolean;
[prop]: boolean;
};

@@ -289,5 +333,3 @@ declare function isHexString(value: string): boolean;

type MapFunction<T, U> = (value: T[keyof T], key: string) => U;
declare function mapObject<T extends object, U>(obj: T, mapFn: MapFunction<T, U>): {
[K in keyof T]: U;
};
declare function mapObject<T extends object, U>(obj: T, mapFn: MapFunction<T, U>): { [K in keyof T]: U };
declare function assertIsTruthy<T>(val: T): asserts val is NonNullable<T>;

@@ -306,3 +348,4 @@ /**

declare function isNumberOrNumberList(value: unknown): value is number | number[];
export { type CreateInscriptionData, type FormatAmountOptions, type SerializedCryptoAssetId, aggregateBaseCryptoAssetBalances, aggregateBtcBalances, aggregateStxBalances, assertExistence, assertIsTruthy, assertUnreachable, baseCurrencyAmountInQuote, baseCurrencyAmountInQuoteWithFallback, btcToSat, calculateMeanAverage, capitalize, convertAmountToBaseUnit, convertAmountToFractionalUnit, convertToMoneyTypeWithDefaultOfZero, countDecimals, createAccountAddresses, createBaseCryptoAssetBalance, createBtcBalance, createCounter, createCurrencyFormatter, createInscriptionAsset, createMoney, createMoneyFromDecimal, createNullArrayOfLength, createNumArrayOfRange, createSip9AssetId, createStxBalance, dateToUnixTimestamp, daysInMs, daysInSec, defaultWalletKeyId, delay, deserializeAssetId, ensureArray, extractPhraseFromString, fibonacciGenerator, fiveMinInMs, flattenObject, formatSip9IdField, getAssetDisplayName, getAssetId, getTicker, hasBitcoinAddress, hasStacksAddress, hexToNumber, hoursInMs, hoursInSec, increaseValueByOneMicroStx, initBigNumber, invertExchangeRate, isBigInt, isBoolean, isDefined, isEmpty, isEmptyArray, isEmptyString, isError, isEven, isFiatCurrencyCode, isFulfilled, isFunction, isHexString, isMoney, isMoneyGreaterThanZero, isNumber, isNumberOrNumberList, isObject, isRejected, isSameAsset, isSameAssetId, isString, isTypedArray, isUndefined, makeNumberRange, makeStacksTxExplorerLink, mapObject, matchesAssetId, maxMoney, microStxToStx, migratePositiveAssetBalancesToTop, minMoney, minusSign, minutesInMs, minutesInSec, moneyToBaseUnit, noop, oneDayInMs, oneMinInMs, oneWeekInMs, parseSip9IdField, propIfDefined, pxStringToNumber, quoteCurrencyAmountToBase, rebaseMarketData, removeTrailingNullCharacters, reverseBytes, safelyFormatHexTxid, sanitizeContent, satToBtc, scaleValue, secondsInMs, serializeAssetId, sortAssetsByName, spamFilter, stxToMicroStx, subtractMoney, sumMoney, sumNumbers, toHexString, truncateMiddle, undefinedIfLengthZero, uniqueArray, unitToFractionalUnit, weeksInMs, weeksInSec, whenInscriptionMimeType, whenNetwork };
//#endregion
export { CreateInscriptionData, type FormatAmountOptions, SerializedCryptoAssetId, aggregateBaseCryptoAssetBalances, aggregateBtcBalances, aggregateStxBalances, assertExistence, assertIsTruthy, assertUnreachable, baseCurrencyAmountInQuote, baseCurrencyAmountInQuoteWithFallback, btcToSat, calculateMeanAverage, capitalize, convertAmountToBaseUnit, convertAmountToFractionalUnit, convertToMoneyTypeWithDefaultOfZero, countDecimals, createAccountAddresses, createBaseCryptoAssetBalance, createBtcBalance, createCounter, createCurrencyFormatter, createInscriptionAsset, createMoney, createMoneyFromDecimal, createNullArrayOfLength, createNumArrayOfRange, createSip9AssetId, createStxBalance, dateToUnixTimestamp, daysInMs, daysInSec, defaultWalletKeyId, delay, deserializeAssetId, ensureArray, extractPhraseFromString, fibonacciGenerator, fiveMinInMs, flattenObject, formatSip9IdField, getAssetDisplayName, getAssetId, getTicker, hasBitcoinAddress, hasStacksAddress, hexToNumber, hoursInMs, hoursInSec, increaseValueByOneMicroStx, initBigNumber, invertExchangeRate, isBigInt, isBoolean, isDefined, isEmpty, isEmptyArray, isEmptyString, isError, isEven, isFiatCurrencyCode, isFulfilled, isFunction, isHexString, isMoney, isMoneyGreaterThanZero, isNumber, isNumberOrNumberList, isObject, isRejected, isSameAsset, isSameAssetId, isString, isTypedArray, isUndefined, makeNumberRange, makeStacksTxExplorerLink, mapObject, matchesAssetId, maxMoney, microStxToStx, migratePositiveAssetBalancesToTop, minMoney, minusSign, minutesInMs, minutesInSec, moneyToBaseUnit, noop, oneDayInMs, oneMinInMs, oneWeekInMs, parseSip9IdField, propIfDefined, pxStringToNumber, quoteCurrencyAmountToBase, rebaseMarketData, removeTrailingNullCharacters, reverseBytes, safelyFormatHexTxid, sanitizeContent, satToBtc, scaleValue, secondsInMs, serializeAssetId, sortAssetsByName, spamFilter, stxToMicroStx, subtractMoney, sumMoney, sumNumbers, toHexString, truncateMiddle, undefinedIfLengthZero, uniqueArray, unitToFractionalUnit, weeksInMs, weeksInSec, whenInscriptionMimeType, whenNetwork };
//# sourceMappingURL=index.d.ts.map

@@ -5,3 +5,3 @@ {

"description": "Shared bitcoin utilities",
"version": "0.49.1",
"version": "0.49.2",
"license": "MIT",

@@ -23,4 +23,4 @@ "homepage": "https://github.com/leather-io/mono/tree/dev/packages/utils",

"dompurify": "3.2.4",
"@leather.io/constants": "0.28.1",
"@leather.io/models": "0.50.0"
"@leather.io/constants": "0.28.2",
"@leather.io/models": "0.50.1"
},

@@ -30,7 +30,8 @@ "devDependencies": {

"prettier": "3.5.1",
"tsup": "8.4.0",
"typescript": "5.8.3",
"tsdown": "0.16.5",
"typescript": "5.9.3",
"vitest": "2.1.9",
"@leather.io/tsconfig-config": "0.11.0",
"@leather.io/prettier-config": "0.9.0"
"@leather.io/prettier-config": "0.9.0",
"@leather.io/tsconfig-config": "0.11.1",
"@leather.io/test-config": "0.1.1"
},

@@ -47,4 +48,4 @@ "keywords": [

"scripts": {
"build": "tsup",
"build:watch": "tsup --watch --onSuccess 'tsup --dts-only'",
"build": "tsdown",
"build:watch": "tsdown --watch",
"format": "prettier . --write --ignore-path ../../.prettierignore",

@@ -51,0 +52,0 @@ "format:check": "prettier . --check --ignore-path ../../.prettierignore",

@@ -75,4 +75,5 @@ import { BigNumber } from 'bignumber.js';

// eslint-disable-next-line @typescript-eslint/no-empty-function
export function noop() {}
export function noop() {
// expected to be empty
}

@@ -102,3 +103,3 @@ export function ensureArray<T>(value: T | T[]): T[] {

export function reverseBytes(bytes: Uint8Array): Uint8Array;
export function reverseBytes(bytes: Buffer | Uint8Array) {
export function reverseBytes(bytes: Buffer | Uint8Array): Buffer | Uint8Array {
if (Buffer.isBuffer(bytes)) return Buffer.from(bytes).reverse();

@@ -164,3 +165,3 @@ return new Uint8Array(bytes.slice().reverse());

} else if (name.length >= 3) {
name = `${getLetters(name, 3)}`;
name = getLetters(name, 3);
}

@@ -167,0 +168,0 @@ return name.toUpperCase();

{
"extends": ["@leather.io/tsconfig-config/tsconfig.base.json"],
"include": ["**/*", ".*.ts"],
"exclude": ["./dist/"],
"include": ["src/**/*"],
"compilerOptions": {
"baseUrl": "src",
"baseUrl": "./src",
"rootDir": "./src",
"types": ["vitest/globals"],

@@ -8,0 +8,0 @@ "outDir": "./dist"

import { defineProject } from 'vitest/config';
import { defaultVitestUnitTestingConfig } from '../../config/vitest-configs';
import { defaultVitestUnitTestingConfig } from '@leather.io/test-config';
export default defineProject({ ...defaultVitestUnitTestingConfig });
import { defineConfig } from 'tsup';
export default defineConfig({
entry: ['src/index.ts'],
sourcemap: true,
clean: false,
dts: true,
format: 'esm',
external: ['dompurify'],
});

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display