[PR #6809] [WIP] refactor(api): fix cyclic dependencies #6750

Open
opened 2026-02-28 21:32:13 -06:00 by GiteaMirror · 0 comments
Owner

Original Pull Request: https://github.com/actualbudget/actual/pull/6809

State: open
Merged: No


image

The problem: the loot-core package depends on the API package. But for the API package to work - it must first bundle loot-core (bundled.api.js) and then consume that. 🙈

The fix: re-architected how imports between loot-core and api happen. This is a risky change, so the more people can test this locally - the better. For now I'm not cleaning up the implementation, but only looking for people to say weather this "works" or it does not.

The new implementation has clear dependencies. API imports loot-core. Loot-core does not import api.


Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 27 14.85 MB → 14.85 MB (-93 B) -0.00%
loot-core 1 5.82 MB → 5.82 MB (-394 B) -0.01%
api 1 → 3 4.43 MB → 4.81 MB (+386.11 kB) +8.51%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
27 14.85 MB → 14.85 MB (-93 B) -0.00%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/shared/schedules.ts 📉 -93 B (-0.74%) 12.22 kB → 12.13 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller

Asset File Size % Changed
static/js/index.js 9.54 MB → 9.54 MB (-93 B) -0.00%

Unchanged

Asset File Size % Changed
static/js/indexeddb-main-thread-worker-e59fee74.js 12.94 kB 0%
static/js/workbox-window.prod.es5.js 5.64 kB 0%
static/js/ca.js 188.15 kB 0%
static/js/da.js 106.35 kB 0%
static/js/de.js 180.07 kB 0%
static/js/en-GB.js 7.18 kB 0%
static/js/en.js 170.37 kB 0%
static/js/es.js 174.55 kB 0%
static/js/fr.js 179.6 kB 0%
static/js/it.js 171.16 kB 0%
static/js/nb-NO.js 156.96 kB 0%
static/js/nl.js 106.37 kB 0%
static/js/pl.js 88.37 kB 0%
static/js/pt-BR.js 154.22 kB 0%
static/js/th.js 181.87 kB 0%
static/js/uk.js 214.74 kB 0%
static/js/resize-observer.js 18.37 kB 0%
static/js/BackgroundImage.js 120.54 kB 0%
static/js/ReportRouter.js 1.16 MB 0%
static/js/narrow.js 637.68 kB 0%
static/js/TransactionList.js 106.22 kB 0%
static/js/wide.js 164.15 kB 0%
static/js/AppliedFilters.js 9.71 kB 0%
static/js/usePayeeRuleCounts.js 10.04 kB 0%
static/js/useTransactionBatchActions.js 13.23 kB 0%
static/js/FormulaEditor.js 1.04 MB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.82 MB → 5.82 MB (-394 B) -0.01%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/server/main-app.ts 📈 +107 B (+93.86%) 114 B → 221 B
home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab4.ts 📈 +889 B (+7.82%) 11.1 kB → 11.97 kB
home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab5.ts 📈 +848 B (+2.88%) 28.75 kB → 29.57 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transaction-rules.ts 📉 -2 B (-0.01%) 25.25 kB → 25.25 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/category-template-context.ts 📉 -4 B (-0.02%) 23.49 kB → 23.49 kB
home/runner/work/actual/actual/packages/loot-core/src/server/dashboard/app.ts 📉 -2 B (-0.02%) 9.51 kB → 9.51 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/base.ts 📉 -2 B (-0.02%) 8.81 kB → 8.81 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema/executors.ts 📉 -2 B (-0.03%) 7.36 kB → 7.35 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts 📉 -8 B (-0.03%) 27.28 kB → 27.27 kB
home/runner/work/actual/actual/packages/loot-core/src/mocks/budget.ts 📉 -8 B (-0.03%) 25.08 kB → 25.08 kB
home/runner/work/actual/actual/packages/loot-core/src/server/reports/app.ts 📉 -2 B (-0.05%) 4.27 kB → 4.27 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/merge.ts 📉 -2 B (-0.06%) 3.44 kB → 3.44 kB
home/runner/work/actual/actual/packages/loot-core/src/server/tools/app.ts 📉 -2 B (-0.06%) 3.36 kB → 3.36 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts 📉 -16 B (-0.06%) 25.88 kB → 25.87 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/export/export-to-csv.ts 📉 -2 B (-0.06%) 3.2 kB → 3.2 kB
home/runner/work/actual/actual/packages/loot-core/src/server/schedules/find-schedules.ts 📉 -6 B (-0.06%) 9.47 kB → 9.46 kB
home/runner/work/actual/actual/packages/loot-core/src/server/api.ts 📉 -20 B (-0.08%) 25.96 kB → 25.94 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/goal-template.ts 📉 -8 B (-0.11%) 7.02 kB → 7.01 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/app.ts 📉 -14 B (-0.13%) 10.17 kB → 10.15 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/app.ts 📉 -4 B (-0.16%) 2.41 kB → 2.4 kB
home/runner/work/actual/actual/packages/loot-core/src/server/schedules/app.ts 📉 -22 B (-0.17%) 12.71 kB → 12.68 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/index.ts 📉 -2 B (-0.43%) 470 B → 468 B
home/runner/work/actual/actual/packages/loot-core/src/server/main.ts 📉 -74 B (-1.21%) 5.96 kB → 5.89 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/schedules.ts 📉 -97 B (-1.56%) 6.08 kB → 5.98 kB
home/runner/work/actual/actual/packages/api/methods.ts 🔥 -1.75 kB (-100%) 1.75 kB → 0 B
home/runner/work/actual/actual/packages/api/injected.js 🔥 -148 B (-100%) 148 B → 0 B
View detailed bundle breakdown

Added

Asset File Size % Changed
kcab.worker.D_mniVXy.js 0 B → 5.82 MB (+5.82 MB) -

Removed

Asset File Size % Changed
kcab.worker.BwrdDDMW.js 5.82 MB → 0 B (-5.82 MB) -100%

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged
No assets were unchanged


api

Total

Files count Total bundle size % Changed
1 → 3 4.43 MB → 4.81 MB (+386.11 kB) +8.51%
Changeset (largest 100 files by percent change)
File Δ Size
node_modules/web-streams-polyfill/dist/ponyfill.es2018.js 🆕 +216.47 kB 0 B → 216.47 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/goal-template.pegjs 🆕 +67.6 kB 0 B → 67.6 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js 🆕 +47.26 kB 0 B → 47.26 kB
node_modules/source-map/lib/source-map-consumer.js 🆕 +40.81 kB 0 B → 40.81 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js 🆕 +36.24 kB 0 B → 36.24 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/compiler.ts 🆕 +27.33 kB 0 B → 27.33 kB
home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab5.ts 🆕 +26.46 kB 0 B → 26.46 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts 🆕 +23.35 kB 0 B → 23.35 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts 🆕 +23.14 kB 0 B → 23.14 kB
home/runner/work/actual/actual/packages/loot-core/src/server/api.ts 🆕 +23 kB 0 B → 23 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transaction-rules.ts 🆕 +22.44 kB 0 B → 22.44 kB
home/runner/work/actual/actual/packages/loot-core/src/mocks/budget.ts 🆕 +22.29 kB 0 B → 22.29 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/category-template-context.ts 🆕 +21.02 kB 0 B → 21.02 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/cleanup-template.pegjs 🆕 +17.12 kB 0 B → 17.12 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js 🆕 +16.06 kB 0 B → 16.06 kB
home/runner/work/actual/actual/packages/loot-core/src/server/db/index.ts 🆕 +16.06 kB 0 B → 16.06 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/index.ts 🆕 +15.45 kB 0 B → 15.45 kB
node_modules/source-map/lib/source-map-generator.js 🆕 +14.59 kB 0 B → 14.59 kB
node_modules/source-map/lib/source-node.js 🆕 +14.01 kB 0 B → 14.01 kB
node_modules/source-map/lib/util.js 🆕 +13.63 kB 0 B → 13.63 kB
node_modules/handlebars/dist/cjs/handlebars/runtime.js 🆕 +13.03 kB 0 B → 13.03 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/actions.ts 🆕 +12.41 kB 0 B → 12.41 kB
node_modules/node-fetch/src/index.js 🆕 +11.69 kB 0 B → 11.69 kB
node_modules/node-fetch/src/utils/referrer.js 🆕 +11.49 kB 0 B → 11.49 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/app.ts 🆕 +11.22 kB 0 B → 11.22 kB
home/runner/work/actual/actual/packages/loot-core/src/server/schedules/app.ts 🆕 +11.03 kB 0 B → 11.03 kB
home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab4.ts 🆕 +10.71 kB 0 B → 10.71 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/cleanup-template.ts 🆕 +10.5 kB 0 B → 10.5 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema/index.ts 🆕 +10.41 kB 0 B → 10.41 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/envelope.ts 🆕 +9.87 kB 0 B → 9.87 kB
home/runner/work/actual/actual/packages/loot-core/src/server/rules/condition.ts 🆕 +9.48 kB 0 B → 9.48 kB
node_modules/node-fetch/src/utils/multipart-parser.js 🆕 +9.33 kB 0 B → 9.33 kB
node_modules/node-fetch/src/body.js 🆕 +9.29 kB 0 B → 9.29 kB
home/runner/work/actual/actual/packages/loot-core/src/server/spreadsheet/spreadsheet.ts 🆕 +9.21 kB 0 B → 9.21 kB
home/runner/work/actual/actual/packages/loot-core/src/server/cloud-storage.ts 🆕 +9.2 kB 0 B → 9.2 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/app.ts 🆕 +8.94 kB 0 B → 8.94 kB
home/runner/work/actual/actual/packages/loot-core/src/server/dashboard/app.ts 🆕 +8.51 kB 0 B → 8.51 kB
home/runner/work/actual/actual/packages/loot-core/src/server/schedules/find-schedules.ts 🆕 +8.32 kB 0 B → 8.32 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/schedule-template.ts 🆕 +8.12 kB 0 B → 8.12 kB
node_modules/node-fetch/src/request.js 🆕 +8.02 kB 0 B → 8.02 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/base.ts 🆕 +7.9 kB 0 B → 7.9 kB
home/runner/work/actual/actual/packages/loot-core/src/server/rules/action.ts 🆕 +7.83 kB 0 B → 7.83 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/report.ts 🆕 +7.37 kB 0 B → 7.37 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/template-notes.ts 🆕 +7.34 kB 0 B → 7.34 kB
node_modules/fetch-blob/index.js 🆕 +7.12 kB 0 B → 7.12 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js 🆕 +7.05 kB 0 B → 7.05 kB
home/runner/work/actual/actual/packages/loot-core/src/server/auth/app.ts 🆕 +6.82 kB 0 B → 6.82 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/util.ts 🆕 +6.67 kB 0 B → 6.67 kB
node_modules/node-fetch/src/headers.js 🆕 +6.65 kB 0 B → 6.65 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema/executors.ts 🆕 +6.65 kB 0 B → 6.65 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts 🆕 +6.28 kB 0 B → 6.28 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budget/goal-template.ts 🆕 +6.19 kB 0 B → 6.19 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js 🆕 +5.56 kB 0 B → 5.56 kB
methods.ts 🆕 +5.41 kB 0 B → 5.41 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/schedules.ts 🆕 +5.33 kB 0 B → 5.33 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/currencies.ts 🆕 +5.25 kB 0 B → 5.25 kB
home/runner/work/actual/actual/packages/loot-core/src/server/rules/rule-utils.ts 🆕 +5.15 kB 0 B → 5.15 kB
home/runner/work/actual/actual/packages/loot-core/src/server/undo.ts 🆕 +5.15 kB 0 B → 5.15 kB
home/runner/work/actual/actual/packages/loot-core/src/server/preferences/app.ts 🆕 +4.89 kB 0 B → 4.89 kB
node_modules/source-map/lib/base64-vlq.js 🆕 +4.87 kB 0 B → 4.87 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/parse-file.ts 🆕 +4.76 kB 0 B → 4.76 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js 🆕 +4.72 kB 0 B → 4.72 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/dashboard.ts 🆕 +4.65 kB 0 B → 4.65 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sheet.ts 🆕 +4.62 kB 0 B → 4.62 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js 🆕 +4.56 kB 0 B → 4.56 kB
node_modules/source-map/lib/binary-search.js 🆕 +4.56 kB 0 B → 4.56 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/backups.ts 🆕 +4.43 kB 0 B → 4.43 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema-helpers.ts 🆕 +4.4 kB 0 B → 4.4 kB
home/runner/work/actual/actual/packages/loot-core/src/server/rules/rule.ts 🆕 +4.33 kB 0 B → 4.33 kB
home/runner/work/actual/actual/packages/loot-core/src/platform/server/fs/index.electron.ts 🆕 +4.32 kB 0 B → 4.32 kB
home/runner/work/actual/actual/packages/loot-core/src/server/post.ts 🆕 +4.24 kB 0 B → 4.24 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js 🆕 +4.05 kB 0 B → 4.05 kB
home/runner/work/actual/actual/packages/loot-core/src/server/filters/app.ts 🆕 +4.05 kB 0 B → 4.05 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transfer.ts 🆕 +4 kB 0 B → 4 kB
home/runner/work/actual/actual/packages/loot-core/src/server/api-models.ts 🆕 +3.89 kB 0 B → 3.89 kB
home/runner/work/actual/actual/packages/loot-core/src/server/admin/app.ts 🆕 +3.79 kB 0 B → 3.79 kB
home/runner/work/actual/actual/packages/loot-core/src/server/reports/app.ts 🆕 +3.79 kB 0 B → 3.79 kB
node_modules/source-map/lib/quick-sort.js 🆕 +3.78 kB 0 B → 3.78 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/index.ts 🆕 +3.75 kB 0 B → 3.75 kB
home/runner/work/actual/actual/packages/loot-core/src/server/main.ts 🆕 +3.74 kB 0 B → 3.74 kB
home/runner/work/actual/actual/packages/loot-core/src/server/rules/handlebars-helpers.ts 🆕 +3.54 kB 0 B → 3.54 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/months.ts 🆕 +3.47 kB 0 B → 3.47 kB
node_modules/handlebars/dist/cjs/handlebars/base.js 🆕 +3.38 kB 0 B → 3.38 kB
node_modules/source-map/lib/array-set.js 🆕 +3.37 kB 0 B → 3.37 kB
home/runner/work/actual/actual/packages/loot-core/migrations/1632571489012_remove_cache.js 🆕 +3.3 kB 0 B → 3.3 kB
home/runner/work/actual/actual/packages/loot-core/src/server/spreadsheet/graph-data-structure.ts 🆕 +3.26 kB 0 B → 3.26 kB
node_modules/node-fetch/src/response.js 🆕 +3.22 kB 0 B → 3.22 kB
node_modules/handlebars/dist/cjs/handlebars/utils.js 🆕 +3.13 kB 0 B → 3.13 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/ofx2json.ts 🆕 +3.13 kB 0 B → 3.13 kB
home/runner/work/actual/actual/packages/loot-core/src/server/tools/app.ts 🆕 +3.12 kB 0 B → 3.12 kB
home/runner/work/actual/actual/packages/loot-core/src/server/migrate/migrations.ts 🆕 +3.11 kB 0 B → 3.11 kB
node_modules/handlebars/dist/cjs/handlebars/helpers/each.js 🆕 +3.09 kB 0 B → 3.09 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/merge.ts 🆕 +3.07 kB 0 B → 3.07 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/title/index.ts 🆕 +3.06 kB 0 B → 3.06 kB
home/runner/work/actual/actual/packages/loot-core/src/server/models.ts 🆕 +3.05 kB 0 B → 3.05 kB
home/runner/work/actual/actual/packages/loot-core/src/server/rules/app.ts 🆕 +3.02 kB 0 B → 3.02 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/xmlcamt2json.ts 🆕 +2.96 kB 0 B → 2.96 kB
node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js 🆕 +2.91 kB 0 B → 2.91 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/encoder.ts 🆕 +2.9 kB 0 B → 2.9 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/export/export-to-csv.ts 🆕 +2.88 kB 0 B → 2.88 kB
View detailed bundle breakdown

Added

Asset File Size % Changed
index.js 0 B → 4.52 MB (+4.52 MB) -
index-oLgOFngg.js 0 B → 285.56 kB (+285.56 kB) -
multipart-parser-BnAiGexT.js 0 B → 9.33 kB (+9.33 kB) -

Removed

Asset File Size % Changed
bundle.api.js 4.43 MB → 0 B (-4.43 MB) -100%

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged
No assets were unchanged

**Original Pull Request:** https://github.com/actualbudget/actual/pull/6809 **State:** open **Merged:** No --- <img width="800" height="735" alt="image" src="https://github.com/user-attachments/assets/9b1f5212-677c-439e-baee-07d18b6e7411" /> **The problem**: the loot-core package depends on the API package. But for the API package to work - it must first bundle loot-core (`bundled.api.js`) and then consume that. 🙈 **The fix**: re-architected how imports between loot-core and api happen. This is a risky change, so the more people can test this locally - the better. For now I'm not cleaning up the implementation, but only looking for people to say weather this "works" or it does not. The new implementation has clear dependencies. API imports loot-core. Loot-core does **not** import api. <!--- actual-bot-sections ---> <hr /> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 27 | 14.85 MB → 14.85 MB (-93 B) | -0.00% loot-core | 1 | 5.82 MB → 5.82 MB (-394 B) | -0.01% api | 1 → 3 | 4.43 MB → 4.81 MB (+386.11 kB) | +8.51% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 27 | 14.85 MB → 14.85 MB (-93 B) | -0.00% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/shared/schedules.ts` | 📉 -93 B (-0.74%) | 12.22 kB → 12.13 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 9.54 MB → 9.54 MB (-93 B) | -0.00% **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/indexeddb-main-thread-worker-e59fee74.js | 12.94 kB | 0% static/js/workbox-window.prod.es5.js | 5.64 kB | 0% static/js/ca.js | 188.15 kB | 0% static/js/da.js | 106.35 kB | 0% static/js/de.js | 180.07 kB | 0% static/js/en-GB.js | 7.18 kB | 0% static/js/en.js | 170.37 kB | 0% static/js/es.js | 174.55 kB | 0% static/js/fr.js | 179.6 kB | 0% static/js/it.js | 171.16 kB | 0% static/js/nb-NO.js | 156.96 kB | 0% static/js/nl.js | 106.37 kB | 0% static/js/pl.js | 88.37 kB | 0% static/js/pt-BR.js | 154.22 kB | 0% static/js/th.js | 181.87 kB | 0% static/js/uk.js | 214.74 kB | 0% static/js/resize-observer.js | 18.37 kB | 0% static/js/BackgroundImage.js | 120.54 kB | 0% static/js/ReportRouter.js | 1.16 MB | 0% static/js/narrow.js | 637.68 kB | 0% static/js/TransactionList.js | 106.22 kB | 0% static/js/wide.js | 164.15 kB | 0% static/js/AppliedFilters.js | 9.71 kB | 0% static/js/usePayeeRuleCounts.js | 10.04 kB | 0% static/js/useTransactionBatchActions.js | 13.23 kB | 0% static/js/FormulaEditor.js | 1.04 MB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 5.82 MB → 5.82 MB (-394 B) | -0.01% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/server/main-app.ts` | 📈 +107 B (+93.86%) | 114 B → 221 B `home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab4.ts` | 📈 +889 B (+7.82%) | 11.1 kB → 11.97 kB `home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab5.ts` | 📈 +848 B (+2.88%) | 28.75 kB → 29.57 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transaction-rules.ts` | 📉 -2 B (-0.01%) | 25.25 kB → 25.25 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/category-template-context.ts` | 📉 -4 B (-0.02%) | 23.49 kB → 23.49 kB `home/runner/work/actual/actual/packages/loot-core/src/server/dashboard/app.ts` | 📉 -2 B (-0.02%) | 9.51 kB → 9.51 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/base.ts` | 📉 -2 B (-0.02%) | 8.81 kB → 8.81 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema/executors.ts` | 📉 -2 B (-0.03%) | 7.36 kB → 7.35 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts` | 📉 -8 B (-0.03%) | 27.28 kB → 27.27 kB `home/runner/work/actual/actual/packages/loot-core/src/mocks/budget.ts` | 📉 -8 B (-0.03%) | 25.08 kB → 25.08 kB `home/runner/work/actual/actual/packages/loot-core/src/server/reports/app.ts` | 📉 -2 B (-0.05%) | 4.27 kB → 4.27 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/merge.ts` | 📉 -2 B (-0.06%) | 3.44 kB → 3.44 kB `home/runner/work/actual/actual/packages/loot-core/src/server/tools/app.ts` | 📉 -2 B (-0.06%) | 3.36 kB → 3.36 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts` | 📉 -16 B (-0.06%) | 25.88 kB → 25.87 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/export/export-to-csv.ts` | 📉 -2 B (-0.06%) | 3.2 kB → 3.2 kB `home/runner/work/actual/actual/packages/loot-core/src/server/schedules/find-schedules.ts` | 📉 -6 B (-0.06%) | 9.47 kB → 9.46 kB `home/runner/work/actual/actual/packages/loot-core/src/server/api.ts` | 📉 -20 B (-0.08%) | 25.96 kB → 25.94 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/goal-template.ts` | 📉 -8 B (-0.11%) | 7.02 kB → 7.01 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/app.ts` | 📉 -14 B (-0.13%) | 10.17 kB → 10.15 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/app.ts` | 📉 -4 B (-0.16%) | 2.41 kB → 2.4 kB `home/runner/work/actual/actual/packages/loot-core/src/server/schedules/app.ts` | 📉 -22 B (-0.17%) | 12.71 kB → 12.68 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/index.ts` | 📉 -2 B (-0.43%) | 470 B → 468 B `home/runner/work/actual/actual/packages/loot-core/src/server/main.ts` | 📉 -74 B (-1.21%) | 5.96 kB → 5.89 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/schedules.ts` | 📉 -97 B (-1.56%) | 6.08 kB → 5.98 kB `home/runner/work/actual/actual/packages/api/methods.ts` | 🔥 -1.75 kB (-100%) | 1.75 kB → 0 B `home/runner/work/actual/actual/packages/api/injected.js` | 🔥 -148 B (-100%) | 148 B → 0 B </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.D_mniVXy.js | 0 B → 5.82 MB (+5.82 MB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.BwrdDDMW.js | 5.82 MB → 0 B (-5.82 MB) | -100% **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** No assets were unchanged </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 → 3 | 4.43 MB → 4.81 MB (+386.11 kB) | +8.51% <details> <summary>Changeset (largest 100 files by percent change)</summary> File | Δ | Size ---- | - | ---- `node_modules/web-streams-polyfill/dist/ponyfill.es2018.js` | 🆕 +216.47 kB | 0 B → 216.47 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/goal-template.pegjs` | 🆕 +67.6 kB | 0 B → 67.6 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js` | 🆕 +47.26 kB | 0 B → 47.26 kB `node_modules/source-map/lib/source-map-consumer.js` | 🆕 +40.81 kB | 0 B → 40.81 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js` | 🆕 +36.24 kB | 0 B → 36.24 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/compiler.ts` | 🆕 +27.33 kB | 0 B → 27.33 kB `home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab5.ts` | 🆕 +26.46 kB | 0 B → 26.46 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts` | 🆕 +23.35 kB | 0 B → 23.35 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts` | 🆕 +23.14 kB | 0 B → 23.14 kB `home/runner/work/actual/actual/packages/loot-core/src/server/api.ts` | 🆕 +23 kB | 0 B → 23 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transaction-rules.ts` | 🆕 +22.44 kB | 0 B → 22.44 kB `home/runner/work/actual/actual/packages/loot-core/src/mocks/budget.ts` | 🆕 +22.29 kB | 0 B → 22.29 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/category-template-context.ts` | 🆕 +21.02 kB | 0 B → 21.02 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/cleanup-template.pegjs` | 🆕 +17.12 kB | 0 B → 17.12 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js` | 🆕 +16.06 kB | 0 B → 16.06 kB `home/runner/work/actual/actual/packages/loot-core/src/server/db/index.ts` | 🆕 +16.06 kB | 0 B → 16.06 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/index.ts` | 🆕 +15.45 kB | 0 B → 15.45 kB `node_modules/source-map/lib/source-map-generator.js` | 🆕 +14.59 kB | 0 B → 14.59 kB `node_modules/source-map/lib/source-node.js` | 🆕 +14.01 kB | 0 B → 14.01 kB `node_modules/source-map/lib/util.js` | 🆕 +13.63 kB | 0 B → 13.63 kB `node_modules/handlebars/dist/cjs/handlebars/runtime.js` | 🆕 +13.03 kB | 0 B → 13.03 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/actions.ts` | 🆕 +12.41 kB | 0 B → 12.41 kB `node_modules/node-fetch/src/index.js` | 🆕 +11.69 kB | 0 B → 11.69 kB `node_modules/node-fetch/src/utils/referrer.js` | 🆕 +11.49 kB | 0 B → 11.49 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/app.ts` | 🆕 +11.22 kB | 0 B → 11.22 kB `home/runner/work/actual/actual/packages/loot-core/src/server/schedules/app.ts` | 🆕 +11.03 kB | 0 B → 11.03 kB `home/runner/work/actual/actual/packages/loot-core/src/server/importers/ynab4.ts` | 🆕 +10.71 kB | 0 B → 10.71 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/cleanup-template.ts` | 🆕 +10.5 kB | 0 B → 10.5 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema/index.ts` | 🆕 +10.41 kB | 0 B → 10.41 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/envelope.ts` | 🆕 +9.87 kB | 0 B → 9.87 kB `home/runner/work/actual/actual/packages/loot-core/src/server/rules/condition.ts` | 🆕 +9.48 kB | 0 B → 9.48 kB `node_modules/node-fetch/src/utils/multipart-parser.js` | 🆕 +9.33 kB | 0 B → 9.33 kB `node_modules/node-fetch/src/body.js` | 🆕 +9.29 kB | 0 B → 9.29 kB `home/runner/work/actual/actual/packages/loot-core/src/server/spreadsheet/spreadsheet.ts` | 🆕 +9.21 kB | 0 B → 9.21 kB `home/runner/work/actual/actual/packages/loot-core/src/server/cloud-storage.ts` | 🆕 +9.2 kB | 0 B → 9.2 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/app.ts` | 🆕 +8.94 kB | 0 B → 8.94 kB `home/runner/work/actual/actual/packages/loot-core/src/server/dashboard/app.ts` | 🆕 +8.51 kB | 0 B → 8.51 kB `home/runner/work/actual/actual/packages/loot-core/src/server/schedules/find-schedules.ts` | 🆕 +8.32 kB | 0 B → 8.32 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/schedule-template.ts` | 🆕 +8.12 kB | 0 B → 8.12 kB `node_modules/node-fetch/src/request.js` | 🆕 +8.02 kB | 0 B → 8.02 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/base.ts` | 🆕 +7.9 kB | 0 B → 7.9 kB `home/runner/work/actual/actual/packages/loot-core/src/server/rules/action.ts` | 🆕 +7.83 kB | 0 B → 7.83 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/report.ts` | 🆕 +7.37 kB | 0 B → 7.37 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/template-notes.ts` | 🆕 +7.34 kB | 0 B → 7.34 kB `node_modules/fetch-blob/index.js` | 🆕 +7.12 kB | 0 B → 7.12 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js` | 🆕 +7.05 kB | 0 B → 7.05 kB `home/runner/work/actual/actual/packages/loot-core/src/server/auth/app.ts` | 🆕 +6.82 kB | 0 B → 6.82 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/util.ts` | 🆕 +6.67 kB | 0 B → 6.67 kB `node_modules/node-fetch/src/headers.js` | 🆕 +6.65 kB | 0 B → 6.65 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema/executors.ts` | 🆕 +6.65 kB | 0 B → 6.65 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts` | 🆕 +6.28 kB | 0 B → 6.28 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budget/goal-template.ts` | 🆕 +6.19 kB | 0 B → 6.19 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js` | 🆕 +5.56 kB | 0 B → 5.56 kB `methods.ts` | 🆕 +5.41 kB | 0 B → 5.41 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/schedules.ts` | 🆕 +5.33 kB | 0 B → 5.33 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/currencies.ts` | 🆕 +5.25 kB | 0 B → 5.25 kB `home/runner/work/actual/actual/packages/loot-core/src/server/rules/rule-utils.ts` | 🆕 +5.15 kB | 0 B → 5.15 kB `home/runner/work/actual/actual/packages/loot-core/src/server/undo.ts` | 🆕 +5.15 kB | 0 B → 5.15 kB `home/runner/work/actual/actual/packages/loot-core/src/server/preferences/app.ts` | 🆕 +4.89 kB | 0 B → 4.89 kB `node_modules/source-map/lib/base64-vlq.js` | 🆕 +4.87 kB | 0 B → 4.87 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/parse-file.ts` | 🆕 +4.76 kB | 0 B → 4.76 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js` | 🆕 +4.72 kB | 0 B → 4.72 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/dashboard.ts` | 🆕 +4.65 kB | 0 B → 4.65 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sheet.ts` | 🆕 +4.62 kB | 0 B → 4.62 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js` | 🆕 +4.56 kB | 0 B → 4.56 kB `node_modules/source-map/lib/binary-search.js` | 🆕 +4.56 kB | 0 B → 4.56 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/backups.ts` | 🆕 +4.43 kB | 0 B → 4.43 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/schema-helpers.ts` | 🆕 +4.4 kB | 0 B → 4.4 kB `home/runner/work/actual/actual/packages/loot-core/src/server/rules/rule.ts` | 🆕 +4.33 kB | 0 B → 4.33 kB `home/runner/work/actual/actual/packages/loot-core/src/platform/server/fs/index.electron.ts` | 🆕 +4.32 kB | 0 B → 4.32 kB `home/runner/work/actual/actual/packages/loot-core/src/server/post.ts` | 🆕 +4.24 kB | 0 B → 4.24 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js` | 🆕 +4.05 kB | 0 B → 4.05 kB `home/runner/work/actual/actual/packages/loot-core/src/server/filters/app.ts` | 🆕 +4.05 kB | 0 B → 4.05 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transfer.ts` | 🆕 +4 kB | 0 B → 4 kB `home/runner/work/actual/actual/packages/loot-core/src/server/api-models.ts` | 🆕 +3.89 kB | 0 B → 3.89 kB `home/runner/work/actual/actual/packages/loot-core/src/server/admin/app.ts` | 🆕 +3.79 kB | 0 B → 3.79 kB `home/runner/work/actual/actual/packages/loot-core/src/server/reports/app.ts` | 🆕 +3.79 kB | 0 B → 3.79 kB `node_modules/source-map/lib/quick-sort.js` | 🆕 +3.78 kB | 0 B → 3.78 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/index.ts` | 🆕 +3.75 kB | 0 B → 3.75 kB `home/runner/work/actual/actual/packages/loot-core/src/server/main.ts` | 🆕 +3.74 kB | 0 B → 3.74 kB `home/runner/work/actual/actual/packages/loot-core/src/server/rules/handlebars-helpers.ts` | 🆕 +3.54 kB | 0 B → 3.54 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/months.ts` | 🆕 +3.47 kB | 0 B → 3.47 kB `node_modules/handlebars/dist/cjs/handlebars/base.js` | 🆕 +3.38 kB | 0 B → 3.38 kB `node_modules/source-map/lib/array-set.js` | 🆕 +3.37 kB | 0 B → 3.37 kB `home/runner/work/actual/actual/packages/loot-core/migrations/1632571489012_remove_cache.js` | 🆕 +3.3 kB | 0 B → 3.3 kB `home/runner/work/actual/actual/packages/loot-core/src/server/spreadsheet/graph-data-structure.ts` | 🆕 +3.26 kB | 0 B → 3.26 kB `node_modules/node-fetch/src/response.js` | 🆕 +3.22 kB | 0 B → 3.22 kB `node_modules/handlebars/dist/cjs/handlebars/utils.js` | 🆕 +3.13 kB | 0 B → 3.13 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/ofx2json.ts` | 🆕 +3.13 kB | 0 B → 3.13 kB `home/runner/work/actual/actual/packages/loot-core/src/server/tools/app.ts` | 🆕 +3.12 kB | 0 B → 3.12 kB `home/runner/work/actual/actual/packages/loot-core/src/server/migrate/migrations.ts` | 🆕 +3.11 kB | 0 B → 3.11 kB `node_modules/handlebars/dist/cjs/handlebars/helpers/each.js` | 🆕 +3.09 kB | 0 B → 3.09 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/merge.ts` | 🆕 +3.07 kB | 0 B → 3.07 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/title/index.ts` | 🆕 +3.06 kB | 0 B → 3.06 kB `home/runner/work/actual/actual/packages/loot-core/src/server/models.ts` | 🆕 +3.05 kB | 0 B → 3.05 kB `home/runner/work/actual/actual/packages/loot-core/src/server/rules/app.ts` | 🆕 +3.02 kB | 0 B → 3.02 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/xmlcamt2json.ts` | 🆕 +2.96 kB | 0 B → 2.96 kB `node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js` | 🆕 +2.91 kB | 0 B → 2.91 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/encoder.ts` | 🆕 +2.9 kB | 0 B → 2.9 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/export/export-to-csv.ts` | 🆕 +2.88 kB | 0 B → 2.88 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- index.js | 0 B → 4.52 MB (+4.52 MB) | - index-oLgOFngg.js | 0 B → 285.56 kB (+285.56 kB) | - multipart-parser-BnAiGexT.js | 0 B → 9.33 kB (+9.33 kB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- bundle.api.js | 4.43 MB → 0 B (-4.43 MB) | -100% **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** No assets were unchanged </div> </details> </details> <!--- bundlestats-action-comment key:combined end --->
GiteaMirror added the pull-request label 2026-02-28 21:32:13 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#6750