Skip to content

Commit

Permalink
build: guard against circular dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
Ivaylo Andonov committed Dec 2, 2022
1 parent c5a5339 commit f8c149e
Show file tree
Hide file tree
Showing 39 changed files with 62 additions and 36 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/continuous-integration-unit-tests.yaml
Expand Up @@ -28,6 +28,10 @@ jobs:
yarn build
yarn lint
- name: 🔃 Check for circular dependencies
run: |
yarn circular-deps:check
- name: 🔬 Test
run: |
yarn test:build:verify
Expand Down
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -11,6 +11,7 @@
],
"scripts": {
"build": "yarn workspaces foreach -v run build",
"circular-deps:check": "yarn workspaces foreach -v run circular-deps:check --summary",
"cleanup-build": "yarn workspaces foreach -v run cleanup && yarn install && yarn workspaces foreach -v run build",
"reinstall": "yarn workspaces foreach -v run cleanup:nm && yarn install",
"rebuild": "yarn workspaces foreach -v run cleanup:dist && yarn workspaces foreach -v run build",
Expand Down
1 change: 1 addition & 0 deletions packages/cardano-services-client/package.json
Expand Up @@ -39,6 +39,7 @@
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
"circular-deps:check": "npx madge --circular dist",
"cleanup:nm": "shx rm -rf node_modules",
"cleanup": "run-s cleanup:dist cleanup:nm",
"lint": "eslint -c ../../complete.eslintrc.js \"src/**/*.ts\" \"test/**/*.ts\"",
Expand Down
1 change: 1 addition & 0 deletions packages/cardano-services/package.json
Expand Up @@ -43,6 +43,7 @@
"cleanup": "run-s cleanup:dist cleanup:nm",
"cli": "ts-node --transpile-only src/cli.ts",
"coverage": "yarn test --coverage",
"circular-deps:check": "npx madge --circular dist",
"lint": "eslint -c ../../complete.eslintrc.js \"src/**/*.ts\" \"test/**/*.ts\"",
"lint:fix": "yarn lint --fix",
"mainnet:up": "DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -p cardano-services-mainnet up",
Expand Down
2 changes: 1 addition & 1 deletion packages/cardano-services/src/Asset/AssetHttpService.ts
Expand Up @@ -2,7 +2,7 @@ import * as OpenApiValidator from 'express-openapi-validator';
import { AssetProvider } from '@cardano-sdk/core';
import { HttpService } from '../Http';
import { Logger } from 'ts-log';
import { ServiceNames } from '../Program';
import { ServiceNames } from '../Program/ServiceNames';
import { providerHandler } from '../util';
import express from 'express';
import path from 'path';
Expand Down
Expand Up @@ -2,7 +2,7 @@ import * as OpenApiValidator from 'express-openapi-validator';
import { ChainHistoryProvider } from '@cardano-sdk/core';
import { HttpService } from '../Http';
import { Logger } from 'ts-log';
import { ServiceNames } from '../Program';
import { ServiceNames } from '../Program/ServiceNames';
import { providerHandler } from '../util';
import express from 'express';
import path from 'path';
Expand Down
@@ -1,3 +1,4 @@
import * as NetworkInfoCacheKey from './keys';
import {
Cardano,
CardanoNode,
Expand All @@ -14,7 +15,6 @@ import { GenesisData } from './types';
import { InMemoryCache, UNLIMITED_CACHE_TTL } from '../../InMemoryCache';
import { Logger } from 'ts-log';
import { NetworkInfoBuilder } from './NetworkInfoBuilder';
import { NetworkInfoCacheKey } from '.';
import { Pool } from 'pg';
import { RunnableModule } from '@cardano-sdk/util';
import { loadGenesisData, toGenesisParams, toLedgerTip, toProtocolParams, toSupply } from './mappers';
Expand Down
@@ -1,2 +1,2 @@
export * from './DbSyncNetworkInfoProvider';
export * as NetworkInfoCacheKey from './keys';
export * from './keys';
Expand Up @@ -2,7 +2,7 @@ import * as OpenApiValidator from 'express-openapi-validator';
import { HttpService } from '../Http';
import { Logger } from 'ts-log';
import { NetworkInfoProvider } from '@cardano-sdk/core';
import { ServiceNames } from '../Program';
import { ServiceNames } from '../Program/ServiceNames';
import { providerHandler } from '../util';
import express from 'express';
import path from 'path';
Expand Down
3 changes: 2 additions & 1 deletion packages/cardano-services/src/Program/loadTxWorker.ts
@@ -1,8 +1,9 @@
import { CommonProgramOptions } from './Options';
import { Logger } from 'ts-log';
import { TxSubmitWorkerConfig } from '../TxSubmit';
import { createDnsResolver, getOgmiosTxSubmitProvider, getRunningTxSubmitWorker } from './';
import { createDnsResolver } from './utils';
import { createLogger } from 'bunyan';
import { getOgmiosTxSubmitProvider, getRunningTxSubmitWorker } from './services';

export type TxWorkerOptions = CommonProgramOptions &
Pick<TxSubmitWorkerConfig, 'parallel' | 'parallelTxs' | 'pollingCycle'>;
Expand Down
2 changes: 1 addition & 1 deletion packages/cardano-services/src/Program/utils.ts
@@ -1,7 +1,7 @@
/* eslint-disable max-len */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { Logger } from 'ts-log';
import { ServiceNames } from './ServiceNames';
import { ServiceNames } from '../Program/ServiceNames';
import dns, { SrvRecord } from 'dns';
import pRetry, { FailedAttemptError } from 'p-retry';

Expand Down
Expand Up @@ -2,7 +2,7 @@ import * as OpenApiValidator from 'express-openapi-validator';
import { HttpService } from '../Http';
import { Logger } from 'ts-log';
import { RewardsProvider } from '@cardano-sdk/core';
import { ServiceNames } from '../Program';
import { ServiceNames } from '../Program/ServiceNames';
import { providerHandler } from '../util';
import express from 'express';
import path from 'path';
Expand Down
@@ -1,7 +1,7 @@
import * as OpenApiValidator from 'express-openapi-validator';
import { HttpService } from '../Http';
import { Logger } from 'ts-log';
import { ServiceNames } from '../Program';
import { ServiceNames } from '../Program/ServiceNames';
import { StakePoolProvider } from '@cardano-sdk/core';
import { providerHandler } from '../util';
import express from 'express';
Expand Down
Expand Up @@ -2,7 +2,7 @@ import * as OpenApiValidator from 'express-openapi-validator';
import { Cardano, ProviderError, ProviderFailure, TxSubmitProvider } from '@cardano-sdk/core';
import { HttpServer, HttpService } from '../Http';
import { Logger } from 'ts-log';
import { ServiceNames } from '../Program';
import { ServiceNames } from '../Program/ServiceNames';
import { providerHandler } from '../util';
import bodyParser from 'body-parser';
import express from 'express';
Expand Down
2 changes: 1 addition & 1 deletion packages/cardano-services/src/Utxo/UtxoHttpService.ts
@@ -1,7 +1,7 @@
import * as OpenApiValidator from 'express-openapi-validator';
import { HttpService } from '../Http';
import { Logger } from 'ts-log';
import { ServiceNames } from '../Program';
import { ServiceNames } from '../Program/ServiceNames';
import { UtxoProvider } from '@cardano-sdk/core';
import { providerHandler } from '../util';
import express from 'express';
Expand Down
1 change: 1 addition & 0 deletions packages/core/package.json
Expand Up @@ -36,6 +36,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/Asset/util/assetId.ts
@@ -1,4 +1,4 @@
import { AssetId, AssetName, PolicyId } from '../../Cardano/types';
import { AssetId, AssetName, PolicyId } from '../../Cardano/types/Asset';
import { CML } from '../../CML/CML';
import { bytesToHex } from '../../util/misc/bytesToHex';

Expand Down
28 changes: 15 additions & 13 deletions packages/core/src/CML/cmlToCore/cmlToCore.ts
@@ -1,6 +1,8 @@
import { Asset, CML, Cardano, SerializationFailure, util } from '../..';
import { SerializationError } from '../../errors';
import { Slot } from '../../Cardano';
import * as Cardano from '../../Cardano';
import { CML } from '../CML';
import { SerializationError, SerializationFailure } from '../../errors';
import { bytesToHex } from '../../util/misc/bytesToHex';
import { createAssetId } from '../../Asset/util/assetId';
import { createCertificate } from './certificate';
import { usingAutoFree } from '@cardano-sdk/util';

Expand Down Expand Up @@ -51,7 +53,7 @@ export const value = (cslValue: CML.Value): Cardano.Value =>
const assetName = scope.manage(assetKeys.get(assetIdx));
const assetAmount = BigInt(scope.manage(assets.get(assetName)!).to_str());
if (assetAmount > 0n) {
result.assets.set(Asset.util.createAssetId(scriptHash, assetName), assetAmount);
result.assets.set(createAssetId(scriptHash, assetName), assetAmount);
}
}
}
Expand All @@ -61,15 +63,15 @@ export const value = (cslValue: CML.Value): Cardano.Value =>
export const txIn = (input: CML.TransactionInput): Cardano.TxIn =>
usingAutoFree((scope) => ({
index: Number(scope.manage(input.index()).to_str()),
txId: Cardano.TransactionId.fromHexBlob(util.bytesToHex(scope.manage(input.transaction_id()).to_bytes()))
txId: Cardano.TransactionId.fromHexBlob(bytesToHex(scope.manage(input.transaction_id()).to_bytes()))
}));

export const txOut = (output: CML.TransactionOutput): Cardano.TxOut =>
usingAutoFree((scope) => {
const dataHashBytes = scope.manage(scope.manage(output.datum())?.as_data_hash())?.to_bytes();
return {
address: Cardano.Address(scope.manage(output.address()).to_bech32()),
datum: dataHashBytes ? Cardano.util.Hash32ByteBase16.fromHexBlob(util.bytesToHex(dataHashBytes)) : undefined,
datum: dataHashBytes ? Cardano.util.Hash32ByteBase16.fromHexBlob(bytesToHex(dataHashBytes)) : undefined,
value: value(scope.manage(output.amount()))
};
});
Expand Down Expand Up @@ -116,7 +118,7 @@ export const txMint = (assets?: CML.Mint): Cardano.TokenMap | undefined =>
for (let k = 0; k < mintKeys.len(); k++) {
const assetName = scope.manage(mintKeys.get(k));
const assetValueInt = scope.manage(mintAssets.get(assetName)!);
const assetId = Asset.util.createAssetId(scriptHash, assetName);
const assetId = createAssetId(scriptHash, assetName);
if (!assetValueInt) continue;
const quantity = assetValueInt.is_positive()
? BigInt(scope.manage(assetValueInt.as_positive())!.to_str())
Expand All @@ -143,8 +145,8 @@ export const txBody = (body: CML.TransactionBody): Cardano.TxBody =>
scriptIntegrityHash:
cslScriptDataHash && Cardano.util.Hash32ByteBase16(Buffer.from(cslScriptDataHash.to_bytes()).toString('hex')),
validityInterval: {
invalidBefore: Slot(Number(scope.manage(body.validity_start_interval())?.to_str())),
invalidHereafter: Slot(Number(scope.manage(body.ttl())?.to_str()))
invalidBefore: Cardano.Slot(Number(scope.manage(body.validity_start_interval())?.to_str())),
invalidHereafter: Cardano.Slot(Number(scope.manage(body.ttl())?.to_str()))
},
withdrawals: txWithdrawals(scope.manage(body.withdrawals()))
};
Expand Down Expand Up @@ -296,7 +298,7 @@ export const utxo = (cslUtxos: CML.TransactionUnspentOutput[]) =>
export const newTx = (cslTx: CML.Transaction): Cardano.Tx =>
usingAutoFree((scope) => {
const transactionHash = Cardano.TransactionId.fromHexBlob(
util.bytesToHex(scope.manage(CML.hash_transaction(scope.manage(cslTx.body()))).to_bytes())
bytesToHex(scope.manage(CML.hash_transaction(scope.manage(cslTx.body()))).to_bytes())
);
const auxiliary_data = scope.manage(cslTx.auxiliary_data());

Expand All @@ -320,7 +322,7 @@ export const nativeScript = (script: CML.NativeScript): Cardano.NativeScript =>
coreScript = {
__type: Cardano.ScriptType.Native,
keyHash: Cardano.Ed25519KeyHash(
util.bytesToHex(scope.manage(scope.manage(script.as_script_pubkey())!.addr_keyhash()).to_bytes()).toString()
bytesToHex(scope.manage(scope.manage(script.as_script_pubkey())!.addr_keyhash()).to_bytes()).toString()
),
kind: Cardano.NativeScriptKind.RequireSignature
};
Expand Down Expand Up @@ -368,15 +370,15 @@ export const nativeScript = (script: CML.NativeScript): Cardano.NativeScript =>
coreScript = {
__type: Cardano.ScriptType.Native,
kind: Cardano.NativeScriptKind.RequireTimeBefore,
slot: Slot(Number(scope.manage(scope.manage(script.as_timelock_expiry())!.slot()).to_str()))
slot: Cardano.Slot(Number(scope.manage(scope.manage(script.as_timelock_expiry())!.slot()).to_str()))
};
break;
}
case Cardano.NativeScriptKind.RequireTimeAfter: {
coreScript = {
__type: Cardano.ScriptType.Native,
kind: Cardano.NativeScriptKind.RequireTimeAfter,
slot: Slot(Number(scope.manage(scope.manage(script.as_timelock_start())!.slot()).to_str()))
slot: Cardano.Slot(Number(scope.manage(scope.manage(script.as_timelock_start())!.slot()).to_str()))
};
break;
}
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/Cardano/types/Block.ts
@@ -1,6 +1,6 @@
import { CML } from '../..';
import { CML } from '../../CML/CML';
import { Ed25519PublicKey } from './Key';
import { Hash28ByteBase16, Hash32ByteBase16, OpaqueNumber, OpaqueString, typedBech32 } from '../util';
import { Hash28ByteBase16, Hash32ByteBase16, OpaqueNumber, OpaqueString, typedBech32 } from '../util/primitives';
import { InvalidStringError } from '../../errors';
import { Lovelace } from './Value';
import { PoolId } from './StakePool/primitives';
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/Cardano/types/StakePool/primitives.ts
@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { Ed25519KeyHash } from '../Key';
import { Hash28ByteBase16, HexBlob, OpaqueString, typedBech32, typedHex } from '../../util';
import { Hash28ByteBase16, HexBlob, OpaqueString, typedBech32, typedHex } from '../../util/primitives';

/**
* pool operator verification key hash as bech32 string or a genesis pool ID
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/Cardano/util/primitives.ts
@@ -1,5 +1,5 @@
import { Decoded, bech32 } from 'bech32';
import { Ed25519KeyHash } from '../types';
import { Ed25519KeyHash } from '../types/Key';
import { InvalidStringError } from '../../errors';

const MAX_BECH32_LENGTH_LIMIT = 1023;
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/Provider/providerUtil.ts
@@ -1,4 +1,5 @@
import { Cardano, ProviderError, ProviderFailure } from '../';
import * as Cardano from '../Cardano';
import { ProviderError, ProviderFailure } from '../errors';

/* eslint-disable @typescript-eslint/no-explicit-any */
export type ToProviderError = (error: unknown) => void;
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/util/coalesceValueQuantities.ts
@@ -1,6 +1,6 @@
import * as assetUtil from '../Asset/util';
import { BigIntMath } from '@cardano-sdk/util';
import { Value } from '../Cardano';
import { util as assetUtil } from '../Asset';

/**
* Sum all quantities
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/util/metadatum.ts
@@ -1,7 +1,7 @@
import { CML } from '../CML/CML';
import { Metadatum, MetadatumMap } from '../Cardano/types/AuxiliaryData';
import { txMetadatum as txMetadatumToCML } from '../CML/coreToCml';
import { txMetadatum as txMetadatumToCore } from '../CML/cmlToCore';
import { txMetadatum as txMetadatumToCML } from '../CML/coreToCml/coreToCml';
import { txMetadatum as txMetadatumToCore } from '../CML/cmlToCore/cmlToCore';
import { usingAutoFree } from '@cardano-sdk/util';

/**
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/util/subtractValueQuantities.ts
@@ -1,11 +1,11 @@
import { BigIntMath } from '@cardano-sdk/util';
import { Value } from '../Cardano';
import { util as assetUtil } from '../Asset';
import { util } from '../Asset';

/**
* Subtract all quantities
*/
export const subtractValueQuantities = (quantities: Value[]) => ({
assets: assetUtil.subtractTokenMaps(quantities.map(({ assets }) => assets)),
assets: util.subtractTokenMaps(quantities.map(({ assets }) => assets)),
coins: BigIntMath.subtract(quantities.map(({ coins }) => coins))
});
1 change: 1 addition & 0 deletions packages/dapp-connector/package.json
Expand Up @@ -36,6 +36,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/e2e/package.json
Expand Up @@ -34,6 +34,7 @@
"local-network:down": "DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -p local-network-e2e down -v --remove-orphans",
"cardano-services:up": "ts-node --transpile-only ../cardano-services/src/cli.ts start-server",
"cardano-services:up:debug": "npx nodemon --legacy-watch --exec 'node -r ts-node/register --inspect=0.0.0.0:9229 ../cardano-services/src/cli.ts start-server'",
"circular-deps:check": "npx madge --circular dist",
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
Expand Down
1 change: 1 addition & 0 deletions packages/golden-test-generator/package.json
Expand Up @@ -37,6 +37,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/governance/package.json
Expand Up @@ -32,6 +32,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/input-selection/package.json
Expand Up @@ -36,6 +36,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/key-management/package.json
Expand Up @@ -31,6 +31,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/ogmios/package.json
Expand Up @@ -36,6 +36,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/projection/package.json
Expand Up @@ -31,6 +31,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/util-dev/package.json
Expand Up @@ -36,6 +36,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down
1 change: 1 addition & 0 deletions packages/util-rxjs/package.json
Expand Up @@ -36,6 +36,7 @@
"build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
"build:cjs": "tsc --build src",
"build": "run-s build:cjs build:esm module-fixup",
"circular-deps:check": "npx madge --circular dist",
"module-fixup": "shx cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
"tscNoEmit": "shx echo typescript --noEmit command not implemented yet",
"cleanup:dist": "shx rm -rf dist",
Expand Down

0 comments on commit f8c149e

Please sign in to comment.