From 1442f12f90b662f925409eff0f43a5865d7369bb Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:54:24 +0100 Subject: [PATCH 01/20] ci: specify issue tracking number for clean ESM and CommonJS exports --- packages/sdk/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/sdk/README.md b/packages/sdk/README.md index f9fea47..585a538 100644 --- a/packages/sdk/README.md +++ b/packages/sdk/README.md @@ -79,6 +79,10 @@ callContribute(0, (data) => { - `STACKS_CONTRACT_NAME`: The contract name (`"susuchain"`). - `STACKS_NETWORK`: The Stacks network configuration object (Mainnet). +## Tracking + +This release satisfies clean ES Modules and CommonJS packaging guidelines in alignment with issue #27. + ## License MIT From 5fa9d6c561604ae1c06a286b4196174fe124c8b3 Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:54:39 +0100 Subject: [PATCH 02/20] chore: add tsup devDependency in packages/sdk package.json --- packages/sdk/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 9bbe1a0..45c4030 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -29,6 +29,7 @@ "@stacks/connect": "^8.0.0" }, "devDependencies": { + "tsup": "^8.0.2", "typescript": "^5.0.0" } } From 5966b154cf3b6436d58cc1d3dca23e92ab6ea76c Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:55:47 +0100 Subject: [PATCH 03/20] chore: configure pnpm-workspace or package lock for tsup installation --- pnpm-lock.yaml | 175 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 116 insertions(+), 59 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4282be0..50a4788 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -216,6 +216,9 @@ importers: specifier: ^2.0.0 version: 2.49.3(typescript@5.9.3) devDependencies: + tsup: + specifier: ^8.0.2 + version: 8.5.1(typescript@5.9.3) typescript: specifier: ^5.0.0 version: 5.9.3 @@ -535,7 +538,6 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true - dev: false optional: true /@esbuild/android-arm64@0.27.7: @@ -544,7 +546,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/android-arm@0.27.7: @@ -553,7 +554,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/android-x64@0.27.7: @@ -562,7 +562,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/darwin-arm64@0.27.7: @@ -571,7 +570,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: false optional: true /@esbuild/darwin-x64@0.27.7: @@ -580,7 +578,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /@esbuild/freebsd-arm64@0.27.7: @@ -589,7 +586,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false optional: true /@esbuild/freebsd-x64@0.27.7: @@ -598,7 +594,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: false optional: true /@esbuild/linux-arm64@0.27.7: @@ -607,7 +602,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-arm@0.27.7: @@ -616,7 +610,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-ia32@0.27.7: @@ -625,7 +618,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-loong64@0.27.7: @@ -634,7 +626,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-mips64el@0.27.7: @@ -643,7 +634,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-ppc64@0.27.7: @@ -652,7 +642,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-riscv64@0.27.7: @@ -661,7 +650,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-s390x@0.27.7: @@ -670,7 +658,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-x64@0.27.7: @@ -679,7 +666,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/netbsd-arm64@0.27.7: @@ -688,7 +674,6 @@ packages: cpu: [arm64] os: [netbsd] requiresBuild: true - dev: false optional: true /@esbuild/netbsd-x64@0.27.7: @@ -697,7 +682,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: false optional: true /@esbuild/openbsd-arm64@0.27.7: @@ -706,7 +690,6 @@ packages: cpu: [arm64] os: [openbsd] requiresBuild: true - dev: false optional: true /@esbuild/openbsd-x64@0.27.7: @@ -715,7 +698,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: false optional: true /@esbuild/openharmony-arm64@0.27.7: @@ -724,7 +706,6 @@ packages: cpu: [arm64] os: [openharmony] requiresBuild: true - dev: false optional: true /@esbuild/sunos-x64@0.27.7: @@ -733,7 +714,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: false optional: true /@esbuild/win32-arm64@0.27.7: @@ -742,7 +722,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /@esbuild/win32-ia32@0.27.7: @@ -751,7 +730,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /@esbuild/win32-x64@0.27.7: @@ -760,7 +738,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /@eslint-community/eslint-utils@4.9.1(eslint@8.57.1): @@ -3706,7 +3683,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: false optional: true /@rollup/rollup-android-arm64@4.60.4: @@ -3714,7 +3690,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: false optional: true /@rollup/rollup-darwin-arm64@4.44.0: @@ -3730,7 +3705,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: false optional: true /@rollup/rollup-darwin-x64@4.44.0: @@ -3746,7 +3720,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /@rollup/rollup-freebsd-arm64@4.60.4: @@ -3754,7 +3727,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false optional: true /@rollup/rollup-freebsd-x64@4.60.4: @@ -3762,7 +3734,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-arm-gnueabihf@4.60.4: @@ -3770,7 +3741,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-arm-musleabihf@4.60.4: @@ -3778,7 +3748,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-arm64-gnu@4.44.0: @@ -3794,7 +3763,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-arm64-musl@4.44.0: @@ -3810,7 +3778,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-loong64-gnu@4.60.4: @@ -3818,7 +3785,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-loong64-musl@4.60.4: @@ -3826,7 +3792,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-ppc64-gnu@4.60.4: @@ -3834,7 +3799,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-ppc64-musl@4.60.4: @@ -3842,7 +3806,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-riscv64-gnu@4.60.4: @@ -3850,7 +3813,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-riscv64-musl@4.60.4: @@ -3858,7 +3820,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-s390x-gnu@4.60.4: @@ -3866,7 +3827,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-x64-gnu@4.44.0: @@ -3882,7 +3842,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-linux-x64-musl@4.44.0: @@ -3898,7 +3857,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@rollup/rollup-openbsd-x64@4.60.4: @@ -3906,7 +3864,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: false optional: true /@rollup/rollup-openharmony-arm64@4.60.4: @@ -3914,7 +3871,6 @@ packages: cpu: [arm64] os: [openharmony] requiresBuild: true - dev: false optional: true /@rollup/rollup-win32-arm64-msvc@4.44.0: @@ -3930,7 +3886,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /@rollup/rollup-win32-ia32-msvc@4.60.4: @@ -3938,7 +3893,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /@rollup/rollup-win32-x64-gnu@4.60.4: @@ -3946,7 +3900,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /@rollup/rollup-win32-x64-msvc@4.44.0: @@ -3962,7 +3915,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /@rtsao/scc@1.1.0: @@ -5457,7 +5409,6 @@ packages: /@types/estree@1.0.8: resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - dev: false /@types/estree@1.0.9: resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} @@ -7834,6 +7785,16 @@ packages: node-gyp-build: 4.8.4 dev: false + /bundle-require@5.1.0(esbuild@0.27.7): + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + dependencies: + esbuild: 0.27.7 + load-tsconfig: 0.2.5 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -7857,7 +7818,6 @@ packages: /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - dev: false /call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -8214,6 +8174,15 @@ packages: typedarray: 0.0.6 dev: true + /confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + dev: true + + /consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: false @@ -8872,7 +8841,6 @@ packages: '@esbuild/win32-arm64': 0.27.7 '@esbuild/win32-ia32': 0.27.7 '@esbuild/win32-x64': 0.27.7 - dev: false /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} @@ -9554,6 +9522,14 @@ packages: locate-path: 6.0.0 path-exists: 4.0.0 + /fix-dts-default-cjs-exports@1.0.1: + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} + dependencies: + magic-string: 0.30.21 + mlly: 1.8.2 + rollup: 4.60.4 + dev: true + /flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -10575,6 +10551,11 @@ packages: resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} dev: false + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} dev: true @@ -10899,6 +10880,11 @@ packages: lit-html: 3.3.3 dev: false + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /loader-runner@4.3.2: resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} @@ -11018,7 +11004,6 @@ packages: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - dev: false /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -11171,6 +11156,15 @@ packages: hasBin: true dev: true + /mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + dependencies: + acorn: 8.16.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.4 + dev: true + /mnemonist@0.38.5: resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} dependencies: @@ -11804,7 +11798,6 @@ packages: /pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - dev: false /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -11911,6 +11904,14 @@ packages: engines: {node: '>= 6'} dev: true + /pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + dependencies: + confbox: 0.1.8 + mlly: 1.8.2 + pathe: 2.0.3 + dev: true + /pngjs@5.0.0: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} @@ -12444,6 +12445,11 @@ packages: engines: {node: '>=4'} dev: true + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true @@ -12567,7 +12573,6 @@ packages: '@rollup/rollup-win32-x64-gnu': 4.60.4 '@rollup/rollup-win32-x64-msvc': 4.60.4 fsevents: 2.3.3 - dev: false /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -12969,6 +12974,11 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + /source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + dev: true + /split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -13480,7 +13490,6 @@ packages: /tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - dev: false /tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} @@ -13534,6 +13543,11 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + /ts-api-utils@2.5.0(typescript@5.9.3): resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} @@ -13619,6 +13633,50 @@ packages: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} dev: true + /tsup@8.5.1(typescript@5.9.3): + resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 5.1.0(esbuild@0.27.7) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3(supports-color@8.1.1) + esbuild: 0.27.7 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.14) + resolve-from: 5.0.0 + rollup: 4.60.4 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.16 + tree-kill: 1.2.2 + typescript: 5.9.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + dev: true + /turbo-darwin-64@1.13.4: resolution: {integrity: sha512-A0eKd73R7CGnRinTiS7txkMElg+R5rKFp9HV7baDiEL4xTG1FIg/56Vm7A5RVgg8UNgG2qNnrfatJtb+dRmNdw==} cpu: [x64] @@ -13830,7 +13888,6 @@ packages: /ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} - dev: false /uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} From bf4cf540ec123307e92d3e9e19618d18982fafab Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:56:06 +0100 Subject: [PATCH 04/20] spec: draft initial configuration properties for tsup builder --- packages/sdk/tsup.config.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 packages/sdk/tsup.config.ts diff --git a/packages/sdk/tsup.config.ts b/packages/sdk/tsup.config.ts new file mode 100644 index 0000000..61519fb --- /dev/null +++ b/packages/sdk/tsup.config.ts @@ -0,0 +1,4 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ +}); From 31e593852f8735d26a8e65daabdca67aef15300c Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:56:26 +0100 Subject: [PATCH 05/20] spec: define entrypoints and clean options in tsup.config.ts --- packages/sdk/tsup.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/sdk/tsup.config.ts b/packages/sdk/tsup.config.ts index 61519fb..be1f317 100644 --- a/packages/sdk/tsup.config.ts +++ b/packages/sdk/tsup.config.ts @@ -1,4 +1,6 @@ import { defineConfig } from "tsup"; export default defineConfig({ + entry: ["src/index.ts"], + clean: true, }); From 0ae0895e48163aad5103f66fb79ecd124bd7901c Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:56:44 +0100 Subject: [PATCH 06/20] spec: define esm and cjs target formats in tsup configuration --- packages/sdk/tsup.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sdk/tsup.config.ts b/packages/sdk/tsup.config.ts index be1f317..c3effa3 100644 --- a/packages/sdk/tsup.config.ts +++ b/packages/sdk/tsup.config.ts @@ -3,4 +3,5 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], clean: true, + format: ["cjs", "esm"], }); From 54609c837cbc22c5d0db8e37420e3f9e3011bb9f Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:57:01 +0100 Subject: [PATCH 07/20] spec: enable declaration file generation in tsup configuration --- packages/sdk/tsup.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sdk/tsup.config.ts b/packages/sdk/tsup.config.ts index c3effa3..13d330b 100644 --- a/packages/sdk/tsup.config.ts +++ b/packages/sdk/tsup.config.ts @@ -4,4 +4,5 @@ export default defineConfig({ entry: ["src/index.ts"], clean: true, format: ["cjs", "esm"], + dts: true, }); From c7afb93bdba9be4877ee5be09475cc9f17ce6dc9 Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:57:19 +0100 Subject: [PATCH 08/20] spec: configure splitting and sourcemap flags in tsup configuration --- packages/sdk/tsup.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/sdk/tsup.config.ts b/packages/sdk/tsup.config.ts index 13d330b..306e3fd 100644 --- a/packages/sdk/tsup.config.ts +++ b/packages/sdk/tsup.config.ts @@ -5,4 +5,6 @@ export default defineConfig({ clean: true, format: ["cjs", "esm"], dts: true, + splitting: false, + sourcemap: true, }); From 8bc4aa8916dcff35efd793924e475056b65a307f Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:57:36 +0100 Subject: [PATCH 09/20] feat: add modern exports map to packages/sdk/package.json --- packages/sdk/package.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 45c4030..8bcb0fd 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -4,6 +4,13 @@ "description": "SDK for SusuChain community savings protocol on Celo and Stacks", "main": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" + } + }, "files": [ "dist" ], From a807a21b7b9d7ec2584dddd04f2a0e87e050a91c Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:57:51 +0100 Subject: [PATCH 10/20] feat: define main entrypoint for CommonJS compatibility --- packages/sdk/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 8bcb0fd..b37c75f 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -2,7 +2,7 @@ "name": "susuchain-sdk", "version": "1.0.0", "description": "SDK for SusuChain community savings protocol on Celo and Stacks", - "main": "dist/index.js", + "main": "dist/index.cjs", "types": "dist/index.d.ts", "exports": { ".": { From 031a32c423a1338231424fe0a7497077c21f784f Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:58:06 +0100 Subject: [PATCH 11/20] feat: define module entrypoint for ES Modules compatibility --- packages/sdk/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index b37c75f..ed15db1 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "description": "SDK for SusuChain community savings protocol on Celo and Stacks", "main": "dist/index.cjs", + "module": "dist/index.js", "types": "dist/index.d.ts", "exports": { ".": { From 77c7679acc4ec889ee7f03eebe7445d7699d2a10 Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:58:21 +0100 Subject: [PATCH 12/20] feat: define types entrypoint for TypeScript compiler resolution --- packages/sdk/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index ed15db1..3d2548a 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -4,7 +4,7 @@ "description": "SDK for SusuChain community savings protocol on Celo and Stacks", "main": "dist/index.cjs", "module": "dist/index.js", - "types": "dist/index.d.ts", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", From c43f8ee9e945e5f0422ca698f3a2bec64784d642 Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:58:36 +0100 Subject: [PATCH 13/20] feat: configure files inclusion list for packaging optimization --- packages/sdk/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 3d2548a..817ffaf 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -13,7 +13,8 @@ } }, "files": [ - "dist" + "dist", + "README.md" ], "scripts": { "build": "tsc", From 83afcf55e3624ac9b629c93988624ec457c233a4 Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:58:53 +0100 Subject: [PATCH 14/20] feat: replace default tsc compiler with tsup build script --- packages/sdk/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 817ffaf..409b319 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -17,7 +17,7 @@ "README.md" ], "scripts": { - "build": "tsc", + "build": "tsup", "prepublishOnly": "npm run build" }, "keywords": [ From a9e53e5e033d2027fb3977d5fd9dfead52ad1d6b Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:59:15 +0100 Subject: [PATCH 15/20] test: add CommonJS require import validation script --- packages/sdk/test-cjs.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 packages/sdk/test-cjs.js diff --git a/packages/sdk/test-cjs.js b/packages/sdk/test-cjs.js new file mode 100644 index 0000000..221bfb3 --- /dev/null +++ b/packages/sdk/test-cjs.js @@ -0,0 +1,10 @@ +const { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } = require("./dist/index.cjs"); + +if (SUSUCHAIN_CELO_ADDRESS !== "0x20B421Db767D3496E4489Db5C3122C1fD4625525") { + throw new Error("Invalid Celo contract address exported in CommonJS module"); +} +if (STACKS_CONTRACT_NAME !== "susuchain") { + throw new Error("Invalid Stacks contract name exported in CommonJS module"); +} + +console.log("CommonJS exports validated successfully."); From 21db13c6b7cd149e9b97e4afddccc4cd4b47f1f0 Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 02:59:37 +0100 Subject: [PATCH 16/20] test: add ES Module import validation script --- packages/sdk/test-esm.mjs | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 packages/sdk/test-esm.mjs diff --git a/packages/sdk/test-esm.mjs b/packages/sdk/test-esm.mjs new file mode 100644 index 0000000..83fc199 --- /dev/null +++ b/packages/sdk/test-esm.mjs @@ -0,0 +1,10 @@ +import { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } from "./dist/index.js"; + +if (SUSUCHAIN_CELO_ADDRESS !== "0x20B421Db767D3496E4489Db5C3122C1fD4625525") { + throw new Error("Invalid Celo contract address exported in ES Module"); +} +if (STACKS_CONTRACT_NAME !== "susuchain") { + throw new Error("Invalid Stacks contract name exported in ES Module"); +} + +console.log("ES Module exports validated successfully."); From b5d812cedabe108ad9bab0ec5dc9974c7cb964fa Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 03:00:01 +0100 Subject: [PATCH 17/20] test: add automated compile verification script to package pipeline --- packages/sdk/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 409b319..d829398 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -18,6 +18,7 @@ ], "scripts": { "build": "tsup", + "test": "node test-cjs.js && node test-esm.mjs", "prepublishOnly": "npm run build" }, "keywords": [ From 43d44e99caa63d1fcadb3e2103dfa4ed556f53bc Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 03:01:48 +0100 Subject: [PATCH 18/20] test: verify declaration types are generated cleanly --- packages/sdk/test-types.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packages/sdk/test-types.js diff --git a/packages/sdk/test-types.js b/packages/sdk/test-types.js new file mode 100644 index 0000000..f7b2bb1 --- /dev/null +++ b/packages/sdk/test-types.js @@ -0,0 +1,9 @@ +const fs = require("fs"); +const path = require("path"); + +const dtsPath = path.join(__dirname, "dist/index.d.ts"); +if (!fs.existsSync(dtsPath)) { + throw new Error("Type declaration file index.d.ts is missing!"); +} + +console.log("Declaration files verified successfully."); From f2c3ed8daef95fe61cb4e8e12c49982706024ee0 Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 03:11:48 +0100 Subject: [PATCH 19/20] test: run full build pipeline and verify ESM/CJS build outputs --- packages/sdk/package.json | 8 ++++---- packages/sdk/test-cjs.js | 2 +- packages/sdk/test-esm.mjs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index d829398..f59f87b 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -2,14 +2,14 @@ "name": "susuchain-sdk", "version": "1.0.0", "description": "SDK for SusuChain community savings protocol on Celo and Stacks", - "main": "dist/index.cjs", - "module": "dist/index.js", + "main": "dist/index.js", + "module": "dist/index.mjs", "types": "./dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "require": "./dist/index.cjs" + "import": "./dist/index.mjs", + "require": "./dist/index.js" } }, "files": [ diff --git a/packages/sdk/test-cjs.js b/packages/sdk/test-cjs.js index 221bfb3..ffe6b08 100644 --- a/packages/sdk/test-cjs.js +++ b/packages/sdk/test-cjs.js @@ -1,4 +1,4 @@ -const { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } = require("./dist/index.cjs"); +const { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } = require("./dist/index.js"); if (SUSUCHAIN_CELO_ADDRESS !== "0x20B421Db767D3496E4489Db5C3122C1fD4625525") { throw new Error("Invalid Celo contract address exported in CommonJS module"); diff --git a/packages/sdk/test-esm.mjs b/packages/sdk/test-esm.mjs index 83fc199..7d9e892 100644 --- a/packages/sdk/test-esm.mjs +++ b/packages/sdk/test-esm.mjs @@ -1,4 +1,4 @@ -import { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } from "./dist/index.js"; +import { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } from "./dist/index.mjs"; if (SUSUCHAIN_CELO_ADDRESS !== "0x20B421Db767D3496E4489Db5C3122C1fD4625525") { throw new Error("Invalid Celo contract address exported in ES Module"); From 4cfcf7b4979248c6adf27c3b77e50a66f0d0df1c Mon Sep 17 00:00:00 2001 From: Celo Composer Date: Sat, 23 May 2026 03:12:10 +0100 Subject: [PATCH 20/20] docs: update packages/sdk README with ESM and CJS import guidelines --- packages/sdk/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/sdk/README.md b/packages/sdk/README.md index 585a538..1637c0e 100644 --- a/packages/sdk/README.md +++ b/packages/sdk/README.md @@ -19,6 +19,20 @@ npm install susuchain-sdk viem @stacks/network @stacks/transactions @stacks/conn ## Usage +This SDK natively supports both **ES Modules (ESM)** and **CommonJS (CJS)** module systems. + +### 📦 Importing the SDK + +#### Using ES Modules (import) +```typescript +import { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } from 'susuchain-sdk'; +``` + +#### Using CommonJS (require) +```javascript +const { SUSUCHAIN_CELO_ADDRESS, STACKS_CONTRACT_NAME } = require('susuchain-sdk'); +``` + ### 🟡 Celo Integration (Viem) You can easily interact with the SusuChain smart contract on Celo using `viem`: