@btc-vision/transaction 1.7.25 → 1.7.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,30 @@
1
1
  import { resolve } from 'path';
2
- import { defineConfig } from 'vite';
2
+ import { defineConfig, Plugin } from 'vite';
3
3
  import { nodePolyfills } from 'vite-plugin-node-polyfills';
4
4
  import dts from 'vite-plugin-dts';
5
5
 
6
+ // Strip unused bip39 wordlists (keep only English) - saves ~150KB
7
+ function stripBip39Wordlists(): Plugin {
8
+ return {
9
+ name: 'strip-bip39-wordlists',
10
+ resolveId(source, importer) {
11
+ // Match ./wordlists/*.json except english.json
12
+ if (importer?.includes('bip39') &&
13
+ source.includes('/wordlists/') &&
14
+ !source.includes('english')) {
15
+ return { id: 'empty-wordlist', external: false };
16
+ }
17
+ return null;
18
+ },
19
+ load(id) {
20
+ if (id === 'empty-wordlist') {
21
+ return 'export default []';
22
+ }
23
+ return null;
24
+ },
25
+ };
26
+ }
27
+
6
28
  export default defineConfig({
7
29
  build: {
8
30
  outDir: 'browser',
@@ -18,39 +40,17 @@ export default defineConfig({
18
40
  output: {
19
41
  chunkFileNames: '[name].js',
20
42
  manualChunks: (id) => {
21
- // BTC Vision packages (check before node_modules since aliases resolve differently)
43
+ // BTC Vision packages - keep bitcoin separate as it's large and isolated
22
44
  if (id.includes('@btc-vision/bitcoin') || id.includes('/bitcoin/build/') || id.includes('/bitcoin/src/')) {
23
45
  return 'btc-vision-bitcoin';
24
46
  }
25
- if (id.includes('@btc-vision/bip32') || id.includes('/bip32/src/')) {
26
- return 'btc-vision-bip32';
27
- }
28
47
  if (id.includes('node_modules')) {
29
- // Noble crypto
48
+ // Noble crypto - isolated, no circular deps
30
49
  if (id.includes('@noble/curves')) return 'noble-curves';
31
50
  if (id.includes('@noble/hashes')) return 'noble-hashes';
32
- // BTC Vision packages
33
- if (id.includes('@btc-vision/post-quantum')) return 'btc-vision-post-quantum';
34
- if (id.includes('@btc-vision/logger')) return 'btc-vision-logger';
35
- // Bitcoin utilities
36
- if (id.includes('bip39')) return 'bip39';
37
- if (id.includes('ecpair') || id.includes('@bitcoinerlab/secp256k1') ||
38
- id.includes('bech32') || id.includes('bip174') || id.includes('bs58') ||
39
- id.includes('typeforce') || id.includes('varuint')) {
40
- return 'bitcoin-utils';
41
- }
42
- // Validation
51
+ // Validation - isolated
43
52
  if (id.includes('valibot')) return 'valibot';
44
- // Scure
45
- if (id.includes('@scure/')) return 'scure-base';
46
- // Polyfills
47
- if (id.includes('buffer/') || id.includes('process/') || id.includes('stream-browserify') ||
48
- id.includes('readable-stream') || id.includes('safe-buffer') || id.includes('events/') ||
49
- id.includes('util/') || id.includes('inherits') || id.includes('ieee754') ||
50
- id.includes('base64-js') || id.includes('string_decoder')) {
51
- return 'polyfills';
52
- }
53
- // Other vendors
53
+ // Everything else in vendors to avoid circular deps
54
54
  return 'vendors';
55
55
  }
56
56
  },
@@ -75,14 +75,15 @@ export default defineConfig({
75
75
  global: 'globalThis',
76
76
  },
77
77
  plugins: [
78
+ stripBip39Wordlists(),
78
79
  nodePolyfills({
79
80
  globals: {
80
81
  Buffer: true,
81
82
  global: true,
82
83
  process: true,
83
84
  },
84
- // Exclude heavy polyfills we don't need (zlib, vm handled via aliases)
85
- exclude: ['fs', 'path', 'os', 'http', 'https', 'net', 'tls', 'dns', 'child_process', 'cluster', 'dgram', 'readline', 'repl', 'tty', 'worker_threads', 'perf_hooks', 'inspector', 'async_hooks', 'trace_events', 'v8', 'wasi'],
85
+ // Exclude heavy polyfills we don't need (crypto, zlib, vm handled via aliases)
86
+ exclude: ['crypto', 'fs', 'path', 'os', 'http', 'https', 'net', 'tls', 'dns', 'child_process', 'cluster', 'dgram', 'readline', 'repl', 'tty', 'worker_threads', 'perf_hooks', 'inspector', 'async_hooks', 'trace_events', 'v8', 'wasi', 'zlib', 'vm'],
86
87
  }),
87
88
  dts({
88
89
  outDir: 'browser',