Skip to content

Commit 0aac96f

Browse files
authored
Merge pull request #40 from bitcoinjs/fix/cjs
Fix CJS for bip174
2 parents 9c876f1 + 569aa9f commit 0aac96f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+133
-508
lines changed

.github/workflows/main_ci.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ jobs:
4747
registry-url: https://registry.npmjs.org/
4848
- run: npm ci
4949
- run: npm run format:ci
50+
check-hybrid:
51+
runs-on: ubuntu-latest
52+
steps:
53+
- uses: actions/checkout@v3
54+
- uses: actions/setup-node@v4
55+
with:
56+
node-version: 18
57+
registry-url: https://registry.npmjs.org/
58+
- run: npm ci
59+
- run: npm run checkHybrid
5060
gitdiff:
5161
runs-on: ubuntu-latest
5262
steps:

fixup.cjs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
4+
const updateRequires = (filePath) => {
5+
let content = fs.readFileSync(filePath, 'utf8');
6+
//replace local imports eg. require("./ecpair.js") to require("ecpair.cjs")
7+
content = content.replace(/require\('\.([^']*)\.js'\)/g, "require('.$1.cjs')");
8+
9+
fs.writeFileSync(filePath, content, 'utf8');
10+
};
11+
12+
const processFiles = (dir) => {
13+
fs.readdirSync(dir).forEach((file) => {
14+
const filePath = path.join(dir, file);
15+
if (fs.lstatSync(filePath).isDirectory()) {
16+
processFiles(filePath);
17+
} else if (filePath.endsWith('.cjs')) {
18+
updateRequires(filePath);
19+
}
20+
});
21+
};
22+
23+
const dir = path.join(__dirname, 'src', 'cjs');
24+
processFiles(dir);

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"name": "bip174",
3-
"version": "3.0.0-rc.0",
3+
"version": "3.0.0-rc.1",
44
"description": "",
5-
"main": "src/cjs/lib/psbt.js",
5+
"main": "src/cjs/lib/psbt.cjs",
66
"module": "src/esm/lib/psbt.js",
7-
"types": "src/cjs/lib/psbt.d.ts",
7+
"types": "src/esm/lib/psbt.d.ts",
88
"exports": {
99
".": {
10-
"types": "./src/cjs/lib/psbt.d.ts",
10+
"types": "./src/esm/lib/psbt.d.ts",
1111
"import": "./src/esm/lib/psbt.js",
12-
"require": "./src/cjs/lib/psbt.js"
12+
"require": "./src/cjs/lib/psbt.cjs"
1313
}
1414
},
1515
"type": "module",
@@ -22,6 +22,7 @@
2222
},
2323
"scripts": {
2424
"build": "npm run clean && tsc -p ./tsconfig.json && tsc -p ./tsconfig.cjs.json && npm run formatjs",
25+
"checkHybrid": "chmod +x test.cjs && node test.cjs",
2526
"clean": "rimraf src types",
2627
"coverage": "c8 --check-coverage --include='src/esm/lib/**/*.js' --reporter=lcov --reporter=text --branches 90 --functions 90 --lines 90 npm run unit",
2728
"flb": "npm run format && npm run lint && npm run build",
@@ -30,6 +31,7 @@
3031
"format:ci": "npm run prettier -- --check && npm run prettierjs -- --check",
3132
"gitdiff:ci": "npm run build && git diff --exit-code",
3233
"lint": "tslint -p tsconfig.json -c tslint.json",
34+
"postbuild": "find src/cjs -type f -name \"*.js\" -exec bash -c 'mv \"$0\" \"${0%.js}.cjs\"' {} \\; && chmod +x fixup.cjs && node fixup.cjs",
3335
"prettier": "prettier 'ts_src/**/*.ts' --ignore-path ./.prettierignore",
3436
"prettierjs": "prettier 'src/**/*.js' --ignore-path ./.prettierignore",
3537
"test": "npm run format:ci && npm run lint && npm run build && npm run coverage",

src/cjs/lib/combiner/index.js renamed to src/cjs/lib/combiner/index.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const index_js_1 = require('../parser/index.js');
14+
const index_js_1 = require('../parser/index.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function combine(psbts) {
1717
const self = psbts[0];

src/cjs/lib/combiner/index.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/cjs/lib/converter/global/globalXpub.js renamed to src/cjs/lib/converter/global/globalXpub.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
const range = n => [...Array(n).keys()];
1717
function decode(keyVal) {

src/cjs/lib/converter/global/globalXpub.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/cjs/lib/converter/global/unsignedTx.js renamed to src/cjs/lib/converter/global/unsignedTx.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22
Object.defineProperty(exports, '__esModule', { value: true });
3-
const typeFields_js_1 = require('../../typeFields.js');
3+
const typeFields_js_1 = require('../../typeFields.cjs');
44
function encode(data) {
55
return {
66
key: new Uint8Array([typeFields_js_1.GlobalTypes.UNSIGNED_TX]),

src/cjs/lib/converter/global/unsignedTx.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/cjs/lib/converter/index.js renamed to src/cjs/lib/converter/index.cjs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,31 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../typeFields.js');
15-
const globalXpub = __importStar(require('./global/globalXpub.js'));
16-
const unsignedTx = __importStar(require('./global/unsignedTx.js'));
17-
const finalScriptSig = __importStar(require('./input/finalScriptSig.js'));
14+
const typeFields_js_1 = require('../typeFields.cjs');
15+
const globalXpub = __importStar(require('./global/globalXpub.cjs'));
16+
const unsignedTx = __importStar(require('./global/unsignedTx.cjs'));
17+
const finalScriptSig = __importStar(require('./input/finalScriptSig.cjs'));
1818
const finalScriptWitness = __importStar(
19-
require('./input/finalScriptWitness.js'),
19+
require('./input/finalScriptWitness.cjs'),
2020
);
21-
const nonWitnessUtxo = __importStar(require('./input/nonWitnessUtxo.js'));
22-
const partialSig = __importStar(require('./input/partialSig.js'));
23-
const porCommitment = __importStar(require('./input/porCommitment.js'));
24-
const sighashType = __importStar(require('./input/sighashType.js'));
25-
const tapKeySig = __importStar(require('./input/tapKeySig.js'));
26-
const tapLeafScript = __importStar(require('./input/tapLeafScript.js'));
27-
const tapMerkleRoot = __importStar(require('./input/tapMerkleRoot.js'));
28-
const tapScriptSig = __importStar(require('./input/tapScriptSig.js'));
29-
const witnessUtxo = __importStar(require('./input/witnessUtxo.js'));
30-
const tapTree = __importStar(require('./output/tapTree.js'));
31-
const bip32Derivation = __importStar(require('./shared/bip32Derivation.js'));
32-
const checkPubkey = __importStar(require('./shared/checkPubkey.js'));
33-
const redeemScript = __importStar(require('./shared/redeemScript.js'));
21+
const nonWitnessUtxo = __importStar(require('./input/nonWitnessUtxo.cjs'));
22+
const partialSig = __importStar(require('./input/partialSig.cjs'));
23+
const porCommitment = __importStar(require('./input/porCommitment.cjs'));
24+
const sighashType = __importStar(require('./input/sighashType.cjs'));
25+
const tapKeySig = __importStar(require('./input/tapKeySig.cjs'));
26+
const tapLeafScript = __importStar(require('./input/tapLeafScript.cjs'));
27+
const tapMerkleRoot = __importStar(require('./input/tapMerkleRoot.cjs'));
28+
const tapScriptSig = __importStar(require('./input/tapScriptSig.cjs'));
29+
const witnessUtxo = __importStar(require('./input/witnessUtxo.cjs'));
30+
const tapTree = __importStar(require('./output/tapTree.cjs'));
31+
const bip32Derivation = __importStar(require('./shared/bip32Derivation.cjs'));
32+
const checkPubkey = __importStar(require('./shared/checkPubkey.cjs'));
33+
const redeemScript = __importStar(require('./shared/redeemScript.cjs'));
3434
const tapBip32Derivation = __importStar(
35-
require('./shared/tapBip32Derivation.js'),
35+
require('./shared/tapBip32Derivation.cjs'),
3636
);
37-
const tapInternalKey = __importStar(require('./shared/tapInternalKey.js'));
38-
const witnessScript = __importStar(require('./shared/witnessScript.js'));
37+
const tapInternalKey = __importStar(require('./shared/tapInternalKey.cjs'));
38+
const witnessScript = __importStar(require('./shared/witnessScript.cjs'));
3939
const globals = {
4040
unsignedTx,
4141
globalXpub,

src/cjs/lib/converter/index.d.ts

Lines changed: 0 additions & 108 deletions
This file was deleted.

src/cjs/lib/converter/input/finalScriptSig.js renamed to src/cjs/lib/converter/input/finalScriptSig.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function decode(keyVal) {
1717
if (keyVal.key[0] !== typeFields_js_1.InputTypes.FINAL_SCRIPTSIG) {

src/cjs/lib/converter/input/finalScriptSig.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/cjs/lib/converter/input/finalScriptWitness.js renamed to src/cjs/lib/converter/input/finalScriptWitness.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function decode(keyVal) {
1717
if (keyVal.key[0] !== typeFields_js_1.InputTypes.FINAL_SCRIPTWITNESS) {

src/cjs/lib/converter/input/finalScriptWitness.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/cjs/lib/converter/input/nonWitnessUtxo.js renamed to src/cjs/lib/converter/input/nonWitnessUtxo.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function decode(keyVal) {
1717
if (keyVal.key[0] !== typeFields_js_1.InputTypes.NON_WITNESS_UTXO) {

src/cjs/lib/converter/input/nonWitnessUtxo.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/cjs/lib/converter/input/partialSig.js renamed to src/cjs/lib/converter/input/partialSig.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function decode(keyVal) {
1717
if (keyVal.key[0] !== typeFields_js_1.InputTypes.PARTIAL_SIG) {

src/cjs/lib/converter/input/partialSig.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/cjs/lib/converter/input/porCommitment.js renamed to src/cjs/lib/converter/input/porCommitment.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function decode(keyVal) {
1717
if (keyVal.key[0] !== typeFields_js_1.InputTypes.POR_COMMITMENT) {

src/cjs/lib/converter/input/porCommitment.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/cjs/lib/converter/input/sighashType.js renamed to src/cjs/lib/converter/input/sighashType.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function decode(keyVal) {
1717
if (keyVal.key[0] !== typeFields_js_1.InputTypes.SIGHASH_TYPE) {

src/cjs/lib/converter/input/sighashType.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/cjs/lib/converter/input/tapKeySig.js renamed to src/cjs/lib/converter/input/tapKeySig.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __importStar =
1111
return result;
1212
};
1313
Object.defineProperty(exports, '__esModule', { value: true });
14-
const typeFields_js_1 = require('../../typeFields.js');
14+
const typeFields_js_1 = require('../../typeFields.cjs');
1515
const tools = __importStar(require('uint8array-tools'));
1616
function decode(keyVal) {
1717
if (

0 commit comments

Comments
 (0)