aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2023-09-14 12:13:35 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2023-09-14 12:13:35 +0200
commit35611f0bf9cf67638b171c2a300fab1797d3d8f0 (patch)
treed067d5d62ac2fd0d88b25d2c759cc2caa9485c00 /packages
parent64c19c8cde56699ab4aaf05a1ac6fea6a4e0e4ba (diff)
parenta5960665245c4ffb625dd16923019e8c62c20159 (diff)
Merge branch 'master' into age-withdraw
Diffstat (limited to 'packages')
-rw-r--r--packages/aml-backoffice-ui/package.json2
-rw-r--r--packages/anastasis-cli/package.json4
-rw-r--r--packages/anastasis-core/package.json4
-rw-r--r--packages/anastasis-webui/package.json2
-rw-r--r--packages/demobank-ui/package.json2
-rw-r--r--packages/idb-bridge/package.json4
-rw-r--r--packages/merchant-backend-ui/package.json4
-rw-r--r--packages/merchant-backoffice-ui/package.json5
-rw-r--r--packages/pogen/package.json1
-rw-r--r--packages/taler-harness/package.json4
-rw-r--r--packages/taler-util/package.json4
-rw-r--r--packages/taler-wallet-cli/package.json4
-rw-r--r--packages/taler-wallet-core/package.json4
-rw-r--r--packages/taler-wallet-core/src/dbless.ts2
-rw-r--r--packages/taler-wallet-core/src/util/coinSelection.test.ts156
-rw-r--r--packages/taler-wallet-core/src/util/coinSelection.ts20
-rw-r--r--packages/taler-wallet-embedded/package.json6
-rw-r--r--packages/taler-wallet-webextension/package.json6
-rw-r--r--packages/web-util/package.json3
19 files changed, 201 insertions, 36 deletions
diff --git a/packages/aml-backoffice-ui/package.json b/packages/aml-backoffice-ui/package.json
index a761374df..9ca6312a7 100644
--- a/packages/aml-backoffice-ui/package.json
+++ b/packages/aml-backoffice-ui/package.json
@@ -8,7 +8,9 @@
"type": "module",
"scripts": {
"build": "./build.mjs",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"check": "tsc",
+ "clean": "rm -rf dist lib",
"compile": "tsc && ./build.mjs",
"test": "./test.mjs && mocha --require source-map-support/register 'dist/test/**/*.test.js' 'dist/test/**/test.js'",
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
diff --git a/packages/anastasis-cli/package.json b/packages/anastasis-cli/package.json
index 55af7cc06..e0b154de8 100644
--- a/packages/anastasis-cli/package.json
+++ b/packages/anastasis-cli/package.json
@@ -18,7 +18,8 @@
"scripts": {
"compile": "tsc && ./build-node.mjs",
"test": "tsc",
- "clean": "rimraf lib dist tsconfig.tsbuildinfo",
+ "clean": "rm -rf lib dist tsconfig.tsbuildinfo",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"pretty": "prettier --write src"
},
"files": [
@@ -32,7 +33,6 @@
"devDependencies": {
"@types/node": "^18.11.17",
"prettier": "^2.8.8",
- "rimraf": "^3.0.2",
"typedoc": "^0.25.1",
"typescript": "^5.2.2"
},
diff --git a/packages/anastasis-core/package.json b/packages/anastasis-core/package.json
index aa182e047..14768b178 100644
--- a/packages/anastasis-core/package.json
+++ b/packages/anastasis-core/package.json
@@ -10,14 +10,14 @@
"pretty": "prettier --write src",
"test": "tsc && ava",
"coverage": "tsc && nyc ava",
- "clean": "rimraf dist lib tsconfig.tsbuildinfo"
+ "typedoc": "typedoc --out dist/typedoc ./src/",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo"
},
"author": "Florian Dold <dold@taler.net>",
"license": "AGPL-3-or-later",
"type": "module",
"devDependencies": {
"ava": "^4.3.3",
- "rimraf": "^3.0.2",
"typescript": "^5.2.2"
},
"dependencies": {
diff --git a/packages/anastasis-webui/package.json b/packages/anastasis-webui/package.json
index efee9633e..0a63a66c4 100644
--- a/packages/anastasis-webui/package.json
+++ b/packages/anastasis-webui/package.json
@@ -8,7 +8,9 @@
"build": "./build.mjs",
"compile": "tsc && ./build.mjs",
"dev": "./dev.mjs",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo",
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"test": "./test.mjs && mocha --require source-map-support/register --enable-source-maps 'dist/**/*test.js'",
"pretty": "prettier --write src"
},
diff --git a/packages/demobank-ui/package.json b/packages/demobank-ui/package.json
index d33fae709..8b999aeed 100644
--- a/packages/demobank-ui/package.json
+++ b/packages/demobank-ui/package.json
@@ -7,9 +7,11 @@
"scripts": {
"build": "./build.mjs",
"check": "tsc",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo",
"compile": "tsc && ./build.mjs",
"test": "./test.mjs && mocha --require source-map-support/register 'dist/test/**/*.test.js' 'dist/test/**/test.js'",
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"i18n:extract": "pogen extract",
"i18n:merge": "pogen merge",
"i18n:emit": "pogen emit",
diff --git a/packages/idb-bridge/package.json b/packages/idb-bridge/package.json
index ce64314ff..3ed3e76b5 100644
--- a/packages/idb-bridge/package.json
+++ b/packages/idb-bridge/package.json
@@ -11,8 +11,9 @@
"private": false,
"scripts": {
"test": "tsc && ava",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"compile": "tsc",
- "clean": "rimraf dist lib tsconfig.tsbuildinfo",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo",
"pretty": "prettier --write src"
},
"exports": {
@@ -28,7 +29,6 @@
"@types/node": "^20.4.1",
"ava": "^5.3.1",
"prettier": "^2.8.8",
- "rimraf": "^5.0.1",
"typescript": "^5.2.2"
},
"dependencies": {
diff --git a/packages/merchant-backend-ui/package.json b/packages/merchant-backend-ui/package.json
index 03e64308c..bb8114fba 100644
--- a/packages/merchant-backend-ui/package.json
+++ b/packages/merchant-backend-ui/package.json
@@ -9,8 +9,7 @@
"render-examples": "ts-node -O '{\"module\": \"commonjs\"}' -T render-examples.ts dist/pages dist/examples",
"lint-check": "eslint '{src,tests}/**/*.{js,jsx,ts,tsx}'",
"lint-fix": "eslint --fix '{src,tests}/**/*.{js,jsx,ts,tsx}'",
- "typedoc": "typedoc src",
- "clean": "rimraf dist",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo",
"serve-dist": "sirv --port ${PORT:=8080} --cors --single dist"
},
"engines": {
@@ -61,7 +60,6 @@
"mustache": "^4.2.0",
"po2json": "^0.4.5",
"preact-render-to-string": "^5.1.19",
- "rimraf": "^3.0.2",
"sirv-cli": "^1.0.11",
"ts-node": "^10.9.1",
"tslib": "2.5.3",
diff --git a/packages/merchant-backoffice-ui/package.json b/packages/merchant-backoffice-ui/package.json
index 12aeb4b0e..66e03a65c 100644
--- a/packages/merchant-backoffice-ui/package.json
+++ b/packages/merchant-backoffice-ui/package.json
@@ -15,7 +15,7 @@
"i18n:merge": "pogen merge",
"i18n:emit": "pogen emit",
"i18n": "pnpm i18n:extract && pnpm i18n:merge && pnpm i18n:emit",
- "typedoc": "typedoc src",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"pretty": "prettier --write src"
},
"eslintConfig": {
@@ -72,7 +72,6 @@
"inline-chunk-html-plugin": "^1.1.1",
"mocha": "^9.2.0",
"preact-render-to-string": "^5.2.6",
- "rimraf": "^3.0.2",
"sass": "1.56.1",
"source-map-support": "^0.5.21",
"typedoc": "^0.25.1",
@@ -81,4 +80,4 @@
"pogen": {
"domain": "taler-merchant-backoffice"
}
-} \ No newline at end of file
+}
diff --git a/packages/pogen/package.json b/packages/pogen/package.json
index 9160e699c..82391a675 100644
--- a/packages/pogen/package.json
+++ b/packages/pogen/package.json
@@ -7,6 +7,7 @@
"author": "Florian Dold",
"license": "GPL-2.0+",
"scripts": {
+ "clean": "rm -rf lib",
"compile": "tsc"
},
"devDependencies": {
diff --git a/packages/taler-harness/package.json b/packages/taler-harness/package.json
index 9f2b0d8e3..38f168af4 100644
--- a/packages/taler-harness/package.json
+++ b/packages/taler-harness/package.json
@@ -19,7 +19,8 @@
"compile": "tsc && ./build.mjs",
"check": "tsc",
"test": "tsc",
- "clean": "rimraf lib dist tsconfig.tsbuildinfo",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
+ "clean": "rm -rf lib dist tsconfig.tsbuildinfo",
"pretty": "prettier --write src"
},
"files": [
@@ -34,7 +35,6 @@
"@types/node": "^18.11.17",
"esbuild": "^0.17.7",
"prettier": "^2.8.8",
- "rimraf": "^3.0.2",
"typescript": "^5.2.2"
},
"dependencies": {
diff --git a/packages/taler-util/package.json b/packages/taler-util/package.json
index 0bb98767d..80e99ae0e 100644
--- a/packages/taler-util/package.json
+++ b/packages/taler-util/package.json
@@ -59,7 +59,8 @@
"scripts": {
"compile": "tsc",
"test": "tsc && ava",
- "clean": "rimraf dist lib tsconfig.tsbuildinfo",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"pretty": "prettier --write src"
},
"devDependencies": {
@@ -67,7 +68,6 @@
"ava": "^4.3.3",
"esbuild": "^0.17.7",
"prettier": "^2.8.8",
- "rimraf": "^3.0.2",
"typescript": "^5.2.2"
},
"dependencies": {
diff --git a/packages/taler-wallet-cli/package.json b/packages/taler-wallet-cli/package.json
index 6196c8971..382951223 100644
--- a/packages/taler-wallet-cli/package.json
+++ b/packages/taler-wallet-cli/package.json
@@ -18,7 +18,8 @@
"scripts": {
"compile": "tsc && ./build-node.mjs",
"test": "tsc",
- "clean": "rimraf lib dist tsconfig.tsbuildinfo",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
+ "clean": "rm -rf lib dist tsconfig.tsbuildinfo",
"pretty": "prettier --write src"
},
"files": [
@@ -32,7 +33,6 @@
"devDependencies": {
"@types/node": "^18.11.17",
"prettier": "^2.8.8",
- "rimraf": "^3.0.2",
"typedoc": "^0.25.1",
"typescript": "^5.2.2"
},
diff --git a/packages/taler-wallet-core/package.json b/packages/taler-wallet-core/package.json
index fda7b6081..668fe4b92 100644
--- a/packages/taler-wallet-core/package.json
+++ b/packages/taler-wallet-core/package.json
@@ -15,9 +15,10 @@
"compile": "tsc",
"pretty": "prettier --write src",
"test": "tsc && ava",
+ "typedoc": "typedoc --out dist/typedoc ./src/",
"coverage": "tsc && c8 --src src --all ava",
"coverage:html": "tsc && c8 -r html --src src --all ava",
- "clean": "rimraf dist lib tsconfig.tsbuildinfo"
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo"
},
"files": [
"AUTHORS",
@@ -64,7 +65,6 @@
"jed": "^1.1.1",
"po2json": "^0.4.5",
"prettier": "^2.8.8",
- "rimraf": "^3.0.2",
"typedoc": "^0.25.1",
"typescript": "^5.2.2"
},
diff --git a/packages/taler-wallet-core/src/dbless.ts b/packages/taler-wallet-core/src/dbless.ts
index 65c293bdf..d70eab888 100644
--- a/packages/taler-wallet-core/src/dbless.ts
+++ b/packages/taler-wallet-core/src/dbless.ts
@@ -31,6 +31,7 @@ import {
AmountJson,
Amounts,
AmountString,
+ BankAccessApiClient,
codecForAny,
codecForBankWithdrawalOperationPostResponse,
codecForBatchDepositSuccess,
@@ -53,7 +54,6 @@ import {
HttpRequestLibrary,
readSuccessResponseJsonOrThrow,
} from "@gnu-taler/taler-util/http";
-import { BankAccessApiClient } from "../../taler-util/src/bank-api-client.js";
import { TalerCryptoInterface } from "./crypto/cryptoImplementation.js";
import { DenominationRecord } from "./db.js";
import { isWithdrawableDenom } from "./index.js";
diff --git a/packages/taler-wallet-core/src/util/coinSelection.test.ts b/packages/taler-wallet-core/src/util/coinSelection.test.ts
index b907eb160..2a322c4a9 100644
--- a/packages/taler-wallet-core/src/util/coinSelection.test.ts
+++ b/packages/taler-wallet-core/src/util/coinSelection.test.ts
@@ -17,9 +17,165 @@ import {
AbsoluteTime,
AgeRestriction,
AmountJson,
+ AmountString,
Amounts,
+ DenomKeyType,
Duration,
TransactionAmountMode,
} from "@gnu-taler/taler-util";
import test, { ExecutionContext } from "ava";
+import { AvailableDenom, testing_greedySelectPeer } from "./coinSelection.js"
+type Tester<T> = {
+ deep: {
+ equal(another: T): ReturnType<ExecutionContext["deepEqual"]>;
+ equals(another: T): ReturnType<ExecutionContext["deepEqual"]>;
+ }
+}
+
+function expect<T>(t: ExecutionContext, thing: T): Tester<T> {
+ return {
+ deep: {
+ equal: (another: T) => t.deepEqual(thing, another),
+ equals: (another: T) => t.deepEqual(thing, another),
+ },
+ };
+}
+
+const inTheDistantFuture = AbsoluteTime.toProtocolTimestamp(
+ AbsoluteTime.addDuration(AbsoluteTime.now(), Duration.fromSpec({ hours: 1 }))
+)
+const inThePast = AbsoluteTime.toProtocolTimestamp(
+ AbsoluteTime.subtractDuraction(AbsoluteTime.now(), Duration.fromSpec({ hours: 1 }))
+)
+
+test("should select the coin", (t) => {
+ const instructedAmount = Amounts.parseOrThrow("LOCAL:2")
+ const tally = {
+ amountAcc: Amounts.zeroOfCurrency(instructedAmount.currency),
+ depositFeesAcc: Amounts.zeroOfCurrency(instructedAmount.currency),
+ lastDepositFee: Amounts.zeroOfCurrency(instructedAmount.currency),
+ };
+ const coins = testing_greedySelectPeer(
+ createCandidates([{
+ amount: "LOCAL:10",
+ numAvailable: 5,
+ depositFee: "LOCAL:0.1",
+ fromExchange: "http://exchange.localhost/",
+ }]),
+ instructedAmount,
+ tally
+ );
+
+ expect(t, coins).deep.equal({
+ "hash0;32;http://exchange.localhost/": {
+ exchangeBaseUrl: "http://exchange.localhost/",
+ denomPubHash: "hash0",
+ maxAge: 32,
+ contributions: [Amounts.parseOrThrow("LOCAL:2")],
+ }
+ });
+
+ expect(t, tally).deep.equal({
+ amountAcc: Amounts.parseOrThrow("LOCAL:2"),
+ depositFeesAcc: Amounts.parseOrThrow("LOCAL:0.1"),
+ lastDepositFee: Amounts.parseOrThrow("LOCAL:0.1"),
+ });
+
+});
+
+test("should select 3 coins", (t) => {
+ const instructedAmount = Amounts.parseOrThrow("LOCAL:20")
+ const tally = {
+ amountAcc: Amounts.zeroOfCurrency(instructedAmount.currency),
+ depositFeesAcc: Amounts.zeroOfCurrency(instructedAmount.currency),
+ lastDepositFee: Amounts.zeroOfCurrency(instructedAmount.currency),
+ };
+ const coins = testing_greedySelectPeer(
+ createCandidates([{
+ amount: "LOCAL:10",
+ numAvailable: 5,
+ depositFee: "LOCAL:0.1",
+ fromExchange: "http://exchange.localhost/",
+ }]),
+ instructedAmount,
+ tally
+ );
+
+ expect(t, coins).deep.equal({
+ "hash0;32;http://exchange.localhost/": {
+ exchangeBaseUrl: "http://exchange.localhost/",
+ denomPubHash: "hash0",
+ maxAge: 32,
+ contributions: [
+ Amounts.parseOrThrow("LOCAL:9.9"),
+ Amounts.parseOrThrow("LOCAL:9.9"),
+ Amounts.parseOrThrow("LOCAL:0.2")
+ ],
+ }
+ });
+
+ expect(t, tally).deep.equal({
+ amountAcc: Amounts.parseOrThrow("LOCAL:20"),
+ depositFeesAcc: Amounts.parseOrThrow("LOCAL:0.3"),
+ lastDepositFee: Amounts.parseOrThrow("LOCAL:0.1"),
+ });
+
+});
+
+test("can't select since the instructed amount is too high", (t) => {
+ const instructedAmount = Amounts.parseOrThrow("LOCAL:60")
+ const tally = {
+ amountAcc: Amounts.zeroOfCurrency(instructedAmount.currency),
+ depositFeesAcc: Amounts.zeroOfCurrency(instructedAmount.currency),
+ lastDepositFee: Amounts.zeroOfCurrency(instructedAmount.currency),
+ };
+ const coins = testing_greedySelectPeer(
+ createCandidates([{
+ amount: "LOCAL:10",
+ numAvailable: 5,
+ depositFee: "LOCAL:0.1",
+ fromExchange: "http://exchange.localhost/",
+ }]),
+ instructedAmount,
+ tally
+ );
+
+ expect(t, coins).deep.equal(undefined);
+
+ expect(t, tally).deep.equal({
+ amountAcc: Amounts.parseOrThrow("LOCAL:49.5"),
+ depositFeesAcc: Amounts.parseOrThrow("LOCAL:0.5"),
+ lastDepositFee: Amounts.parseOrThrow("LOCAL:0.1"),
+ });
+
+});
+
+
+
+
+function createCandidates(ar: {amount: AmountString, depositFee: AmountString, numAvailable: number, fromExchange: string}[]): AvailableDenom[] {
+ return ar.map((r,idx) => {
+ return {
+ "denomPub": {
+ "age_mask": 0,
+ "cipher": DenomKeyType.Rsa,
+ "rsa_public_key": "PPP"
+ },
+ "denomPubHash": `hash${idx}`,
+ "value": r.amount,
+ "feeDeposit": r.depositFee,
+ "feeRefresh": "LOCAL:0",
+ "feeRefund": "LOCAL:0",
+ "feeWithdraw": "LOCAL:0",
+ "stampExpireDeposit": inTheDistantFuture,
+ "stampExpireLegal": inTheDistantFuture,
+ "stampExpireWithdraw": inTheDistantFuture,
+ "stampStart": inThePast,
+ "exchangeBaseUrl": r.fromExchange,
+ "numAvailable": r.numAvailable,
+ "maxAge": 32,
+
+ }
+ })
+}
diff --git a/packages/taler-wallet-core/src/util/coinSelection.ts b/packages/taler-wallet-core/src/util/coinSelection.ts
index 6fd0f1b86..0885215dd 100644
--- a/packages/taler-wallet-core/src/util/coinSelection.ts
+++ b/packages/taler-wallet-core/src/util/coinSelection.ts
@@ -894,6 +894,12 @@ interface PeerCoinSelectionTally {
lastDepositFee: AmountJson;
}
+/**
+ * exporting for testing
+ */
+export function testing_greedySelectPeer(...args: Parameters<typeof greedySelectPeer>): ReturnType<typeof greedySelectPeer> {
+ return greedySelectPeer(...args)
+}
function greedySelectPeer(
candidates: AvailableDenom[],
instructedAmount: AmountLike,
@@ -912,19 +918,19 @@ function greedySelectPeer(
instructedAmount,
tally.amountAcc,
).amount;
- const coinSpend = Amounts.max(
- Amounts.min(amountPayRemaining, denom.value),
- denom.feeDeposit,
- );
+ const coinContrib = Amounts.sub(denom.value, denom.feeDeposit).amount
+
+ const coinSpend = Amounts.min(amountPayRemaining, coinContrib)
+
tally.amountAcc = Amounts.add(tally.amountAcc, coinSpend).amount;
- // Since this is a peer payment, there is no merchant to
- // potentially cover the deposit fees.
- tally.amountAcc = Amounts.sub(tally.amountAcc, denom.feeDeposit).amount;
+
tally.depositFeesAcc = Amounts.add(
tally.depositFeesAcc,
denom.feeDeposit,
).amount;
+
tally.lastDepositFee = Amounts.parseOrThrow(denom.feeDeposit);
+
contributions.push(coinSpend);
}
if (contributions.length > 0) {
diff --git a/packages/taler-wallet-embedded/package.json b/packages/taler-wallet-embedded/package.json
index b96edff25..35a4fcffe 100644
--- a/packages/taler-wallet-embedded/package.json
+++ b/packages/taler-wallet-embedded/package.json
@@ -15,7 +15,8 @@
"scripts": {
"compile": "./build.mjs",
"pretty": "prettier --write src",
- "clean": "rimraf lib dist tsconfig.tsbuildinfo",
+ "typedoc": "typedoc --out dist/typedoc ./src/wallet-qjs.ts",
+ "clean": "rm -rf lib dist tsconfig.tsbuildinfo",
"deps": "pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-embedded..."
},
"files": [
@@ -29,8 +30,7 @@
"devDependencies": {
"@types/node": "^18.11.17",
"esbuild": "^0.17.7",
- "prettier": "^2.8.8",
- "rimraf": "^3.0.2"
+ "prettier": "^2.8.8"
},
"dependencies": {
"@gnu-taler/idb-bridge": "workspace:*",
diff --git a/packages/taler-wallet-webextension/package.json b/packages/taler-wallet-webextension/package.json
index f442b1509..23736729c 100644
--- a/packages/taler-wallet-webextension/package.json
+++ b/packages/taler-wallet-webextension/package.json
@@ -9,10 +9,11 @@
"license": "AGPL-3.0-or-later",
"private": false,
"scripts": {
- "clean": "rimraf dist lib tsconfig.tsbuildinfo",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo",
"test": "./test.mjs && mocha --require source-map-support/register 'dist/test/**/*.test.js' 'dist/test/**/test.js'",
"test:coverage": "nyc pnpm test",
"compile": "./patch-linaria.sh && tsc && ./build.mjs",
+ "typedoc": "typedoc --out dist/typedoc ./src/ --entryPointStrategy expand",
"dev": "./dev.mjs",
"pretty": "prettier --write src",
"i18n:extract": "pogen extract",
@@ -63,7 +64,6 @@
"polished": "^4.1.4",
"preact-cli": "^3.3.5",
"preact-render-to-string": "^5.1.19",
- "rimraf": "^3.0.2",
"typescript": "5.2.2"
},
"nyc": {
@@ -75,4 +75,4 @@
"pogen": {
"domain": "taler-wallet-webex"
}
-} \ No newline at end of file
+}
diff --git a/packages/web-util/package.json b/packages/web-util/package.json
index 81eee949a..ac85fe8eb 100644
--- a/packages/web-util/package.json
+++ b/packages/web-util/package.json
@@ -28,7 +28,7 @@
},
"scripts": {
"compile": "tsc && ./build.mjs",
- "clean": "rimraf dist lib tsconfig.tsbuildinfo",
+ "clean": "rm -rf dist lib tsconfig.tsbuildinfo",
"pretty": "prettier --write src"
},
"devDependencies": {
@@ -52,7 +52,6 @@
"preact": "10.11.3",
"preact-render-to-string": "^5.2.6",
"prettier": "^2.8.8",
- "rimraf": "^3.0.2",
"sass": "1.56.1",
"swr": "2.0.3",
"tslib": "^2.5.3",