This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/npm_and_yarn/testing-fed964820e
in repository https://gitbox.apache.org/repos/asf/fineract-backoffice-ui.git
discard 9824c224 build(deps-dev): bump the testing group with 2 updates
add 79edaea8 build(deps): bump the codeql group with 2 updates
add 06d4c1dd Merge pull request #636 from
apache/dependabot/github_actions/codeql-c83b7ed659
add ea109656 fix(nav): give the Admin, Campaigns and Interop groups
translation keys
add c2dcb8de ci(i18n): catch keys that never resolve, statically and in
the browser
add 2fbf1a7b fix(i18n): give table column headers translation keys
add 69ad1205 ci(i18n): reject ColumnDef labels that are phrases
add b9cfa209 fix(i18n): do not report a deployment's own nav labels as
missing keys
add 247461e4 fix(clients): build the action dialog title key as the
catalogue words it
add 3df3800b fix(i18n): check that a ColumnDef label names a key that
exists
add 0a771364 Merge pull request #625 from Aman-Mittal/ci/i18n-miss-gates
add 1087c519 refactor(staff): use app-owned buttons
add 5eb25964 Merge pull request #630 from
1cbyc/1cbyc/569-staff-ui-primitives
add b0a8e234 fix(deploy): make the production build run under CSP
add 68969585 Merge pull request #631 from wellkilo/fix/360-production-csp
add 7db941cf fix(currency): improve currencies management UI
add df80c205 test(currency): add currencies UI coverage
add dc67013f feat(i18n): add currency filter labels
add 2dfa345e chore(lint): remove obsolete currency suppression
add d5517c26 Merge pull request #640 from
shivaansh0610-LUFFY/feat/579-currencies-ui
add d2e6dfc5 feat(loans): support contract termination
add 4a8d6a2d test(e2e): record contract termination flow
add d7c03f38 refactor(loans): use includes for contract termination
commands
add 4e409ba6 Merge pull request #633 from
wellkilo/feat/504-contract-termination
add 51df3c96 feat(ui): add a searchable-select primitive, wire it into
collateral currency
add fce41d83 Merge pull request #637 from
shivaansh0610-LUFFY/feat/626-searchable-select
add 14c73ad1 feat(loan): add chargeback action to repayments
add 0f264052 feat(loan): add chargeback dialog
add 7da5c251 test(loan): add chargeback coverage
add 67239acd feat(i18n): add chargeback labels
add af1a74b8 feat(loan): polish chargeback dialog layout and validation
add d563a97c Merge pull request #639 from
shivaansh0610-LUFFY/feat/503-loan-chargeback
add 09aa1b94 fix(account-transfer): mark required fields
add 61558838 test(account-transfer): add required field validation
add 452ebc58 fix(account-transfer): associate required-field errors with
their controls
add c58b2460 style(account-transfer): apply prettier formatting
add 1cb5c189 Merge pull request #629 from
shivaansh0610-LUFFY/fix/585-required-field-markers
add 04920626 feat(loans): add charge refund flow
add aded0cce Merge pull request #632 from wellkilo/feat/506-charge-refund
add e6c1254c fix(i18n): translate the CLIENTS section into Hindi (#255)
add 95e5e6fb test(guidance-tour): deliver animation frames on a microtask
add f2e3770d Merge pull request #644 from
shivaansh0610-LUFFY/fix/255-hi-clients-translations
add 6d441ccc fix(templates): use shared data table
add 4ff9e9ec test(templates): add list behavior coverage
add 63a4778a Merge pull request #642 from
shivaansh0610-LUFFY/feat/222-templates-data-table
add e6020758 feat(loans): add approved-amount and
available-disbursement-amount revision
add 453b75bd style(loans): apply prettier formatting and record new API
surface entries
add 70f085ee style(loans): add padding to approved-amount and
available-disbursement dialogs
add f1f69b42 Merge remote-tracking branch 'upstream/main' into
feat/284-loan-approved-amount-revision
add dd18a190 Merge pull request #638 from
shivaansh0610-LUFFY/feat/284-loan-approved-amount-revision
add 5fd51562 fix(dashboard): space the KPI tiles, stop painting an empty
queue amber, fill the canvas
add 917bed1e Merge pull request #646 from
CaptainAni187/fix/576-dashboard-layout
add 5b914c90 refactor date formatting to use shared pipe
add ae31bc69 Add tests for date-time pipe
add 0b87bfac Adding Apache License headers
add 29342b04 Fix formatting
add 260ef4b5 Merge pull request #645 from
pranavdhanabalan/refactor/date-time-format
add 82d3e333 chore(api): sync the Fineract OpenAPI spec and regenerate the
client
add 74bf4f4b Merge pull request #647 from apache/chore/fineract-spec-sync
add d3ba2288 fix: make label-backed UI text localizable
add 398ddf41 Merge pull request #649 from
vianmangal/fix/issue-627-i18n-labels
add e785e0ea fix(audit-logs): improve table layout and search
add fdfc2ea8 test(audit-logs): add table behavior coverage
add a122d6c8 fix(status-badge): add audit result colours
add 723aac94 test(status-badge): cover audit result colours
add 1f73f8d0 Merge remote-tracking branch 'upstream/main' into
feat/582-audit-logs-ui
add f4ef2aae refactor(status-badge): match statuses against keyword lists
add cc1d9bb1 Merge remote-tracking branch 'upstream/main' into
feat/582-audit-logs-ui
add acb9e1e8 Merge pull request #641 from
shivaansh0610-LUFFY/feat/582-audit-logs-ui
add 432254fb fix: use array date formatter for floating rates
add 71202f98 Merge pull request #648 from
1cbyc/1cbyc/issue-257-products-date-format
add 8af76750 feat(config): add OIDC login feature flag
add dd369ec2 test(config): cover OIDC login flag
add 1d3d9575 feat(login): add provisional OIDC sign-in option
add 3b78d961 feat(i18n): add OIDC login labels
add 954c030a Merge remote-tracking branch 'upstream/main' into
feat/370-oidc-login-ui
add 7bdb3caf test(login): add e2e coverage for the identity-provider
button (#370)
add 0af5623e Merge pull request #643 from
shivaansh0610-LUFFY/feat/370-oidc-login-ui
add 9a6ed9c2 feat(loan): add delinquency action model
add eaf9c6e5 feat(loan): add delinquency pause dialog
add 590df741 feat(loan): add delinquency pause and resume actions
add 53b7629c test(loan): cover delinquency actions
add 46f2e790 test(loan): add delinquency action e2e coverage
add d976842b Merge pull request #650 from
shivaansh0610-LUFFY/feat/505-loan-delinquency-actions
add 5c42ce92 chore(deps): move ngx-translate to 18
add 3a2c9c67 refactor(i18n): update ngx-translate integration
add 0f2f01e5 refactor(i18n): replace TranslateModule imports
add e21bdd9e test(i18n): migrate translation test providers
add 32f943d4 refactor(i18n): migrate app component translation imports
add 23cba428 test(i18n): migrate app component translation testing
add 827a0ac3 Merge pull request #654 from
shivaansh0610-LUFFY/chore/167-ngx-translate-http-loader-18
add 022e7022 ci(i18n): check every label literal, not only ColumnDef files
add 1a4543f2 ci(api): measure how far the generated client reaches, and
stop it spreading
add b47f28f1 fix(accounting): show whether a closed period is closed
add dd6b7118 docs: record the generated-client boundary and how to upgrade
a dependency
add 04421a63 ci(i18n): catch English written straight into a template
add 78064443 refactor(offices): convert Fineract's array dates once, not
at every call site
add ba4f563f Merge pull request #651 from Aman-Mittal/arch/adapter-coverage
add 8ab7c1eb refactor(notes): take the generated client out of the note
screens
add 7e030f5c Merge pull request #656 from
Aman-Mittal/refactor/shrink-api-baseline
add fce4a119 fix(i18n): add template translation keys and test helper
add 034ce23d fix(i18n): translate accounting template text
add 72f3e474 fix(i18n): translate campaign and integration text
add 835fdaf5 fix(i18n): translate loan and savings template text
add 2d122f5b fix(i18n): translate security settings and transfer text
add 6abdedf3 fix(i18n): use the adapter pipe in the closure form and keep
new specs off the generated client
add 03533bfc Merge pull request #655 from
shivaansh0610-LUFFY/fix/652-translate-template-text
add 40a10db5 test(e2e): share one seeded-user sign-in helper across the
RBAC specs
add 50dbed2e test(e2e): let a seeded user belong to an office other than
Head Office
add 37fc6257 fix(clients): fetch a client's accounts only once the client
itself has loaded
add 36a95ee8 fix(ui): tell a refused list from a broken one, and withhold
the futile retry
add f4afc6cf fix(offices): withhold the edit control from a user who
cannot update an office
add 4072b71b test(rbac): cover office scope, an account granted nothing,
and rbacEnabled false
add acb2842f Merge pull request #657 from
Aman-Mittal/test/rbac-role-coverage
add 6dcd7ecd test(e2e): split the journal-entry seed into reusable parts
add 13a9a581 test(accounting): cover period closures against real Fineract
add aab51441 Merge pull request #658 from
Aman-Mittal/test/backend-e2e-coverage
add ef8603d2 fix(clients): withhold an account link the reader cannot
follow
add dc4f9299 fix(organization): gate the office transaction actions and
show a refused load
add 9c109fb6 test(rbac): cover controls whose only destination is Access
Denied
add 910ef443 Merge pull request #660 from
Aman-Mittal/fix/restricted-user-dead-ends
add 6cf52a22 fix(e2e): attribute change-detection errors to the URL they
fired on
add 62f68c95 Merge pull request #659 from
shivaansh0610-LUFFY/fix/572-ng0100-cd-investigation
add 10d6328b test(e2e): stop two backend specs depending on a page they
can no longer reach
add 802b4cfb Merge pull request #661 from
Aman-Mittal/fix/backend-specs-reused-instance
add 737e2139 feat(shared): add a permission check for deciding what a
template offers
add 011ecd91 fix(rbac): withhold cross-domain links a reader cannot follow
add d51a7759 test(rbac): cover the group member link, and seed a group
that has one
add 1819fe6e Merge pull request #662 from
Aman-Mittal/fix/cross-domain-dead-end-links
add 3bbe9a63 fix(loans,savings): withhold transaction controls the
platform will refuse
add 6d335e9c Merge pull request #667 from
Aman-Mittal/fix/status-blind-transaction-controls
add 2d30ce8c chore(i18n): move nine feature areas onto the appTranslate
adapter pipe
add 9eafbf95 chore(i18n): move the remaining single-import components onto
appTranslate
add e6596a21 Merge pull request #668 from
Aman-Mittal/chore/i18n-adapter-batch-1
add c24e12cf fix(collection-sheet,data-table): repair the staff picker,
the empty sheet and the search help icon
add 6b423c99 test(collection-sheet): drive the spec through HTTP instead
of service spies
add bf2e0753 Merge pull request #669 from
Aman-Mittal/fix/collection-sheet-and-search-layout
add 59c32d61 docs: point contributors at the Fineract dev list and Matrix
rooms
add 8bcdf93e Merge pull request #673 from
Aman-Mittal/docs/community-channels
add 28e35294 fix(i18n): translate the last five hardcoded list headings
add ee58276f fix(i18n): label the recurring deposit and share product
lists as products
add 6fcff6f4 Merge pull request #674 from
opensource-joe/fix/388-i18n-headings
add 065cc175 fix(loan): display missing capitalized income fields
add 3977a059 test(loan): cover capitalized income fields
add 461f2702 feat(i18n): add capitalized income labels
add e6901566 Merge pull request #675 from
shivaansh0610-LUFFY/fix/672-capitalized-income
add 330064d6 test(e2e): pin the transaction controls to the states the
platform accepts
add 3e50a626 Merge pull request #676 from
Aman-Mittal/test/transaction-control-gating-e2e
add 0af9e163 refactor(loans): put loan and loan-transaction behind API
contracts
add c7d4f153 Merge pull request #677 from
Aman-Mittal/refactor/loan-api-adapters
add 5fe19cc7 test(e2e): cover the collection sheet filter against a real
Fineract
add 3e32f1c0 Merge pull request #681 from
Aman-Mittal/test/collection-sheet-e2e
add 40a699ae refactor(organization): put staff and holidays behind API
contracts
add 9a5f7d4d Merge pull request #686 from
Aman-Mittal/refactor/organization-api-adapters
add 5b84d664 refactor(i18n): migrate working capital to appTranslate
add 4bcf0c2d refactor(i18n): migrate system features to appTranslate
add 300e5e48 chore(lint): remove migrated ngx-translate suppressions
add 72d95861 Merge pull request #685 from
shivaansh0610-LUFFY/fix/683-i18n-adapter-migration
add e81bc383 refactor(lint): clear unicorn/no-array-sort baseline
violations
add 932efbca Merge pull request #688 from
rk-roshan-kr/fix/679-clear-unicorn-no-array-sort
add 4b15494b feat(api): add teller API contract and adapter
add 4a71967a refactor(tellers): migrate teller and cashier screens to API
boundary
add 6c8726e8 test(tellers): migrate cashier transaction coverage
add 5ee49f2b chore(lint): prune teller API suppressions and update docs
add a0fde51b Merge pull request #689 from
shivaansh0610-LUFFY/refactor/687-teller-api-boundary
add 3ac5dc74 fix(storage): clear no restricted globals baseline in tests
add 89f91480 Merge pull request #690 from
msranjana/fix/678-storage-test-baseline
add 5ee38b29 fix(security): send permission codes in Fineract's own
spelling
add 62882e8e test(e2e): assert refused loan actions as disabled, not absent
add e547a112 Merge pull request #692 from
Aman-Mittal/feat/non-admin-loan-flows-and-security-adapters
add 4d493fd5 test(e2e): drop an unused import from the non-admin loan
flows spec
add b6cc8f2f Merge pull request #694 from
Aman-Mittal/feat/non-admin-loan-flows-and-security-adapters
add a3004df1 fix(rbac): gate transaction routes on the code each command
needs
add 4a8016f0 fix(rbac): name permission codes the platform actually defines
add 7afc70ef test(e2e): cover savings duties under non-admin roles, and
invert the loan gate assertions
add e8aac9b6 test(e2e): reopen the savings view after an action, which
redirects to the list
add c2f0bdd0 fix(savings): require the payment type a deposit cannot be
made without
add 2c27faaf fix(scripts): stop disabling certificate validation to
refresh the snapshot
add 30d9b91a fix(ci): download each comment artifact by name, so the
diagram comment appears
add 7bb71137 test: retarget the office transactions dead-end at the door
it now closes
add f49c276c Merge pull request #695 from
Aman-Mittal/fix/route-permissions-per-command
add cd944621 chore(deps-dev): bump the testing group across 1 directory
with 2 updates
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (9824c224)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/testing-fed964820e (cd944621)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/ISSUE_TEMPLATE/config.yml | 13 +-
.github/ISSUE_TEMPLATE/feature_request.yml | 12 +
.github/pull_request_template.md | 18 +
.github/scripts/post-e2e-comments.js | 55 +-
.github/workflows/ci.yml | 44 +-
.github/workflows/codeql.yml | 4 +-
.github/workflows/pr-comments.yml | 57 +-
.rat-excludes | 8 +-
AGENTS.md | 10 +
CONTRIBUTING.md | 44 +
DOCS/ADAPTERS.md | 250 ++-
DOCS/CI_CHECKS.md | 121 +-
DOCS/DEPENDENCY_UPGRADES.md | 95 ++
DOCS/adr/0006-generated-api-boundary.md | 168 ++
README.md | 17 +
STYLE.md | 7 +-
angular.json | 18 +
deploy/nginx.conf.template | 6 +-
e2e/accounting-closure-backend.spec.ts | 211 +++
e2e/charge-refund.spec.ts | 205 +++
e2e/collateral-currency-search.spec.ts | 157 ++
e2e/collection-sheet.spec.ts | 91 ++
e2e/contract-termination.spec.ts | 193 +++
e2e/fixtures.ts | 177 +-
e2e/loan-approved-amount-revision.spec.ts | 150 ++
e2e/loan-delinquency-actions.spec.ts | 419 +++++
e2e/loan-flows-non-admin-roles.spec.ts | 407 +++++
e2e/loan-repayment-gating.spec.ts | 119 ++
e2e/loan-servicing-gaps.spec.ts | 90 +-
e2e/oidc-login-backend.spec.ts | 115 ++
e2e/oidc-login.spec.ts | 211 +++
e2e/rbac-backend-restricted-user.spec.ts | 35 +-
e2e/rbac-dead-end-controls.spec.ts | 202 +++
e2e/rbac-disabled-flag-backend.spec.ts | 167 ++
e2e/rbac-multi-permission.spec.ts | 41 +-
e2e/rbac-office-scoped-user.spec.ts | 200 +++
e2e/rbac-permissionless-user.spec.ts | 143 ++
e2e/report-parameter-backend.spec.ts | 27 +-
e2e/savings-flows-non-admin-roles.spec.ts | 361 +++++
e2e/savings-transaction-gating.spec.ts | 110 ++
e2e/utils/fineract-login.ts | 34 +
e2e/utils/seed-api.ts | 271 +++-
e2e/utils/ui-rbac.ts | 283 ++++
eslint-rules/no-generated-api-import.js | 148 ++
eslint-rules/no-generated-api-import.test.js | 131 ++
eslint-suppressions.json | 1686 ++++++++++++++------
eslint.config.js | 42 +-
package-lock.json | 214 ++-
package.json | 11 +-
playwright.config.ts | 12 +
public/api/fineract.json | 15 +-
public/api/fineract.provenance.json | 14 +-
scripts/check-nav-ids.mjs | 33 +-
scripts/check-permission-codes.mjs | 168 ++
scripts/check-route-permissions.mjs | 120 +-
scripts/check-template-text.mjs | 187 +++
scripts/check-translations.mjs | 213 ++-
scripts/fetch-permission-codes.sh | 51 +
scripts/ga-check.mjs | 66 +
scripts/i18n-coverage.json | 4 +
scripts/permission-codes.json | 738 +++++++++
scripts/pr-comment-actions.test.mjs | 237 ++-
scripts/snapshot-permission-codes.mjs | 137 ++
scripts/template-text-baseline.json | 1 +
security.md | 6 +-
.../model/getWorkingCapitalLoansLoanIdResponse.ts | 12 +-
src/app/api/model/postLoansLoanIdRequest.ts | 1 +
src/app/app.component.test.ts | 6 +-
src/app/app.component.ts | 4 +-
src/app/app.config.ts | 32 +-
.../core/adapters/api/accounting-closure.api.ts | 98 ++
src/app/core/adapters/api/api-surface.json | 5 +-
src/app/core/adapters/api/entity-notes.api.ts | 94 ++
.../api/fineract-accounting-closure.api.test.ts | 187 +++
.../api/fineract-accounting-closure.api.ts | 105 ++
src/app/core/adapters/api/fineract-date.ts | 55 +
.../adapters/api/fineract-entity-notes.api.test.ts | 185 +++
.../core/adapters/api/fineract-entity-notes.api.ts | 102 ++
.../core/adapters/api/fineract-holiday.api.test.ts | 225 +++
src/app/core/adapters/api/fineract-holiday.api.ts | 204 +++
.../api/fineract-loan-transaction.api.test.ts | 236 +++
.../adapters/api/fineract-loan-transaction.api.ts | 179 +++
.../core/adapters/api/fineract-loan.api.test.ts | 221 +++
src/app/core/adapters/api/fineract-loan.api.ts | 146 ++
.../core/adapters/api/fineract-office.api.test.ts | 233 +++
src/app/core/adapters/api/fineract-office.api.ts | 140 ++
.../core/adapters/api/fineract-role.api.test.ts | 189 +++
src/app/core/adapters/api/fineract-role.api.ts | 137 ++
.../core/adapters/api/fineract-staff.api.test.ts | 227 +++
src/app/core/adapters/api/fineract-staff.api.ts | 172 ++
.../core/adapters/api/fineract-teller.api.test.ts | 354 ++++
src/app/core/adapters/api/fineract-teller.api.ts | 324 ++++
.../core/adapters/api/fineract-user.api.test.ts | 204 +++
src/app/core/adapters/api/fineract-user.api.ts | 140 ++
.../core/adapters/api/holiday-rescheduling-type.ts | 38 +
src/app/core/adapters/api/holiday.api.ts | 136 ++
src/app/core/adapters/api/loan-transaction.api.ts | 159 ++
src/app/core/adapters/api/loan.api.ts | 154 ++
src/app/core/adapters/api/office.api.ts | 116 ++
src/app/core/adapters/api/role.api.ts | 156 ++
src/app/core/adapters/api/staff.api.ts | 145 ++
src/app/core/adapters/api/teller.api.ts | 213 +++
src/app/core/adapters/api/user.api.ts | 119 ++
src/app/core/adapters/i18n/i18n.adapter.ts | 2 +-
.../i18n/missing-translation.handler.test.ts | 117 ++
.../adapters/i18n/missing-translation.handler.ts | 123 ++
.../adapters/i18n/ngx-translate-i18n.adapter.ts | 2 +-
src/app/core/adapters/index.ts | 25 +
src/app/core/federation/remotes.test.ts | 67 +
src/app/core/federation/remotes.ts | 67 +
src/app/core/guards/command-permissions.test.ts | 115 ++
src/app/core/guards/command-permissions.ts | 150 ++
src/app/core/guards/permission.guard.test.ts | 101 +-
src/app/core/guards/permission.guard.ts | 30 +-
.../core/interceptors/error.interceptor.test.ts | 42 +
src/app/core/interceptors/error.interceptor.ts | 25 +-
src/app/core/services/auth.service.test.ts | 44 +-
src/app/core/services/config.service.test.ts | 18 +
src/app/core/services/config.service.ts | 21 +
.../services/institution-config.service.test.ts | 23 +-
.../services/navigation-config.service.test.ts | 7 -
src/app/core/services/navigation-config.service.ts | 9 +-
.../accounting-closure-form.component.test.ts | 85 +-
.../accounting-closure-form.component.ts | 54 +-
.../accounting-closures-list.component.test.ts | 80 +-
.../accounting-closures-list.component.ts | 32 +-
.../accounting-rule-form.component.test.ts | 77 +
.../accounting/accounting-rule-form.component.ts | 54 +-
.../charges/charge-form.component.test.ts} | 47 +-
.../accounting/charges/charge-form.component.ts | 42 +-
.../accounting/charges/charges-list.component.ts | 4 +-
.../accounting/chart-of-accounts.component.ts | 36 +-
...ancial-activity-mapping-form.component.test.ts} | 46 +-
.../financial-activity-mapping-form.component.ts | 12 +-
.../financial-activity-mappings-list.component.ts | 8 +-
.../accounting/gl-account-form.component.ts | 64 +-
.../accounting/journal-entries-list.component.ts | 16 +-
.../journal-entry-form.component.test.ts | 11 +
.../accounting/journal-entry-form.component.ts | 26 +-
.../provisioning-categories-form.component.ts | 22 +-
.../provisioning-categories-list.component.ts | 4 +-
.../provisioning-criteria-form.component.ts | 20 +-
.../provisioning-criteria-list.component.ts | 4 +-
.../provisioning-entries-form.component.ts | 16 +-
.../provisioning-entries-list.component.ts | 3 +-
.../run-accruals/run-accruals.component.ts | 16 +-
.../batch-operations/batch-operations.component.ts | 18 +-
.../admin/cob-tools/cob-tools.component.ts | 4 +-
.../external-events/external-events.component.ts | 4 +-
.../admin/inline-job/inline-job.component.ts | 18 +-
.../progressive-loan-model.component.ts | 4 +-
.../admin/wc-cob-tools/wc-cob-tools.component.ts | 4 +-
.../forgot-password/forgot-password.component.ts | 4 +-
.../features/calendars/calendar-form.component.ts | 24 +-
.../features/calendars/calendars-list.component.ts | 4 +-
.../email-campaign-form.component.ts | 36 +-
.../email-campaigns-list.component.ts | 4 +-
.../email-messages.component.test.ts} | 48 +-
.../email-messages/email-messages.component.ts | 66 +-
.../sms-campaign-form.component.test.ts} | 49 +-
.../sms-campaigns/sms-campaign-form.component.ts | 10 +-
.../sms-campaigns/sms-campaigns-list.component.ts | 4 +-
src/app/features/centers/center-form.component.ts | 36 +-
.../features/centers/center-view.component.test.ts | 2 +-
src/app/features/centers/center-view.component.ts | 16 +-
src/app/features/centers/centers-list.component.ts | 2 -
.../charges/client-charge-form.component.test.ts | 5 +-
.../charges/client-charge-form.component.ts | 26 +-
.../charges/client-charges-list.component.test.ts | 5 +-
.../charges/client-charges-list.component.ts | 9 +-
.../clients/client-action-dialog.component.test.ts | 5 +-
.../clients/client-action-dialog.component.ts | 22 +-
.../features/clients/client-form.component.test.ts | 11 +-
src/app/features/clients/client-form.component.ts | 4 +-
.../features/clients/client-view.component.test.ts | 7 +-
src/app/features/clients/client-view.component.ts | 303 ++--
src/app/features/clients/clients-list.component.ts | 4 +-
.../client-collateral-form.component.test.ts | 5 +-
.../collateral/client-collateral-form.component.ts | 22 +-
.../client-collateral-list.component.test.ts | 5 +-
.../collateral/client-collateral-list.component.ts | 13 +-
.../clients/kyc/client-address-form.component.ts | 66 +-
.../kyc/client-document-form.component.test.ts | 5 +-
.../clients/kyc/client-document-form.component.ts | 24 +-
.../kyc/client-family-member-form.component.ts | 64 +-
.../kyc/client-identifier-form.component.ts | 28 +-
.../clients/kyc/client-note-form.component.test.ts | 44 +-
.../clients/kyc/client-note-form.component.ts | 65 +-
.../tabs/client-addresses-list.component.ts | 10 +-
.../tabs/client-documents-list.component.test.ts | 12 +-
.../tabs/client-documents-list.component.ts | 15 +-
.../tabs/client-family-members-list.component.ts | 14 +-
.../tabs/client-identifiers-list.component.ts | 14 +-
.../tabs/client-notes-list.component.test.ts | 31 +-
.../clients/tabs/client-notes-list.component.ts | 34 +-
.../client-transactions-list.component.test.ts | 5 +-
.../client-transactions-list.component.ts | 9 +-
.../collection-sheet.component.test.ts | 192 +++
.../collection-sheet/collection-sheet.component.ts | 107 +-
.../dashboard/system-status.component.test.ts | 52 +
.../features/dashboard/system-status.component.ts | 265 +--
.../asset-owner-view.component.test.ts | 95 ++
.../asset-owner-view/asset-owner-view.component.ts | 36 +-
.../fintech/asset-owners-list.component.ts | 18 +-
.../features/groups/group-form.component.test.ts | 5 +-
src/app/features/groups/group-form.component.ts | 36 +-
.../features/groups/group-note-form.component.ts | 34 +-
src/app/features/groups/group-view.component.ts | 15 +-
.../groups/tabs/group-notes-list.component.ts | 30 +-
.../interop/interop-account-view.component.ts | 26 +-
.../features/interop/interop-health.component.ts | 10 +-
.../interop/interop-party-lookup.component.ts | 26 +-
.../features/interop/interop-quotes.component.ts | 26 +-
.../interop-transfers.component.test.ts} | 47 +-
.../interop/interop-transfers.component.ts | 42 +-
.../bulk-loan-reassignment.component.ts | 20 +-
.../bulk-reassignment.component.test.ts | 5 +-
.../bulk-reassignment.component.ts | 28 +-
.../loans/charges/loan-charge-form.component.ts | 22 +-
.../loans/charges/loan-charges-list.component.ts | 13 +-
.../cob-catchup/loan-cob-catchup.component.ts | 4 +-
.../collateral/collateral-form.component.test.ts | 5 +-
.../loans/collateral/collateral-form.component.ts | 38 +-
.../collateral/collateral-list.component.test.ts | 5 +-
.../loans/collateral/collateral-list.component.ts | 14 +-
.../guarantors/guarantor-form.component.test.ts | 5 +-
.../loans/guarantors/guarantor-form.component.ts | 56 +-
.../guarantors/guarantors-list.component.test.ts | 5 +-
.../loans/guarantors/guarantors-list.component.ts | 15 +-
.../interest-pause-form.component.test.ts | 5 +-
.../interest-pause-form.component.ts | 18 +-
.../interest-pauses-list.component.test.ts | 5 +-
.../interest-pauses-list.component.ts | 13 +-
.../loan-account-lock.component.ts | 4 +-
.../loans/loan-approved-amount-dialog.component.ts | 149 ++
.../loans/loan-approved-amount-dialogs.test.ts | 147 ++
...ailable-disbursement-amount-dialog.component.ts | 145 ++
src/app/features/loans/loan-charge-refund.test.ts | 114 ++
src/app/features/loans/loan-charge-refund.ts | 78 +
.../loans/loan-chargeback-dialog.component.ts | 245 +++
.../features/loans/loan-command-dialogs.test.ts | 115 ++
.../loan-contract-termination-command.test.ts | 94 ++
.../loans/loan-contract-termination.test.ts | 70 +
.../features/loans/loan-contract-termination.ts | 58 +
src/app/features/loans/loan-form.component.ts | 156 +-
.../loan-schedule-modify.component.test.ts | 68 +
.../loan-schedule-modify.component.ts | 20 +-
.../loans/loan-transaction-form.component.test.ts | 212 +++
.../loans/loan-transaction-form.component.ts | 135 +-
src/app/features/loans/loan-view.component.test.ts | 337 +++-
src/app/features/loans/loan-view.component.ts | 321 +++-
.../features/loans/loans-list.component.test.ts | 196 +++
src/app/features/loans/loans-list.component.ts | 100 +-
.../loans/loans.routes.test.ts} | 38 +-
src/app/features/loans/loans.routes.ts | 13 +-
.../loans-point-in-time.component.test.ts} | 48 +-
.../point-in-time/loans-point-in-time.component.ts | 36 +-
.../post-dated-check-form.component.test.ts | 5 +-
.../post-dated-check-form.component.ts | 32 +-
.../post-dated-checks-list.component.test.ts | 5 +-
.../post-dated-checks-list.component.ts | 13 +-
.../rescheduling/reschedule-form.component.test.ts | 71 +
.../rescheduling/reschedule-form.component.ts | 60 +-
.../reschedule-requests-list.component.ts | 6 +-
.../tabs/loan-delinquency-action.model.test.ts | 83 +
.../loans/tabs/loan-delinquency-action.model.ts | 81 +
...loan-delinquency-pause-dialog.component.test.ts | 114 ++
.../loan-delinquency-pause-dialog.component.ts | 203 +++
.../tabs/loan-delinquency-tab.component.test.ts | 287 +++-
.../loans/tabs/loan-delinquency-tab.component.ts | 223 ++-
.../loans/tabs/loan-originators-tab.component.ts | 2 +-
.../loans/transaction-detail-dialog.component.ts | 89 +-
src/app/features/login/login.component.test.ts | 43 +
src/app/features/login/login.component.ts | 63 +-
.../features/meetings/meeting-form.component.ts | 18 +-
.../features/meetings/meetings-list.component.ts | 4 +-
.../notifications/notifications-list.component.ts | 4 +-
.../account-number-format-form.component.ts | 22 +-
.../account-number-formats-list.component.ts | 4 +-
.../currencies/currencies.component.test.ts | 147 ++
.../currencies/currencies.component.ts | 120 +-
.../organization/funds/fund-form.component.ts | 24 +-
.../organization/funds/funds-list.component.ts | 8 +-
.../group-levels/group-levels-list.component.ts | 3 +-
.../office-transaction-form.component.ts | 28 +-
.../office-transactions-list.component.test.ts | 122 ++
.../office-transactions-list.component.ts | 190 ++-
.../offices/office-form.component.test.ts | 80 +-
.../organization/offices/office-form.component.ts | 114 +-
.../organization/offices/office-view.component.ts | 25 +-
.../offices/offices-list.component.test.ts | 97 +-
.../organization/offices/offices-list.component.ts | 47 +-
.../features/organization/organization.routes.ts | 22 +-
.../payment-types/payment-type-form.component.ts | 30 +-
.../payment-types/payment-types-list.component.ts | 4 +-
.../staff/staff-form.component.test.ts | 131 +-
.../organization/staff/staff-form.component.ts | 173 +-
.../staff/staff-list.component.test.ts | 129 +-
.../organization/staff/staff-list.component.ts | 50 +-
.../products/account-action-form.component.test.ts | 5 +-
.../products/account-action-form.component.ts | 50 +-
.../product-accounting-section.component.test.ts | 4 +-
.../collateral-management-form.component.test.ts | 18 +-
.../collateral-management-form.component.ts | 69 +-
.../collateral-management-list.component.ts | 13 +-
.../products/deposit-account-view.component.ts | 4 +-
...xed-deposit-transactions-list.component.test.ts | 5 +-
.../fixed-deposit-transactions-list.component.ts | 3 +-
.../fixed-deposit-form.component.test.ts | 5 +-
.../fixed-deposits/fixed-deposit-form.component.ts | 70 +-
.../fixed-deposit-product-form.component.test.ts | 5 +-
.../fixed-deposit-product-form.component.ts | 60 +-
.../fixed-deposit-products-list.component.test.ts | 5 +-
.../fixed-deposit-products-list.component.ts | 8 +-
.../fixed-deposits-list.component.test.ts | 5 +-
.../fixed-deposits-list.component.ts | 12 +-
.../floating-rate-form.component.test.ts | 27 +-
.../floating-rates/floating-rate-form.component.ts | 41 +-
.../floating-rates-list.component.test.ts | 5 +-
.../floating-rates-list.component.ts | 12 +-
.../interest-rate-chart-form.component.test.ts | 5 +-
.../interest-rate-chart-form.component.ts | 24 +-
.../interest-rate-chart-slabs.component.ts | 53 +-
.../interest-rate-charts-list.component.ts | 17 +-
.../loan-originator-form.component.test.ts | 5 +-
.../loan-originator-form.component.ts | 36 +-
.../loan-originators-list.component.ts | 13 +-
.../products/loan-product-form.component.test.ts | 5 +-
.../products/loan-product-form.component.ts | 300 ++--
.../products/loan-product-view.component.ts | 34 +-
.../products/loan-products-list.component.ts | 15 +-
.../on-hold-transactions-list.component.test.ts | 5 +-
.../on-hold-transactions-list.component.ts | 3 +-
.../payment-credit-allocation-editor.component.ts | 40 +-
.../products/product-mix/product-mix.component.ts | 19 +-
src/app/features/products/products.routes.ts | 7 +-
.../products/rates/rate-form.component.test.ts | 5 +-
.../features/products/rates/rate-form.component.ts | 30 +-
.../products/rates/rates-list.component.test.ts | 5 +-
.../products/rates/rates-list.component.ts | 10 +-
...ring-deposit-transaction-form.component.test.ts | 5 +-
...recurring-deposit-transaction-form.component.ts | 22 +-
.../recurring-deposit-form.component.ts | 88 +-
.../recurring-deposit-product-form.component.ts | 54 +-
.../recurring-deposit-products-list.component.ts | 10 +-
.../recurring-deposits-list.component.ts | 12 +-
.../products/savings-account-form.component.ts | 42 +-
...ings-account-transaction-form.component.test.ts | 5 +-
.../savings-account-transaction-form.component.ts | 18 +-
.../savings-account-view.component.test.ts | 58 +
.../products/savings-account-view.component.ts | 83 +-
.../savings-charge-form.component.test.ts | 5 +-
.../savings-charge-form.component.ts | 28 +-
.../savings-charges-list.component.ts | 9 +-
.../products/savings-officer-dialog.component.ts | 12 +-
.../products/savings-product-form.component.ts | 40 +-
.../products/savings-products-list.component.ts | 6 +-
.../share-dividend-form.component.test.ts | 5 +-
.../share-dividend-form.component.ts | 22 +-
.../share-dividends-list.component.ts | 9 +-
.../shares/share-account-form.component.test.ts | 5 +-
.../shares/share-account-form.component.ts | 46 +-
.../shares/share-accounts-list.component.test.ts | 5 +-
.../shares/share-accounts-list.component.ts | 10 +-
.../shares/share-product-form.component.ts | 45 +-
.../shares/share-products-list.component.ts | 8 +-
.../tax-component-form.component.test.ts | 5 +-
.../tax-components/tax-component-form.component.ts | 22 +-
.../tax-components-list.component.test.ts | 5 +-
.../tax-components-list.component.ts | 6 +-
.../tax-groups/tax-group-form.component.test.ts | 5 +-
.../tax-groups/tax-group-form.component.ts | 24 +-
.../tax-groups/tax-groups-list.component.test.ts | 5 +-
.../tax-groups/tax-groups-list.component.ts | 6 +-
src/app/features/profile/user-profile.component.ts | 39 +-
.../reporting/report-execution.service.test.ts | 2 +-
.../features/reporting/reports-list.component.ts | 8 +-
src/app/features/reporting/run-report.component.ts | 4 +-
src/app/features/search/global-search.component.ts | 46 +-
.../audit-logs/audit-logs-list.component.test.ts | 78 +
.../audit-logs/audit-logs-list.component.ts | 132 +-
.../security/roles/role-form.component.test.ts | 157 +-
.../features/security/roles/role-form.component.ts | 201 +--
.../security/roles/roles-list.component.test.ts | 31 +-
.../security/roles/roles-list.component.ts | 22 +-
.../features/security/users/user-form.component.ts | 184 ++-
.../security/users/users-list.component.ts | 20 +-
.../edit-configuration-dialog.component.ts | 16 +-
.../settings/global-configurations.component.ts | 8 +-
.../settings/holiday-form.component.test.ts | 119 +-
.../features/settings/holiday-form.component.ts | 166 +-
.../settings/holidays-list.component.test.ts | 107 +-
.../features/settings/holidays-list.component.ts | 86 +-
.../settings/two-factor-config.component.ts | 4 +-
.../settings/working-days.component.test.ts | 35 +-
.../features/settings/working-days.component.ts | 34 +-
.../spm/likelihood/likelihood.component.ts | 22 +-
.../spm/poverty-line/poverty-line.component.ts | 24 +-
.../spm/scorecards/scorecards.component.ts | 3 +-
.../survey-responses/survey-responses.component.ts | 30 +-
.../spm/surveys/spm-surveys-form.component.ts | 44 +-
.../spm/surveys/spm-surveys-list.component.ts | 12 +-
.../adhoc-query/adhoc-query-form.component.ts | 34 +-
.../adhoc-query/adhoc-query-list.component.ts | 15 +-
.../system/bulk-import/bulk-import.component.ts | 20 +-
.../business-dates/business-dates.component.ts | 28 +-
.../business-steps/business-steps.component.ts | 22 +-
src/app/features/system/cache/cache.component.ts | 10 +-
.../features/system/codes/code-form.component.ts | 18 +-
.../system/codes/code-value-form.component.ts | 30 +-
.../system/codes/code-values-list.component.ts | 14 +-
.../features/system/codes/codes-list.component.ts | 16 +-
.../credit-bureau-config.component.ts | 38 +-
.../data-tables/datatables-form.component.ts | 50 +-
.../data-tables/datatables-list.component.ts | 15 +-
.../delinquency-management.component.ts | 29 +-
.../entity-data-table-checks-form.component.ts | 28 +-
.../entity-data-table-checks-list.component.ts | 9 +-
.../entity-mapping-form.component.ts | 28 +-
.../entity-mapping-list.component.ts | 17 +-
.../external-events/external-events.component.ts | 10 +-
.../external-services.component.ts | 16 +-
.../field-configuration.component.ts | 8 +-
.../features/system/hooks/hooks-form.component.ts | 22 +-
.../features/system/hooks/hooks-list.component.ts | 15 +-
.../instance-mode/instance-mode.component.ts | 16 +-
.../loan-product-details.component.ts | 3 +-
.../notifications-config.component.ts | 12 +-
.../system/oidc-config/oidc-config.component.ts | 55 +-
.../password-preferences.component.ts | 10 +-
.../system/permissions/permissions.component.ts | 16 +-
.../report-definitions-list.component.ts | 12 +-
.../report-mailing-jobs-form.component.ts | 58 +-
.../report-mailing-jobs-list.component.ts | 37 +-
.../scheduler-job-history.component.ts | 24 +-
.../scheduler-jobs-list.component.ts | 23 +-
src/app/features/system/sms/sms-form.component.ts | 24 +-
src/app/features/system/sms/sms-list.component.ts | 13 +-
.../system/templates/template-form.component.ts | 34 +-
.../templates/templates-list.component.test.ts | 121 ++
.../system/templates/templates-list.component.ts | 176 +-
.../checker-inbox/view-payload-dialog.component.ts | 6 +-
.../tellers/cashiers/cashier-form.component.ts | 85 +-
.../cashier-transaction-form.component.test.ts | 57 +-
.../cashiers/cashier-transaction-form.component.ts | 75 +-
.../cashier-transactions.component.test.ts | 58 +-
.../cashiers/cashier-transactions.component.ts | 68 +-
.../cashiers/cashiers-list.component.test.ts | 70 +
.../tellers/cashiers/cashiers-list.component.ts | 69 +-
.../features/tellers/teller-form.component.test.ts | 144 +-
src/app/features/tellers/teller-form.component.ts | 148 +-
.../tellers/tellers-list.component.test.ts | 75 +
src/app/features/tellers/tellers-list.component.ts | 42 +-
.../account-transfer-form.component.test.ts | 154 ++
.../transfers/account-transfer-form.component.ts | 357 ++++-
.../transfers/account-transfers-list.component.ts | 6 +-
.../standing-instruction-form.component.test.ts | 8 +
.../standing-instruction-form.component.ts | 112 +-
.../standing-instruction-history.component.ts | 3 +-
.../standing-instructions-list.component.ts | 8 +-
.../breach/wc-breach-form.component.ts | 38 +-
.../breach/wc-breach-list.component.ts | 18 +-
.../wc-loan-product-form.component.ts | 106 +-
.../wc-loan-products-list.component.ts | 18 +-
.../wc-loan-account-lock.component.ts | 20 +-
.../wc-loan-cob-catchup.component.ts | 30 +-
.../loans/wc-loan-action-form.component.ts | 74 +-
.../loans/wc-loan-form.component.ts | 70 +-
.../loans/wc-loan-view.component.ts | 244 +--
.../loans/wc-loans-list.component.ts | 8 +-
.../near-breach/wc-near-breach-form.component.ts | 34 +-
.../near-breach/wc-near-breach-list.component.ts | 18 +-
src/app/layout/header.component.ts | 4 +-
src/app/layout/inactivity-dialog.component.test.ts | 5 +-
src/app/layout/inactivity-dialog.component.ts | 12 +-
src/app/layout/sidebar.component.test.ts | 5 +-
src/app/layout/sidebar.component.ts | 16 +-
.../charts/donut-chart.component.test.ts | 14 +
.../components/charts/donut-chart.component.ts | 15 +-
.../client-search/client-search.component.ts | 4 +-
.../confirm-dialog/confirm-dialog.component.ts | 4 +-
.../create-office-dialog.component.test.ts | 56 +-
.../create-office-dialog.component.ts | 38 +-
.../data-table/data-table.component.test.ts | 52 +-
.../components/data-table/data-table.component.ts | 88 +-
.../datatable-entry-dialog.component.ts | 4 +-
.../entity-datatables.component.test.ts | 5 +-
.../entity-notes/entity-notes.component.ts | 73 +-
.../guidance-tour/guidance-tour.component.test.ts | 31 +-
.../guidance-tour/guidance-tour.component.ts | 4 +-
.../paginator/paginator.component.test.ts | 6 +-
.../status-badge/status-badge.component.test.ts | 14 +
.../status-badge/status-badge.component.ts | 27 +-
.../has-institution-feature.directive.test.ts | 12 +-
src/app/shared/pipes/date-time.pipe.test.ts | 169 ++
src/app/shared/pipes/date-time.pipe.ts | 65 +
src/app/shared/utils/permission-check.test.ts | 108 ++
src/app/shared/utils/permission-check.ts | 60 +
src/app/testing/i18n-testing.ts | 6 +-
src/app/testing/render.ts | 7 +-
src/app/testing/translated-text.ts | 90 ++
.../searchable-select.component.test.ts | 175 ++
.../searchable-select.component.ts | 287 ++++
src/assets/i18n/en.json | 175 +-
src/assets/i18n/hi.json | 120 +-
src/assets/i18n/ko.json | 1 -
src/main.ts | 43 +-
src/testing/vitest-setup.ts | 42 +
tsconfig.json | 3 +-
509 files changed, 27816 insertions(+), 6070 deletions(-)
create mode 100644 DOCS/DEPENDENCY_UPGRADES.md
create mode 100644 DOCS/adr/0006-generated-api-boundary.md
create mode 100644 e2e/accounting-closure-backend.spec.ts
create mode 100644 e2e/charge-refund.spec.ts
create mode 100644 e2e/collateral-currency-search.spec.ts
create mode 100644 e2e/collection-sheet.spec.ts
create mode 100644 e2e/contract-termination.spec.ts
create mode 100644 e2e/loan-approved-amount-revision.spec.ts
create mode 100644 e2e/loan-delinquency-actions.spec.ts
create mode 100644 e2e/loan-flows-non-admin-roles.spec.ts
create mode 100644 e2e/loan-repayment-gating.spec.ts
create mode 100644 e2e/oidc-login-backend.spec.ts
create mode 100644 e2e/oidc-login.spec.ts
create mode 100644 e2e/rbac-dead-end-controls.spec.ts
create mode 100644 e2e/rbac-disabled-flag-backend.spec.ts
create mode 100644 e2e/rbac-office-scoped-user.spec.ts
create mode 100644 e2e/rbac-permissionless-user.spec.ts
create mode 100644 e2e/savings-flows-non-admin-roles.spec.ts
create mode 100644 e2e/savings-transaction-gating.spec.ts
create mode 100644 e2e/utils/ui-rbac.ts
create mode 100644 eslint-rules/no-generated-api-import.js
create mode 100644 eslint-rules/no-generated-api-import.test.js
create mode 100644 scripts/check-permission-codes.mjs
create mode 100644 scripts/check-template-text.mjs
create mode 100644 scripts/fetch-permission-codes.sh
create mode 100644 scripts/i18n-coverage.json
create mode 100644 scripts/permission-codes.json
create mode 100644 scripts/snapshot-permission-codes.mjs
create mode 100644 scripts/template-text-baseline.json
create mode 100644 src/app/core/adapters/api/accounting-closure.api.ts
create mode 100644 src/app/core/adapters/api/entity-notes.api.ts
create mode 100644
src/app/core/adapters/api/fineract-accounting-closure.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-accounting-closure.api.ts
create mode 100644 src/app/core/adapters/api/fineract-date.ts
create mode 100644 src/app/core/adapters/api/fineract-entity-notes.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-entity-notes.api.ts
create mode 100644 src/app/core/adapters/api/fineract-holiday.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-holiday.api.ts
create mode 100644
src/app/core/adapters/api/fineract-loan-transaction.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-loan-transaction.api.ts
create mode 100644 src/app/core/adapters/api/fineract-loan.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-loan.api.ts
create mode 100644 src/app/core/adapters/api/fineract-office.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-office.api.ts
create mode 100644 src/app/core/adapters/api/fineract-role.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-role.api.ts
create mode 100644 src/app/core/adapters/api/fineract-staff.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-staff.api.ts
create mode 100644 src/app/core/adapters/api/fineract-teller.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-teller.api.ts
create mode 100644 src/app/core/adapters/api/fineract-user.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-user.api.ts
create mode 100644 src/app/core/adapters/api/holiday-rescheduling-type.ts
create mode 100644 src/app/core/adapters/api/holiday.api.ts
create mode 100644 src/app/core/adapters/api/loan-transaction.api.ts
create mode 100644 src/app/core/adapters/api/loan.api.ts
create mode 100644 src/app/core/adapters/api/office.api.ts
create mode 100644 src/app/core/adapters/api/role.api.ts
create mode 100644 src/app/core/adapters/api/staff.api.ts
create mode 100644 src/app/core/adapters/api/teller.api.ts
create mode 100644 src/app/core/adapters/api/user.api.ts
create mode 100644
src/app/core/adapters/i18n/missing-translation.handler.test.ts
create mode 100644 src/app/core/adapters/i18n/missing-translation.handler.ts
create mode 100644 src/app/core/federation/remotes.test.ts
create mode 100644 src/app/core/federation/remotes.ts
create mode 100644 src/app/core/guards/command-permissions.test.ts
create mode 100644 src/app/core/guards/command-permissions.ts
create mode 100644
src/app/features/accounting/accounting-rule-form.component.test.ts
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
accounting/charges/charge-form.component.test.ts} (53%)
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
accounting/financial-activity-mapping-form.component.test.ts} (50%)
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
campaigns/email-messages/email-messages.component.test.ts} (53%)
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
campaigns/sms-campaigns/sms-campaign-form.component.test.ts} (53%)
create mode 100644
src/app/features/collection-sheet/collection-sheet.component.test.ts
create mode 100644
src/app/features/fintech/asset-owner-view/asset-owner-view.component.test.ts
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
interop/interop-transfers.component.test.ts} (50%)
create mode 100644
src/app/features/loans/loan-approved-amount-dialog.component.ts
create mode 100644 src/app/features/loans/loan-approved-amount-dialogs.test.ts
create mode 100644
src/app/features/loans/loan-available-disbursement-amount-dialog.component.ts
create mode 100644 src/app/features/loans/loan-charge-refund.test.ts
create mode 100644 src/app/features/loans/loan-charge-refund.ts
create mode 100644 src/app/features/loans/loan-chargeback-dialog.component.ts
create mode 100644
src/app/features/loans/loan-contract-termination-command.test.ts
create mode 100644 src/app/features/loans/loan-contract-termination.test.ts
create mode 100644 src/app/features/loans/loan-contract-termination.ts
create mode 100644
src/app/features/loans/loan-schedule-modify/loan-schedule-modify.component.test.ts
create mode 100644
src/app/features/loans/loan-transaction-form.component.test.ts
create mode 100644 src/app/features/loans/loans-list.component.test.ts
copy src/app/{core/guards/auth.guard.ts =>
features/loans/loans.routes.test.ts} (52%)
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
loans/point-in-time/loans-point-in-time.component.test.ts} (53%)
create mode 100644
src/app/features/loans/rescheduling/reschedule-form.component.test.ts
create mode 100644
src/app/features/loans/tabs/loan-delinquency-action.model.test.ts
create mode 100644 src/app/features/loans/tabs/loan-delinquency-action.model.ts
create mode 100644
src/app/features/loans/tabs/loan-delinquency-pause-dialog.component.test.ts
create mode 100644
src/app/features/loans/tabs/loan-delinquency-pause-dialog.component.ts
create mode 100644
src/app/features/organization/currencies/currencies.component.test.ts
create mode 100644
src/app/features/organization/office-transactions/office-transactions-list.component.test.ts
create mode 100644
src/app/features/system/templates/templates-list.component.test.ts
create mode 100644
src/app/features/tellers/cashiers/cashiers-list.component.test.ts
create mode 100644 src/app/features/tellers/tellers-list.component.test.ts
create mode 100644 src/app/shared/pipes/date-time.pipe.test.ts
create mode 100644 src/app/shared/pipes/date-time.pipe.ts
create mode 100644 src/app/shared/utils/permission-check.test.ts
create mode 100644 src/app/shared/utils/permission-check.ts
create mode 100644 src/app/testing/translated-text.ts
create mode 100644
src/app/ui/searchable-select/searchable-select.component.test.ts
create mode 100644 src/app/ui/searchable-select/searchable-select.component.ts