From 6dc12692cdc91f3ff62871c04e12f31ccbb3efd0 Mon Sep 17 00:00:00 2001
From: Adrian Andersen <adrianandersen@protonmail.com>
Date: Wed, 22 Jan 2025 18:59:28 +0100
Subject: [PATCH] feat: add AdonisJS alongside Express

---
 backend/.env.example                          |    1 +
 backend/package.json                          |   15 +-
 backend/src/adonisrc.ts                       |   31 +
 backend/src/app/exceptions/handler.ts         |   12 +
 .../container_bindings_middleware.ts          |   12 +
 .../force_json_response_middleware.ts         |   11 +
 backend/src/bin/console.ts                    |   25 +
 backend/src/bin/server.ts                     |   25 +
 backend/src/bin/test.ts                       |   38 +-
 backend/src/collections/bl-collections.ts     |   43 -
 backend/src/config/app.ts                     |   20 +
 backend/src/config/bodyparser.ts              |   27 +
 backend/src/config/cors.ts                    |   13 +
 backend/src/config/hash.ts                    |   21 +
 backend/src/config/logger.ts                  |   27 +
 backend/src/{ => express}/auth/blid.ts        |    2 +-
 .../auth/external/facebook.auth.ts            |   13 +-
 .../auth/external/google.auth.ts              |   13 +-
 .../auth/local/hashed-password-generator.ts   |    4 +-
 .../auth/local/local-login-creator.ts         |    4 +-
 .../local/local-login-password.validator.ts   |    2 +-
 .../auth/local/local-login.handler.ts         |   12 +-
 .../auth/local/local-login.validator.ts       |    8 +-
 .../{ => express}/auth/local/local.auth.ts    |    8 +-
 .../auth/local/provider-id-generator.ts       |    2 +-
 .../auth/local/salt-generator.ts              |    0
 .../{ => express}/auth/permission.service.ts  |    0
 .../access-token/access-token.creator.ts      |    6 +-
 .../token/refresh/refresh-token.creator.ts    |    4 +-
 .../token/refresh/refresh-token.validator.ts  |    2 +-
 .../auth/token/token.endpoint.ts              |    8 +-
 .../{ => express}/auth/token/token.handler.ts |    6 +-
 .../{ => express}/auth/user/user-provider.ts  |    6 +-
 .../{ => express}/auth/user/user.handler.ts   |   10 +-
 .../bl-error/bl-error.handler.ts              |    2 +-
 backend/src/{ => express}/blc/date.service.ts |    0
 .../collection-endpoint-auth.ts               |    4 +-
 .../collection-endpoint-creator.ts            |   14 +-
 .../collection-endpoint-delete.ts             |    4 +-
 .../collection-endpoint-document-auth.ts      |    6 +-
 .../collection-endpoint-get-all.ts            |    8 +-
 .../collection-endpoint-get-id.ts             |    4 +-
 .../collection-endpoint-method.ts             |   19 +-
 .../collection-endpoint-on-request.ts         |    4 +-
 .../collection-endpoint-operation.ts          |    6 +-
 .../collection-endpoint-patch.ts              |    4 +-
 .../collection-endpoint-post.ts               |    4 +-
 .../collection-endpoint-put.ts                |    4 +-
 .../src/express/collections/bl-collections.ts |   43 +
 .../branch-item/branch-item.collection.ts     |    2 +-
 .../collections/branch/branch.collection.ts   |    4 +-
 .../branch/hook/branch-get.hook.ts            |    4 +-
 .../collections/company/company.collection.ts |    2 +-
 ...customer-item-generate-report.operation.ts |    2 +-
 .../customer-item/customer-item.collection.ts |    8 +-
 .../customer-have-active-customer-items.ts    |    6 +-
 .../helpers/customer-item-active-blid.ts      |    6 +-
 .../helpers/customer-item-active.ts           |    0
 .../helpers/customer-item-handler.ts          |    4 +-
 .../order-to-customer-item-generator.ts       |    2 +-
 .../hooks/customer-item-post.hook.ts          |    8 +-
 .../public-blid-lookup.operation.ts           |    2 +-
 .../validators/customer-item-validator.ts     |    2 +-
 .../delivery/delivery.collection.ts           |    8 +-
 .../deliveryBranch/delivery-branch-handler.ts |    0
 .../deliveryBring/bringDelivery.service.ts    |   10 +-
 .../helpers/deliveryBring/bringDelivery.ts    |    0
 .../deliveryBring/delivery-bring-handler.ts   |    2 +-
 .../deliveryHandler/delivery-handler.ts       |    4 +-
 .../deliveryValidator/delivery-validator.ts   |    6 +-
 .../delivery/hooks/delivery.patch.hook.ts     |    8 +-
 .../delivery/hooks/delivery.post.hook.ts      |    8 +-
 .../postal-code-lookup.operation.ts           |    6 +-
 .../editable-text/editable-text.collection.ts |    4 +-
 .../hooks/editable-text.put.hook.ts           |    2 +-
 .../email-validation.collection.ts            |    6 +-
 .../email-validation/email-validation.ts      |    0
 .../helpers/email-validation.helper.ts        |    6 +-
 .../hooks/email-validation-post.hook.ts       |    6 +-
 .../email-validation-confirm.operation.ts     |    8 +-
 .../helpers/customer-invoice-active.ts        |    6 +-
 .../invoice/helpers/invoice-active.ts         |    0
 .../collections/invoice/invoice.collection.ts |    2 +-
 .../collections/item/item.collection.ts       |    2 +-
 .../message/helper/message-helper.ts          |    4 +-
 .../message/hooks/message-post.hook.ts        |   10 +-
 .../collections/message/message.collection.ts |    8 +-
 .../operations/sendgrid-event.operation.ts    |    4 +-
 .../operations/twillio-sms-event.operation.ts |    4 +-
 .../helpers/opening-hour-helper.ts            |    2 +-
 .../opening-hour/opening-hour.collection.ts   |    2 +-
 .../helpers/order-active/order-active.ts      |    4 +-
 .../order-item-moved-from-order-handler.ts    |    4 +-
 .../order-placed-handler.ts                   |   14 +-
 .../item-validator/item-validator.ts          |    0
 .../order-field-validator.ts                  |    5 +-
 .../order-item-buy-validator.ts               |    4 +-
 .../order-item-extend-validator.ts            |    2 +-
 .../order-item-partly-payment-validator.ts    |    2 +-
 .../order-item-rent-period-validator.ts       |    8 +-
 .../order-item-rent-validator.ts              |    4 +-
 .../order-item-validator.ts                   |   16 +-
 .../order-placed-validator.ts                 |    4 +-
 .../order-user-detail-validator.ts            |    2 +-
 .../order-validator/order-validator.ts        |   10 +-
 .../order/hooks/order-hook-before.ts          |    2 +-
 .../order/hooks/order.patch.hook.ts           |   10 +-
 .../order/hooks/order.post.hook.ts            |   12 +-
 .../order/operations/bulk-order.operation.ts  |    4 +-
 .../confirm/order-confirm.operation.ts        |    8 +-
 .../order-agreement-pdf.operation.ts          |    6 +-
 .../operations/order-receipt-pdf.operation.ts |    6 +-
 .../operations/place/order-place.operation.ts |   16 +-
 .../operations/rapid-handout.operation.ts     |   14 +-
 .../collections/order/order.collection.ts     |   16 +-
 .../helpers/dibs/payment-dibs-confirmer.ts    |    8 +-
 .../helpers/dibs/payment-dibs-handler.ts      |    6 +-
 .../payment/helpers/payment-handler.ts        |    4 +-
 .../payment/helpers/payment.validator.ts      |    2 +-
 .../payment/hooks/payment.get-all.hook.ts     |    4 +-
 .../payment/hooks/payment.patch.hook.ts       |    6 +-
 .../payment/hooks/payment.post.hook.ts        |    8 +-
 .../collections/payment/payment.collection.ts |    8 +-
 .../hooks/pending-password-reset-post.hook.ts |    8 +-
 ...onfirm-pending-password-reset.operation.ts |    6 +-
 .../pending-password-reset.collection.ts      |    6 +-
 .../signature/helpers/signature.helper.ts     |    6 +-
 .../signature/hooks/signature.get-id.hook.ts  |    6 +-
 .../signature/hooks/signature.post.hook.ts    |    8 +-
 .../check-guardian-signature.operation.ts     |    4 +-
 .../guardian-signature.operation.ts           |    4 +-
 .../signature/signature.collection.ts         |   10 +-
 .../stand-match-getall-me.operation.ts        |    4 +-
 .../stand-match/stand-match.collection.ts     |    4 +-
 .../unique-item/helpers/bl-id-generator.ts    |    0
 .../generate-unique-ids-operation.ts          |    2 +-
 .../unique-item-active.operation.ts           |    6 +-
 .../unique-item/unique-item.collection.ts     |    6 +-
 .../helpers/delete-user-service.ts            |    4 +-
 .../helpers/user-can-delete-user-detail.ts    |    6 +-
 .../user-detail/helpers/user-detail.helper.ts |    6 +-
 .../hooks/user-detail-delete.hook.ts          |   12 +-
 .../hooks/user-detail-update.hook.ts          |    2 +-
 .../user-detail-change-email.operation.ts     |   13 +-
 .../user-detail-permission.operation.ts       |    6 +-
 .../user-detail-read-permission.operation.ts  |    4 +-
 .../operations/user-detail-valid.operation.ts |    6 +-
 .../user-detail/user-detail.collection.ts     |   14 +-
 .../helpers/match-finder/match-finder.ts      |    6 +-
 .../match-finder/match-meeting-info.ts        |    0
 .../match-finder/match-testing-utils.ts       |    2 +-
 .../helpers/match-finder/match-types.ts       |    0
 .../helpers/match-finder/match-utils.ts       |    2 +-
 .../match-generate-operation-helper.ts        |    4 +-
 .../operations/match-generate.operation.ts    |    6 +-
 .../operations/match-notify.operation.ts      |    6 +-
 .../user-match-getall-me-operation-helper.ts  |    4 +-
 .../user-match-getall-me.operation.ts         |    4 +-
 .../operations/user-match-lock.operation.ts   |    2 +-
 .../operations/user-match-operation-utils.ts  |    6 +-
 .../user-match-transfer-item.operation.ts     |   16 +-
 .../user-match/user-match.collection.ts       |   12 +-
 .../config}/api-path.ts                       |    4 +-
 .../config}/application-config.ts             |    0
 .../config}/auth.ts                           |    4 +-
 .../config}/bl-crypto.ts                      |    0
 .../config}/cors.ts                           |    2 +-
 .../config}/database.ts                       |    4 +-
 .../config}/debug-logger.ts                   |    4 +-
 .../{express-config => express/config}/env.ts |    4 +-
 .../config}/https.ts                          |    2 +-
 .../config}/instrument.ts                     |    2 +-
 .../config}/logger.ts                         |    2 +-
 .../config}/session.ts                        |    2 +-
 .../helper/typescript-helpers.ts              |    0
 backend/src/{ => express}/hook/hook.ts        |    0
 .../src/{ => express}/http/http.handler.ts    |    2 +-
 .../messenger/email/email-service.ts          |   14 +-
 .../messenger/email/email-settings.ts         |    0
 .../email/order-email/order-email-handler.ts  |   16 +-
 .../messenger/messenger-service.ts            |    0
 .../src/{ => express}/messenger/messenger.ts  |    6 +-
 .../messenger/pdf/pdf-service.ts              |    4 +-
 .../messenger/reminder/messenger-reminder.ts  |    6 +-
 .../messenger/sms/sms-service.ts              |    4 +-
 .../payment/dibs/dibs-easy-order.ts           |    0
 ...s-easy-payment-consumer-billing-address.ts |    0
 .../dibs-easy-payment-consumer-company.ts     |    2 +-
 .../dibs-easy-payment-consumer-phone.ts       |    0
 ...bs-easy-payment-consumer-private-person.ts |    2 +-
 ...-easy-payment-consumer-shipping-address.ts |    0
 .../dibs-easy-payment-consumer.ts             |   11 +
 .../dibs-easy-payment-details-card.ts         |    0
 ...ibs-easy-payment-details-invoice-detail.ts |    0
 .../dibs-easy-payment-details.ts              |    9 +
 .../dibs-easy-payment-order-details.ts        |    0
 .../dibs-easy-payment-refund-order-item.ts    |    0
 .../dibs-easy-payment-refund.ts               |    2 +-
 .../dibs-easy-payment-summary.ts              |    0
 .../dibs-easy-payment/dibs-easy-payment.ts    |   18 +
 .../payment/dibs/dibs-payment.service.ts      |   12 +-
 .../src/{ => express}/price/price.service.ts  |    0
 .../query/db-query-boolean-filter.ts          |    0
 .../query/db-query-date-filter.ts             |    0
 .../query/db-query-expand-filter.ts           |    0
 .../query/db-query-limit-filter.ts            |    0
 .../query/db-query-number-filter.ts           |    0
 .../query/db-query-object-id-filter.ts        |    0
 .../query/db-query-only-get-filter.ts         |    0
 .../query/db-query-regex-filter.ts            |    0
 .../query/db-query-skip-filter.ts             |    0
 .../query/db-query-sort-filter.ts             |    0
 .../query/db-query-string-filter.ts           |    0
 .../query/db-query-valid-params.ts            |    0
 .../query/se.db-query-builder.ts              |   26 +-
 .../src/{ => express}/query/se.db-query.ts    |   22 +-
 .../response/bl-response.handler.ts           |    6 +-
 backend/src/express/storage/bl-storage.ts     |   73 +
 .../storage/models/branch-item.model.ts       |    2 +-
 .../storage/models/branch.model.ts            |    2 +-
 .../storage/models/company.model.ts           |    2 +-
 .../storage/models/customer-item.model.ts     |    2 +-
 .../storage/models/delivery.model.ts          |    2 +-
 .../storage/models/editable-text.model.ts     |    2 +-
 .../storage/models/email-validation.model.ts  |    4 +-
 .../storage/models/invoice.model.ts           |    2 +-
 .../storage/models/item.model.ts              |    2 +-
 .../storage/models/local-login.model.ts       |    2 +-
 .../storage/models/message.model.ts           |    2 +-
 .../storage/models/opening-hour.model.ts      |    2 +-
 .../storage/models/order.model.ts             |    2 +-
 .../storage/models/payment.model.ts           |    2 +-
 .../models/pending-password-reset.model.ts    |    2 +-
 .../storage/models/signature.model.ts         |    2 +-
 .../storage/models/stand-match.model.ts       |    6 +-
 .../storage/models/unique-item.model.ts       |    2 +-
 .../storage/models/user-detail.model.ts       |    2 +-
 .../storage/models/user-match.model.ts        |    6 +-
 .../storage/models/user.model.ts              |    2 +-
 .../{ => express}/storage/mongodb-handler.ts  |   12 +-
 .../storage/mongoose-schema-creator.ts        |    2 +-
 backend/src/index.ts                          |   28 +-
 .../dibs-easy-payment-consumer.ts             |   11 -
 .../dibs-easy-payment-details.ts              |    9 -
 .../dibs-easy-payment/dibs-easy-payment.ts    |   18 -
 backend/src/start/env.ts                      |   27 +
 backend/src/start/kernel.ts                   |   14 +
 backend/src/start/routes.ts                   |   16 +
 backend/src/storage/bl-storage.ts             |   73 -
 .../src/tests/access-token.creator.spec.ts    |    4 +-
 backend/src/tests/api-path.spec.ts            |    4 +-
 backend/src/tests/bl-crypto.spec.ts           |    2 +-
 backend/src/tests/blid.spec.ts                |    2 +-
 backend/src/tests/branch-get.hook.spec.ts     |    2 +-
 .../collection-endpoint-document-auth.spec.ts |    4 +-
 ...m-pending-password-reset.operation.spec.ts |    8 +-
 ...ustomer-have-active-customer-items.spec.ts |    4 +-
 .../src/tests/customer-invoice-active.spec.ts |    4 +-
 .../tests/customer-item-active-blid.spec.ts   |    4 +-
 .../src/tests/customer-item-active.spec.ts    |    2 +-
 .../src/tests/customer-item-handler.spec.ts   |    6 +-
 .../src/tests/customer-item-post.hook.spec.ts |    6 +-
 .../src/tests/customer-item-validator.spec.ts |    2 +-
 backend/src/tests/date.service.spec.ts        |    2 +-
 .../src/tests/db-query-boolean-filter.spec.ts |    2 +-
 .../src/tests/db-query-date-filter.spec.ts    |    2 +-
 .../src/tests/db-query-expand-filter.spec.ts  |    2 +-
 .../src/tests/db-query-limit-filter.spec.ts   |    2 +-
 .../src/tests/db-query-number-filter.spec.ts  |    2 +-
 .../tests/db-query-object-id-filter.spec.ts   |    2 +-
 .../tests/db-query-only-get-filter.spec.ts    |    2 +-
 .../src/tests/db-query-regex-filter.spec.ts   |    2 +-
 .../src/tests/db-query-skip-filter.spec.ts    |    2 +-
 .../src/tests/db-query-sort-filter.spec.ts    |    2 +-
 .../src/tests/db-query-string-filter.spec.ts  |    2 +-
 .../src/tests/db-query-valid-params.spec.ts   |    2 +-
 .../src/tests/delivery-branch-handler.spec.ts |    2 +-
 .../src/tests/delivery-bring-handler.spec.ts  |    2 +-
 backend/src/tests/delivery-handler.spec.ts    |    4 +-
 backend/src/tests/delivery-validator.spec.ts  |    8 +-
 backend/src/tests/delivery.patch.hook.spec.ts |    6 +-
 backend/src/tests/delivery.post.hook.spec.ts  |    8 +-
 .../src/tests/dibs-payment.service.spec.ts    |    6 +-
 backend/src/tests/email-service.spec.ts       |    4 +-
 ...email-validation-confirm.operation.spec.ts |    8 +-
 .../tests/email-validation-post.hook.spec.ts  |    6 +-
 .../src/tests/email-validation.helper.spec.ts |    8 +-
 .../tests/hashed-password-generator.spec.ts   |    2 +-
 backend/src/tests/invoice-active.spec.ts      |    2 +-
 backend/src/tests/item-validator.spec.ts      |    2 +-
 backend/src/tests/local-login-creator.spec.ts |    2 +-
 .../local-login-password.validator.spec.ts    |    4 +-
 backend/src/tests/local-login.handler.spec.ts |    6 +-
 .../src/tests/local-login.validator.spec.ts   |    8 +-
 .../src/tests/matches/match-finder.spec.ts    |    6 +-
 backend/src/tests/message-helper.spec.ts      |    4 +-
 backend/src/tests/message-post.hook.spec.ts   |    8 +-
 backend/src/tests/messenger-reminder.spec.ts  |    8 +-
 backend/src/tests/mongoDb.spec.ts             |    2 +-
 backend/src/tests/opening-hour-helper.spec.ts |    4 +-
 backend/src/tests/order-active.spec.ts        |    4 +-
 .../src/tests/order-confirm.operation.spec.ts |    8 +-
 .../src/tests/order-field-validator.spec.ts   |    2 +-
 backend/src/tests/order-hook-before.spec.ts   |    2 +-
 .../tests/order-item-buy-validator.spec.ts    |    4 +-
 .../tests/order-item-extend-validator.spec.ts |    4 +-
 ...rder-item-moved-from-order-handler.spec.ts |    4 +-
 ...rder-item-partly-payment-validator.spec.ts |    2 +-
 .../order-item-rent-period-validator.spec.ts  |    4 +-
 .../src/tests/order-item-validator.spec.ts    |   12 +-
 .../src/tests/order-place.operation.spec.ts   |   14 +-
 .../src/tests/order-placed-handler.spec.ts    |   12 +-
 .../src/tests/order-placed-validator.spec.ts  |    4 +-
 .../order-to-customer-item-generator.spec.ts  |    4 +-
 .../tests/order-user-detail-validator.spec.ts |    4 +-
 backend/src/tests/order-validator.spec.ts     |   12 +-
 backend/src/tests/order.patch.hook.spec.ts    |    8 +-
 backend/src/tests/order.post.hook.spec.ts     |   10 +-
 .../src/tests/payment-dibs-confirmer.spec.ts  |    8 +-
 .../src/tests/payment-dibs-handler.spec.ts    |    8 +-
 backend/src/tests/payment-handler.spec.ts     |    8 +-
 backend/src/tests/payment.patch.hook.spec.ts  |    8 +-
 backend/src/tests/payment.post.hook.spec.ts   |    8 +-
 backend/src/tests/payment.validator.spec.ts   |    4 +-
 .../pending-password-reset-post.hook.spec.ts  |    8 +-
 backend/src/tests/permission.service.spec.ts  |    2 +-
 backend/src/tests/price.service.spec.ts       |    2 +-
 .../src/tests/provider-id-generator.spec.ts   |    2 +-
 .../src/tests/refresh-token.creator.spec.ts   |    2 +-
 .../src/tests/refresh-token.validator.spec.ts |    6 +-
 backend/src/tests/salt-generator.spec.ts      |    2 +-
 backend/src/tests/se.db-query-builder.spec.ts |    6 +-
 backend/src/tests/se.db-query.spec.ts         |    2 +-
 .../tests/sendgrid-event.operation.spec.ts    |    4 +-
 backend/src/tests/token.handler.spec.ts       |    4 +-
 .../tests/twillio-sms-event.operation.spec.ts |    4 +-
 .../unique-item-active.operation.spec.ts      |    8 +-
 .../tests/user-can-delete-user-detail.spec.ts |    4 +-
 .../src/tests/user-delete-all-info.spec.ts    |    4 +-
 ...user-detail-change-email.operation.spec.ts |    8 +-
 .../src/tests/user-detail-delete.hook.spec.ts |   12 +-
 .../user-detail-permission.operation.spec.ts  |    6 +-
 .../src/tests/user-detail-update.hook.spec.ts |    2 +-
 .../tests/user-detail-valid.operation.spec.ts |    6 +-
 backend/src/tests/user-detail.helper.spec.ts  |    6 +-
 backend/src/tests/user-provider.spec.ts       |    8 +-
 backend/src/tests/user.handler.spec.ts        |   10 +-
 backend/src/types/bl-collection.ts            |    6 +-
 backend/src/types/nested-document.ts          |    2 +-
 pnpm-lock.yaml                                | 2106 ++++++++++++++++-
 350 files changed, 3368 insertions(+), 928 deletions(-)
 create mode 100644 backend/src/adonisrc.ts
 create mode 100644 backend/src/app/exceptions/handler.ts
 create mode 100644 backend/src/app/middleware/container_bindings_middleware.ts
 create mode 100644 backend/src/app/middleware/force_json_response_middleware.ts
 create mode 100644 backend/src/bin/console.ts
 create mode 100644 backend/src/bin/server.ts
 delete mode 100644 backend/src/collections/bl-collections.ts
 create mode 100644 backend/src/config/app.ts
 create mode 100644 backend/src/config/bodyparser.ts
 create mode 100644 backend/src/config/cors.ts
 create mode 100644 backend/src/config/hash.ts
 create mode 100644 backend/src/config/logger.ts
 rename backend/src/{ => express}/auth/blid.ts (93%)
 rename backend/src/{ => express}/auth/external/facebook.auth.ts (87%)
 rename backend/src/{ => express}/auth/external/google.auth.ts (87%)
 rename backend/src/{ => express}/auth/local/hashed-password-generator.ts (89%)
 rename backend/src/{ => express}/auth/local/local-login-creator.ts (90%)
 rename backend/src/{ => express}/auth/local/local-login-password.validator.ts (94%)
 rename backend/src/{ => express}/auth/local/local-login.handler.ts (92%)
 rename backend/src/{ => express}/auth/local/local-login.validator.ts (92%)
 rename backend/src/{ => express}/auth/local/local.auth.ts (93%)
 rename backend/src/{ => express}/auth/local/provider-id-generator.ts (94%)
 rename backend/src/{ => express}/auth/local/salt-generator.ts (100%)
 rename backend/src/{ => express}/auth/permission.service.ts (100%)
 rename backend/src/{ => express}/auth/token/access-token/access-token.creator.ts (89%)
 rename backend/src/{ => express}/auth/token/refresh/refresh-token.creator.ts (91%)
 rename backend/src/{ => express}/auth/token/refresh/refresh-token.validator.ts (93%)
 rename backend/src/{ => express}/auth/token/token.endpoint.ts (85%)
 rename backend/src/{ => express}/auth/token/token.handler.ts (88%)
 rename backend/src/{ => express}/auth/user/user-provider.ts (79%)
 rename backend/src/{ => express}/auth/user/user.handler.ts (95%)
 rename backend/src/{ => express}/bl-error/bl-error.handler.ts (99%)
 rename backend/src/{ => express}/blc/date.service.ts (100%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-auth.ts (91%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-creator.ts (64%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-delete.ts (83%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-document-auth.ts (91%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-get-all.ts (81%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-get-id.ts (67%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-method.ts (85%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-on-request.ts (53%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-operation.ts (91%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-patch.ts (80%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-post.ts (77%)
 rename backend/src/{ => express}/collection-endpoint/collection-endpoint-put.ts (80%)
 create mode 100644 backend/src/express/collections/bl-collections.ts
 rename backend/src/{ => express}/collections/branch-item/branch-item.collection.ts (89%)
 rename backend/src/{ => express}/collections/branch/branch.collection.ts (87%)
 rename backend/src/{ => express}/collections/branch/hook/branch-get.hook.ts (91%)
 rename backend/src/{ => express}/collections/company/company.collection.ts (91%)
 rename backend/src/{ => express}/collections/customer-item/customer-item-generate-report.operation.ts (98%)
 rename backend/src/{ => express}/collections/customer-item/customer-item.collection.ts (85%)
 rename backend/src/{ => express}/collections/customer-item/helpers/customer-have-active-customer-items.ts (77%)
 rename backend/src/{ => express}/collections/customer-item/helpers/customer-item-active-blid.ts (80%)
 rename backend/src/{ => express}/collections/customer-item/helpers/customer-item-active.ts (100%)
 rename backend/src/{ => express}/collections/customer-item/helpers/customer-item-handler.ts (98%)
 rename backend/src/{ => express}/collections/customer-item/helpers/order-to-customer-item-generator.ts (98%)
 rename backend/src/{ => express}/collections/customer-item/hooks/customer-item-post.hook.ts (92%)
 rename backend/src/{ => express}/collections/customer-item/public-blid-lookup.operation.ts (96%)
 rename backend/src/{ => express}/collections/customer-item/validators/customer-item-validator.ts (83%)
 rename backend/src/{ => express}/collections/delivery/delivery.collection.ts (72%)
 rename backend/src/{ => express}/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.ts (100%)
 rename backend/src/{ => express}/collections/delivery/helpers/deliveryBring/bringDelivery.service.ts (95%)
 rename backend/src/{ => express}/collections/delivery/helpers/deliveryBring/bringDelivery.ts (100%)
 rename backend/src/{ => express}/collections/delivery/helpers/deliveryBring/delivery-bring-handler.ts (90%)
 rename backend/src/{ => express}/collections/delivery/helpers/deliveryHandler/delivery-handler.ts (95%)
 rename backend/src/{ => express}/collections/delivery/helpers/deliveryValidator/delivery-validator.ts (80%)
 rename backend/src/{ => express}/collections/delivery/hooks/delivery.patch.hook.ts (90%)
 rename backend/src/{ => express}/collections/delivery/hooks/delivery.post.hook.ts (84%)
 rename backend/src/{ => express}/collections/delivery/operations/postal-code-lookup.operation.ts (89%)
 rename backend/src/{ => express}/collections/editable-text/editable-text.collection.ts (72%)
 rename backend/src/{ => express}/collections/editable-text/hooks/editable-text.put.hook.ts (93%)
 rename backend/src/{ => express}/collections/email-validation/email-validation.collection.ts (63%)
 rename backend/src/{ => express}/collections/email-validation/email-validation.ts (100%)
 rename backend/src/{ => express}/collections/email-validation/helpers/email-validation.helper.ts (89%)
 rename backend/src/{ => express}/collections/email-validation/hooks/email-validation-post.hook.ts (74%)
 rename backend/src/{ => express}/collections/email-validation/operations/email-validation-confirm.operation.ts (84%)
 rename backend/src/{ => express}/collections/invoice/helpers/customer-invoice-active.ts (77%)
 rename backend/src/{ => express}/collections/invoice/helpers/invoice-active.ts (100%)
 rename backend/src/{ => express}/collections/invoice/invoice.collection.ts (88%)
 rename backend/src/{ => express}/collections/item/item.collection.ts (93%)
 rename backend/src/{ => express}/collections/message/helper/message-helper.ts (90%)
 rename backend/src/{ => express}/collections/message/hooks/message-post.hook.ts (89%)
 rename backend/src/{ => express}/collections/message/message.collection.ts (70%)
 rename backend/src/{ => express}/collections/message/operations/sendgrid-event.operation.ts (95%)
 rename backend/src/{ => express}/collections/message/operations/twillio-sms-event.operation.ts (95%)
 rename backend/src/{ => express}/collections/opening-hour/helpers/opening-hour-helper.ts (95%)
 rename backend/src/{ => express}/collections/opening-hour/opening-hour.collection.ts (91%)
 rename backend/src/{ => express}/collections/order/helpers/order-active/order-active.ts (89%)
 rename backend/src/{ => express}/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.ts (92%)
 rename backend/src/{ => express}/collections/order/helpers/order-placed-handler/order-placed-handler.ts (91%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/item-validator/item-validator.ts (100%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-field-validator/order-field-validator.ts (95%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.ts (96%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.ts (97%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.ts (96%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.ts (94%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.ts (80%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-item-validator/order-item-validator.ts (84%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.ts (95%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.ts (92%)
 rename backend/src/{ => express}/collections/order/helpers/order-validator/order-validator.ts (73%)
 rename backend/src/{ => express}/collections/order/hooks/order-hook-before.ts (94%)
 rename backend/src/{ => express}/collections/order/hooks/order.patch.hook.ts (87%)
 rename backend/src/{ => express}/collections/order/hooks/order.post.hook.ts (83%)
 rename backend/src/{ => express}/collections/order/operations/bulk-order.operation.ts (94%)
 rename backend/src/{ => express}/collections/order/operations/confirm/order-confirm.operation.ts (90%)
 rename backend/src/{ => express}/collections/order/operations/order-agreement-pdf.operation.ts (78%)
 rename backend/src/{ => express}/collections/order/operations/order-receipt-pdf.operation.ts (78%)
 rename backend/src/{ => express}/collections/order/operations/place/order-place.operation.ts (96%)
 rename backend/src/{ => express}/collections/order/operations/rapid-handout.operation.ts (89%)
 rename backend/src/{ => express}/collections/order/order.collection.ts (79%)
 rename backend/src/{ => express}/collections/payment/helpers/dibs/payment-dibs-confirmer.ts (88%)
 rename backend/src/{ => express}/collections/payment/helpers/dibs/payment-dibs-handler.ts (86%)
 rename backend/src/{ => express}/collections/payment/helpers/payment-handler.ts (93%)
 rename backend/src/{ => express}/collections/payment/helpers/payment.validator.ts (96%)
 rename backend/src/{ => express}/collections/payment/hooks/payment.get-all.hook.ts (85%)
 rename backend/src/{ => express}/collections/payment/hooks/payment.patch.hook.ts (85%)
 rename backend/src/{ => express}/collections/payment/hooks/payment.post.hook.ts (91%)
 rename backend/src/{ => express}/collections/payment/payment.collection.ts (76%)
 rename backend/src/{ => express}/collections/pending-password-reset/hooks/pending-password-reset-post.hook.ts (89%)
 rename backend/src/{ => express}/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.ts (95%)
 rename backend/src/{ => express}/collections/pending-password-reset/pending-password-reset.collection.ts (57%)
 rename backend/src/{ => express}/collections/signature/helpers/signature.helper.ts (94%)
 rename backend/src/{ => express}/collections/signature/hooks/signature.get-id.hook.ts (55%)
 rename backend/src/{ => express}/collections/signature/hooks/signature.post.hook.ts (87%)
 rename backend/src/{ => express}/collections/signature/operations/check-guardian-signature.operation.ts (93%)
 rename backend/src/{ => express}/collections/signature/operations/guardian-signature.operation.ts (93%)
 rename backend/src/{ => express}/collections/signature/signature.collection.ts (59%)
 rename backend/src/{ => express}/collections/stand-match/operations/stand-match-getall-me.operation.ts (88%)
 rename backend/src/{ => express}/collections/stand-match/stand-match.collection.ts (70%)
 rename backend/src/{ => express}/collections/unique-item/helpers/bl-id-generator.ts (100%)
 rename backend/src/{ => express}/collections/unique-item/operations/generate-unique-ids-operation.ts (82%)
 rename backend/src/{ => express}/collections/unique-item/operations/unique-item-active.operation.ts (83%)
 rename backend/src/{ => express}/collections/unique-item/unique-item.collection.ts (77%)
 rename backend/src/{ => express}/collections/user-detail/helpers/delete-user-service.ts (94%)
 rename backend/src/{ => express}/collections/user-detail/helpers/user-can-delete-user-detail.ts (82%)
 rename backend/src/{ => express}/collections/user-detail/helpers/user-detail.helper.ts (95%)
 rename backend/src/{ => express}/collections/user-detail/hooks/user-detail-delete.hook.ts (83%)
 rename backend/src/{ => express}/collections/user-detail/hooks/user-detail-update.hook.ts (98%)
 rename backend/src/{ => express}/collections/user-detail/operations/change-email/user-detail-change-email.operation.ts (89%)
 rename backend/src/{ => express}/collections/user-detail/operations/permission/user-detail-permission.operation.ts (90%)
 rename backend/src/{ => express}/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.ts (84%)
 rename backend/src/{ => express}/collections/user-detail/operations/user-detail-valid.operation.ts (84%)
 rename backend/src/{ => express}/collections/user-detail/user-detail.collection.ts (71%)
 rename backend/src/{ => express}/collections/user-match/helpers/match-finder/match-finder.ts (99%)
 rename backend/src/{ => express}/collections/user-match/helpers/match-finder/match-meeting-info.ts (100%)
 rename backend/src/{ => express}/collections/user-match/helpers/match-finder/match-testing-utils.ts (96%)
 rename backend/src/{ => express}/collections/user-match/helpers/match-finder/match-types.ts (100%)
 rename backend/src/{ => express}/collections/user-match/helpers/match-finder/match-utils.ts (98%)
 rename backend/src/{ => express}/collections/user-match/operations/match-generate-operation-helper.ts (97%)
 rename backend/src/{ => express}/collections/user-match/operations/match-generate.operation.ts (93%)
 rename backend/src/{ => express}/collections/user-match/operations/match-notify.operation.ts (92%)
 rename backend/src/{ => express}/collections/user-match/operations/user-match-getall-me-operation-helper.ts (96%)
 rename backend/src/{ => express}/collections/user-match/operations/user-match-getall-me.operation.ts (82%)
 rename backend/src/{ => express}/collections/user-match/operations/user-match-lock.operation.ts (95%)
 rename backend/src/{ => express}/collections/user-match/operations/user-match-operation-utils.ts (93%)
 rename backend/src/{ => express}/collections/user-match/operations/user-match-transfer-item.operation.ts (92%)
 rename backend/src/{ => express}/collections/user-match/user-match.collection.ts (64%)
 rename backend/src/{express-config => express/config}/api-path.ts (88%)
 rename backend/src/{express-config => express/config}/application-config.ts (100%)
 rename backend/src/{express-config => express/config}/auth.ts (85%)
 rename backend/src/{express-config => express/config}/bl-crypto.ts (100%)
 rename backend/src/{express-config => express/config}/cors.ts (89%)
 rename backend/src/{express-config => express/config}/database.ts (82%)
 rename backend/src/{express-config => express/config}/debug-logger.ts (84%)
 rename backend/src/{express-config => express/config}/env.ts (92%)
 rename backend/src/{express-config => express/config}/https.ts (86%)
 rename backend/src/{express-config => express/config}/instrument.ts (88%)
 rename backend/src/{express-config => express/config}/logger.ts (85%)
 rename backend/src/{express-config => express/config}/session.ts (84%)
 rename backend/src/{ => express}/helper/typescript-helpers.ts (100%)
 rename backend/src/{ => express}/hook/hook.ts (100%)
 rename backend/src/{ => express}/http/http.handler.ts (97%)
 rename backend/src/{ => express}/messenger/email/email-service.ts (96%)
 rename backend/src/{ => express}/messenger/email/email-settings.ts (100%)
 rename backend/src/{ => express}/messenger/email/order-email/order-email-handler.ts (95%)
 rename backend/src/{ => express}/messenger/messenger-service.ts (100%)
 rename backend/src/{ => express}/messenger/messenger.ts (93%)
 rename backend/src/{ => express}/messenger/pdf/pdf-service.ts (92%)
 rename backend/src/{ => express}/messenger/reminder/messenger-reminder.ts (84%)
 rename backend/src/{ => express}/messenger/sms/sms-service.ts (90%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-order.ts (100%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-billing-address.ts (100%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.ts (54%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.ts (100%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.ts (57%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-shipping-address.ts (100%)
 create mode 100644 backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-card.ts (100%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-invoice-detail.ts (100%)
 create mode 100644 backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-order-details/dibs-easy-payment-order-details.ts (100%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund-order-item.ts (100%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.ts (51%)
 rename backend/src/{ => express}/payment/dibs/dibs-easy-payment/dibs-easy-payment-summary/dibs-easy-payment-summary.ts (100%)
 create mode 100644 backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts
 rename backend/src/{ => express}/payment/dibs/dibs-payment.service.ts (91%)
 rename backend/src/{ => express}/price/price.service.ts (100%)
 rename backend/src/{ => express}/query/db-query-boolean-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-date-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-expand-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-limit-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-number-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-object-id-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-only-get-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-regex-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-skip-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-sort-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-string-filter.ts (100%)
 rename backend/src/{ => express}/query/db-query-valid-params.ts (100%)
 rename backend/src/{ => express}/query/se.db-query-builder.ts (78%)
 rename backend/src/{ => express}/query/se.db-query.ts (81%)
 rename backend/src/{ => express}/response/bl-response.handler.ts (89%)
 create mode 100644 backend/src/express/storage/bl-storage.ts
 rename backend/src/{ => express}/storage/models/branch-item.model.ts (94%)
 rename backend/src/{ => express}/storage/models/branch.model.ts (97%)
 rename backend/src/{ => express}/storage/models/company.model.ts (90%)
 rename backend/src/{ => express}/storage/models/customer-item.model.ts (97%)
 rename backend/src/{ => express}/storage/models/delivery.model.ts (87%)
 rename backend/src/{ => express}/storage/models/editable-text.model.ts (81%)
 rename backend/src/{ => express}/storage/models/email-validation.model.ts (61%)
 rename backend/src/{ => express}/storage/models/invoice.model.ts (97%)
 rename backend/src/{ => express}/storage/models/item.model.ts (94%)
 rename backend/src/{ => express}/storage/models/local-login.model.ts (89%)
 rename backend/src/{ => express}/storage/models/message.model.ts (93%)
 rename backend/src/{ => express}/storage/models/opening-hour.model.ts (86%)
 rename backend/src/{ => express}/storage/models/order.model.ts (97%)
 rename backend/src/{ => express}/storage/models/payment.model.ts (93%)
 rename backend/src/{ => express}/storage/models/pending-password-reset.model.ts (90%)
 rename backend/src/{ => express}/storage/models/signature.model.ts (88%)
 rename backend/src/{ => express}/storage/models/stand-match.model.ts (78%)
 rename backend/src/{ => express}/storage/models/unique-item.model.ts (86%)
 rename backend/src/{ => express}/storage/models/user-detail.model.ts (94%)
 rename backend/src/{ => express}/storage/models/user-match.model.ts (83%)
 rename backend/src/{ => express}/storage/models/user.model.ts (92%)
 rename backend/src/{ => express}/storage/mongodb-handler.ts (95%)
 rename backend/src/{ => express}/storage/mongoose-schema-creator.ts (97%)
 delete mode 100644 backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts
 delete mode 100644 backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts
 delete mode 100644 backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts
 create mode 100644 backend/src/start/env.ts
 create mode 100644 backend/src/start/kernel.ts
 create mode 100644 backend/src/start/routes.ts
 delete mode 100644 backend/src/storage/bl-storage.ts

diff --git a/backend/.env.example b/backend/.env.example
index 56325d0c..6c6c3575 100644
--- a/backend/.env.example
+++ b/backend/.env.example
@@ -1,3 +1,4 @@
+APP_KEY=
 PORT=
 SERVER_PATH=
 API_ENV=
diff --git a/backend/package.json b/backend/package.json
index 1003c129..9ef11dbd 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -5,14 +5,18 @@
   "exports": "./dist/index.js",
   "type": "module",
   "scripts": {
-    "dev": "tsx watch --env-file=.env ./src/index.ts",
+    "dev": "tsx watch --env-file=.env src/index.ts",
     "build": "pkgroll --sourcemap --tsconfig=tsconfig.build.json",
     "build:sentry": "pnpm build && pnpm run sentry:sourcemaps",
     "serve": "node --env-file=.env ./dist/index.js",
+    "start": "tsx --env-file=.env src/bin/server.ts",
     "test": "API_ENV=test tsx src/bin/test.ts",
     "sentry:sourcemaps": "sentry-cli sourcemaps inject --org boklisten --project backend ./dist && sentry-cli sourcemaps upload --org boklisten --project backend ./dist"
   },
   "dependencies": {
+    "@adonisjs/auth": "^9.3.1",
+    "@adonisjs/core": "^6.17.1",
+    "@adonisjs/cors": "^2.2.1",
     "@boklisten/bl-email": "^1.8.2",
     "@boklisten/bl-post-office": "^0.5.56",
     "@napi-rs/image": "^1.9.2",
@@ -39,6 +43,7 @@
     "@types/sinon": "^17.0.3",
     "@types/sinon-chai": "^4.0.0",
     "@types/validator": "^13.12.2",
+    "@vinejs/vine": "^3.0.0",
     "canvas": "^3.1.0",
     "cors": "^2.8.5",
     "express": "^4.21.2",
@@ -58,6 +63,7 @@
     "pdfkit": "^0.16.0",
     "qrcode": "^1.5.4",
     "qs": "^6.14.0",
+    "reflect-metadata": "^0.2.2",
     "request": "^2.88.2",
     "request-promise": "^4.2.6",
     "twilio": "^5.4.2",
@@ -65,10 +71,17 @@
     "winston": "^3.17.0"
   },
   "devDependencies": {
+    "@adonisjs/assembler": "^7.8.2",
+    "@adonisjs/eslint-config": "^1.3.0",
+    "@adonisjs/prettier-config": "^1.4.0",
+    "@adonisjs/tsconfig": "^1.4.0",
+    "@japa/api-client": "^3.0.3",
     "@japa/assert": "^4.0.1",
+    "@japa/plugin-adonisjs": "^4.0.0",
     "@japa/runner": "^4.1.0",
     "chai": "^5.1.2",
     "chai-as-promised": "^8.0.1",
+    "pino-pretty": "^13.0.0",
     "pkgroll": "^2.6.1",
     "sinon": "^19.0.2",
     "sinon-chai": "^4.0.0",
diff --git a/backend/src/adonisrc.ts b/backend/src/adonisrc.ts
new file mode 100644
index 00000000..85e5e021
--- /dev/null
+++ b/backend/src/adonisrc.ts
@@ -0,0 +1,31 @@
+import { defineConfig } from "@adonisjs/core/app";
+
+export default defineConfig({
+  commands: [() => import("@adonisjs/core/commands")],
+  providers: [
+    () => import("@adonisjs/core/providers/app_provider"),
+    () => import("@adonisjs/core/providers/hash_provider"),
+    {
+      file: () => import("@adonisjs/core/providers/repl_provider"),
+      environment: ["repl", "test"],
+    },
+    () => import("@adonisjs/core/providers/vinejs_provider"),
+    () => import("@adonisjs/cors/cors_provider"),
+  ],
+
+  preloads: [
+    () => import("@backend/start/routes.js"),
+    () => import("@backend/start/kernel.js"),
+  ],
+
+  tests: {
+    suites: [
+      {
+        files: ["src/tests/**/*.spec.ts"],
+        name: "unit",
+        timeout: 2000,
+      },
+    ],
+    forceExit: false,
+  },
+});
diff --git a/backend/src/app/exceptions/handler.ts b/backend/src/app/exceptions/handler.ts
new file mode 100644
index 00000000..6582bb17
--- /dev/null
+++ b/backend/src/app/exceptions/handler.ts
@@ -0,0 +1,12 @@
+import { HttpContext, ExceptionHandler } from "@adonisjs/core/http";
+import app from "@adonisjs/core/services/app";
+
+export default class HttpExceptionHandler extends ExceptionHandler {
+  protected override debug = !app.inProduction;
+  override async handle(error: unknown, ctx: HttpContext) {
+    return super.handle(error, ctx);
+  }
+  override async report(error: unknown, ctx: HttpContext) {
+    return super.report(error, ctx);
+  }
+}
diff --git a/backend/src/app/middleware/container_bindings_middleware.ts b/backend/src/app/middleware/container_bindings_middleware.ts
new file mode 100644
index 00000000..ac24d5d5
--- /dev/null
+++ b/backend/src/app/middleware/container_bindings_middleware.ts
@@ -0,0 +1,12 @@
+import { HttpContext } from "@adonisjs/core/http";
+import { Logger } from "@adonisjs/core/logger";
+import type { NextFn } from "@adonisjs/core/types/http";
+
+export default class ContainerBindingsMiddleware {
+  handle(ctx: HttpContext, next: NextFn) {
+    ctx.containerResolver.bindValue(HttpContext, ctx);
+    ctx.containerResolver.bindValue(Logger, ctx.logger);
+
+    return next();
+  }
+}
diff --git a/backend/src/app/middleware/force_json_response_middleware.ts b/backend/src/app/middleware/force_json_response_middleware.ts
new file mode 100644
index 00000000..7ea0ef27
--- /dev/null
+++ b/backend/src/app/middleware/force_json_response_middleware.ts
@@ -0,0 +1,11 @@
+import type { HttpContext } from "@adonisjs/core/http";
+import type { NextFn } from "@adonisjs/core/types/http";
+
+export default class ForceJsonResponseMiddleware {
+  async handle({ request }: HttpContext, next: NextFn) {
+    const headers = request.headers();
+    headers.accept = "application/json";
+
+    return next();
+  }
+}
diff --git a/backend/src/bin/console.ts b/backend/src/bin/console.ts
new file mode 100644
index 00000000..24ebfc1c
--- /dev/null
+++ b/backend/src/bin/console.ts
@@ -0,0 +1,25 @@
+import "reflect-metadata";
+import { Ignitor, prettyPrintError } from "@adonisjs/core";
+
+const APP_ROOT = new URL("../", import.meta.url);
+const IMPORTER = (filePath: string) => {
+  if (filePath.startsWith("./") || filePath.startsWith("../")) {
+    return import(new URL(filePath, APP_ROOT).href);
+  }
+  return import(filePath);
+};
+
+new Ignitor(APP_ROOT, { importer: IMPORTER })
+  .tap((app) => {
+    app.booting(async () => {
+      // await import("#start/env"); fixme migrate to adonis env
+    });
+    app.listen("SIGTERM", () => app.terminate());
+    app.listenIf(app.managedByPm2, "SIGINT", () => app.terminate());
+  })
+  .ace()
+  .handle(process.argv.splice(2))
+  .catch((error) => {
+    process.exitCode = 1;
+    prettyPrintError(error);
+  });
diff --git a/backend/src/bin/server.ts b/backend/src/bin/server.ts
new file mode 100644
index 00000000..ff6a4b2e
--- /dev/null
+++ b/backend/src/bin/server.ts
@@ -0,0 +1,25 @@
+import "reflect-metadata";
+import { Ignitor, prettyPrintError } from "@adonisjs/core";
+
+const APP_ROOT = new URL("../", import.meta.url);
+const IMPORTER = (filePath: string) => {
+  if (filePath.startsWith("./") || filePath.startsWith("../")) {
+    return import(new URL(filePath, APP_ROOT).href);
+  }
+  return import(filePath);
+};
+
+new Ignitor(APP_ROOT, { importer: IMPORTER })
+  .tap((app) => {
+    app.booting(async () => {
+      // await import("#start/env"); fixme migrate to AdonisJS env
+    });
+    app.listen("SIGTERM", () => app.terminate());
+    app.listenIf(app.managedByPm2, "SIGINT", () => app.terminate());
+  })
+  .httpServer()
+  .start()
+  .catch((error) => {
+    process.exitCode = 1;
+    prettyPrintError(error);
+  });
diff --git a/backend/src/bin/test.ts b/backend/src/bin/test.ts
index 6237a0ad..782a9cd5 100644
--- a/backend/src/bin/test.ts
+++ b/backend/src/bin/test.ts
@@ -1,10 +1,36 @@
+import "reflect-metadata";
+import { Ignitor, prettyPrintError } from "@adonisjs/core";
+import { apiClient } from "@japa/api-client";
 import { assert } from "@japa/assert";
+import { pluginAdonisJS } from "@japa/plugin-adonisjs";
 import { configure, processCLIArgs, run } from "@japa/runner";
 
-processCLIArgs(process.argv.splice(2));
-configure({
-  files: ["src/tests/**/*.spec.ts"],
-  plugins: [assert()],
-});
+const APP_ROOT = new URL("../", import.meta.url);
+const IMPORTER = (filePath: string) => {
+  if (filePath.startsWith("./") || filePath.startsWith("../")) {
+    return import(new URL(filePath, APP_ROOT).href);
+  }
+  return import(filePath);
+};
 
-run();
+new Ignitor(APP_ROOT, { importer: IMPORTER })
+  .tap((app) => {
+    app.booting(async () => {
+      // await import('#start/env') fixme migrate to Adonis Env
+    });
+    app.listen("SIGTERM", () => app.terminate());
+    app.listenIf(app.managedByPm2, "SIGINT", () => app.terminate());
+  })
+  .testRunner()
+  .configure(async (app) => {
+    processCLIArgs(process.argv.splice(2));
+    configure({
+      ...app.rcFile.tests,
+      plugins: [assert(), apiClient(), pluginAdonisJS(app)],
+    });
+  })
+  .run(() => run())
+  .catch((error) => {
+    process.exitCode = 1;
+    prettyPrintError(error);
+  });
diff --git a/backend/src/collections/bl-collections.ts b/backend/src/collections/bl-collections.ts
deleted file mode 100644
index 2ec2dcf5..00000000
--- a/backend/src/collections/bl-collections.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { BranchCollection } from "@backend/collections/branch/branch.collection.js";
-import { BranchItemCollection } from "@backend/collections/branch-item/branch-item.collection.js";
-import { CompanyCollection } from "@backend/collections/company/company.collection.js";
-import { CustomerItemCollection } from "@backend/collections/customer-item/customer-item.collection.js";
-import { DeliveryCollection } from "@backend/collections/delivery/delivery.collection.js";
-import { EditableTextCollection } from "@backend/collections/editable-text/editable-text.collection.js";
-import { EmailValidationCollection } from "@backend/collections/email-validation/email-validation.collection.js";
-import { InvoiceCollection } from "@backend/collections/invoice/invoice.collection.js";
-import { ItemCollection } from "@backend/collections/item/item.collection.js";
-import { MessageCollection } from "@backend/collections/message/message.collection.js";
-import { OpeningHourCollection } from "@backend/collections/opening-hour/opening-hour.collection.js";
-import { OrderCollection } from "@backend/collections/order/order.collection.js";
-import { PaymentCollection } from "@backend/collections/payment/payment.collection.js";
-import { PendingPasswordResetCollection } from "@backend/collections/pending-password-reset/pending-password-reset.collection.js";
-import { SignatureCollection } from "@backend/collections/signature/signature.collection.js";
-import { StandMatchCollection } from "@backend/collections/stand-match/stand-match.collection.js";
-import { UniqueItemCollection } from "@backend/collections/unique-item/unique-item.collection.js";
-import { UserDetailCollection } from "@backend/collections/user-detail/user-detail.collection.js";
-import { UserMatchCollection } from "@backend/collections/user-match/user-match.collection.js";
-
-const BlCollections = [
-  BranchCollection,
-  BranchItemCollection,
-  CustomerItemCollection,
-  DeliveryCollection,
-  ItemCollection,
-  OpeningHourCollection,
-  OrderCollection,
-  PaymentCollection,
-  UserDetailCollection,
-  PendingPasswordResetCollection,
-  EmailValidationCollection,
-  MessageCollection,
-  StandMatchCollection,
-  UserMatchCollection,
-  InvoiceCollection,
-  CompanyCollection,
-  UniqueItemCollection,
-  EditableTextCollection,
-  SignatureCollection,
-];
-
-export default BlCollections;
diff --git a/backend/src/config/app.ts b/backend/src/config/app.ts
new file mode 100644
index 00000000..a81539f2
--- /dev/null
+++ b/backend/src/config/app.ts
@@ -0,0 +1,20 @@
+import { Secret } from "@adonisjs/core/helpers";
+import { defineConfig } from "@adonisjs/core/http";
+import app from "@adonisjs/core/services/app";
+import { BlEnv } from "@backend/express/config/env.js";
+
+export const appKey = new Secret(BlEnv.APP_KEY);
+
+export const http = defineConfig({
+  generateRequestId: true,
+  allowMethodSpoofing: false,
+  useAsyncLocalStorage: false,
+  cookie: {
+    domain: "",
+    path: "/",
+    maxAge: "2h",
+    httpOnly: true,
+    secure: app.inProduction,
+    sameSite: "lax",
+  },
+});
diff --git a/backend/src/config/bodyparser.ts b/backend/src/config/bodyparser.ts
new file mode 100644
index 00000000..c95a027e
--- /dev/null
+++ b/backend/src/config/bodyparser.ts
@@ -0,0 +1,27 @@
+import { defineConfig } from "@adonisjs/core/bodyparser";
+
+const bodyParserConfig = defineConfig({
+  allowedMethods: ["POST", "PUT", "PATCH", "DELETE"],
+  form: {
+    convertEmptyStringsToNull: true,
+    types: ["application/x-www-form-urlencoded"],
+  },
+  json: {
+    convertEmptyStringsToNull: true,
+    types: [
+      "application/json",
+      "application/json-patch+json",
+      "application/vnd.api+json",
+      "application/csp-report",
+    ],
+  },
+  multipart: {
+    autoProcess: true,
+    convertEmptyStringsToNull: true,
+    processManually: [],
+    limit: "20mb",
+    types: ["multipart/form-data"],
+  },
+});
+
+export default bodyParserConfig;
diff --git a/backend/src/config/cors.ts b/backend/src/config/cors.ts
new file mode 100644
index 00000000..291b3f46
--- /dev/null
+++ b/backend/src/config/cors.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from "@adonisjs/cors";
+
+const corsConfig = defineConfig({
+  enabled: true,
+  origin: true,
+  methods: ["GET", "HEAD", "POST", "PUT", "DELETE"],
+  headers: true,
+  exposeHeaders: [],
+  credentials: true,
+  maxAge: 90,
+});
+
+export default corsConfig;
diff --git a/backend/src/config/hash.ts b/backend/src/config/hash.ts
new file mode 100644
index 00000000..ae30a1e0
--- /dev/null
+++ b/backend/src/config/hash.ts
@@ -0,0 +1,21 @@
+import { defineConfig, drivers } from "@adonisjs/core/hash";
+
+const hashConfig = defineConfig({
+  default: "scrypt",
+
+  list: {
+    scrypt: drivers.scrypt({
+      cost: 16384,
+      blockSize: 8,
+      parallelization: 1,
+      maxMemory: 33554432,
+    }),
+  },
+});
+
+export default hashConfig;
+
+declare module "@adonisjs/core/types" {
+  // eslint-disable-next-line @typescript-eslint/no-empty-object-type
+  export interface HashersList extends InferHashers<typeof hashConfig> {}
+}
diff --git a/backend/src/config/logger.ts b/backend/src/config/logger.ts
new file mode 100644
index 00000000..87318012
--- /dev/null
+++ b/backend/src/config/logger.ts
@@ -0,0 +1,27 @@
+import { defineConfig, targets } from "@adonisjs/core/logger";
+import app from "@adonisjs/core/services/app";
+
+const loggerConfig = defineConfig({
+  default: "app",
+
+  loggers: {
+    app: {
+      enabled: true,
+      name: "backend",
+      level: "debug",
+      transport: {
+        targets: targets()
+          .pushIf(!app.inProduction, targets.pretty())
+          .pushIf(app.inProduction, targets.file({ destination: 1 }))
+          .toArray(),
+      },
+    },
+  },
+});
+
+export default loggerConfig;
+
+declare module "@adonisjs/core/types" {
+  // eslint-disable-next-line @typescript-eslint/no-empty-object-type
+  export interface LoggersList extends InferLoggers<typeof loggerConfig> {}
+}
diff --git a/backend/src/auth/blid.ts b/backend/src/express/auth/blid.ts
similarity index 93%
rename from backend/src/auth/blid.ts
rename to backend/src/express/auth/blid.ts
index ae71f053..9c5bac40 100644
--- a/backend/src/auth/blid.ts
+++ b/backend/src/express/auth/blid.ts
@@ -1,4 +1,4 @@
-import BlCrypto from "@backend/express-config/bl-crypto.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
 function createUserBlid(provider: string, providerId: string): Promise<string> {
diff --git a/backend/src/auth/external/facebook.auth.ts b/backend/src/express/auth/external/facebook.auth.ts
similarity index 87%
rename from backend/src/auth/external/facebook.auth.ts
rename to backend/src/express/auth/external/facebook.auth.ts
index b4476fdb..41b95838 100644
--- a/backend/src/auth/external/facebook.auth.ts
+++ b/backend/src/express/auth/external/facebook.auth.ts
@@ -1,8 +1,11 @@
-import UserProvider from "@backend/auth/user/user-provider.js";
-import { createPath, retrieveRefererPath } from "@backend/express-config/api-path.js";
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
+import UserProvider from "@backend/express/auth/user/user-provider.js";
+import {
+  createPath,
+  retrieveRefererPath,
+} from "@backend/express/config/api-path.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Router } from "express";
 import passport from "passport";
diff --git a/backend/src/auth/external/google.auth.ts b/backend/src/express/auth/external/google.auth.ts
similarity index 87%
rename from backend/src/auth/external/google.auth.ts
rename to backend/src/express/auth/external/google.auth.ts
index 8af3f311..9e368d75 100644
--- a/backend/src/auth/external/google.auth.ts
+++ b/backend/src/express/auth/external/google.auth.ts
@@ -1,8 +1,11 @@
-import UserProvider from "@backend/auth/user/user-provider.js";
-import { createPath, retrieveRefererPath } from "@backend/express-config/api-path.js";
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
+import UserProvider from "@backend/express/auth/user/user-provider.js";
+import {
+  createPath,
+  retrieveRefererPath,
+} from "@backend/express/config/api-path.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Router } from "express";
 import passport from "passport";
diff --git a/backend/src/auth/local/hashed-password-generator.ts b/backend/src/express/auth/local/hashed-password-generator.ts
similarity index 89%
rename from backend/src/auth/local/hashed-password-generator.ts
rename to backend/src/express/auth/local/hashed-password-generator.ts
index 96f3e9e1..ca5f3438 100644
--- a/backend/src/auth/local/hashed-password-generator.ts
+++ b/backend/src/express/auth/local/hashed-password-generator.ts
@@ -1,5 +1,5 @@
-import SaltGenerator from "@backend/auth/local/salt-generator.js";
-import BlCrypto from "@backend/express-config/bl-crypto.js";
+import SaltGenerator from "@backend/express/auth/local/salt-generator.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
 function generate(
diff --git a/backend/src/auth/local/local-login-creator.ts b/backend/src/express/auth/local/local-login-creator.ts
similarity index 90%
rename from backend/src/auth/local/local-login-creator.ts
rename to backend/src/express/auth/local/local-login-creator.ts
index 3aa592f2..0f7d7c1b 100644
--- a/backend/src/auth/local/local-login-creator.ts
+++ b/backend/src/express/auth/local/local-login-creator.ts
@@ -1,5 +1,5 @@
-import HashedPasswordGenerator from "@backend/auth/local/hashed-password-generator.js";
-import ProviderIdGenerator from "@backend/auth/local/provider-id-generator.js";
+import HashedPasswordGenerator from "@backend/express/auth/local/hashed-password-generator.js";
+import ProviderIdGenerator from "@backend/express/auth/local/provider-id-generator.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import validator from "validator";
diff --git a/backend/src/auth/local/local-login-password.validator.ts b/backend/src/express/auth/local/local-login-password.validator.ts
similarity index 94%
rename from backend/src/auth/local/local-login-password.validator.ts
rename to backend/src/express/auth/local/local-login-password.validator.ts
index 79d12acd..4c073cd7 100644
--- a/backend/src/auth/local/local-login-password.validator.ts
+++ b/backend/src/express/auth/local/local-login-password.validator.ts
@@ -1,4 +1,4 @@
-import BlCrypto from "@backend/express-config/bl-crypto.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
 async function validate(
diff --git a/backend/src/auth/local/local-login.handler.ts b/backend/src/express/auth/local/local-login.handler.ts
similarity index 92%
rename from backend/src/auth/local/local-login.handler.ts
rename to backend/src/express/auth/local/local-login.handler.ts
index 755c1491..142a9d5f 100644
--- a/backend/src/auth/local/local-login.handler.ts
+++ b/backend/src/express/auth/local/local-login.handler.ts
@@ -1,9 +1,9 @@
-import HashedPasswordGenerator from "@backend/auth/local/hashed-password-generator.js";
-import LocalLoginCreator from "@backend/auth/local/local-login-creator.js";
-import BlCrypto from "@backend/express-config/bl-crypto.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import HashedPasswordGenerator from "@backend/express/auth/local/hashed-password-generator.js";
+import LocalLoginCreator from "@backend/express/auth/local/local-login-creator.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BlapiErrorResponse } from "@shared/blapi-response/blapi-error-response.js";
diff --git a/backend/src/auth/local/local-login.validator.ts b/backend/src/express/auth/local/local-login.validator.ts
similarity index 92%
rename from backend/src/auth/local/local-login.validator.ts
rename to backend/src/express/auth/local/local-login.validator.ts
index 3b9485b8..167119fd 100644
--- a/backend/src/auth/local/local-login.validator.ts
+++ b/backend/src/express/auth/local/local-login.validator.ts
@@ -1,7 +1,7 @@
-import LocalLoginCreator from "@backend/auth/local/local-login-creator.js";
-import LocalLoginPasswordValidator from "@backend/auth/local/local-login-password.validator.js";
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
+import LocalLoginCreator from "@backend/express/auth/local/local-login-creator.js";
+import LocalLoginPasswordValidator from "@backend/express/auth/local/local-login-password.validator.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { User } from "@backend/types/user.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/auth/local/local.auth.ts b/backend/src/express/auth/local/local.auth.ts
similarity index 93%
rename from backend/src/auth/local/local.auth.ts
rename to backend/src/express/auth/local/local.auth.ts
index 8d19e3e5..53198743 100644
--- a/backend/src/auth/local/local.auth.ts
+++ b/backend/src/express/auth/local/local.auth.ts
@@ -1,7 +1,7 @@
-import LocalLoginValidator from "@backend/auth/local/local-login.validator.js";
-import TokenHandler from "@backend/auth/token/token.handler.js";
-import { createPath } from "@backend/express-config/api-path.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
+import LocalLoginValidator from "@backend/express/auth/local/local-login.validator.js";
+import TokenHandler from "@backend/express/auth/token/token.handler.js";
+import { createPath } from "@backend/express/config/api-path.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
 import { Response, Router } from "express";
diff --git a/backend/src/auth/local/provider-id-generator.ts b/backend/src/express/auth/local/provider-id-generator.ts
similarity index 94%
rename from backend/src/auth/local/provider-id-generator.ts
rename to backend/src/express/auth/local/provider-id-generator.ts
index 665d4459..0b70070a 100644
--- a/backend/src/auth/local/provider-id-generator.ts
+++ b/backend/src/express/auth/local/provider-id-generator.ts
@@ -1,6 +1,6 @@
 import crypto from "node:crypto";
 
-import BlCrypto from "@backend/express-config/bl-crypto.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
 function generate(username: string): Promise<string> {
diff --git a/backend/src/auth/local/salt-generator.ts b/backend/src/express/auth/local/salt-generator.ts
similarity index 100%
rename from backend/src/auth/local/salt-generator.ts
rename to backend/src/express/auth/local/salt-generator.ts
diff --git a/backend/src/auth/permission.service.ts b/backend/src/express/auth/permission.service.ts
similarity index 100%
rename from backend/src/auth/permission.service.ts
rename to backend/src/express/auth/permission.service.ts
diff --git a/backend/src/auth/token/access-token/access-token.creator.ts b/backend/src/express/auth/token/access-token/access-token.creator.ts
similarity index 89%
rename from backend/src/auth/token/access-token/access-token.creator.ts
rename to backend/src/express/auth/token/access-token/access-token.creator.ts
index e28d27ee..0c9d609c 100644
--- a/backend/src/auth/token/access-token/access-token.creator.ts
+++ b/backend/src/express/auth/token/access-token/access-token.creator.ts
@@ -1,6 +1,6 @@
-import RefreshTokenValidator from "@backend/auth/token/refresh/refresh-token.validator.js";
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
+import RefreshTokenValidator from "@backend/express/auth/token/refresh/refresh-token.validator.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { UserPermission } from "@shared/permission/user-permission.js";
 import jwt from "jsonwebtoken";
diff --git a/backend/src/auth/token/refresh/refresh-token.creator.ts b/backend/src/express/auth/token/refresh/refresh-token.creator.ts
similarity index 91%
rename from backend/src/auth/token/refresh/refresh-token.creator.ts
rename to backend/src/express/auth/token/refresh/refresh-token.creator.ts
index 01665af5..67648ff9 100644
--- a/backend/src/auth/token/refresh/refresh-token.creator.ts
+++ b/backend/src/express/auth/token/refresh/refresh-token.creator.ts
@@ -1,5 +1,5 @@
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import jwt from "jsonwebtoken";
 import validator from "validator";
diff --git a/backend/src/auth/token/refresh/refresh-token.validator.ts b/backend/src/express/auth/token/refresh/refresh-token.validator.ts
similarity index 93%
rename from backend/src/auth/token/refresh/refresh-token.validator.ts
rename to backend/src/express/auth/token/refresh/refresh-token.validator.ts
index 6ff2e5f7..3ec43e97 100644
--- a/backend/src/auth/token/refresh/refresh-token.validator.ts
+++ b/backend/src/express/auth/token/refresh/refresh-token.validator.ts
@@ -1,4 +1,4 @@
-import { BlEnv } from "@backend/express-config/env.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import jwt from "jsonwebtoken";
 
diff --git a/backend/src/auth/token/token.endpoint.ts b/backend/src/express/auth/token/token.endpoint.ts
similarity index 85%
rename from backend/src/auth/token/token.endpoint.ts
rename to backend/src/express/auth/token/token.endpoint.ts
index 87914252..155ea999 100644
--- a/backend/src/auth/token/token.endpoint.ts
+++ b/backend/src/express/auth/token/token.endpoint.ts
@@ -1,7 +1,7 @@
-import RefreshTokenValidator from "@backend/auth/token/refresh/refresh-token.validator.js";
-import TokenHandler from "@backend/auth/token/token.handler.js";
-import { createPath } from "@backend/express-config/api-path.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
+import RefreshTokenValidator from "@backend/express/auth/token/refresh/refresh-token.validator.js";
+import TokenHandler from "@backend/express/auth/token/token.handler.js";
+import { createPath } from "@backend/express/config/api-path.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
 import { RefreshToken } from "@backend/types/refresh-token.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/auth/token/token.handler.ts b/backend/src/express/auth/token/token.handler.ts
similarity index 88%
rename from backend/src/auth/token/token.handler.ts
rename to backend/src/express/auth/token/token.handler.ts
index efad8e84..bd2a44d0 100644
--- a/backend/src/auth/token/token.handler.ts
+++ b/backend/src/express/auth/token/token.handler.ts
@@ -1,6 +1,6 @@
-import AccessTokenCreator from "@backend/auth/token/access-token/access-token.creator.js";
-import RefreshTokenCreator from "@backend/auth/token/refresh/refresh-token.creator.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
+import AccessTokenCreator from "@backend/express/auth/token/access-token/access-token.creator.js";
+import RefreshTokenCreator from "@backend/express/auth/token/refresh/refresh-token.creator.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
 import { User } from "@backend/types/user.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
diff --git a/backend/src/auth/user/user-provider.ts b/backend/src/express/auth/user/user-provider.ts
similarity index 79%
rename from backend/src/auth/user/user-provider.ts
rename to backend/src/express/auth/user/user-provider.ts
index a538b34a..1f32ca5e 100644
--- a/backend/src/auth/user/user-provider.ts
+++ b/backend/src/express/auth/user/user-provider.ts
@@ -1,6 +1,6 @@
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import TokenHandler from "@backend/auth/token/token.handler.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import TokenHandler from "@backend/express/auth/token/token.handler.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
 import { User } from "@backend/types/user.js";
 
 async function getUser(
diff --git a/backend/src/auth/user/user.handler.ts b/backend/src/express/auth/user/user.handler.ts
similarity index 95%
rename from backend/src/auth/user/user.handler.ts
rename to backend/src/express/auth/user/user.handler.ts
index 91aa832f..1060890a 100644
--- a/backend/src/auth/user/user.handler.ts
+++ b/backend/src/express/auth/user/user.handler.ts
@@ -1,8 +1,8 @@
-import Blid from "@backend/auth/blid.js";
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import EmailValidationHelper from "@backend/collections/email-validation/helpers/email-validation.helper.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import Blid from "@backend/express/auth/blid.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import EmailValidationHelper from "@backend/express/collections/email-validation/helpers/email-validation.helper.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { User } from "@backend/types/user.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
diff --git a/backend/src/bl-error/bl-error.handler.ts b/backend/src/express/bl-error/bl-error.handler.ts
similarity index 99%
rename from backend/src/bl-error/bl-error.handler.ts
rename to backend/src/express/bl-error/bl-error.handler.ts
index c0fe9d8a..3ff4ebea 100644
--- a/backend/src/bl-error/bl-error.handler.ts
+++ b/backend/src/express/bl-error/bl-error.handler.ts
@@ -1,4 +1,4 @@
-import { logger } from "@backend/express-config/logger.js";
+import { logger } from "@backend/express/config/logger.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BlapiErrorResponse } from "@shared/blapi-response/blapi-error-response.js";
 
diff --git a/backend/src/blc/date.service.ts b/backend/src/express/blc/date.service.ts
similarity index 100%
rename from backend/src/blc/date.service.ts
rename to backend/src/express/blc/date.service.ts
diff --git a/backend/src/collection-endpoint/collection-endpoint-auth.ts b/backend/src/express/collection-endpoint/collection-endpoint-auth.ts
similarity index 91%
rename from backend/src/collection-endpoint/collection-endpoint-auth.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-auth.ts
index b12d9012..30aa8625 100644
--- a/backend/src/collection-endpoint/collection-endpoint-auth.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-auth.ts
@@ -1,5 +1,5 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { isNotNullish } from "@backend/helper/typescript-helpers.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { isNotNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlEndpointRestriction } from "@backend/types/bl-collection.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { AccessToken } from "@shared/token/access-token.js";
diff --git a/backend/src/collection-endpoint/collection-endpoint-creator.ts b/backend/src/express/collection-endpoint/collection-endpoint-creator.ts
similarity index 64%
rename from backend/src/collection-endpoint/collection-endpoint-creator.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-creator.ts
index ae7e4a29..0d8bd11c 100644
--- a/backend/src/collection-endpoint/collection-endpoint-creator.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-creator.ts
@@ -1,10 +1,10 @@
-import { CollectionEndpointDelete } from "@backend/collection-endpoint/collection-endpoint-delete.js";
-import { CollectionEndpointGetAll } from "@backend/collection-endpoint/collection-endpoint-get-all.js";
-import { CollectionEndpointGetId } from "@backend/collection-endpoint/collection-endpoint-get-id.js";
-import { CollectionEndpointPatch } from "@backend/collection-endpoint/collection-endpoint-patch.js";
-import { CollectionEndpointPost } from "@backend/collection-endpoint/collection-endpoint-post.js";
-import { CollectionEndpointPut } from "@backend/collection-endpoint/collection-endpoint-put.js";
-import BlCollections from "@backend/collections/bl-collections.js";
+import { CollectionEndpointDelete } from "@backend/express/collection-endpoint/collection-endpoint-delete.js";
+import { CollectionEndpointGetAll } from "@backend/express/collection-endpoint/collection-endpoint-get-all.js";
+import { CollectionEndpointGetId } from "@backend/express/collection-endpoint/collection-endpoint-get-id.js";
+import { CollectionEndpointPatch } from "@backend/express/collection-endpoint/collection-endpoint-patch.js";
+import { CollectionEndpointPost } from "@backend/express/collection-endpoint/collection-endpoint-post.js";
+import { CollectionEndpointPut } from "@backend/express/collection-endpoint/collection-endpoint-put.js";
+import BlCollections from "@backend/express/collections/bl-collections.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Router } from "express";
 
diff --git a/backend/src/collection-endpoint/collection-endpoint-delete.ts b/backend/src/express/collection-endpoint/collection-endpoint-delete.ts
similarity index 83%
rename from backend/src/collection-endpoint/collection-endpoint-delete.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-delete.ts
index b3984092..174b10d4 100644
--- a/backend/src/collection-endpoint/collection-endpoint-delete.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-delete.ts
@@ -1,5 +1,5 @@
-import { CollectionEndpointMethod } from "@backend/collection-endpoint/collection-endpoint-method.js";
-import { CollectionEndpointOnRequest } from "@backend/collection-endpoint/collection-endpoint-on-request.js";
+import { CollectionEndpointMethod } from "@backend/express/collection-endpoint/collection-endpoint-method.js";
+import { CollectionEndpointOnRequest } from "@backend/express/collection-endpoint/collection-endpoint-on-request.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
diff --git a/backend/src/collection-endpoint/collection-endpoint-document-auth.ts b/backend/src/express/collection-endpoint/collection-endpoint-document-auth.ts
similarity index 91%
rename from backend/src/collection-endpoint/collection-endpoint-document-auth.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-document-auth.ts
index 07621084..aa91960c 100644
--- a/backend/src/collection-endpoint/collection-endpoint-document-auth.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-document-auth.ts
@@ -1,6 +1,6 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { BlStorageData } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { BlStorageData } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import {
   BlDocumentPermission,
diff --git a/backend/src/collection-endpoint/collection-endpoint-get-all.ts b/backend/src/express/collection-endpoint/collection-endpoint-get-all.ts
similarity index 81%
rename from backend/src/collection-endpoint/collection-endpoint-get-all.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-get-all.ts
index b7327284..05358970 100644
--- a/backend/src/collection-endpoint/collection-endpoint-get-all.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-get-all.ts
@@ -1,7 +1,7 @@
-import { CollectionEndpointMethod } from "@backend/collection-endpoint/collection-endpoint-method.js";
-import { CollectionEndpointOnRequest } from "@backend/collection-endpoint/collection-endpoint-on-request.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
+import { CollectionEndpointMethod } from "@backend/express/collection-endpoint/collection-endpoint-method.js";
+import { CollectionEndpointOnRequest } from "@backend/express/collection-endpoint/collection-endpoint-on-request.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 export class CollectionEndpointGetAll
diff --git a/backend/src/collection-endpoint/collection-endpoint-get-id.ts b/backend/src/express/collection-endpoint/collection-endpoint-get-id.ts
similarity index 67%
rename from backend/src/collection-endpoint/collection-endpoint-get-id.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-get-id.ts
index 12ac67ba..6bc12659 100644
--- a/backend/src/collection-endpoint/collection-endpoint-get-id.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-get-id.ts
@@ -1,5 +1,5 @@
-import { CollectionEndpointMethod } from "@backend/collection-endpoint/collection-endpoint-method.js";
-import { CollectionEndpointOnRequest } from "@backend/collection-endpoint/collection-endpoint-on-request.js";
+import { CollectionEndpointMethod } from "@backend/express/collection-endpoint/collection-endpoint-method.js";
+import { CollectionEndpointOnRequest } from "@backend/express/collection-endpoint/collection-endpoint-on-request.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 export class CollectionEndpointGetId
   extends CollectionEndpointMethod
diff --git a/backend/src/collection-endpoint/collection-endpoint-method.ts b/backend/src/express/collection-endpoint/collection-endpoint-method.ts
similarity index 85%
rename from backend/src/collection-endpoint/collection-endpoint-method.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-method.ts
index 7c50d511..048dc0e9 100644
--- a/backend/src/collection-endpoint/collection-endpoint-method.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-method.ts
@@ -1,11 +1,14 @@
-import CollectionEndpointAuth from "@backend/collection-endpoint/collection-endpoint-auth.js";
-import CollectionEndpointDocumentAuth from "@backend/collection-endpoint/collection-endpoint-document-auth.js";
-import { CollectionEndpointOperation } from "@backend/collection-endpoint/collection-endpoint-operation.js";
-import { createPath } from "@backend/express-config/api-path.js";
-import { isBoolean, isNotNullish } from "@backend/helper/typescript-helpers.js";
-import { Hook } from "@backend/hook/hook.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorageData } from "@backend/storage/bl-storage.js";
+import CollectionEndpointAuth from "@backend/express/collection-endpoint/collection-endpoint-auth.js";
+import CollectionEndpointDocumentAuth from "@backend/express/collection-endpoint/collection-endpoint-document-auth.js";
+import { CollectionEndpointOperation } from "@backend/express/collection-endpoint/collection-endpoint-operation.js";
+import { createPath } from "@backend/express/config/api-path.js";
+import {
+  isBoolean,
+  isNotNullish,
+} from "@backend/express/helper/typescript-helpers.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorageData } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { BlCollection, BlEndpoint } from "@backend/types/bl-collection.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collection-endpoint/collection-endpoint-on-request.ts b/backend/src/express/collection-endpoint/collection-endpoint-on-request.ts
similarity index 53%
rename from backend/src/collection-endpoint/collection-endpoint-on-request.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-on-request.ts
index c5252aa8..013a9e89 100644
--- a/backend/src/collection-endpoint/collection-endpoint-on-request.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-on-request.ts
@@ -1,5 +1,5 @@
-import { CollectionEndpointMethod } from "@backend/collection-endpoint/collection-endpoint-method.js";
-import { BlStorageData } from "@backend/storage/bl-storage.js";
+import { CollectionEndpointMethod } from "@backend/express/collection-endpoint/collection-endpoint-method.js";
+import { BlStorageData } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 
 export interface CollectionEndpointOnRequest extends CollectionEndpointMethod {
diff --git a/backend/src/collection-endpoint/collection-endpoint-operation.ts b/backend/src/express/collection-endpoint/collection-endpoint-operation.ts
similarity index 91%
rename from backend/src/collection-endpoint/collection-endpoint-operation.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-operation.ts
index 6ed09ac2..02876ee4 100644
--- a/backend/src/collection-endpoint/collection-endpoint-operation.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-operation.ts
@@ -1,6 +1,6 @@
-import CollectionEndpointAuth from "@backend/collection-endpoint/collection-endpoint-auth.js";
-import { isBoolean } from "@backend/helper/typescript-helpers.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
+import CollectionEndpointAuth from "@backend/express/collection-endpoint/collection-endpoint-auth.js";
+import { isBoolean } from "@backend/express/helper/typescript-helpers.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import {
   BlEndpointMethod,
diff --git a/backend/src/collection-endpoint/collection-endpoint-patch.ts b/backend/src/express/collection-endpoint/collection-endpoint-patch.ts
similarity index 80%
rename from backend/src/collection-endpoint/collection-endpoint-patch.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-patch.ts
index caaccb67..25c156df 100644
--- a/backend/src/collection-endpoint/collection-endpoint-patch.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-patch.ts
@@ -1,5 +1,5 @@
-import { CollectionEndpointMethod } from "@backend/collection-endpoint/collection-endpoint-method.js";
-import { CollectionEndpointOnRequest } from "@backend/collection-endpoint/collection-endpoint-on-request.js";
+import { CollectionEndpointMethod } from "@backend/express/collection-endpoint/collection-endpoint-method.js";
+import { CollectionEndpointOnRequest } from "@backend/express/collection-endpoint/collection-endpoint-on-request.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 export class CollectionEndpointPatch
diff --git a/backend/src/collection-endpoint/collection-endpoint-post.ts b/backend/src/express/collection-endpoint/collection-endpoint-post.ts
similarity index 77%
rename from backend/src/collection-endpoint/collection-endpoint-post.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-post.ts
index d221a997..3556bc0e 100644
--- a/backend/src/collection-endpoint/collection-endpoint-post.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-post.ts
@@ -1,5 +1,5 @@
-import { CollectionEndpointMethod } from "@backend/collection-endpoint/collection-endpoint-method.js";
-import { CollectionEndpointOnRequest } from "@backend/collection-endpoint/collection-endpoint-on-request.js";
+import { CollectionEndpointMethod } from "@backend/express/collection-endpoint/collection-endpoint-method.js";
+import { CollectionEndpointOnRequest } from "@backend/express/collection-endpoint/collection-endpoint-on-request.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 export class CollectionEndpointPost
diff --git a/backend/src/collection-endpoint/collection-endpoint-put.ts b/backend/src/express/collection-endpoint/collection-endpoint-put.ts
similarity index 80%
rename from backend/src/collection-endpoint/collection-endpoint-put.ts
rename to backend/src/express/collection-endpoint/collection-endpoint-put.ts
index 8c834a36..83e57c9c 100644
--- a/backend/src/collection-endpoint/collection-endpoint-put.ts
+++ b/backend/src/express/collection-endpoint/collection-endpoint-put.ts
@@ -1,5 +1,5 @@
-import { CollectionEndpointMethod } from "@backend/collection-endpoint/collection-endpoint-method.js";
-import { CollectionEndpointOnRequest } from "@backend/collection-endpoint/collection-endpoint-on-request.js";
+import { CollectionEndpointMethod } from "@backend/express/collection-endpoint/collection-endpoint-method.js";
+import { CollectionEndpointOnRequest } from "@backend/express/collection-endpoint/collection-endpoint-on-request.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
diff --git a/backend/src/express/collections/bl-collections.ts b/backend/src/express/collections/bl-collections.ts
new file mode 100644
index 00000000..e9bda552
--- /dev/null
+++ b/backend/src/express/collections/bl-collections.ts
@@ -0,0 +1,43 @@
+import { BranchCollection } from "@backend/express/collections/branch/branch.collection.js";
+import { BranchItemCollection } from "@backend/express/collections/branch-item/branch-item.collection.js";
+import { CompanyCollection } from "@backend/express/collections/company/company.collection.js";
+import { CustomerItemCollection } from "@backend/express/collections/customer-item/customer-item.collection.js";
+import { DeliveryCollection } from "@backend/express/collections/delivery/delivery.collection.js";
+import { EditableTextCollection } from "@backend/express/collections/editable-text/editable-text.collection.js";
+import { EmailValidationCollection } from "@backend/express/collections/email-validation/email-validation.collection.js";
+import { InvoiceCollection } from "@backend/express/collections/invoice/invoice.collection.js";
+import { ItemCollection } from "@backend/express/collections/item/item.collection.js";
+import { MessageCollection } from "@backend/express/collections/message/message.collection.js";
+import { OpeningHourCollection } from "@backend/express/collections/opening-hour/opening-hour.collection.js";
+import { OrderCollection } from "@backend/express/collections/order/order.collection.js";
+import { PaymentCollection } from "@backend/express/collections/payment/payment.collection.js";
+import { PendingPasswordResetCollection } from "@backend/express/collections/pending-password-reset/pending-password-reset.collection.js";
+import { SignatureCollection } from "@backend/express/collections/signature/signature.collection.js";
+import { StandMatchCollection } from "@backend/express/collections/stand-match/stand-match.collection.js";
+import { UniqueItemCollection } from "@backend/express/collections/unique-item/unique-item.collection.js";
+import { UserDetailCollection } from "@backend/express/collections/user-detail/user-detail.collection.js";
+import { UserMatchCollection } from "@backend/express/collections/user-match/user-match.collection.js";
+
+const BlCollections = [
+  BranchCollection,
+  BranchItemCollection,
+  CustomerItemCollection,
+  DeliveryCollection,
+  ItemCollection,
+  OpeningHourCollection,
+  OrderCollection,
+  PaymentCollection,
+  UserDetailCollection,
+  PendingPasswordResetCollection,
+  EmailValidationCollection,
+  MessageCollection,
+  StandMatchCollection,
+  UserMatchCollection,
+  InvoiceCollection,
+  CompanyCollection,
+  UniqueItemCollection,
+  EditableTextCollection,
+  SignatureCollection,
+];
+
+export default BlCollections;
diff --git a/backend/src/collections/branch-item/branch-item.collection.ts b/backend/src/express/collections/branch-item/branch-item.collection.ts
similarity index 89%
rename from backend/src/collections/branch-item/branch-item.collection.ts
rename to backend/src/express/collections/branch-item/branch-item.collection.ts
index f722f587..8ad943ca 100644
--- a/backend/src/collections/branch-item/branch-item.collection.ts
+++ b/backend/src/express/collections/branch-item/branch-item.collection.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const BranchItemCollection: BlCollection = {
diff --git a/backend/src/collections/branch/branch.collection.ts b/backend/src/express/collections/branch/branch.collection.ts
similarity index 87%
rename from backend/src/collections/branch/branch.collection.ts
rename to backend/src/express/collections/branch/branch.collection.ts
index e7581888..bcaa8f12 100644
--- a/backend/src/collections/branch/branch.collection.ts
+++ b/backend/src/express/collections/branch/branch.collection.ts
@@ -1,5 +1,5 @@
-import { BranchGetHook } from "@backend/collections/branch/hook/branch-get.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BranchGetHook } from "@backend/express/collections/branch/hook/branch-get.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const BranchCollection: BlCollection = {
diff --git a/backend/src/collections/branch/hook/branch-get.hook.ts b/backend/src/express/collections/branch/hook/branch-get.hook.ts
similarity index 91%
rename from backend/src/collections/branch/hook/branch-get.hook.ts
rename to backend/src/express/collections/branch/hook/branch-get.hook.ts
index 24971bda..c808193d 100644
--- a/backend/src/collections/branch/hook/branch-get.hook.ts
+++ b/backend/src/express/collections/branch/hook/branch-get.hook.ts
@@ -1,5 +1,5 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { Hook } from "@backend/hook/hook.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { Hook } from "@backend/express/hook/hook.js";
 import { Branch } from "@shared/branch/branch.js";
 import { AccessToken } from "@shared/token/access-token.js";
 
diff --git a/backend/src/collections/company/company.collection.ts b/backend/src/express/collections/company/company.collection.ts
similarity index 91%
rename from backend/src/collections/company/company.collection.ts
rename to backend/src/express/collections/company/company.collection.ts
index 4f2e322e..13a9dbdf 100644
--- a/backend/src/collections/company/company.collection.ts
+++ b/backend/src/express/collections/company/company.collection.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const CompanyCollection: BlCollection = {
diff --git a/backend/src/collections/customer-item/customer-item-generate-report.operation.ts b/backend/src/express/collections/customer-item/customer-item-generate-report.operation.ts
similarity index 98%
rename from backend/src/collections/customer-item/customer-item-generate-report.operation.ts
rename to backend/src/express/collections/customer-item/customer-item-generate-report.operation.ts
index 2565c2e1..1104cc3d 100644
--- a/backend/src/collections/customer-item/customer-item-generate-report.operation.ts
+++ b/backend/src/express/collections/customer-item/customer-item-generate-report.operation.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/customer-item/customer-item.collection.ts b/backend/src/express/collections/customer-item/customer-item.collection.ts
similarity index 85%
rename from backend/src/collections/customer-item/customer-item.collection.ts
rename to backend/src/express/collections/customer-item/customer-item.collection.ts
index b7e615a4..fb15d7b8 100644
--- a/backend/src/collections/customer-item/customer-item.collection.ts
+++ b/backend/src/express/collections/customer-item/customer-item.collection.ts
@@ -1,7 +1,7 @@
-import { CustomerItemGenerateReportOperation } from "@backend/collections/customer-item/customer-item-generate-report.operation.js";
-import { CustomerItemPostHook } from "@backend/collections/customer-item/hooks/customer-item-post.hook.js";
-import { PublicBlidLookupOperation } from "@backend/collections/customer-item/public-blid-lookup.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemGenerateReportOperation } from "@backend/express/collections/customer-item/customer-item-generate-report.operation.js";
+import { CustomerItemPostHook } from "@backend/express/collections/customer-item/hooks/customer-item-post.hook.js";
+import { PublicBlidLookupOperation } from "@backend/express/collections/customer-item/public-blid-lookup.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const CustomerItemCollection: BlCollection = {
diff --git a/backend/src/collections/customer-item/helpers/customer-have-active-customer-items.ts b/backend/src/express/collections/customer-item/helpers/customer-have-active-customer-items.ts
similarity index 77%
rename from backend/src/collections/customer-item/helpers/customer-have-active-customer-items.ts
rename to backend/src/express/collections/customer-item/helpers/customer-have-active-customer-items.ts
index d680fdf3..c122567c 100644
--- a/backend/src/collections/customer-item/helpers/customer-have-active-customer-items.ts
+++ b/backend/src/express/collections/customer-item/helpers/customer-have-active-customer-items.ts
@@ -1,6 +1,6 @@
-import { CustomerItemActive } from "@backend/collections/customer-item/helpers/customer-item-active.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemActive } from "@backend/express/collections/customer-item/helpers/customer-item-active.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 
diff --git a/backend/src/collections/customer-item/helpers/customer-item-active-blid.ts b/backend/src/express/collections/customer-item/helpers/customer-item-active-blid.ts
similarity index 80%
rename from backend/src/collections/customer-item/helpers/customer-item-active-blid.ts
rename to backend/src/express/collections/customer-item/helpers/customer-item-active-blid.ts
index 30119ee2..f40b78b7 100644
--- a/backend/src/collections/customer-item/helpers/customer-item-active-blid.ts
+++ b/backend/src/express/collections/customer-item/helpers/customer-item-active-blid.ts
@@ -1,6 +1,6 @@
-import { CustomerItemActive } from "@backend/collections/customer-item/helpers/customer-item-active.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemActive } from "@backend/express/collections/customer-item/helpers/customer-item-active.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 
 export class CustomerItemActiveBlid {
diff --git a/backend/src/collections/customer-item/helpers/customer-item-active.ts b/backend/src/express/collections/customer-item/helpers/customer-item-active.ts
similarity index 100%
rename from backend/src/collections/customer-item/helpers/customer-item-active.ts
rename to backend/src/express/collections/customer-item/helpers/customer-item-active.ts
diff --git a/backend/src/collections/customer-item/helpers/customer-item-handler.ts b/backend/src/express/collections/customer-item/helpers/customer-item-handler.ts
similarity index 98%
rename from backend/src/collections/customer-item/helpers/customer-item-handler.ts
rename to backend/src/express/collections/customer-item/helpers/customer-item-handler.ts
index 3d1d7f03..9b7babce 100644
--- a/backend/src/collections/customer-item/helpers/customer-item-handler.ts
+++ b/backend/src/express/collections/customer-item/helpers/customer-item-handler.ts
@@ -1,5 +1,5 @@
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
diff --git a/backend/src/collections/customer-item/helpers/order-to-customer-item-generator.ts b/backend/src/express/collections/customer-item/helpers/order-to-customer-item-generator.ts
similarity index 98%
rename from backend/src/collections/customer-item/helpers/order-to-customer-item-generator.ts
rename to backend/src/express/collections/customer-item/helpers/order-to-customer-item-generator.ts
index 82fdad3d..c60726c9 100644
--- a/backend/src/collections/customer-item/helpers/order-to-customer-item-generator.ts
+++ b/backend/src/express/collections/customer-item/helpers/order-to-customer-item-generator.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/customer-item/hooks/customer-item-post.hook.ts b/backend/src/express/collections/customer-item/hooks/customer-item-post.hook.ts
similarity index 92%
rename from backend/src/collections/customer-item/hooks/customer-item-post.hook.ts
rename to backend/src/express/collections/customer-item/hooks/customer-item-post.hook.ts
index 00399de5..d4517033 100644
--- a/backend/src/collections/customer-item/hooks/customer-item-post.hook.ts
+++ b/backend/src/express/collections/customer-item/hooks/customer-item-post.hook.ts
@@ -1,7 +1,7 @@
-import { CustomerItemValidator } from "@backend/collections/customer-item/validators/customer-item-validator.js";
-import { UserDetailHelper } from "@backend/collections/user-detail/helpers/user-detail.helper.js";
-import { Hook } from "@backend/hook/hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemValidator } from "@backend/express/collections/customer-item/validators/customer-item-validator.js";
+import { UserDetailHelper } from "@backend/express/collections/user-detail/helpers/user-detail.helper.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/customer-item/public-blid-lookup.operation.ts b/backend/src/express/collections/customer-item/public-blid-lookup.operation.ts
similarity index 96%
rename from backend/src/collections/customer-item/public-blid-lookup.operation.ts
rename to backend/src/express/collections/customer-item/public-blid-lookup.operation.ts
index 90acd23f..8b473975 100644
--- a/backend/src/collections/customer-item/public-blid-lookup.operation.ts
+++ b/backend/src/express/collections/customer-item/public-blid-lookup.operation.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/customer-item/validators/customer-item-validator.ts b/backend/src/express/collections/customer-item/validators/customer-item-validator.ts
similarity index 83%
rename from backend/src/collections/customer-item/validators/customer-item-validator.ts
rename to backend/src/express/collections/customer-item/validators/customer-item-validator.ts
index 95bef50e..b6c258bf 100644
--- a/backend/src/collections/customer-item/validators/customer-item-validator.ts
+++ b/backend/src/express/collections/customer-item/validators/customer-item-validator.ts
@@ -1,4 +1,4 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 
diff --git a/backend/src/collections/delivery/delivery.collection.ts b/backend/src/express/collections/delivery/delivery.collection.ts
similarity index 72%
rename from backend/src/collections/delivery/delivery.collection.ts
rename to backend/src/express/collections/delivery/delivery.collection.ts
index 16360e15..355a0f68 100644
--- a/backend/src/collections/delivery/delivery.collection.ts
+++ b/backend/src/express/collections/delivery/delivery.collection.ts
@@ -1,7 +1,7 @@
-import { DeliveryPatchHook } from "@backend/collections/delivery/hooks/delivery.patch.hook.js";
-import { DeliveryPostHook } from "@backend/collections/delivery/hooks/delivery.post.hook.js";
-import { PostalCodeLookupOperation } from "@backend/collections/delivery/operations/postal-code-lookup.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeliveryPatchHook } from "@backend/express/collections/delivery/hooks/delivery.patch.hook.js";
+import { DeliveryPostHook } from "@backend/express/collections/delivery/hooks/delivery.post.hook.js";
+import { PostalCodeLookupOperation } from "@backend/express/collections/delivery/operations/postal-code-lookup.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const DeliveryCollection: BlCollection = {
diff --git a/backend/src/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.ts b/backend/src/express/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.ts
similarity index 100%
rename from backend/src/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.ts
rename to backend/src/express/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.ts
diff --git a/backend/src/collections/delivery/helpers/deliveryBring/bringDelivery.service.ts b/backend/src/express/collections/delivery/helpers/deliveryBring/bringDelivery.service.ts
similarity index 95%
rename from backend/src/collections/delivery/helpers/deliveryBring/bringDelivery.service.ts
rename to backend/src/express/collections/delivery/helpers/deliveryBring/bringDelivery.service.ts
index dbeb7b7c..61c1b80f 100644
--- a/backend/src/collections/delivery/helpers/deliveryBring/bringDelivery.service.ts
+++ b/backend/src/express/collections/delivery/helpers/deliveryBring/bringDelivery.service.ts
@@ -1,8 +1,8 @@
-import { BringDelivery } from "@backend/collections/delivery/helpers/deliveryBring/bringDelivery.js";
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import HttpHandler from "@backend/http/http.handler.js";
+import { BringDelivery } from "@backend/express/collections/delivery/helpers/deliveryBring/bringDelivery.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import HttpHandler from "@backend/express/http/http.handler.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { DeliveryInfoBring } from "@shared/delivery/delivery-info/delivery-info-bring.js";
 import { Item } from "@shared/item/item.js";
diff --git a/backend/src/collections/delivery/helpers/deliveryBring/bringDelivery.ts b/backend/src/express/collections/delivery/helpers/deliveryBring/bringDelivery.ts
similarity index 100%
rename from backend/src/collections/delivery/helpers/deliveryBring/bringDelivery.ts
rename to backend/src/express/collections/delivery/helpers/deliveryBring/bringDelivery.ts
diff --git a/backend/src/collections/delivery/helpers/deliveryBring/delivery-bring-handler.ts b/backend/src/express/collections/delivery/helpers/deliveryBring/delivery-bring-handler.ts
similarity index 90%
rename from backend/src/collections/delivery/helpers/deliveryBring/delivery-bring-handler.ts
rename to backend/src/express/collections/delivery/helpers/deliveryBring/delivery-bring-handler.ts
index 00b5076d..302387c2 100644
--- a/backend/src/collections/delivery/helpers/deliveryBring/delivery-bring-handler.ts
+++ b/backend/src/express/collections/delivery/helpers/deliveryBring/delivery-bring-handler.ts
@@ -1,4 +1,4 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 
diff --git a/backend/src/collections/delivery/helpers/deliveryHandler/delivery-handler.ts b/backend/src/express/collections/delivery/helpers/deliveryHandler/delivery-handler.ts
similarity index 95%
rename from backend/src/collections/delivery/helpers/deliveryHandler/delivery-handler.ts
rename to backend/src/express/collections/delivery/helpers/deliveryHandler/delivery-handler.ts
index c9b24e0c..c545e621 100644
--- a/backend/src/collections/delivery/helpers/deliveryHandler/delivery-handler.ts
+++ b/backend/src/express/collections/delivery/helpers/deliveryHandler/delivery-handler.ts
@@ -1,5 +1,5 @@
-import { BringDeliveryService } from "@backend/collections/delivery/helpers/deliveryBring/bringDelivery.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BringDeliveryService } from "@backend/express/collections/delivery/helpers/deliveryBring/bringDelivery.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
 import { DeliveryInfoBring } from "@shared/delivery/delivery-info/delivery-info-bring.js";
diff --git a/backend/src/collections/delivery/helpers/deliveryValidator/delivery-validator.ts b/backend/src/express/collections/delivery/helpers/deliveryValidator/delivery-validator.ts
similarity index 80%
rename from backend/src/collections/delivery/helpers/deliveryValidator/delivery-validator.ts
rename to backend/src/express/collections/delivery/helpers/deliveryValidator/delivery-validator.ts
index 4520bdd1..25bcef90 100644
--- a/backend/src/collections/delivery/helpers/deliveryValidator/delivery-validator.ts
+++ b/backend/src/express/collections/delivery/helpers/deliveryValidator/delivery-validator.ts
@@ -1,6 +1,6 @@
-import { DeliveryBranchHandler } from "@backend/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.js";
-import { DeliveryBringHandler } from "@backend/collections/delivery/helpers/deliveryBring/delivery-bring-handler.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
+import { DeliveryBranchHandler } from "@backend/express/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.js";
+import { DeliveryBringHandler } from "@backend/express/collections/delivery/helpers/deliveryBring/delivery-bring-handler.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 
diff --git a/backend/src/collections/delivery/hooks/delivery.patch.hook.ts b/backend/src/express/collections/delivery/hooks/delivery.patch.hook.ts
similarity index 90%
rename from backend/src/collections/delivery/hooks/delivery.patch.hook.ts
rename to backend/src/express/collections/delivery/hooks/delivery.patch.hook.ts
index ec52bb51..96bbdb7c 100644
--- a/backend/src/collections/delivery/hooks/delivery.patch.hook.ts
+++ b/backend/src/express/collections/delivery/hooks/delivery.patch.hook.ts
@@ -1,7 +1,7 @@
-import { DeliveryHandler } from "@backend/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
-import { DeliveryValidator } from "@backend/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
-import { Hook } from "@backend/hook/hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeliveryHandler } from "@backend/express/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
+import { DeliveryValidator } from "@backend/express/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/delivery/hooks/delivery.post.hook.ts b/backend/src/express/collections/delivery/hooks/delivery.post.hook.ts
similarity index 84%
rename from backend/src/collections/delivery/hooks/delivery.post.hook.ts
rename to backend/src/express/collections/delivery/hooks/delivery.post.hook.ts
index f5fd0744..026fee49 100644
--- a/backend/src/collections/delivery/hooks/delivery.post.hook.ts
+++ b/backend/src/express/collections/delivery/hooks/delivery.post.hook.ts
@@ -1,7 +1,7 @@
-import { DeliveryHandler } from "@backend/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
-import { DeliveryValidator } from "@backend/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
-import { Hook } from "@backend/hook/hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeliveryHandler } from "@backend/express/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
+import { DeliveryValidator } from "@backend/express/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/delivery/operations/postal-code-lookup.operation.ts b/backend/src/express/collections/delivery/operations/postal-code-lookup.operation.ts
similarity index 89%
rename from backend/src/collections/delivery/operations/postal-code-lookup.operation.ts
rename to backend/src/express/collections/delivery/operations/postal-code-lookup.operation.ts
index 93455eb7..1712421c 100644
--- a/backend/src/collections/delivery/operations/postal-code-lookup.operation.ts
+++ b/backend/src/express/collections/delivery/operations/postal-code-lookup.operation.ts
@@ -1,6 +1,6 @@
-import { BlEnv } from "@backend/express-config/env.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import HttpHandler from "@backend/http/http.handler.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import HttpHandler from "@backend/express/http/http.handler.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/editable-text/editable-text.collection.ts b/backend/src/express/collections/editable-text/editable-text.collection.ts
similarity index 72%
rename from backend/src/collections/editable-text/editable-text.collection.ts
rename to backend/src/express/collections/editable-text/editable-text.collection.ts
index 66081861..94283340 100644
--- a/backend/src/collections/editable-text/editable-text.collection.ts
+++ b/backend/src/express/collections/editable-text/editable-text.collection.ts
@@ -1,5 +1,5 @@
-import { EditableTextPutHook } from "@backend/collections/editable-text/hooks/editable-text.put.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EditableTextPutHook } from "@backend/express/collections/editable-text/hooks/editable-text.put.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const EditableTextCollection: BlCollection = {
diff --git a/backend/src/collections/editable-text/hooks/editable-text.put.hook.ts b/backend/src/express/collections/editable-text/hooks/editable-text.put.hook.ts
similarity index 93%
rename from backend/src/collections/editable-text/hooks/editable-text.put.hook.ts
rename to backend/src/express/collections/editable-text/hooks/editable-text.put.hook.ts
index 1745c6ef..ba08104b 100644
--- a/backend/src/collections/editable-text/hooks/editable-text.put.hook.ts
+++ b/backend/src/express/collections/editable-text/hooks/editable-text.put.hook.ts
@@ -1,4 +1,4 @@
-import { Hook } from "@backend/hook/hook.js";
+import { Hook } from "@backend/express/hook/hook.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { EditableText } from "@shared/editable-text/editable-text.js";
 
diff --git a/backend/src/collections/email-validation/email-validation.collection.ts b/backend/src/express/collections/email-validation/email-validation.collection.ts
similarity index 63%
rename from backend/src/collections/email-validation/email-validation.collection.ts
rename to backend/src/express/collections/email-validation/email-validation.collection.ts
index fa1ad325..98c22f11 100644
--- a/backend/src/collections/email-validation/email-validation.collection.ts
+++ b/backend/src/express/collections/email-validation/email-validation.collection.ts
@@ -1,6 +1,6 @@
-import { EmailValidationPostHook } from "@backend/collections/email-validation/hooks/email-validation-post.hook.js";
-import { EmailValidationConfirmOperation } from "@backend/collections/email-validation/operations/email-validation-confirm.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EmailValidationPostHook } from "@backend/express/collections/email-validation/hooks/email-validation-post.hook.js";
+import { EmailValidationConfirmOperation } from "@backend/express/collections/email-validation/operations/email-validation-confirm.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const EmailValidationCollection: BlCollection = {
diff --git a/backend/src/collections/email-validation/email-validation.ts b/backend/src/express/collections/email-validation/email-validation.ts
similarity index 100%
rename from backend/src/collections/email-validation/email-validation.ts
rename to backend/src/express/collections/email-validation/email-validation.ts
diff --git a/backend/src/collections/email-validation/helpers/email-validation.helper.ts b/backend/src/express/collections/email-validation/helpers/email-validation.helper.ts
similarity index 89%
rename from backend/src/collections/email-validation/helpers/email-validation.helper.ts
rename to backend/src/express/collections/email-validation/helpers/email-validation.helper.ts
index 5aa4b832..8581259f 100644
--- a/backend/src/collections/email-validation/helpers/email-validation.helper.ts
+++ b/backend/src/express/collections/email-validation/helpers/email-validation.helper.ts
@@ -1,6 +1,6 @@
-import { EmailValidation } from "@backend/collections/email-validation/email-validation.js";
-import Messenger from "@backend/messenger/messenger.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EmailValidation } from "@backend/express/collections/email-validation/email-validation.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
 
diff --git a/backend/src/collections/email-validation/hooks/email-validation-post.hook.ts b/backend/src/express/collections/email-validation/hooks/email-validation-post.hook.ts
similarity index 74%
rename from backend/src/collections/email-validation/hooks/email-validation-post.hook.ts
rename to backend/src/express/collections/email-validation/hooks/email-validation-post.hook.ts
index d6d05e1a..87c10027 100644
--- a/backend/src/collections/email-validation/hooks/email-validation-post.hook.ts
+++ b/backend/src/express/collections/email-validation/hooks/email-validation-post.hook.ts
@@ -1,6 +1,6 @@
-import { EmailValidation } from "@backend/collections/email-validation/email-validation.js";
-import EmailValidationHelper from "@backend/collections/email-validation/helpers/email-validation.helper.js";
-import { Hook } from "@backend/hook/hook.js";
+import { EmailValidation } from "@backend/express/collections/email-validation/email-validation.js";
+import EmailValidationHelper from "@backend/express/collections/email-validation/helpers/email-validation.helper.js";
+import { Hook } from "@backend/express/hook/hook.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
 export class EmailValidationPostHook extends Hook {
diff --git a/backend/src/collections/email-validation/operations/email-validation-confirm.operation.ts b/backend/src/express/collections/email-validation/operations/email-validation-confirm.operation.ts
similarity index 84%
rename from backend/src/collections/email-validation/operations/email-validation-confirm.operation.ts
rename to backend/src/express/collections/email-validation/operations/email-validation-confirm.operation.ts
index 0534f373..c6c39fd7 100644
--- a/backend/src/collections/email-validation/operations/email-validation-confirm.operation.ts
+++ b/backend/src/express/collections/email-validation/operations/email-validation-confirm.operation.ts
@@ -1,7 +1,7 @@
-import { EmailValidation } from "@backend/collections/email-validation/email-validation.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EmailValidation } from "@backend/express/collections/email-validation/email-validation.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/invoice/helpers/customer-invoice-active.ts b/backend/src/express/collections/invoice/helpers/customer-invoice-active.ts
similarity index 77%
rename from backend/src/collections/invoice/helpers/customer-invoice-active.ts
rename to backend/src/express/collections/invoice/helpers/customer-invoice-active.ts
index 227a6152..2d134e7d 100644
--- a/backend/src/collections/invoice/helpers/customer-invoice-active.ts
+++ b/backend/src/express/collections/invoice/helpers/customer-invoice-active.ts
@@ -1,6 +1,6 @@
-import { InvoiceActive } from "@backend/collections/invoice/helpers/invoice-active.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { InvoiceActive } from "@backend/express/collections/invoice/helpers/invoice-active.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Invoice } from "@shared/invoice/invoice.js";
 
diff --git a/backend/src/collections/invoice/helpers/invoice-active.ts b/backend/src/express/collections/invoice/helpers/invoice-active.ts
similarity index 100%
rename from backend/src/collections/invoice/helpers/invoice-active.ts
rename to backend/src/express/collections/invoice/helpers/invoice-active.ts
diff --git a/backend/src/collections/invoice/invoice.collection.ts b/backend/src/express/collections/invoice/invoice.collection.ts
similarity index 88%
rename from backend/src/collections/invoice/invoice.collection.ts
rename to backend/src/express/collections/invoice/invoice.collection.ts
index a46fd06d..aab6e186 100644
--- a/backend/src/collections/invoice/invoice.collection.ts
+++ b/backend/src/express/collections/invoice/invoice.collection.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const InvoiceCollection: BlCollection = {
diff --git a/backend/src/collections/item/item.collection.ts b/backend/src/express/collections/item/item.collection.ts
similarity index 93%
rename from backend/src/collections/item/item.collection.ts
rename to backend/src/express/collections/item/item.collection.ts
index 17920528..fd63fe2f 100644
--- a/backend/src/collections/item/item.collection.ts
+++ b/backend/src/express/collections/item/item.collection.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const ItemCollection: BlCollection = {
diff --git a/backend/src/collections/message/helper/message-helper.ts b/backend/src/express/collections/message/helper/message-helper.ts
similarity index 90%
rename from backend/src/collections/message/helper/message-helper.ts
rename to backend/src/express/collections/message/helper/message-helper.ts
index 0987ccc4..fcdaa3bf 100644
--- a/backend/src/collections/message/helper/message-helper.ts
+++ b/backend/src/express/collections/message/helper/message-helper.ts
@@ -1,5 +1,5 @@
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Message } from "@shared/message/message.js";
 
diff --git a/backend/src/collections/message/hooks/message-post.hook.ts b/backend/src/express/collections/message/hooks/message-post.hook.ts
similarity index 89%
rename from backend/src/collections/message/hooks/message-post.hook.ts
rename to backend/src/express/collections/message/hooks/message-post.hook.ts
index 53f60b78..6fc687f4 100644
--- a/backend/src/collections/message/hooks/message-post.hook.ts
+++ b/backend/src/express/collections/message/hooks/message-post.hook.ts
@@ -1,8 +1,8 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { Hook } from "@backend/hook/hook.js";
-import Messenger from "@backend/messenger/messenger.js";
-import { MessengerReminder } from "@backend/messenger/reminder/messenger-reminder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import { MessengerReminder } from "@backend/express/messenger/reminder/messenger-reminder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Message } from "@shared/message/message.js";
 import { AccessToken } from "@shared/token/access-token.js";
diff --git a/backend/src/collections/message/message.collection.ts b/backend/src/express/collections/message/message.collection.ts
similarity index 70%
rename from backend/src/collections/message/message.collection.ts
rename to backend/src/express/collections/message/message.collection.ts
index ac573125..5f57f8c2 100644
--- a/backend/src/collections/message/message.collection.ts
+++ b/backend/src/express/collections/message/message.collection.ts
@@ -1,7 +1,7 @@
-import { MessagePostHook } from "@backend/collections/message/hooks/message-post.hook.js";
-import { SendgridEventOperation } from "@backend/collections/message/operations/sendgrid-event.operation.js";
-import { TwilioSmsEventOperation } from "@backend/collections/message/operations/twillio-sms-event.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { MessagePostHook } from "@backend/express/collections/message/hooks/message-post.hook.js";
+import { SendgridEventOperation } from "@backend/express/collections/message/operations/sendgrid-event.operation.js";
+import { TwilioSmsEventOperation } from "@backend/express/collections/message/operations/twillio-sms-event.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const MessageCollection: BlCollection = {
diff --git a/backend/src/collections/message/operations/sendgrid-event.operation.ts b/backend/src/express/collections/message/operations/sendgrid-event.operation.ts
similarity index 95%
rename from backend/src/collections/message/operations/sendgrid-event.operation.ts
rename to backend/src/express/collections/message/operations/sendgrid-event.operation.ts
index 6c494f26..eb17bbe1 100644
--- a/backend/src/collections/message/operations/sendgrid-event.operation.ts
+++ b/backend/src/express/collections/message/operations/sendgrid-event.operation.ts
@@ -1,5 +1,5 @@
-import { logger } from "@backend/express-config/logger.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { logger } from "@backend/express/config/logger.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/message/operations/twillio-sms-event.operation.ts b/backend/src/express/collections/message/operations/twillio-sms-event.operation.ts
similarity index 95%
rename from backend/src/collections/message/operations/twillio-sms-event.operation.ts
rename to backend/src/express/collections/message/operations/twillio-sms-event.operation.ts
index 017332f7..c4f6fa30 100644
--- a/backend/src/collections/message/operations/twillio-sms-event.operation.ts
+++ b/backend/src/express/collections/message/operations/twillio-sms-event.operation.ts
@@ -1,5 +1,5 @@
-import { logger } from "@backend/express-config/logger.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { logger } from "@backend/express/config/logger.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/opening-hour/helpers/opening-hour-helper.ts b/backend/src/express/collections/opening-hour/helpers/opening-hour-helper.ts
similarity index 95%
rename from backend/src/collections/opening-hour/helpers/opening-hour-helper.ts
rename to backend/src/express/collections/opening-hour/helpers/opening-hour-helper.ts
index b55e71b7..fd5ccabb 100644
--- a/backend/src/collections/opening-hour/helpers/opening-hour-helper.ts
+++ b/backend/src/express/collections/opening-hour/helpers/opening-hour-helper.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
 import { OpeningHour } from "@shared/opening-hour/opening-hour.js";
diff --git a/backend/src/collections/opening-hour/opening-hour.collection.ts b/backend/src/express/collections/opening-hour/opening-hour.collection.ts
similarity index 91%
rename from backend/src/collections/opening-hour/opening-hour.collection.ts
rename to backend/src/express/collections/opening-hour/opening-hour.collection.ts
index f93bd86f..9534f0af 100644
--- a/backend/src/collections/opening-hour/opening-hour.collection.ts
+++ b/backend/src/express/collections/opening-hour/opening-hour.collection.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const OpeningHourCollection: BlCollection = {
diff --git a/backend/src/collections/order/helpers/order-active/order-active.ts b/backend/src/express/collections/order/helpers/order-active/order-active.ts
similarity index 89%
rename from backend/src/collections/order/helpers/order-active/order-active.ts
rename to backend/src/express/collections/order/helpers/order-active/order-active.ts
index 58268761..4b0f76d4 100644
--- a/backend/src/collections/order/helpers/order-active/order-active.ts
+++ b/backend/src/express/collections/order/helpers/order-active/order-active.ts
@@ -1,5 +1,5 @@
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.ts b/backend/src/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.ts
similarity index 92%
rename from backend/src/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.ts
rename to backend/src/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.ts
index 60a063bf..bc2aded9 100644
--- a/backend/src/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.ts
+++ b/backend/src/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.ts
@@ -1,5 +1,5 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 
diff --git a/backend/src/collections/order/helpers/order-placed-handler/order-placed-handler.ts b/backend/src/express/collections/order/helpers/order-placed-handler/order-placed-handler.ts
similarity index 91%
rename from backend/src/collections/order/helpers/order-placed-handler/order-placed-handler.ts
rename to backend/src/express/collections/order/helpers/order-placed-handler/order-placed-handler.ts
index 72f0d698..b9561650 100644
--- a/backend/src/collections/order/helpers/order-placed-handler/order-placed-handler.ts
+++ b/backend/src/express/collections/order/helpers/order-placed-handler/order-placed-handler.ts
@@ -1,10 +1,10 @@
-import { CustomerItemHandler } from "@backend/collections/customer-item/helpers/customer-item-handler.js";
-import { OrderItemMovedFromOrderHandler } from "@backend/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
-import { PaymentHandler } from "@backend/collections/payment/helpers/payment-handler.js";
-import { userHasValidSignature } from "@backend/collections/signature/helpers/signature.helper.js";
-import { logger } from "@backend/express-config/logger.js";
-import Messenger from "@backend/messenger/messenger.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemHandler } from "@backend/express/collections/customer-item/helpers/customer-item-handler.js";
+import { OrderItemMovedFromOrderHandler } from "@backend/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
+import { PaymentHandler } from "@backend/express/collections/payment/helpers/payment-handler.js";
+import { userHasValidSignature } from "@backend/express/collections/signature/helpers/signature.helper.js";
+import { logger } from "@backend/express/config/logger.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { OrderItemType } from "@shared/order/order-item/order-item-type.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
diff --git a/backend/src/collections/order/helpers/order-validator/item-validator/item-validator.ts b/backend/src/express/collections/order/helpers/order-validator/item-validator/item-validator.ts
similarity index 100%
rename from backend/src/collections/order/helpers/order-validator/item-validator/item-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/item-validator/item-validator.ts
diff --git a/backend/src/collections/order/helpers/order-validator/order-field-validator/order-field-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.ts
similarity index 95%
rename from backend/src/collections/order/helpers/order-validator/order-field-validator/order-field-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.ts
index 0747e2f6..ac5a6fa5 100644
--- a/backend/src/collections/order/helpers/order-validator/order-field-validator/order-field-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.ts
@@ -1,4 +1,7 @@
-import { isNullish, isNumber } from "@backend/helper/typescript-helpers.js";
+import {
+  isNullish,
+  isNumber,
+} from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.ts
similarity index 96%
rename from backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.ts
index 2f39a783..04d04d0f 100644
--- a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.ts
@@ -1,5 +1,5 @@
-import { PriceService } from "@backend/price/price.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PriceService } from "@backend/express/price/price.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Item } from "@shared/item/item.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.ts
similarity index 97%
rename from backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.ts
index 1a49cc74..c6ba811f 100644
--- a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.ts
similarity index 96%
rename from backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.ts
index 7806a692..9fa54bb0 100644
--- a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.ts
@@ -1,4 +1,4 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.ts
similarity index 94%
rename from backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.ts
index b1c50a5f..8da18f47 100644
--- a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.ts
@@ -1,7 +1,7 @@
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { isNotNullish } from "@backend/helper/typescript-helpers.js";
-import { PriceService } from "@backend/price/price.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { isNotNullish } from "@backend/express/helper/typescript-helpers.js";
+import { PriceService } from "@backend/express/price/price.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BranchPaymentInfo } from "@shared/branch/branch-payment-info.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.ts
similarity index 80%
rename from backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.ts
index 6f511d72..64727a94 100644
--- a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.ts
@@ -1,5 +1,5 @@
-import { OrderItemRentPeriodValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
+import { OrderItemRentPeriodValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
 import { Item } from "@shared/item/item.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-validator.ts
similarity index 84%
rename from backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-validator.ts
index 0cf2435d..4d40c2d7 100644
--- a/backend/src/collections/order/helpers/order-validator/order-item-validator/order-item-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-item-validator/order-item-validator.ts
@@ -1,11 +1,11 @@
-import { OrderFieldValidator } from "@backend/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
-import { OrderItemBuyValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.js";
-import { OrderItemExtendValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.js";
-import { OrderItemPartlyPaymentValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.js";
-import { OrderItemRentValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.js";
-import { isNotNullish } from "@backend/helper/typescript-helpers.js";
-import { PriceService } from "@backend/price/price.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderFieldValidator } from "@backend/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
+import { OrderItemBuyValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.js";
+import { OrderItemExtendValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.js";
+import { OrderItemPartlyPaymentValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.js";
+import { OrderItemRentValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.js";
+import { isNotNullish } from "@backend/express/helper/typescript-helpers.js";
+import { PriceService } from "@backend/express/price/price.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
 import { Item } from "@shared/item/item.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.ts
similarity index 95%
rename from backend/src/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.ts
index a9f8f61f..1cc94c6e 100644
--- a/backend/src/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.ts
@@ -1,5 +1,5 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.ts
similarity index 92%
rename from backend/src/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.ts
index f5f0816d..41292830 100644
--- a/backend/src/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
diff --git a/backend/src/collections/order/helpers/order-validator/order-validator.ts b/backend/src/express/collections/order/helpers/order-validator/order-validator.ts
similarity index 73%
rename from backend/src/collections/order/helpers/order-validator/order-validator.ts
rename to backend/src/express/collections/order/helpers/order-validator/order-validator.ts
index d44fd095..47acde80 100644
--- a/backend/src/collections/order/helpers/order-validator/order-validator.ts
+++ b/backend/src/express/collections/order/helpers/order-validator/order-validator.ts
@@ -1,8 +1,8 @@
-import { OrderFieldValidator } from "@backend/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
-import { OrderItemValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-validator.js";
-import { OrderPlacedValidator } from "@backend/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.js";
-import { OrderUserDetailValidator } from "@backend/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderFieldValidator } from "@backend/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
+import { OrderItemValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-validator.js";
+import { OrderPlacedValidator } from "@backend/express/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.js";
+import { OrderUserDetailValidator } from "@backend/express/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 
diff --git a/backend/src/collections/order/hooks/order-hook-before.ts b/backend/src/express/collections/order/hooks/order-hook-before.ts
similarity index 94%
rename from backend/src/collections/order/hooks/order-hook-before.ts
rename to backend/src/express/collections/order/hooks/order-hook-before.ts
index 1db5b375..b75c0720 100644
--- a/backend/src/collections/order/hooks/order-hook-before.ts
+++ b/backend/src/express/collections/order/hooks/order-hook-before.ts
@@ -1,4 +1,4 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
 export class OrderHookBefore {
diff --git a/backend/src/collections/order/hooks/order.patch.hook.ts b/backend/src/express/collections/order/hooks/order.patch.hook.ts
similarity index 87%
rename from backend/src/collections/order/hooks/order.patch.hook.ts
rename to backend/src/express/collections/order/hooks/order.patch.hook.ts
index d4b39b77..8f7a85f1 100644
--- a/backend/src/collections/order/hooks/order.patch.hook.ts
+++ b/backend/src/express/collections/order/hooks/order.patch.hook.ts
@@ -1,8 +1,8 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { OrderPlacedHandler } from "@backend/collections/order/helpers/order-placed-handler/order-placed-handler.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { Hook } from "@backend/hook/hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { OrderPlacedHandler } from "@backend/express/collections/order/helpers/order-placed-handler/order-placed-handler.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 import { AccessToken } from "@shared/token/access-token.js";
diff --git a/backend/src/collections/order/hooks/order.post.hook.ts b/backend/src/express/collections/order/hooks/order.post.hook.ts
similarity index 83%
rename from backend/src/collections/order/hooks/order.post.hook.ts
rename to backend/src/express/collections/order/hooks/order.post.hook.ts
index 1f296b93..3a78270d 100644
--- a/backend/src/collections/order/hooks/order.post.hook.ts
+++ b/backend/src/express/collections/order/hooks/order.post.hook.ts
@@ -1,9 +1,9 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { OrderHookBefore } from "@backend/collections/order/hooks/order-hook-before.js";
-import { UserDetailHelper } from "@backend/collections/user-detail/helpers/user-detail.helper.js";
-import { Hook } from "@backend/hook/hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { OrderHookBefore } from "@backend/express/collections/order/hooks/order-hook-before.js";
+import { UserDetailHelper } from "@backend/express/collections/user-detail/helpers/user-detail.helper.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 import { AccessToken } from "@shared/token/access-token.js";
diff --git a/backend/src/collections/order/operations/bulk-order.operation.ts b/backend/src/express/collections/order/operations/bulk-order.operation.ts
similarity index 94%
rename from backend/src/collections/order/operations/bulk-order.operation.ts
rename to backend/src/express/collections/order/operations/bulk-order.operation.ts
index 24f4cb97..0b19829e 100644
--- a/backend/src/collections/order/operations/bulk-order.operation.ts
+++ b/backend/src/express/collections/order/operations/bulk-order.operation.ts
@@ -1,5 +1,5 @@
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/collections/order/operations/confirm/order-confirm.operation.ts b/backend/src/express/collections/order/operations/confirm/order-confirm.operation.ts
similarity index 90%
rename from backend/src/collections/order/operations/confirm/order-confirm.operation.ts
rename to backend/src/express/collections/order/operations/confirm/order-confirm.operation.ts
index c414c9ba..3c2e9367 100644
--- a/backend/src/collections/order/operations/confirm/order-confirm.operation.ts
+++ b/backend/src/express/collections/order/operations/confirm/order-confirm.operation.ts
@@ -1,7 +1,7 @@
-import { OrderPlacedHandler } from "@backend/collections/order/helpers/order-placed-handler/order-placed-handler.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderPlacedHandler } from "@backend/express/collections/order/helpers/order-placed-handler/order-placed-handler.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/order/operations/order-agreement-pdf.operation.ts b/backend/src/express/collections/order/operations/order-agreement-pdf.operation.ts
similarity index 78%
rename from backend/src/collections/order/operations/order-agreement-pdf.operation.ts
rename to backend/src/express/collections/order/operations/order-agreement-pdf.operation.ts
index 71342a14..c7f9780f 100644
--- a/backend/src/collections/order/operations/order-agreement-pdf.operation.ts
+++ b/backend/src/express/collections/order/operations/order-agreement-pdf.operation.ts
@@ -1,6 +1,6 @@
-import Messenger from "@backend/messenger/messenger.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/collections/order/operations/order-receipt-pdf.operation.ts b/backend/src/express/collections/order/operations/order-receipt-pdf.operation.ts
similarity index 78%
rename from backend/src/collections/order/operations/order-receipt-pdf.operation.ts
rename to backend/src/express/collections/order/operations/order-receipt-pdf.operation.ts
index 80200500..33ba1cd4 100644
--- a/backend/src/collections/order/operations/order-receipt-pdf.operation.ts
+++ b/backend/src/express/collections/order/operations/order-receipt-pdf.operation.ts
@@ -1,6 +1,6 @@
-import Messenger from "@backend/messenger/messenger.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/collections/order/operations/place/order-place.operation.ts b/backend/src/express/collections/order/operations/place/order-place.operation.ts
similarity index 96%
rename from backend/src/collections/order/operations/place/order-place.operation.ts
rename to backend/src/express/collections/order/operations/place/order-place.operation.ts
index f6525466..fc699262 100644
--- a/backend/src/collections/order/operations/place/order-place.operation.ts
+++ b/backend/src/express/collections/order/operations/place/order-place.operation.ts
@@ -1,11 +1,11 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { OrderToCustomerItemGenerator } from "@backend/collections/customer-item/helpers/order-to-customer-item-generator.js";
-import { OrderPlacedHandler } from "@backend/collections/order/helpers/order-placed-handler/order-placed-handler.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { isNotNullish } from "@backend/helper/typescript-helpers.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { OrderToCustomerItemGenerator } from "@backend/express/collections/customer-item/helpers/order-to-customer-item-generator.js";
+import { OrderPlacedHandler } from "@backend/express/collections/order/helpers/order-placed-handler/order-placed-handler.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { isNotNullish } from "@backend/express/helper/typescript-helpers.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/order/operations/rapid-handout.operation.ts b/backend/src/express/collections/order/operations/rapid-handout.operation.ts
similarity index 89%
rename from backend/src/collections/order/operations/rapid-handout.operation.ts
rename to backend/src/express/collections/order/operations/rapid-handout.operation.ts
index acf93513..adb9317c 100644
--- a/backend/src/collections/order/operations/rapid-handout.operation.ts
+++ b/backend/src/express/collections/order/operations/rapid-handout.operation.ts
@@ -1,10 +1,10 @@
-import { CustomerItemActiveBlid } from "@backend/collections/customer-item/helpers/customer-item-active-blid.js";
-import { OrderToCustomerItemGenerator } from "@backend/collections/customer-item/helpers/order-to-customer-item-generator.js";
-import { OrderActive } from "@backend/collections/order/helpers/order-active/order-active.js";
-import { OrderItemMovedFromOrderHandler } from "@backend/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemActiveBlid } from "@backend/express/collections/customer-item/helpers/customer-item-active-blid.js";
+import { OrderToCustomerItemGenerator } from "@backend/express/collections/customer-item/helpers/order-to-customer-item-generator.js";
+import { OrderActive } from "@backend/express/collections/order/helpers/order-active/order-active.js";
+import { OrderItemMovedFromOrderHandler } from "@backend/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/order/order.collection.ts b/backend/src/express/collections/order/order.collection.ts
similarity index 79%
rename from backend/src/collections/order/order.collection.ts
rename to backend/src/express/collections/order/order.collection.ts
index 3ce795b3..5486c5ed 100644
--- a/backend/src/collections/order/order.collection.ts
+++ b/backend/src/express/collections/order/order.collection.ts
@@ -1,11 +1,11 @@
-import { OrderPatchHook } from "@backend/collections/order/hooks/order.patch.hook.js";
-import { OrderPostHook } from "@backend/collections/order/hooks/order.post.hook.js";
-import { OrderConfirmOperation } from "@backend/collections/order/operations/confirm/order-confirm.operation.js";
-import { OrderAgreementPdfOperation } from "@backend/collections/order/operations/order-agreement-pdf.operation.js";
-import { OrderReceiptPdfOperation } from "@backend/collections/order/operations/order-receipt-pdf.operation.js";
-import { OrderPlaceOperation } from "@backend/collections/order/operations/place/order-place.operation.js";
-import { RapidHandoutOperation } from "@backend/collections/order/operations/rapid-handout.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderPatchHook } from "@backend/express/collections/order/hooks/order.patch.hook.js";
+import { OrderPostHook } from "@backend/express/collections/order/hooks/order.post.hook.js";
+import { OrderConfirmOperation } from "@backend/express/collections/order/operations/confirm/order-confirm.operation.js";
+import { OrderAgreementPdfOperation } from "@backend/express/collections/order/operations/order-agreement-pdf.operation.js";
+import { OrderReceiptPdfOperation } from "@backend/express/collections/order/operations/order-receipt-pdf.operation.js";
+import { OrderPlaceOperation } from "@backend/express/collections/order/operations/place/order-place.operation.js";
+import { RapidHandoutOperation } from "@backend/express/collections/order/operations/rapid-handout.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const OrderCollection: BlCollection = {
diff --git a/backend/src/collections/payment/helpers/dibs/payment-dibs-confirmer.ts b/backend/src/express/collections/payment/helpers/dibs/payment-dibs-confirmer.ts
similarity index 88%
rename from backend/src/collections/payment/helpers/dibs/payment-dibs-confirmer.ts
rename to backend/src/express/collections/payment/helpers/dibs/payment-dibs-confirmer.ts
index f6daf651..f60d2180 100644
--- a/backend/src/collections/payment/helpers/dibs/payment-dibs-confirmer.ts
+++ b/backend/src/express/collections/payment/helpers/dibs/payment-dibs-confirmer.ts
@@ -1,7 +1,7 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { DibsEasyPayment } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
-import { DibsPaymentService } from "@backend/payment/dibs/dibs-payment.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { DibsEasyPayment } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
+import { DibsPaymentService } from "@backend/express/payment/dibs/dibs-payment.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 import { Payment } from "@shared/payment/payment.js";
diff --git a/backend/src/collections/payment/helpers/dibs/payment-dibs-handler.ts b/backend/src/express/collections/payment/helpers/dibs/payment-dibs-handler.ts
similarity index 86%
rename from backend/src/collections/payment/helpers/dibs/payment-dibs-handler.ts
rename to backend/src/express/collections/payment/helpers/dibs/payment-dibs-handler.ts
index 3b7887b3..aa2fccc2 100644
--- a/backend/src/collections/payment/helpers/dibs/payment-dibs-handler.ts
+++ b/backend/src/express/collections/payment/helpers/dibs/payment-dibs-handler.ts
@@ -1,6 +1,6 @@
-import { DibsEasyOrder } from "@backend/payment/dibs/dibs-easy-order.js";
-import { DibsPaymentService } from "@backend/payment/dibs/dibs-payment.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DibsEasyOrder } from "@backend/express/payment/dibs/dibs-easy-order.js";
+import { DibsPaymentService } from "@backend/express/payment/dibs/dibs-payment.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 import { Order } from "@shared/order/order.js";
 import { Payment } from "@shared/payment/payment.js";
diff --git a/backend/src/collections/payment/helpers/payment-handler.ts b/backend/src/express/collections/payment/helpers/payment-handler.ts
similarity index 93%
rename from backend/src/collections/payment/helpers/payment-handler.ts
rename to backend/src/express/collections/payment/helpers/payment-handler.ts
index 3d1e085e..4dccdc94 100644
--- a/backend/src/collections/payment/helpers/payment-handler.ts
+++ b/backend/src/express/collections/payment/helpers/payment-handler.ts
@@ -1,5 +1,5 @@
-import { PaymentDibsConfirmer } from "@backend/collections/payment/helpers/dibs/payment-dibs-confirmer.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentDibsConfirmer } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-confirmer.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 import { Payment } from "@shared/payment/payment.js";
diff --git a/backend/src/collections/payment/helpers/payment.validator.ts b/backend/src/express/collections/payment/helpers/payment.validator.ts
similarity index 96%
rename from backend/src/collections/payment/helpers/payment.validator.ts
rename to backend/src/express/collections/payment/helpers/payment.validator.ts
index bc56a3a6..583c4086 100644
--- a/backend/src/collections/payment/helpers/payment.validator.ts
+++ b/backend/src/express/collections/payment/helpers/payment.validator.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/collections/payment/hooks/payment.get-all.hook.ts b/backend/src/express/collections/payment/hooks/payment.get-all.hook.ts
similarity index 85%
rename from backend/src/collections/payment/hooks/payment.get-all.hook.ts
rename to backend/src/express/collections/payment/hooks/payment.get-all.hook.ts
index fddf40dc..90b85d06 100644
--- a/backend/src/collections/payment/hooks/payment.get-all.hook.ts
+++ b/backend/src/express/collections/payment/hooks/payment.get-all.hook.ts
@@ -1,5 +1,5 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { Hook } from "@backend/hook/hook.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { Hook } from "@backend/express/hook/hook.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { AccessToken } from "@shared/token/access-token.js";
 
diff --git a/backend/src/collections/payment/hooks/payment.patch.hook.ts b/backend/src/express/collections/payment/hooks/payment.patch.hook.ts
similarity index 85%
rename from backend/src/collections/payment/hooks/payment.patch.hook.ts
rename to backend/src/express/collections/payment/hooks/payment.patch.hook.ts
index 394e635f..c27b9af7 100644
--- a/backend/src/collections/payment/hooks/payment.patch.hook.ts
+++ b/backend/src/express/collections/payment/hooks/payment.patch.hook.ts
@@ -1,6 +1,6 @@
-import { PaymentDibsHandler } from "@backend/collections/payment/helpers/dibs/payment-dibs-handler.js";
-import { PaymentValidator } from "@backend/collections/payment/helpers/payment.validator.js";
-import { Hook } from "@backend/hook/hook.js";
+import { PaymentDibsHandler } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-handler.js";
+import { PaymentValidator } from "@backend/express/collections/payment/helpers/payment.validator.js";
+import { Hook } from "@backend/express/hook/hook.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Payment } from "@shared/payment/payment.js";
 
diff --git a/backend/src/collections/payment/hooks/payment.post.hook.ts b/backend/src/express/collections/payment/hooks/payment.post.hook.ts
similarity index 91%
rename from backend/src/collections/payment/hooks/payment.post.hook.ts
rename to backend/src/express/collections/payment/hooks/payment.post.hook.ts
index f4344f2c..f44ea140 100644
--- a/backend/src/collections/payment/hooks/payment.post.hook.ts
+++ b/backend/src/express/collections/payment/hooks/payment.post.hook.ts
@@ -1,7 +1,7 @@
-import { PaymentDibsHandler } from "@backend/collections/payment/helpers/dibs/payment-dibs-handler.js";
-import { PaymentValidator } from "@backend/collections/payment/helpers/payment.validator.js";
-import { Hook } from "@backend/hook/hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentDibsHandler } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-handler.js";
+import { PaymentValidator } from "@backend/express/collections/payment/helpers/payment.validator.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
 import { Payment } from "@shared/payment/payment.js";
diff --git a/backend/src/collections/payment/payment.collection.ts b/backend/src/express/collections/payment/payment.collection.ts
similarity index 76%
rename from backend/src/collections/payment/payment.collection.ts
rename to backend/src/express/collections/payment/payment.collection.ts
index f531e56f..460d87f7 100644
--- a/backend/src/collections/payment/payment.collection.ts
+++ b/backend/src/express/collections/payment/payment.collection.ts
@@ -1,7 +1,7 @@
-import { PaymentGetAllHook } from "@backend/collections/payment/hooks/payment.get-all.hook.js";
-import { PaymentPatchHook } from "@backend/collections/payment/hooks/payment.patch.hook.js";
-import { PaymentPostHook } from "@backend/collections/payment/hooks/payment.post.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentGetAllHook } from "@backend/express/collections/payment/hooks/payment.get-all.hook.js";
+import { PaymentPatchHook } from "@backend/express/collections/payment/hooks/payment.patch.hook.js";
+import { PaymentPostHook } from "@backend/express/collections/payment/hooks/payment.post.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const PaymentCollection: BlCollection = {
diff --git a/backend/src/collections/pending-password-reset/hooks/pending-password-reset-post.hook.ts b/backend/src/express/collections/pending-password-reset/hooks/pending-password-reset-post.hook.ts
similarity index 89%
rename from backend/src/collections/pending-password-reset/hooks/pending-password-reset-post.hook.ts
rename to backend/src/express/collections/pending-password-reset/hooks/pending-password-reset-post.hook.ts
index e6e58a41..11ee468a 100644
--- a/backend/src/collections/pending-password-reset/hooks/pending-password-reset-post.hook.ts
+++ b/backend/src/express/collections/pending-password-reset/hooks/pending-password-reset-post.hook.ts
@@ -1,7 +1,7 @@
-import UserHandler from "@backend/auth/user/user.handler.js";
-import BlCrypto from "@backend/express-config/bl-crypto.js";
-import { Hook } from "@backend/hook/hook.js";
-import Messenger from "@backend/messenger/messenger.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import Messenger from "@backend/express/messenger/messenger.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { PasswordResetRequest } from "@shared/password-reset/password-reset-request.js";
 import { PendingPasswordReset } from "@shared/password-reset/pending-password-reset.js";
diff --git a/backend/src/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.ts b/backend/src/express/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.ts
similarity index 95%
rename from backend/src/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.ts
rename to backend/src/express/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.ts
index cbffc3e7..491d663b 100644
--- a/backend/src/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.ts
+++ b/backend/src/express/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.ts
@@ -1,6 +1,6 @@
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import BlCrypto from "@backend/express-config/bl-crypto.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/pending-password-reset/pending-password-reset.collection.ts b/backend/src/express/collections/pending-password-reset/pending-password-reset.collection.ts
similarity index 57%
rename from backend/src/collections/pending-password-reset/pending-password-reset.collection.ts
rename to backend/src/express/collections/pending-password-reset/pending-password-reset.collection.ts
index 908934c4..a15df47d 100644
--- a/backend/src/collections/pending-password-reset/pending-password-reset.collection.ts
+++ b/backend/src/express/collections/pending-password-reset/pending-password-reset.collection.ts
@@ -1,6 +1,6 @@
-import { PendingPasswordResetPostHook } from "@backend/collections/pending-password-reset/hooks/pending-password-reset-post.hook.js";
-import { ConfirmPendingPasswordResetOperation } from "@backend/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PendingPasswordResetPostHook } from "@backend/express/collections/pending-password-reset/hooks/pending-password-reset-post.hook.js";
+import { ConfirmPendingPasswordResetOperation } from "@backend/express/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const PendingPasswordResetCollection: BlCollection = {
diff --git a/backend/src/collections/signature/helpers/signature.helper.ts b/backend/src/express/collections/signature/helpers/signature.helper.ts
similarity index 94%
rename from backend/src/collections/signature/helpers/signature.helper.ts
rename to backend/src/express/collections/signature/helpers/signature.helper.ts
index 36d69760..f08a2b69 100644
--- a/backend/src/collections/signature/helpers/signature.helper.ts
+++ b/backend/src/express/collections/signature/helpers/signature.helper.ts
@@ -1,6 +1,6 @@
-import { logger } from "@backend/express-config/logger.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
-import { Signature } from "@backend/storage/models/signature.model.js";
+import { logger } from "@backend/express/config/logger.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
+import { Signature } from "@backend/express/storage/models/signature.model.js";
 import { Transformer } from "@napi-rs/image";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import {
diff --git a/backend/src/collections/signature/hooks/signature.get-id.hook.ts b/backend/src/express/collections/signature/hooks/signature.get-id.hook.ts
similarity index 55%
rename from backend/src/collections/signature/hooks/signature.get-id.hook.ts
rename to backend/src/express/collections/signature/hooks/signature.get-id.hook.ts
index c64095ba..7314ec41 100644
--- a/backend/src/collections/signature/hooks/signature.get-id.hook.ts
+++ b/backend/src/express/collections/signature/hooks/signature.get-id.hook.ts
@@ -1,6 +1,6 @@
-import { serializeSignature } from "@backend/collections/signature/helpers/signature.helper.js";
-import { Hook } from "@backend/hook/hook.js";
-import { Signature } from "@backend/storage/models/signature.model.js";
+import { serializeSignature } from "@backend/express/collections/signature/helpers/signature.helper.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { Signature } from "@backend/express/storage/models/signature.model.js";
 import { SerializedSignature } from "@shared/signature/serialized-signature.js";
 
 export class SignatureGetIdHook extends Hook {
diff --git a/backend/src/collections/signature/hooks/signature.post.hook.ts b/backend/src/express/collections/signature/hooks/signature.post.hook.ts
similarity index 87%
rename from backend/src/collections/signature/hooks/signature.post.hook.ts
rename to backend/src/express/collections/signature/hooks/signature.post.hook.ts
index f63b5ecc..e9c2640c 100644
--- a/backend/src/collections/signature/hooks/signature.post.hook.ts
+++ b/backend/src/express/collections/signature/hooks/signature.post.hook.ts
@@ -3,10 +3,10 @@ import {
   isUnderage,
   serializeSignature,
   signOrders,
-} from "@backend/collections/signature/helpers/signature.helper.js";
-import { Hook } from "@backend/hook/hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
-import { Signature } from "@backend/storage/models/signature.model.js";
+} from "@backend/express/collections/signature/helpers/signature.helper.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
+import { Signature } from "@backend/express/storage/models/signature.model.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { SerializedSignature } from "@shared/signature/serialized-signature.js";
 import { AccessToken } from "@shared/token/access-token.js";
diff --git a/backend/src/collections/signature/operations/check-guardian-signature.operation.ts b/backend/src/express/collections/signature/operations/check-guardian-signature.operation.ts
similarity index 93%
rename from backend/src/collections/signature/operations/check-guardian-signature.operation.ts
rename to backend/src/express/collections/signature/operations/check-guardian-signature.operation.ts
index cd81e9c6..835eea07 100644
--- a/backend/src/collections/signature/operations/check-guardian-signature.operation.ts
+++ b/backend/src/express/collections/signature/operations/check-guardian-signature.operation.ts
@@ -2,8 +2,8 @@ import {
   getValidUserSignature,
   isGuardianSignatureRequired,
   isUnderage,
-} from "@backend/collections/signature/helpers/signature.helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+} from "@backend/express/collections/signature/helpers/signature.helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/signature/operations/guardian-signature.operation.ts b/backend/src/express/collections/signature/operations/guardian-signature.operation.ts
similarity index 93%
rename from backend/src/collections/signature/operations/guardian-signature.operation.ts
rename to backend/src/express/collections/signature/operations/guardian-signature.operation.ts
index 18d59301..56b938b9 100644
--- a/backend/src/collections/signature/operations/guardian-signature.operation.ts
+++ b/backend/src/express/collections/signature/operations/guardian-signature.operation.ts
@@ -3,8 +3,8 @@ import {
   isGuardianSignatureRequired,
   serializeSignature,
   signOrders,
-} from "@backend/collections/signature/helpers/signature.helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+} from "@backend/express/collections/signature/helpers/signature.helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/signature/signature.collection.ts b/backend/src/express/collections/signature/signature.collection.ts
similarity index 59%
rename from backend/src/collections/signature/signature.collection.ts
rename to backend/src/express/collections/signature/signature.collection.ts
index 136f5a86..aae05c2d 100644
--- a/backend/src/collections/signature/signature.collection.ts
+++ b/backend/src/express/collections/signature/signature.collection.ts
@@ -1,8 +1,8 @@
-import { SignatureGetIdHook } from "@backend/collections/signature/hooks/signature.get-id.hook.js";
-import { SignaturePostHook } from "@backend/collections/signature/hooks/signature.post.hook.js";
-import { CheckGuardianSignatureOperation } from "@backend/collections/signature/operations/check-guardian-signature.operation.js";
-import { GuardianSignatureOperation } from "@backend/collections/signature/operations/guardian-signature.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { SignatureGetIdHook } from "@backend/express/collections/signature/hooks/signature.get-id.hook.js";
+import { SignaturePostHook } from "@backend/express/collections/signature/hooks/signature.post.hook.js";
+import { CheckGuardianSignatureOperation } from "@backend/express/collections/signature/operations/check-guardian-signature.operation.js";
+import { GuardianSignatureOperation } from "@backend/express/collections/signature/operations/guardian-signature.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const SignatureCollection: BlCollection = {
diff --git a/backend/src/collections/stand-match/operations/stand-match-getall-me.operation.ts b/backend/src/express/collections/stand-match/operations/stand-match-getall-me.operation.ts
similarity index 88%
rename from backend/src/collections/stand-match/operations/stand-match-getall-me.operation.ts
rename to backend/src/express/collections/stand-match/operations/stand-match-getall-me.operation.ts
index 209285df..b713a80a 100644
--- a/backend/src/collections/stand-match/operations/stand-match-getall-me.operation.ts
+++ b/backend/src/express/collections/stand-match/operations/stand-match-getall-me.operation.ts
@@ -1,5 +1,5 @@
-import { mapItemIdsToItemDetails } from "@backend/collections/user-match/operations/user-match-getall-me-operation-helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { mapItemIdsToItemDetails } from "@backend/express/collections/user-match/operations/user-match-getall-me-operation-helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/collections/stand-match/stand-match.collection.ts b/backend/src/express/collections/stand-match/stand-match.collection.ts
similarity index 70%
rename from backend/src/collections/stand-match/stand-match.collection.ts
rename to backend/src/express/collections/stand-match/stand-match.collection.ts
index 41e071f3..314203b8 100644
--- a/backend/src/collections/stand-match/stand-match.collection.ts
+++ b/backend/src/express/collections/stand-match/stand-match.collection.ts
@@ -1,5 +1,5 @@
-import { GetMyStandMatchesOperation } from "@backend/collections/stand-match/operations/stand-match-getall-me.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { GetMyStandMatchesOperation } from "@backend/express/collections/stand-match/operations/stand-match-getall-me.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const StandMatchCollection: BlCollection = {
diff --git a/backend/src/collections/unique-item/helpers/bl-id-generator.ts b/backend/src/express/collections/unique-item/helpers/bl-id-generator.ts
similarity index 100%
rename from backend/src/collections/unique-item/helpers/bl-id-generator.ts
rename to backend/src/express/collections/unique-item/helpers/bl-id-generator.ts
diff --git a/backend/src/collections/unique-item/operations/generate-unique-ids-operation.ts b/backend/src/express/collections/unique-item/operations/generate-unique-ids-operation.ts
similarity index 82%
rename from backend/src/collections/unique-item/operations/generate-unique-ids-operation.ts
rename to backend/src/express/collections/unique-item/operations/generate-unique-ids-operation.ts
index cf3ea154..9a230f5f 100644
--- a/backend/src/collections/unique-item/operations/generate-unique-ids-operation.ts
+++ b/backend/src/express/collections/unique-item/operations/generate-unique-ids-operation.ts
@@ -1,4 +1,4 @@
-import generateBlIdPDF from "@backend/collections/unique-item/helpers/bl-id-generator.js";
+import generateBlIdPDF from "@backend/express/collections/unique-item/helpers/bl-id-generator.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { Request, Response } from "express";
diff --git a/backend/src/collections/unique-item/operations/unique-item-active.operation.ts b/backend/src/express/collections/unique-item/operations/unique-item-active.operation.ts
similarity index 83%
rename from backend/src/collections/unique-item/operations/unique-item-active.operation.ts
rename to backend/src/express/collections/unique-item/operations/unique-item-active.operation.ts
index cbd5a06e..88423af9 100644
--- a/backend/src/collections/unique-item/operations/unique-item-active.operation.ts
+++ b/backend/src/express/collections/unique-item/operations/unique-item-active.operation.ts
@@ -1,6 +1,6 @@
-import { CustomerItemActiveBlid } from "@backend/collections/customer-item/helpers/customer-item-active-blid.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemActiveBlid } from "@backend/express/collections/customer-item/helpers/customer-item-active-blid.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/unique-item/unique-item.collection.ts b/backend/src/express/collections/unique-item/unique-item.collection.ts
similarity index 77%
rename from backend/src/collections/unique-item/unique-item.collection.ts
rename to backend/src/express/collections/unique-item/unique-item.collection.ts
index 103f89a4..fd210f81 100644
--- a/backend/src/collections/unique-item/unique-item.collection.ts
+++ b/backend/src/express/collections/unique-item/unique-item.collection.ts
@@ -1,6 +1,6 @@
-import { GenerateUniqueIdsOperation } from "@backend/collections/unique-item/operations/generate-unique-ids-operation.js";
-import { UniqueItemActiveOperation } from "@backend/collections/unique-item/operations/unique-item-active.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { GenerateUniqueIdsOperation } from "@backend/express/collections/unique-item/operations/generate-unique-ids-operation.js";
+import { UniqueItemActiveOperation } from "@backend/express/collections/unique-item/operations/unique-item-active.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const UniqueItemCollection: BlCollection = {
diff --git a/backend/src/collections/user-detail/helpers/delete-user-service.ts b/backend/src/express/collections/user-detail/helpers/delete-user-service.ts
similarity index 94%
rename from backend/src/collections/user-detail/helpers/delete-user-service.ts
rename to backend/src/express/collections/user-detail/helpers/delete-user-service.ts
index 8ceb3ed1..445395cb 100644
--- a/backend/src/collections/user-detail/helpers/delete-user-service.ts
+++ b/backend/src/express/collections/user-detail/helpers/delete-user-service.ts
@@ -1,5 +1,5 @@
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 
 export class DeleteUserService {
   private queryBuilder = new SEDbQueryBuilder();
diff --git a/backend/src/collections/user-detail/helpers/user-can-delete-user-detail.ts b/backend/src/express/collections/user-detail/helpers/user-can-delete-user-detail.ts
similarity index 82%
rename from backend/src/collections/user-detail/helpers/user-can-delete-user-detail.ts
rename to backend/src/express/collections/user-detail/helpers/user-can-delete-user-detail.ts
index f33b92fd..a65d3675 100644
--- a/backend/src/collections/user-detail/helpers/user-can-delete-user-detail.ts
+++ b/backend/src/express/collections/user-detail/helpers/user-can-delete-user-detail.ts
@@ -1,6 +1,6 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { AccessToken } from "@shared/token/access-token.js";
 
 export class UserCanDeleteUserDetail {
diff --git a/backend/src/collections/user-detail/helpers/user-detail.helper.ts b/backend/src/express/collections/user-detail/helpers/user-detail.helper.ts
similarity index 95%
rename from backend/src/collections/user-detail/helpers/user-detail.helper.ts
rename to backend/src/express/collections/user-detail/helpers/user-detail.helper.ts
index 26597a7c..b02d80d9 100644
--- a/backend/src/collections/user-detail/helpers/user-detail.helper.ts
+++ b/backend/src/express/collections/user-detail/helpers/user-detail.helper.ts
@@ -1,6 +1,6 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { DibsEasyPayment } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { DibsEasyPayment } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
 
diff --git a/backend/src/collections/user-detail/hooks/user-detail-delete.hook.ts b/backend/src/express/collections/user-detail/hooks/user-detail-delete.hook.ts
similarity index 83%
rename from backend/src/collections/user-detail/hooks/user-detail-delete.hook.ts
rename to backend/src/express/collections/user-detail/hooks/user-detail-delete.hook.ts
index 2ffebb86..6699b53d 100644
--- a/backend/src/collections/user-detail/hooks/user-detail-delete.hook.ts
+++ b/backend/src/express/collections/user-detail/hooks/user-detail-delete.hook.ts
@@ -1,9 +1,9 @@
-import { CustomerHaveActiveCustomerItems } from "@backend/collections/customer-item/helpers/customer-have-active-customer-items.js";
-import { CustomerInvoiceActive } from "@backend/collections/invoice/helpers/customer-invoice-active.js";
-import { OrderActive } from "@backend/collections/order/helpers/order-active/order-active.js";
-import { DeleteUserService } from "@backend/collections/user-detail/helpers/delete-user-service.js";
-import { UserCanDeleteUserDetail } from "@backend/collections/user-detail/helpers/user-can-delete-user-detail.js";
-import { Hook } from "@backend/hook/hook.js";
+import { CustomerHaveActiveCustomerItems } from "@backend/express/collections/customer-item/helpers/customer-have-active-customer-items.js";
+import { CustomerInvoiceActive } from "@backend/express/collections/invoice/helpers/customer-invoice-active.js";
+import { OrderActive } from "@backend/express/collections/order/helpers/order-active/order-active.js";
+import { DeleteUserService } from "@backend/express/collections/user-detail/helpers/delete-user-service.js";
+import { UserCanDeleteUserDetail } from "@backend/express/collections/user-detail/helpers/user-can-delete-user-detail.js";
+import { Hook } from "@backend/express/hook/hook.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { AccessToken } from "@shared/token/access-token.js";
 import { z } from "zod";
diff --git a/backend/src/collections/user-detail/hooks/user-detail-update.hook.ts b/backend/src/express/collections/user-detail/hooks/user-detail-update.hook.ts
similarity index 98%
rename from backend/src/collections/user-detail/hooks/user-detail-update.hook.ts
rename to backend/src/express/collections/user-detail/hooks/user-detail-update.hook.ts
index 88cdf1b1..df5aace0 100644
--- a/backend/src/collections/user-detail/hooks/user-detail-update.hook.ts
+++ b/backend/src/express/collections/user-detail/hooks/user-detail-update.hook.ts
@@ -1,4 +1,4 @@
-import { Hook } from "@backend/hook/hook.js";
+import { Hook } from "@backend/express/hook/hook.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { AccessToken } from "@shared/token/access-token.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
diff --git a/backend/src/collections/user-detail/operations/change-email/user-detail-change-email.operation.ts b/backend/src/express/collections/user-detail/operations/change-email/user-detail-change-email.operation.ts
similarity index 89%
rename from backend/src/collections/user-detail/operations/change-email/user-detail-change-email.operation.ts
rename to backend/src/express/collections/user-detail/operations/change-email/user-detail-change-email.operation.ts
index e1be8bd0..1452add2 100644
--- a/backend/src/collections/user-detail/operations/change-email/user-detail-change-email.operation.ts
+++ b/backend/src/express/collections/user-detail/operations/change-email/user-detail-change-email.operation.ts
@@ -1,8 +1,11 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
-import { isNotNullish, isNullish } from "@backend/helper/typescript-helpers.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
+import {
+  isNotNullish,
+  isNullish,
+} from "@backend/express/helper/typescript-helpers.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { Operation } from "@backend/types/operation.js";
diff --git a/backend/src/collections/user-detail/operations/permission/user-detail-permission.operation.ts b/backend/src/express/collections/user-detail/operations/permission/user-detail-permission.operation.ts
similarity index 90%
rename from backend/src/collections/user-detail/operations/permission/user-detail-permission.operation.ts
rename to backend/src/express/collections/user-detail/operations/permission/user-detail-permission.operation.ts
index ffb9dab5..ea72fbee 100644
--- a/backend/src/collections/user-detail/operations/permission/user-detail-permission.operation.ts
+++ b/backend/src/express/collections/user-detail/operations/permission/user-detail-permission.operation.ts
@@ -1,6 +1,6 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.ts b/backend/src/express/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.ts
similarity index 84%
rename from backend/src/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.ts
rename to backend/src/express/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.ts
index ba0a58a1..629623d3 100644
--- a/backend/src/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.ts
+++ b/backend/src/express/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.ts
@@ -1,5 +1,5 @@
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/collections/user-detail/operations/user-detail-valid.operation.ts b/backend/src/express/collections/user-detail/operations/user-detail-valid.operation.ts
similarity index 84%
rename from backend/src/collections/user-detail/operations/user-detail-valid.operation.ts
rename to backend/src/express/collections/user-detail/operations/user-detail-valid.operation.ts
index 87636dc2..9f1cf49b 100644
--- a/backend/src/collections/user-detail/operations/user-detail-valid.operation.ts
+++ b/backend/src/express/collections/user-detail/operations/user-detail-valid.operation.ts
@@ -1,6 +1,6 @@
-import { UserDetailHelper } from "@backend/collections/user-detail/helpers/user-detail.helper.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { UserDetailHelper } from "@backend/express/collections/user-detail/helpers/user-detail.helper.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/user-detail/user-detail.collection.ts b/backend/src/express/collections/user-detail/user-detail.collection.ts
similarity index 71%
rename from backend/src/collections/user-detail/user-detail.collection.ts
rename to backend/src/express/collections/user-detail/user-detail.collection.ts
index 4615933e..92633d34 100644
--- a/backend/src/collections/user-detail/user-detail.collection.ts
+++ b/backend/src/express/collections/user-detail/user-detail.collection.ts
@@ -1,10 +1,10 @@
-import { UserDetailDeleteHook } from "@backend/collections/user-detail/hooks/user-detail-delete.hook.js";
-import { UserDetailUpdateHook } from "@backend/collections/user-detail/hooks/user-detail-update.hook.js";
-import { UserDetailChangeEmailOperation } from "@backend/collections/user-detail/operations/change-email/user-detail-change-email.operation.js";
-import { UserDetailPermissionOperation } from "@backend/collections/user-detail/operations/permission/user-detail-permission.operation.js";
-import { UserDetailReadPermissionOperation } from "@backend/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.js";
-import { UserDetailValidOperation } from "@backend/collections/user-detail/operations/user-detail-valid.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { UserDetailDeleteHook } from "@backend/express/collections/user-detail/hooks/user-detail-delete.hook.js";
+import { UserDetailUpdateHook } from "@backend/express/collections/user-detail/hooks/user-detail-update.hook.js";
+import { UserDetailChangeEmailOperation } from "@backend/express/collections/user-detail/operations/change-email/user-detail-change-email.operation.js";
+import { UserDetailPermissionOperation } from "@backend/express/collections/user-detail/operations/permission/user-detail-permission.operation.js";
+import { UserDetailReadPermissionOperation } from "@backend/express/collections/user-detail/operations/read-permission/user-detail-read-permission.operation.js";
+import { UserDetailValidOperation } from "@backend/express/collections/user-detail/operations/user-detail-valid.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const UserDetailCollection: BlCollection = {
diff --git a/backend/src/collections/user-match/helpers/match-finder/match-finder.ts b/backend/src/express/collections/user-match/helpers/match-finder/match-finder.ts
similarity index 99%
rename from backend/src/collections/user-match/helpers/match-finder/match-finder.ts
rename to backend/src/express/collections/user-match/helpers/match-finder/match-finder.ts
index 572323fd..61464b65 100644
--- a/backend/src/collections/user-match/helpers/match-finder/match-finder.ts
+++ b/backend/src/express/collections/user-match/helpers/match-finder/match-finder.ts
@@ -1,4 +1,4 @@
-import { MatchableUser } from "@backend/collections/user-match/helpers/match-finder/match-types.js";
+import { MatchableUser } from "@backend/express/collections/user-match/helpers/match-finder/match-types.js";
 import {
   calculateItemImbalances,
   calculateUnmatchableItems,
@@ -11,8 +11,8 @@ import {
   tryFindPartialMatch,
   tryFindTwoWayMatch,
   updateItemImbalances,
-} from "@backend/collections/user-match/helpers/match-finder/match-utils.js";
-import { logger } from "@backend/express-config/logger.js";
+} from "@backend/express/collections/user-match/helpers/match-finder/match-utils.js";
+import { logger } from "@backend/express/config/logger.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { CandidateStandMatch } from "@shared/match/stand-match.js";
 import { CandidateUserMatch } from "@shared/match/user-match.js";
diff --git a/backend/src/collections/user-match/helpers/match-finder/match-meeting-info.ts b/backend/src/express/collections/user-match/helpers/match-finder/match-meeting-info.ts
similarity index 100%
rename from backend/src/collections/user-match/helpers/match-finder/match-meeting-info.ts
rename to backend/src/express/collections/user-match/helpers/match-finder/match-meeting-info.ts
diff --git a/backend/src/collections/user-match/helpers/match-finder/match-testing-utils.ts b/backend/src/express/collections/user-match/helpers/match-finder/match-testing-utils.ts
similarity index 96%
rename from backend/src/collections/user-match/helpers/match-finder/match-testing-utils.ts
rename to backend/src/express/collections/user-match/helpers/match-finder/match-testing-utils.ts
index e82e26f2..0e7c2e86 100644
--- a/backend/src/collections/user-match/helpers/match-finder/match-testing-utils.ts
+++ b/backend/src/express/collections/user-match/helpers/match-finder/match-testing-utils.ts
@@ -1,5 +1,5 @@
 // mulberry32 PRNG: https://stackoverflow.com/a/47593316
-import { MatchableUser } from "@backend/collections/user-match/helpers/match-finder/match-types.js";
+import { MatchableUser } from "@backend/express/collections/user-match/helpers/match-finder/match-types.js";
 import { CandidateStandMatch } from "@shared/match/stand-match.js";
 import { CandidateUserMatch } from "@shared/match/user-match.js";
 
diff --git a/backend/src/collections/user-match/helpers/match-finder/match-types.ts b/backend/src/express/collections/user-match/helpers/match-finder/match-types.ts
similarity index 100%
rename from backend/src/collections/user-match/helpers/match-finder/match-types.ts
rename to backend/src/express/collections/user-match/helpers/match-finder/match-types.ts
diff --git a/backend/src/collections/user-match/helpers/match-finder/match-utils.ts b/backend/src/express/collections/user-match/helpers/match-finder/match-utils.ts
similarity index 98%
rename from backend/src/collections/user-match/helpers/match-finder/match-utils.ts
rename to backend/src/express/collections/user-match/helpers/match-finder/match-utils.ts
index 4f820580..8e5f0a98 100644
--- a/backend/src/collections/user-match/helpers/match-finder/match-utils.ts
+++ b/backend/src/express/collections/user-match/helpers/match-finder/match-utils.ts
@@ -1,4 +1,4 @@
-import { MatchableUser } from "@backend/collections/user-match/helpers/match-finder/match-types.js";
+import { MatchableUser } from "@backend/express/collections/user-match/helpers/match-finder/match-types.js";
 import { CandidateStandMatch } from "@shared/match/stand-match.js";
 import { CandidateUserMatch } from "@shared/match/user-match.js";
 
diff --git a/backend/src/collections/user-match/operations/match-generate-operation-helper.ts b/backend/src/express/collections/user-match/operations/match-generate-operation-helper.ts
similarity index 97%
rename from backend/src/collections/user-match/operations/match-generate-operation-helper.ts
rename to backend/src/express/collections/user-match/operations/match-generate-operation-helper.ts
index 739949fd..488a6351 100644
--- a/backend/src/collections/user-match/operations/match-generate-operation-helper.ts
+++ b/backend/src/express/collections/user-match/operations/match-generate-operation-helper.ts
@@ -1,8 +1,8 @@
 import {
   MatchableUser,
   MatchLocationSchema,
-} from "@backend/collections/user-match/helpers/match-finder/match-types.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+} from "@backend/express/collections/user-match/helpers/match-finder/match-types.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { ObjectId } from "mongodb";
 import { z } from "zod";
 
diff --git a/backend/src/collections/user-match/operations/match-generate.operation.ts b/backend/src/express/collections/user-match/operations/match-generate.operation.ts
similarity index 93%
rename from backend/src/collections/user-match/operations/match-generate.operation.ts
rename to backend/src/express/collections/user-match/operations/match-generate.operation.ts
index 013e17c1..f2c68624 100644
--- a/backend/src/collections/user-match/operations/match-generate.operation.ts
+++ b/backend/src/express/collections/user-match/operations/match-generate.operation.ts
@@ -1,9 +1,9 @@
-import { MatchFinder } from "@backend/collections/user-match/helpers/match-finder/match-finder.js";
+import { MatchFinder } from "@backend/express/collections/user-match/helpers/match-finder/match-finder.js";
 import {
   getMatchableUsers,
   MatchGenerateSpec,
-} from "@backend/collections/user-match/operations/match-generate-operation-helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+} from "@backend/express/collections/user-match/operations/match-generate-operation-helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/user-match/operations/match-notify.operation.ts b/backend/src/express/collections/user-match/operations/match-notify.operation.ts
similarity index 92%
rename from backend/src/collections/user-match/operations/match-notify.operation.ts
rename to backend/src/express/collections/user-match/operations/match-notify.operation.ts
index 947a72ef..a4932456 100644
--- a/backend/src/collections/user-match/operations/match-notify.operation.ts
+++ b/backend/src/express/collections/user-match/operations/match-notify.operation.ts
@@ -1,6 +1,6 @@
-import { sendMail } from "@backend/messenger/email/email-service.js";
-import { sendSMS } from "@backend/messenger/sms/sms-service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { sendMail } from "@backend/express/messenger/email/email-service.js";
+import { sendSMS } from "@backend/express/messenger/sms/sms-service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/user-match/operations/user-match-getall-me-operation-helper.ts b/backend/src/express/collections/user-match/operations/user-match-getall-me-operation-helper.ts
similarity index 96%
rename from backend/src/collections/user-match/operations/user-match-getall-me-operation-helper.ts
rename to backend/src/express/collections/user-match/operations/user-match-getall-me-operation-helper.ts
index 6842787d..be9fa2c1 100644
--- a/backend/src/collections/user-match/operations/user-match-getall-me-operation-helper.ts
+++ b/backend/src/express/collections/user-match/operations/user-match-getall-me-operation-helper.ts
@@ -1,5 +1,5 @@
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Item } from "@shared/item/item.js";
 import {
diff --git a/backend/src/collections/user-match/operations/user-match-getall-me.operation.ts b/backend/src/express/collections/user-match/operations/user-match-getall-me.operation.ts
similarity index 82%
rename from backend/src/collections/user-match/operations/user-match-getall-me.operation.ts
rename to backend/src/express/collections/user-match/operations/user-match-getall-me.operation.ts
index bcb20d0c..2ed5f8bf 100644
--- a/backend/src/collections/user-match/operations/user-match-getall-me.operation.ts
+++ b/backend/src/express/collections/user-match/operations/user-match-getall-me.operation.ts
@@ -1,5 +1,5 @@
-import { addDetailsToUserMatches } from "@backend/collections/user-match/operations/user-match-getall-me-operation-helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { addDetailsToUserMatches } from "@backend/express/collections/user-match/operations/user-match-getall-me-operation-helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/collections/user-match/operations/user-match-lock.operation.ts b/backend/src/express/collections/user-match/operations/user-match-lock.operation.ts
similarity index 95%
rename from backend/src/collections/user-match/operations/user-match-lock.operation.ts
rename to backend/src/express/collections/user-match/operations/user-match-lock.operation.ts
index 709525b2..2c982564 100644
--- a/backend/src/collections/user-match/operations/user-match-lock.operation.ts
+++ b/backend/src/express/collections/user-match/operations/user-match-lock.operation.ts
@@ -1,4 +1,4 @@
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/user-match/operations/user-match-operation-utils.ts b/backend/src/express/collections/user-match/operations/user-match-operation-utils.ts
similarity index 93%
rename from backend/src/collections/user-match/operations/user-match-operation-utils.ts
rename to backend/src/express/collections/user-match/operations/user-match-operation-utils.ts
index 06985039..4f817163 100644
--- a/backend/src/collections/user-match/operations/user-match-operation-utils.ts
+++ b/backend/src/express/collections/user-match/operations/user-match-operation-utils.ts
@@ -1,6 +1,6 @@
-import { OrderActive } from "@backend/collections/order/helpers/order-active/order-active.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderActive } from "@backend/express/collections/order/helpers/order-active/order-active.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
diff --git a/backend/src/collections/user-match/operations/user-match-transfer-item.operation.ts b/backend/src/express/collections/user-match/operations/user-match-transfer-item.operation.ts
similarity index 92%
rename from backend/src/collections/user-match/operations/user-match-transfer-item.operation.ts
rename to backend/src/express/collections/user-match/operations/user-match-transfer-item.operation.ts
index 432ba37a..6eecfa6d 100644
--- a/backend/src/collections/user-match/operations/user-match-transfer-item.operation.ts
+++ b/backend/src/express/collections/user-match/operations/user-match-transfer-item.operation.ts
@@ -1,14 +1,14 @@
-import { CustomerItemActiveBlid } from "@backend/collections/customer-item/helpers/customer-item-active-blid.js";
-import { OrderToCustomerItemGenerator } from "@backend/collections/customer-item/helpers/order-to-customer-item-generator.js";
-import { OrderItemMovedFromOrderHandler } from "@backend/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
+import { CustomerItemActiveBlid } from "@backend/express/collections/customer-item/helpers/customer-item-active-blid.js";
+import { OrderToCustomerItemGenerator } from "@backend/express/collections/customer-item/helpers/order-to-customer-item-generator.js";
+import { OrderItemMovedFromOrderHandler } from "@backend/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
 import {
   createMatchDeliverOrder,
   createMatchReceiveOrder,
-} from "@backend/collections/user-match/operations/user-match-operation-utils.js";
-import { isNullish } from "@backend/helper/typescript-helpers.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+} from "@backend/express/collections/user-match/operations/user-match-operation-utils.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { Operation } from "@backend/types/operation.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/collections/user-match/user-match.collection.ts b/backend/src/express/collections/user-match/user-match.collection.ts
similarity index 64%
rename from backend/src/collections/user-match/user-match.collection.ts
rename to backend/src/express/collections/user-match/user-match.collection.ts
index 0c80699d..21720f4c 100644
--- a/backend/src/collections/user-match/user-match.collection.ts
+++ b/backend/src/express/collections/user-match/user-match.collection.ts
@@ -1,9 +1,9 @@
-import { MatchGenerateOperation } from "@backend/collections/user-match/operations/match-generate.operation.js";
-import { MatchNotifyOperation } from "@backend/collections/user-match/operations/match-notify.operation.js";
-import { GetMyUserMatchesOperation } from "@backend/collections/user-match/operations/user-match-getall-me.operation.js";
-import { UserMatchLockOperation } from "@backend/collections/user-match/operations/user-match-lock.operation.js";
-import { UserMatchTransferItemOperation } from "@backend/collections/user-match/operations/user-match-transfer-item.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { MatchGenerateOperation } from "@backend/express/collections/user-match/operations/match-generate.operation.js";
+import { MatchNotifyOperation } from "@backend/express/collections/user-match/operations/match-notify.operation.js";
+import { GetMyUserMatchesOperation } from "@backend/express/collections/user-match/operations/user-match-getall-me.operation.js";
+import { UserMatchLockOperation } from "@backend/express/collections/user-match/operations/user-match-lock.operation.js";
+import { UserMatchTransferItemOperation } from "@backend/express/collections/user-match/operations/user-match-transfer-item.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlCollection } from "@backend/types/bl-collection.js";
 
 export const UserMatchCollection: BlCollection = {
diff --git a/backend/src/express-config/api-path.ts b/backend/src/express/config/api-path.ts
similarity index 88%
rename from backend/src/express-config/api-path.ts
rename to backend/src/express/config/api-path.ts
index cd640bfd..483d9b66 100644
--- a/backend/src/express-config/api-path.ts
+++ b/backend/src/express/config/api-path.ts
@@ -1,7 +1,7 @@
 import { IncomingHttpHeaders } from "node:http";
 
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
 
 export function createPath(customPath: string): string {
   return BlEnv.SERVER_PATH + customPath;
diff --git a/backend/src/express-config/application-config.ts b/backend/src/express/config/application-config.ts
similarity index 100%
rename from backend/src/express-config/application-config.ts
rename to backend/src/express/config/application-config.ts
diff --git a/backend/src/express-config/auth.ts b/backend/src/express/config/auth.ts
similarity index 85%
rename from backend/src/express-config/auth.ts
rename to backend/src/express/config/auth.ts
index 32b55051..7c0f86cb 100644
--- a/backend/src/express-config/auth.ts
+++ b/backend/src/express/config/auth.ts
@@ -1,5 +1,5 @@
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import passport from "passport";
 import { ExtractJwt, Strategy } from "passport-jwt";
 
diff --git a/backend/src/express-config/bl-crypto.ts b/backend/src/express/config/bl-crypto.ts
similarity index 100%
rename from backend/src/express-config/bl-crypto.ts
rename to backend/src/express/config/bl-crypto.ts
diff --git a/backend/src/express-config/cors.ts b/backend/src/express/config/cors.ts
similarity index 89%
rename from backend/src/express-config/cors.ts
rename to backend/src/express/config/cors.ts
index 3ec4f4b8..84eb999d 100644
--- a/backend/src/express-config/cors.ts
+++ b/backend/src/express/config/cors.ts
@@ -1,4 +1,4 @@
-import { BlEnv } from "@backend/express-config/env.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import cors from "cors";
 import { RequestHandler } from "express";
 
diff --git a/backend/src/express-config/database.ts b/backend/src/express/config/database.ts
similarity index 82%
rename from backend/src/express-config/database.ts
rename to backend/src/express/config/database.ts
index 217ecde1..3df873e4 100644
--- a/backend/src/express-config/database.ts
+++ b/backend/src/express/config/database.ts
@@ -1,5 +1,5 @@
-import { BlEnv } from "@backend/express-config/env.js";
-import { logger } from "@backend/express-config/logger.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { logger } from "@backend/express/config/logger.js";
 import mongoose from "mongoose";
 
 export default async function configureMongoose() {
diff --git a/backend/src/express-config/debug-logger.ts b/backend/src/express/config/debug-logger.ts
similarity index 84%
rename from backend/src/express-config/debug-logger.ts
rename to backend/src/express/config/debug-logger.ts
index 766f2578..517308f3 100644
--- a/backend/src/express-config/debug-logger.ts
+++ b/backend/src/express/config/debug-logger.ts
@@ -1,5 +1,5 @@
-import { BlEnv } from "@backend/express-config/env.js";
-import { logger } from "@backend/express-config/logger.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { logger } from "@backend/express/config/logger.js";
 import { Request, RequestHandler, Response } from "express";
 
 const debugLoggerHandler: RequestHandler = (
diff --git a/backend/src/express-config/env.ts b/backend/src/express/config/env.ts
similarity index 92%
rename from backend/src/express-config/env.ts
rename to backend/src/express/config/env.ts
index b766d517..d66a3e90 100644
--- a/backend/src/express-config/env.ts
+++ b/backend/src/express/config/env.ts
@@ -1,7 +1,8 @@
-import { isNullish } from "@backend/helper/typescript-helpers.js";
+import { isNullish } from "@backend/express/helper/typescript-helpers.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 
 const testPlaceHolders: Record<string, string> = {
+  APP_KEY: "testtesttesttest",
   SENDGRID_API_KEY: "SG.placeholder",
   TWILIO_SMS_SID: "AC.placeholder",
 };
@@ -24,6 +25,7 @@ function assertEnv(key: string): string {
 }
 
 export const BlEnv = {
+  APP_KEY: assertEnv("APP_KEY"),
   PORT: assertEnv("PORT"),
   SERVER_PATH: assertEnv("SERVER_PATH"),
   API_ENV: assertEnv("API_ENV"),
diff --git a/backend/src/express-config/https.ts b/backend/src/express/config/https.ts
similarity index 86%
rename from backend/src/express-config/https.ts
rename to backend/src/express/config/https.ts
index 95980508..3ad99063 100644
--- a/backend/src/express-config/https.ts
+++ b/backend/src/express/config/https.ts
@@ -1,4 +1,4 @@
-import { BlEnv } from "@backend/express-config/env.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import { RequestHandler } from "express";
 
 const redirectToHttpsHandler: RequestHandler = (request, res, next) => {
diff --git a/backend/src/express-config/instrument.ts b/backend/src/express/config/instrument.ts
similarity index 88%
rename from backend/src/express-config/instrument.ts
rename to backend/src/express/config/instrument.ts
index 97282a19..3cf57dd8 100644
--- a/backend/src/express-config/instrument.ts
+++ b/backend/src/express/config/instrument.ts
@@ -1,4 +1,4 @@
-import { BlEnv } from "@backend/express-config/env.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import * as Sentry from "@sentry/node";
 import { mongooseIntegration } from "@sentry/node";
 import { nodeProfilingIntegration } from "@sentry/profiling-node";
diff --git a/backend/src/express-config/logger.ts b/backend/src/express/config/logger.ts
similarity index 85%
rename from backend/src/express-config/logger.ts
rename to backend/src/express/config/logger.ts
index e5407357..0da0edd9 100644
--- a/backend/src/express-config/logger.ts
+++ b/backend/src/express/config/logger.ts
@@ -1,4 +1,4 @@
-import { BlEnv } from "@backend/express-config/env.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import { createLogger, format, transports } from "winston";
 
 export const logger = createLogger({
diff --git a/backend/src/express-config/session.ts b/backend/src/express/config/session.ts
similarity index 84%
rename from backend/src/express-config/session.ts
rename to backend/src/express/config/session.ts
index b7cba7ac..07822984 100644
--- a/backend/src/express-config/session.ts
+++ b/backend/src/express/config/session.ts
@@ -1,4 +1,4 @@
-import { BlEnv } from "@backend/express-config/env.js";
+import { BlEnv } from "@backend/express/config/env.js";
 import { RequestHandler } from "express";
 import session from "express-session";
 
diff --git a/backend/src/helper/typescript-helpers.ts b/backend/src/express/helper/typescript-helpers.ts
similarity index 100%
rename from backend/src/helper/typescript-helpers.ts
rename to backend/src/express/helper/typescript-helpers.ts
diff --git a/backend/src/hook/hook.ts b/backend/src/express/hook/hook.ts
similarity index 100%
rename from backend/src/hook/hook.ts
rename to backend/src/express/hook/hook.ts
diff --git a/backend/src/http/http.handler.ts b/backend/src/express/http/http.handler.ts
similarity index 97%
rename from backend/src/http/http.handler.ts
rename to backend/src/express/http/http.handler.ts
index a7039f25..deb54a38 100644
--- a/backend/src/http/http.handler.ts
+++ b/backend/src/express/http/http.handler.ts
@@ -1,4 +1,4 @@
-import { logger } from "@backend/express-config/logger.js";
+import { logger } from "@backend/express/config/logger.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { stringify } from "qs";
 import request from "request";
diff --git a/backend/src/messenger/email/email-service.ts b/backend/src/express/messenger/email/email-service.ts
similarity index 96%
rename from backend/src/messenger/email/email-service.ts
rename to backend/src/express/messenger/email/email-service.ts
index 87119705..f2a86ecf 100644
--- a/backend/src/messenger/email/email-service.ts
+++ b/backend/src/express/messenger/email/email-service.ts
@@ -1,10 +1,10 @@
-import { DateService } from "@backend/blc/date.service.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import { logger } from "@backend/express-config/logger.js";
-import { EMAIL_SETTINGS } from "@backend/messenger/email/email-settings.js";
-import { OrderEmailHandler } from "@backend/messenger/email/order-email/order-email-handler.js";
-import { MessengerService } from "@backend/messenger/messenger-service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DateService } from "@backend/express/blc/date.service.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { logger } from "@backend/express/config/logger.js";
+import { EMAIL_SETTINGS } from "@backend/express/messenger/email/email-settings.js";
+import { OrderEmailHandler } from "@backend/express/messenger/email/order-email/order-email-handler.js";
+import { MessengerService } from "@backend/express/messenger/messenger-service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { EmailHandler } from "@boklisten/bl-email";
 import { EmailOrder } from "@boklisten/bl-email/dist/ts/template/email-order.js";
 import { EmailSetting } from "@boklisten/bl-email/dist/ts/template/email-setting.js";
diff --git a/backend/src/messenger/email/email-settings.ts b/backend/src/express/messenger/email/email-settings.ts
similarity index 100%
rename from backend/src/messenger/email/email-settings.ts
rename to backend/src/express/messenger/email/email-settings.ts
diff --git a/backend/src/messenger/email/order-email/order-email-handler.ts b/backend/src/express/messenger/email/order-email/order-email-handler.ts
similarity index 95%
rename from backend/src/messenger/email/order-email/order-email-handler.ts
rename to backend/src/express/messenger/email/order-email/order-email-handler.ts
index 3e0bd3cf..39565647 100644
--- a/backend/src/messenger/email/order-email/order-email-handler.ts
+++ b/backend/src/express/messenger/email/order-email/order-email-handler.ts
@@ -1,11 +1,11 @@
-import { DateService } from "@backend/blc/date.service.js";
-import { userHasValidSignature } from "@backend/collections/signature/helpers/signature.helper.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import { sendMail } from "@backend/messenger/email/email-service.js";
-import { EMAIL_SETTINGS } from "@backend/messenger/email/email-settings.js";
-import { sendSMS } from "@backend/messenger/sms/sms-service.js";
-import { DibsEasyPayment } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DateService } from "@backend/express/blc/date.service.js";
+import { userHasValidSignature } from "@backend/express/collections/signature/helpers/signature.helper.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { sendMail } from "@backend/express/messenger/email/email-service.js";
+import { EMAIL_SETTINGS } from "@backend/express/messenger/email/email-settings.js";
+import { sendSMS } from "@backend/express/messenger/sms/sms-service.js";
+import { DibsEasyPayment } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { EmailHandler, EmailLog } from "@boklisten/bl-email";
 import { EmailOrder } from "@boklisten/bl-email/dist/ts/template/email-order.js";
 import { EmailSetting } from "@boklisten/bl-email/dist/ts/template/email-setting.js";
diff --git a/backend/src/messenger/messenger-service.ts b/backend/src/express/messenger/messenger-service.ts
similarity index 100%
rename from backend/src/messenger/messenger-service.ts
rename to backend/src/express/messenger/messenger-service.ts
diff --git a/backend/src/messenger/messenger.ts b/backend/src/express/messenger/messenger.ts
similarity index 93%
rename from backend/src/messenger/messenger.ts
rename to backend/src/express/messenger/messenger.ts
index 552e367f..6220b385 100644
--- a/backend/src/messenger/messenger.ts
+++ b/backend/src/express/messenger/messenger.ts
@@ -1,6 +1,6 @@
-import { EmailService } from "@backend/messenger/email/email-service.js";
-import { PdfService } from "@backend/messenger/pdf/pdf-service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EmailService } from "@backend/express/messenger/email/email-service.js";
+import { PdfService } from "@backend/express/messenger/pdf/pdf-service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { EmailAttachment } from "@boklisten/bl-email";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 import { Message } from "@shared/message/message.js";
diff --git a/backend/src/messenger/pdf/pdf-service.ts b/backend/src/express/messenger/pdf/pdf-service.ts
similarity index 92%
rename from backend/src/messenger/pdf/pdf-service.ts
rename to backend/src/express/messenger/pdf/pdf-service.ts
index 286d50d4..8b6ffefc 100644
--- a/backend/src/messenger/pdf/pdf-service.ts
+++ b/backend/src/express/messenger/pdf/pdf-service.ts
@@ -1,5 +1,5 @@
-import { isNotNullish } from "@backend/helper/typescript-helpers.js";
-import { OrderEmailHandler } from "@backend/messenger/email/order-email/order-email-handler.js";
+import { isNotNullish } from "@backend/express/helper/typescript-helpers.js";
+import { OrderEmailHandler } from "@backend/express/messenger/email/order-email/order-email-handler.js";
 import { EmailAttachment, EmailHandler, PdfHandler } from "@boklisten/bl-email";
 import { EmailOrder } from "@boklisten/bl-email/dist/ts/template/email-order.js";
 import { EmailSetting } from "@boklisten/bl-email/dist/ts/template/email-setting.js";
diff --git a/backend/src/messenger/reminder/messenger-reminder.ts b/backend/src/express/messenger/reminder/messenger-reminder.ts
similarity index 84%
rename from backend/src/messenger/reminder/messenger-reminder.ts
rename to backend/src/express/messenger/reminder/messenger-reminder.ts
index 19910412..bfa552ec 100644
--- a/backend/src/messenger/reminder/messenger-reminder.ts
+++ b/backend/src/express/messenger/reminder/messenger-reminder.ts
@@ -1,6 +1,6 @@
-import { CustomerItemHandler } from "@backend/collections/customer-item/helpers/customer-item-handler.js";
-import { EmailService } from "@backend/messenger/email/email-service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemHandler } from "@backend/express/collections/customer-item/helpers/customer-item-handler.js";
+import { EmailService } from "@backend/express/messenger/email/email-service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Message } from "@shared/message/message.js";
 
diff --git a/backend/src/messenger/sms/sms-service.ts b/backend/src/express/messenger/sms/sms-service.ts
similarity index 90%
rename from backend/src/messenger/sms/sms-service.ts
rename to backend/src/express/messenger/sms/sms-service.ts
index c45c381e..eb5f6c8a 100644
--- a/backend/src/messenger/sms/sms-service.ts
+++ b/backend/src/express/messenger/sms/sms-service.ts
@@ -1,5 +1,5 @@
-import { BlEnv } from "@backend/express-config/env.js";
-import { logger } from "@backend/express-config/logger.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { logger } from "@backend/express/config/logger.js";
 import twilio from "twilio";
 
 const client = twilio(BlEnv.TWILIO_SMS_SID, BlEnv.TWILIO_SMS_AUTH_TOKEN, {
diff --git a/backend/src/payment/dibs/dibs-easy-order.ts b/backend/src/express/payment/dibs/dibs-easy-order.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-order.ts
rename to backend/src/express/payment/dibs/dibs-easy-order.ts
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-billing-address.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-billing-address.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-billing-address.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-billing-address.ts
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.ts
similarity index 54%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.ts
index 74617785..ebd16197 100644
--- a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.ts
+++ b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.ts
@@ -1,4 +1,4 @@
-import { DibsEasyPaymentConsumerPhone } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.js";
+import { DibsEasyPaymentConsumerPhone } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.js";
 
 export interface DibsEasyPaymentConsumerCompany {
   name: string;
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.ts
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.ts
similarity index 57%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.ts
index 0c9513f8..e5ac4a21 100644
--- a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.ts
+++ b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.ts
@@ -1,4 +1,4 @@
-import { DibsEasyPaymentConsumerPhone } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.js";
+import { DibsEasyPaymentConsumerPhone } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-phone.js";
 
 export interface DibsEasyPaymentConsumerPrivatePerson {
   dateOfBirth: Date;
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-shipping-address.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-shipping-address.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-shipping-address.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-shipping-address.ts
diff --git a/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts
new file mode 100644
index 00000000..4f235009
--- /dev/null
+++ b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts
@@ -0,0 +1,11 @@
+import { DibsEasyPaymentConsumerBillingAddress } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-billing-address.js";
+import { DibsEasyPaymentConsumerCompany } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.js";
+import { DibsEasyPaymentConsumerPrivatePerson } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.js";
+import { DibsEasyPaymentConsumerShippingAddress } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-shipping-address.js";
+
+export class DibsEasyPaymentConsumer {
+  billingAddress?: DibsEasyPaymentConsumerBillingAddress;
+  shippingAddress?: DibsEasyPaymentConsumerShippingAddress;
+  company?: DibsEasyPaymentConsumerCompany;
+  privatePerson?: DibsEasyPaymentConsumerPrivatePerson;
+}
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-card.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-card.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-card.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-card.ts
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-invoice-detail.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-invoice-detail.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-invoice-detail.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-invoice-detail.ts
diff --git a/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts
new file mode 100644
index 00000000..294b5027
--- /dev/null
+++ b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts
@@ -0,0 +1,9 @@
+import { DibsEasyPaymentDetailsCard } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-card.js";
+import { DibsEasyPaymentDetailsInvoiceDetail } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-invoice-detail.js";
+
+export interface DibsEasyPaymentDetails {
+  paymentType: string;
+  paymentMethod: string;
+  invoiceDetails?: DibsEasyPaymentDetailsInvoiceDetail;
+  cardDetails: DibsEasyPaymentDetailsCard;
+}
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-order-details/dibs-easy-payment-order-details.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-order-details/dibs-easy-payment-order-details.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-order-details/dibs-easy-payment-order-details.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-order-details/dibs-easy-payment-order-details.ts
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund-order-item.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund-order-item.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund-order-item.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund-order-item.ts
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.ts
similarity index 51%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.ts
index fc1c92ce..971fa7c0 100644
--- a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.ts
+++ b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.ts
@@ -1,4 +1,4 @@
-import { DibsEasyPaymentRefundOrderItem } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund-order-item.js";
+import { DibsEasyPaymentRefundOrderItem } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund-order-item.js";
 
 export interface DibsEasyPaymentRefund {
   refundId: string;
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-summary/dibs-easy-payment-summary.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-summary/dibs-easy-payment-summary.ts
similarity index 100%
rename from backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-summary/dibs-easy-payment-summary.ts
rename to backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-summary/dibs-easy-payment-summary.ts
diff --git a/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts
new file mode 100644
index 00000000..72d647c0
--- /dev/null
+++ b/backend/src/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts
@@ -0,0 +1,18 @@
+import { DibsEasyPaymentConsumer } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.js";
+import { DibsEasyPaymentDetails } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.js";
+import { DibsEasyPaymentOrderDetails } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-order-details/dibs-easy-payment-order-details.js";
+import { DibsEasyPaymentRefund } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.js";
+import { DibsEasyPaymentSummary } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment-summary/dibs-easy-payment-summary.js";
+
+export interface DibsEasyPayment {
+  paymentId: string;
+  summary: DibsEasyPaymentSummary;
+  consumer: DibsEasyPaymentConsumer;
+  paymentDetails?: DibsEasyPaymentDetails;
+  orderDetails: DibsEasyPaymentOrderDetails;
+  checkout?: {
+    url: string;
+  };
+  created: string;
+  refunds?: DibsEasyPaymentRefund[];
+}
diff --git a/backend/src/payment/dibs/dibs-payment.service.ts b/backend/src/express/payment/dibs/dibs-payment.service.ts
similarity index 91%
rename from backend/src/payment/dibs/dibs-payment.service.ts
rename to backend/src/express/payment/dibs/dibs-payment.service.ts
index 82d59a9e..2f1260e8 100644
--- a/backend/src/payment/dibs/dibs-payment.service.ts
+++ b/backend/src/express/payment/dibs/dibs-payment.service.ts
@@ -1,9 +1,9 @@
-import { UserDetailHelper } from "@backend/collections/user-detail/helpers/user-detail.helper.js";
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import HttpHandler from "@backend/http/http.handler.js";
-import { DibsEasyOrder } from "@backend/payment/dibs/dibs-easy-order.js";
-import { DibsEasyPayment } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
+import { UserDetailHelper } from "@backend/express/collections/user-detail/helpers/user-detail.helper.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import HttpHandler from "@backend/express/http/http.handler.js";
+import { DibsEasyOrder } from "@backend/express/payment/dibs/dibs-easy-order.js";
+import { DibsEasyPayment } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
 import { DibsEasyItem } from "@backend/types/dibs-easy-item.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/price/price.service.ts b/backend/src/express/price/price.service.ts
similarity index 100%
rename from backend/src/price/price.service.ts
rename to backend/src/express/price/price.service.ts
diff --git a/backend/src/query/db-query-boolean-filter.ts b/backend/src/express/query/db-query-boolean-filter.ts
similarity index 100%
rename from backend/src/query/db-query-boolean-filter.ts
rename to backend/src/express/query/db-query-boolean-filter.ts
diff --git a/backend/src/query/db-query-date-filter.ts b/backend/src/express/query/db-query-date-filter.ts
similarity index 100%
rename from backend/src/query/db-query-date-filter.ts
rename to backend/src/express/query/db-query-date-filter.ts
diff --git a/backend/src/query/db-query-expand-filter.ts b/backend/src/express/query/db-query-expand-filter.ts
similarity index 100%
rename from backend/src/query/db-query-expand-filter.ts
rename to backend/src/express/query/db-query-expand-filter.ts
diff --git a/backend/src/query/db-query-limit-filter.ts b/backend/src/express/query/db-query-limit-filter.ts
similarity index 100%
rename from backend/src/query/db-query-limit-filter.ts
rename to backend/src/express/query/db-query-limit-filter.ts
diff --git a/backend/src/query/db-query-number-filter.ts b/backend/src/express/query/db-query-number-filter.ts
similarity index 100%
rename from backend/src/query/db-query-number-filter.ts
rename to backend/src/express/query/db-query-number-filter.ts
diff --git a/backend/src/query/db-query-object-id-filter.ts b/backend/src/express/query/db-query-object-id-filter.ts
similarity index 100%
rename from backend/src/query/db-query-object-id-filter.ts
rename to backend/src/express/query/db-query-object-id-filter.ts
diff --git a/backend/src/query/db-query-only-get-filter.ts b/backend/src/express/query/db-query-only-get-filter.ts
similarity index 100%
rename from backend/src/query/db-query-only-get-filter.ts
rename to backend/src/express/query/db-query-only-get-filter.ts
diff --git a/backend/src/query/db-query-regex-filter.ts b/backend/src/express/query/db-query-regex-filter.ts
similarity index 100%
rename from backend/src/query/db-query-regex-filter.ts
rename to backend/src/express/query/db-query-regex-filter.ts
diff --git a/backend/src/query/db-query-skip-filter.ts b/backend/src/express/query/db-query-skip-filter.ts
similarity index 100%
rename from backend/src/query/db-query-skip-filter.ts
rename to backend/src/express/query/db-query-skip-filter.ts
diff --git a/backend/src/query/db-query-sort-filter.ts b/backend/src/express/query/db-query-sort-filter.ts
similarity index 100%
rename from backend/src/query/db-query-sort-filter.ts
rename to backend/src/express/query/db-query-sort-filter.ts
diff --git a/backend/src/query/db-query-string-filter.ts b/backend/src/express/query/db-query-string-filter.ts
similarity index 100%
rename from backend/src/query/db-query-string-filter.ts
rename to backend/src/express/query/db-query-string-filter.ts
diff --git a/backend/src/query/db-query-valid-params.ts b/backend/src/express/query/db-query-valid-params.ts
similarity index 100%
rename from backend/src/query/db-query-valid-params.ts
rename to backend/src/express/query/db-query-valid-params.ts
diff --git a/backend/src/query/se.db-query-builder.ts b/backend/src/express/query/se.db-query-builder.ts
similarity index 78%
rename from backend/src/query/se.db-query-builder.ts
rename to backend/src/express/query/se.db-query-builder.ts
index a5f2d2fb..4bb4fd41 100644
--- a/backend/src/query/se.db-query-builder.ts
+++ b/backend/src/express/query/se.db-query-builder.ts
@@ -1,19 +1,19 @@
-import { DbQueryBooleanFilter } from "@backend/query/db-query-boolean-filter.js";
-import { DbQueryDateFilter } from "@backend/query/db-query-date-filter.js";
-import { DbQueryExpandFilter } from "@backend/query/db-query-expand-filter.js";
-import { DbQueryLimitFilter } from "@backend/query/db-query-limit-filter.js";
-import { DbQueryNumberFilter } from "@backend/query/db-query-number-filter.js";
-import { DbQueryObjectIdFilter } from "@backend/query/db-query-object-id-filter.js";
-import { DbQueryOnlyGetFilter } from "@backend/query/db-query-only-get-filter.js";
-import { DbQueryRegexFilter } from "@backend/query/db-query-regex-filter.js";
-import { DbQuerySkipFilter } from "@backend/query/db-query-skip-filter.js";
-import { DbQuerySortFilter } from "@backend/query/db-query-sort-filter.js";
-import { DbQueryStringFilter } from "@backend/query/db-query-string-filter.js";
+import { DbQueryBooleanFilter } from "@backend/express/query/db-query-boolean-filter.js";
+import { DbQueryDateFilter } from "@backend/express/query/db-query-date-filter.js";
+import { DbQueryExpandFilter } from "@backend/express/query/db-query-expand-filter.js";
+import { DbQueryLimitFilter } from "@backend/express/query/db-query-limit-filter.js";
+import { DbQueryNumberFilter } from "@backend/express/query/db-query-number-filter.js";
+import { DbQueryObjectIdFilter } from "@backend/express/query/db-query-object-id-filter.js";
+import { DbQueryOnlyGetFilter } from "@backend/express/query/db-query-only-get-filter.js";
+import { DbQueryRegexFilter } from "@backend/express/query/db-query-regex-filter.js";
+import { DbQuerySkipFilter } from "@backend/express/query/db-query-skip-filter.js";
+import { DbQuerySortFilter } from "@backend/express/query/db-query-sort-filter.js";
+import { DbQueryStringFilter } from "@backend/express/query/db-query-string-filter.js";
 import {
   DbQueryValidParams,
   ValidParameter,
-} from "@backend/query/db-query-valid-params.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
+} from "@backend/express/query/db-query-valid-params.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
 import { ParsedQs } from "qs";
 
 export class SEDbQueryBuilder {
diff --git a/backend/src/query/se.db-query.ts b/backend/src/express/query/se.db-query.ts
similarity index 81%
rename from backend/src/query/se.db-query.ts
rename to backend/src/express/query/se.db-query.ts
index 9fa6a086..d343df15 100644
--- a/backend/src/query/se.db-query.ts
+++ b/backend/src/express/query/se.db-query.ts
@@ -1,14 +1,14 @@
-import { BooleanFilter } from "@backend/query/db-query-boolean-filter.js";
-import { DateFilter } from "@backend/query/db-query-date-filter.js";
-import { ExpandFilter } from "@backend/query/db-query-expand-filter.js";
-import { LimitFilter } from "@backend/query/db-query-limit-filter.js";
-import { NumberFilter } from "@backend/query/db-query-number-filter.js";
-import { ObjectIdFilter } from "@backend/query/db-query-object-id-filter.js";
-import { OnlyGetFilter } from "@backend/query/db-query-only-get-filter.js";
-import { RegexFilter } from "@backend/query/db-query-regex-filter.js";
-import { SkipFilter } from "@backend/query/db-query-skip-filter.js";
-import { SortFilter } from "@backend/query/db-query-sort-filter.js";
-import { StringFilter } from "@backend/query/db-query-string-filter.js";
+import { BooleanFilter } from "@backend/express/query/db-query-boolean-filter.js";
+import { DateFilter } from "@backend/express/query/db-query-date-filter.js";
+import { ExpandFilter } from "@backend/express/query/db-query-expand-filter.js";
+import { LimitFilter } from "@backend/express/query/db-query-limit-filter.js";
+import { NumberFilter } from "@backend/express/query/db-query-number-filter.js";
+import { ObjectIdFilter } from "@backend/express/query/db-query-object-id-filter.js";
+import { OnlyGetFilter } from "@backend/express/query/db-query-only-get-filter.js";
+import { RegexFilter } from "@backend/express/query/db-query-regex-filter.js";
+import { SkipFilter } from "@backend/express/query/db-query-skip-filter.js";
+import { SortFilter } from "@backend/express/query/db-query-sort-filter.js";
+import { StringFilter } from "@backend/express/query/db-query-string-filter.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { ObjectId } from "mongodb";
 
diff --git a/backend/src/response/bl-response.handler.ts b/backend/src/express/response/bl-response.handler.ts
similarity index 89%
rename from backend/src/response/bl-response.handler.ts
rename to backend/src/express/response/bl-response.handler.ts
index ff8681fb..1a5231b0 100644
--- a/backend/src/response/bl-response.handler.ts
+++ b/backend/src/express/response/bl-response.handler.ts
@@ -1,6 +1,6 @@
-import BlErrorHandler from "@backend/bl-error/bl-error.handler.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import { logger } from "@backend/express-config/logger.js";
+import BlErrorHandler from "@backend/express/bl-error/bl-error.handler.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import { logger } from "@backend/express/config/logger.js";
 import * as Sentry from "@sentry/node";
 import { BlapiErrorResponse } from "@shared/blapi-response/blapi-error-response.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/express/storage/bl-storage.ts b/backend/src/express/storage/bl-storage.ts
new file mode 100644
index 00000000..8da2c078
--- /dev/null
+++ b/backend/src/express/storage/bl-storage.ts
@@ -0,0 +1,73 @@
+import { ToSchema } from "@backend/express/helper/typescript-helpers.js";
+import { BranchItemModel } from "@backend/express/storage/models/branch-item.model.js";
+import { BranchModel } from "@backend/express/storage/models/branch.model.js";
+import { CompanyModel } from "@backend/express/storage/models/company.model.js";
+import { CustomerItemModel } from "@backend/express/storage/models/customer-item.model.js";
+import { DeliveryModel } from "@backend/express/storage/models/delivery.model.js";
+import { EditableTextModel } from "@backend/express/storage/models/editable-text.model.js";
+import { EmailValidationModel } from "@backend/express/storage/models/email-validation.model.js";
+import { InvoiceModel } from "@backend/express/storage/models/invoice.model.js";
+import { ItemModel } from "@backend/express/storage/models/item.model.js";
+import { LocalLoginModel } from "@backend/express/storage/models/local-login.model.js";
+import { MessageModel } from "@backend/express/storage/models/message.model.js";
+import { OpeningHourModel } from "@backend/express/storage/models/opening-hour.model.js";
+import { OrderModel } from "@backend/express/storage/models/order.model.js";
+import { PaymentModel } from "@backend/express/storage/models/payment.model.js";
+import { PendingPasswordResetModel } from "@backend/express/storage/models/pending-password-reset.model.js";
+import { SignatureModel } from "@backend/express/storage/models/signature.model.js";
+import { StandMatchModel } from "@backend/express/storage/models/stand-match.model.js";
+import { UniqueItemModel } from "@backend/express/storage/models/unique-item.model.js";
+import { UserDetailModel } from "@backend/express/storage/models/user-detail.model.js";
+import { UserMatchModel } from "@backend/express/storage/models/user-match.model.js";
+import { UserModel } from "@backend/express/storage/models/user.model.js";
+import { MongodbHandler } from "@backend/express/storage/mongodb-handler.js";
+import { Schema } from "mongoose";
+
+export interface BlModel<T> {
+  name: string;
+  schema: Schema<ToSchema<T>>;
+}
+
+export const BlStorage = {
+  Branches: new MongodbHandler(BranchModel),
+  BranchItems: new MongodbHandler(BranchItemModel),
+  Companies: new MongodbHandler(CompanyModel),
+  CustomerItems: new MongodbHandler(CustomerItemModel),
+  Deliveries: new MongodbHandler(DeliveryModel),
+  EditableTexts: new MongodbHandler(EditableTextModel),
+  EmailValidations: new MongodbHandler(EmailValidationModel),
+  Invoices: new MongodbHandler(InvoiceModel),
+  Items: new MongodbHandler(ItemModel),
+  LocalLogins: new MongodbHandler(LocalLoginModel),
+  Messages: new MongodbHandler(MessageModel),
+  OpeningHours: new MongodbHandler(OpeningHourModel),
+  Orders: new MongodbHandler(OrderModel),
+  Payments: new MongodbHandler(PaymentModel),
+  PendingPasswordResets: new MongodbHandler(PendingPasswordResetModel),
+  Signatures: new MongodbHandler(SignatureModel),
+  StandMatches: new MongodbHandler(StandMatchModel),
+  UniqueItems: new MongodbHandler(UniqueItemModel),
+  Users: new MongodbHandler(UserModel),
+  UserDetails: new MongodbHandler(UserDetailModel),
+  UserMatches: new MongodbHandler(UserMatchModel),
+};
+
+export type BlStorageHandler = (typeof BlStorage)[keyof typeof BlStorage];
+
+type BlModelTypes = {
+  [K in keyof typeof BlStorage]: (typeof BlStorage)[K] extends MongodbHandler<
+    infer T
+  >
+    ? T
+    : never;
+}[keyof typeof BlStorage];
+
+export type BlStorageData =
+  | {
+      [K in keyof typeof BlStorage]: (typeof BlStorage)[K] extends MongodbHandler<
+        infer T
+      >
+        ? T[]
+        : never;
+    }[keyof typeof BlStorage]
+  | BlModelTypes[];
diff --git a/backend/src/storage/models/branch-item.model.ts b/backend/src/express/storage/models/branch-item.model.ts
similarity index 94%
rename from backend/src/storage/models/branch-item.model.ts
rename to backend/src/express/storage/models/branch-item.model.ts
index 6af78d7f..e4d25dcd 100644
--- a/backend/src/storage/models/branch-item.model.ts
+++ b/backend/src/express/storage/models/branch-item.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { BranchItem } from "@shared/branch-item/branch-item.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/branch.model.ts b/backend/src/express/storage/models/branch.model.ts
similarity index 97%
rename from backend/src/storage/models/branch.model.ts
rename to backend/src/express/storage/models/branch.model.ts
index 18aa48cf..a4f1d4cc 100644
--- a/backend/src/storage/models/branch.model.ts
+++ b/backend/src/express/storage/models/branch.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Branch } from "@shared/branch/branch.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/company.model.ts b/backend/src/express/storage/models/company.model.ts
similarity index 90%
rename from backend/src/storage/models/company.model.ts
rename to backend/src/express/storage/models/company.model.ts
index fe29b14a..370eccae 100644
--- a/backend/src/storage/models/company.model.ts
+++ b/backend/src/express/storage/models/company.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Company } from "@shared/company/company.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/customer-item.model.ts b/backend/src/express/storage/models/customer-item.model.ts
similarity index 97%
rename from backend/src/storage/models/customer-item.model.ts
rename to backend/src/express/storage/models/customer-item.model.ts
index 36c59a49..33a5704d 100644
--- a/backend/src/storage/models/customer-item.model.ts
+++ b/backend/src/express/storage/models/customer-item.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/delivery.model.ts b/backend/src/express/storage/models/delivery.model.ts
similarity index 87%
rename from backend/src/storage/models/delivery.model.ts
rename to backend/src/express/storage/models/delivery.model.ts
index e54aa640..6cd5154c 100644
--- a/backend/src/storage/models/delivery.model.ts
+++ b/backend/src/express/storage/models/delivery.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Delivery } from "@shared/delivery/delivery.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/editable-text.model.ts b/backend/src/express/storage/models/editable-text.model.ts
similarity index 81%
rename from backend/src/storage/models/editable-text.model.ts
rename to backend/src/express/storage/models/editable-text.model.ts
index 45952040..340fd93c 100644
--- a/backend/src/storage/models/editable-text.model.ts
+++ b/backend/src/express/storage/models/editable-text.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { EditableText } from "@shared/editable-text/editable-text.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/email-validation.model.ts b/backend/src/express/storage/models/email-validation.model.ts
similarity index 61%
rename from backend/src/storage/models/email-validation.model.ts
rename to backend/src/express/storage/models/email-validation.model.ts
index 9cbfa1a4..5be7a664 100644
--- a/backend/src/storage/models/email-validation.model.ts
+++ b/backend/src/express/storage/models/email-validation.model.ts
@@ -1,5 +1,5 @@
-import { EmailValidation } from "@backend/collections/email-validation/email-validation.js";
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { EmailValidation } from "@backend/express/collections/email-validation/email-validation.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Schema } from "mongoose";
 
 export const EmailValidationModel: BlModel<EmailValidation> = {
diff --git a/backend/src/storage/models/invoice.model.ts b/backend/src/express/storage/models/invoice.model.ts
similarity index 97%
rename from backend/src/storage/models/invoice.model.ts
rename to backend/src/express/storage/models/invoice.model.ts
index e8260e77..768aee9d 100644
--- a/backend/src/storage/models/invoice.model.ts
+++ b/backend/src/express/storage/models/invoice.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Invoice } from "@shared/invoice/invoice.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/item.model.ts b/backend/src/express/storage/models/item.model.ts
similarity index 94%
rename from backend/src/storage/models/item.model.ts
rename to backend/src/express/storage/models/item.model.ts
index 118e1180..17af436d 100644
--- a/backend/src/storage/models/item.model.ts
+++ b/backend/src/express/storage/models/item.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Item } from "@shared/item/item.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/local-login.model.ts b/backend/src/express/storage/models/local-login.model.ts
similarity index 89%
rename from backend/src/storage/models/local-login.model.ts
rename to backend/src/express/storage/models/local-login.model.ts
index eb25778f..03079903 100644
--- a/backend/src/storage/models/local-login.model.ts
+++ b/backend/src/express/storage/models/local-login.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/message.model.ts b/backend/src/express/storage/models/message.model.ts
similarity index 93%
rename from backend/src/storage/models/message.model.ts
rename to backend/src/express/storage/models/message.model.ts
index 82c5238b..703e9e30 100644
--- a/backend/src/storage/models/message.model.ts
+++ b/backend/src/express/storage/models/message.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Message } from "@shared/message/message.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/opening-hour.model.ts b/backend/src/express/storage/models/opening-hour.model.ts
similarity index 86%
rename from backend/src/storage/models/opening-hour.model.ts
rename to backend/src/express/storage/models/opening-hour.model.ts
index 452f1916..c7ea7cf2 100644
--- a/backend/src/storage/models/opening-hour.model.ts
+++ b/backend/src/express/storage/models/opening-hour.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { OpeningHour } from "@shared/opening-hour/opening-hour.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/order.model.ts b/backend/src/express/storage/models/order.model.ts
similarity index 97%
rename from backend/src/storage/models/order.model.ts
rename to backend/src/express/storage/models/order.model.ts
index 6fc3b6a7..bf618366 100644
--- a/backend/src/storage/models/order.model.ts
+++ b/backend/src/express/storage/models/order.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Order } from "@shared/order/order.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/payment.model.ts b/backend/src/express/storage/models/payment.model.ts
similarity index 93%
rename from backend/src/storage/models/payment.model.ts
rename to backend/src/express/storage/models/payment.model.ts
index c57c53f6..06a2feeb 100644
--- a/backend/src/storage/models/payment.model.ts
+++ b/backend/src/express/storage/models/payment.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { Payment } from "@shared/payment/payment.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/pending-password-reset.model.ts b/backend/src/express/storage/models/pending-password-reset.model.ts
similarity index 90%
rename from backend/src/storage/models/pending-password-reset.model.ts
rename to backend/src/express/storage/models/pending-password-reset.model.ts
index 88310050..640612a6 100644
--- a/backend/src/storage/models/pending-password-reset.model.ts
+++ b/backend/src/express/storage/models/pending-password-reset.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { PendingPasswordReset } from "@shared/password-reset/pending-password-reset.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/signature.model.ts b/backend/src/express/storage/models/signature.model.ts
similarity index 88%
rename from backend/src/storage/models/signature.model.ts
rename to backend/src/express/storage/models/signature.model.ts
index b2677cc5..4078aada 100644
--- a/backend/src/storage/models/signature.model.ts
+++ b/backend/src/express/storage/models/signature.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { SignatureMetadata } from "@shared/signature/serialized-signature.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/stand-match.model.ts b/backend/src/express/storage/models/stand-match.model.ts
similarity index 78%
rename from backend/src/storage/models/stand-match.model.ts
rename to backend/src/express/storage/models/stand-match.model.ts
index 9c9b98e8..99435017 100644
--- a/backend/src/storage/models/stand-match.model.ts
+++ b/backend/src/express/storage/models/stand-match.model.ts
@@ -1,6 +1,6 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
-import { ItemModel } from "@backend/storage/models/item.model.js";
-import { UserDetailModel } from "@backend/storage/models/user-detail.model.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
+import { ItemModel } from "@backend/express/storage/models/item.model.js";
+import { UserDetailModel } from "@backend/express/storage/models/user-detail.model.js";
 import { StandMatch } from "@shared/match/stand-match.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/unique-item.model.ts b/backend/src/express/storage/models/unique-item.model.ts
similarity index 86%
rename from backend/src/storage/models/unique-item.model.ts
rename to backend/src/express/storage/models/unique-item.model.ts
index f0ec8d80..1dd5c982 100644
--- a/backend/src/storage/models/unique-item.model.ts
+++ b/backend/src/express/storage/models/unique-item.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { UniqueItem } from "@shared/unique-item/unique-item.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/user-detail.model.ts b/backend/src/express/storage/models/user-detail.model.ts
similarity index 94%
rename from backend/src/storage/models/user-detail.model.ts
rename to backend/src/express/storage/models/user-detail.model.ts
index bbd09a08..c060d7a0 100644
--- a/backend/src/storage/models/user-detail.model.ts
+++ b/backend/src/express/storage/models/user-detail.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/user-match.model.ts b/backend/src/express/storage/models/user-match.model.ts
similarity index 83%
rename from backend/src/storage/models/user-match.model.ts
rename to backend/src/express/storage/models/user-match.model.ts
index 769b2d0a..e42ffbfd 100644
--- a/backend/src/storage/models/user-match.model.ts
+++ b/backend/src/express/storage/models/user-match.model.ts
@@ -1,6 +1,6 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
-import { ItemModel } from "@backend/storage/models/item.model.js";
-import { UserDetailModel } from "@backend/storage/models/user-detail.model.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
+import { ItemModel } from "@backend/express/storage/models/item.model.js";
+import { UserDetailModel } from "@backend/express/storage/models/user-detail.model.js";
 import { UserMatch } from "@shared/match/user-match.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/models/user.model.ts b/backend/src/express/storage/models/user.model.ts
similarity index 92%
rename from backend/src/storage/models/user.model.ts
rename to backend/src/express/storage/models/user.model.ts
index 9dc68872..da9e5068 100644
--- a/backend/src/storage/models/user.model.ts
+++ b/backend/src/express/storage/models/user.model.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import { User } from "@backend/types/user.js";
 import { Schema } from "mongoose";
 
diff --git a/backend/src/storage/mongodb-handler.ts b/backend/src/express/storage/mongodb-handler.ts
similarity index 95%
rename from backend/src/storage/mongodb-handler.ts
rename to backend/src/express/storage/mongodb-handler.ts
index ac423c73..ec3a79ec 100644
--- a/backend/src/storage/mongodb-handler.ts
+++ b/backend/src/express/storage/mongodb-handler.ts
@@ -1,9 +1,9 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
-import { logger } from "@backend/express-config/logger.js";
-import { ExpandFilter } from "@backend/query/db-query-expand-filter.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlModel } from "@backend/storage/bl-storage.js";
-import { MongooseModelCreator } from "@backend/storage/mongoose-schema-creator.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
+import { logger } from "@backend/express/config/logger.js";
+import { ExpandFilter } from "@backend/express/query/db-query-expand-filter.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
+import { MongooseModelCreator } from "@backend/express/storage/mongoose-schema-creator.js";
 import { NestedDocument } from "@backend/types/nested-document.js";
 import { BlDocument } from "@shared/bl-document/bl-document.js";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/storage/mongoose-schema-creator.ts b/backend/src/express/storage/mongoose-schema-creator.ts
similarity index 97%
rename from backend/src/storage/mongoose-schema-creator.ts
rename to backend/src/express/storage/mongoose-schema-creator.ts
index 57a58bfe..70be6a3e 100644
--- a/backend/src/storage/mongoose-schema-creator.ts
+++ b/backend/src/express/storage/mongoose-schema-creator.ts
@@ -1,4 +1,4 @@
-import { BlModel } from "@backend/storage/bl-storage.js";
+import { BlModel } from "@backend/express/storage/bl-storage.js";
 import mongoose, { Model, Schema } from "mongoose";
 
 export class MongooseModelCreator<T> {
diff --git a/backend/src/index.ts b/backend/src/index.ts
index 5f71fb37..43bdea7f 100644
--- a/backend/src/index.ts
+++ b/backend/src/index.ts
@@ -1,17 +1,17 @@
-import "@backend/express-config/instrument.js";
-import FacebookAuth from "@backend/auth/external/facebook.auth.js";
-import GoogleAuth from "@backend/auth/external/google.auth.js";
-import LocalAuth from "@backend/auth/local/local.auth.js";
-import TokenEndpoint from "@backend/auth/token/token.endpoint.js";
-import CollectionEndpointCreator from "@backend/collection-endpoint/collection-endpoint-creator.js";
-import configurePassport from "@backend/express-config/auth.js";
-import corsHandler from "@backend/express-config/cors.js";
-import configureMongoose from "@backend/express-config/database.js";
-import debugLoggerHandler from "@backend/express-config/debug-logger.js";
-import { BlEnv } from "@backend/express-config/env.js";
-import redirectToHttpsHandler from "@backend/express-config/https.js";
-import { logger } from "@backend/express-config/logger.js";
-import sessionHandler from "@backend/express-config/session.js";
+import "@backend/express/config/instrument.js";
+import FacebookAuth from "@backend/express/auth/external/facebook.auth.js";
+import GoogleAuth from "@backend/express/auth/external/google.auth.js";
+import LocalAuth from "@backend/express/auth/local/local.auth.js";
+import TokenEndpoint from "@backend/express/auth/token/token.endpoint.js";
+import CollectionEndpointCreator from "@backend/express/collection-endpoint/collection-endpoint-creator.js";
+import configurePassport from "@backend/express/config/auth.js";
+import corsHandler from "@backend/express/config/cors.js";
+import configureMongoose from "@backend/express/config/database.js";
+import debugLoggerHandler from "@backend/express/config/debug-logger.js";
+import { BlEnv } from "@backend/express/config/env.js";
+import redirectToHttpsHandler from "@backend/express/config/https.js";
+import { logger } from "@backend/express/config/logger.js";
+import sessionHandler from "@backend/express/config/session.js";
 import * as Sentry from "@sentry/node";
 import express, { json } from "express";
 import expressListEndpoints from "express-list-endpoints";
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts b/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts
deleted file mode 100644
index 28a6c270..00000000
--- a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { DibsEasyPaymentConsumerBillingAddress } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-billing-address.js";
-import { DibsEasyPaymentConsumerCompany } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-company.js";
-import { DibsEasyPaymentConsumerPrivatePerson } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-private-person.js";
-import { DibsEasyPaymentConsumerShippingAddress } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer-shipping-address.js";
-
-export class DibsEasyPaymentConsumer {
-  billingAddress?: DibsEasyPaymentConsumerBillingAddress;
-  shippingAddress?: DibsEasyPaymentConsumerShippingAddress;
-  company?: DibsEasyPaymentConsumerCompany;
-  privatePerson?: DibsEasyPaymentConsumerPrivatePerson;
-}
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts b/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts
deleted file mode 100644
index 19106851..00000000
--- a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { DibsEasyPaymentDetailsCard } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-card.js";
-import { DibsEasyPaymentDetailsInvoiceDetail } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details-invoice-detail.js";
-
-export interface DibsEasyPaymentDetails {
-  paymentType: string;
-  paymentMethod: string;
-  invoiceDetails?: DibsEasyPaymentDetailsInvoiceDetail;
-  cardDetails: DibsEasyPaymentDetailsCard;
-}
diff --git a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts b/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts
deleted file mode 100644
index c3449e89..00000000
--- a/backend/src/payment/dibs/dibs-easy-payment/dibs-easy-payment.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { DibsEasyPaymentConsumer } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-consumer/dibs-easy-payment-consumer.js";
-import { DibsEasyPaymentDetails } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-details/dibs-easy-payment-details.js";
-import { DibsEasyPaymentOrderDetails } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-order-details/dibs-easy-payment-order-details.js";
-import { DibsEasyPaymentRefund } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-refund/dibs-easy-payment-refund.js";
-import { DibsEasyPaymentSummary } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment-summary/dibs-easy-payment-summary.js";
-
-export interface DibsEasyPayment {
-  paymentId: string;
-  summary: DibsEasyPaymentSummary;
-  consumer: DibsEasyPaymentConsumer;
-  paymentDetails?: DibsEasyPaymentDetails;
-  orderDetails: DibsEasyPaymentOrderDetails;
-  checkout?: {
-    url: string;
-  };
-  created: string;
-  refunds?: DibsEasyPaymentRefund[];
-}
diff --git a/backend/src/start/env.ts b/backend/src/start/env.ts
new file mode 100644
index 00000000..a716a30b
--- /dev/null
+++ b/backend/src/start/env.ts
@@ -0,0 +1,27 @@
+/*
+|--------------------------------------------------------------------------
+| Environment variables service
+|--------------------------------------------------------------------------
+|
+| The `Env.create` method creates an instance of the Env service. The
+| service validates the environment variables and also cast values
+| to JavaScript data types.
+|
+*/
+
+import { Env } from "@adonisjs/core/env";
+
+export default await Env.create(new URL("../", import.meta.url), {
+  NODE_ENV: Env.schema.enum(["development", "production", "test"] as const),
+  PORT: Env.schema.number(),
+  APP_KEY: Env.schema.string(),
+  HOST: Env.schema.string({ format: "host" }),
+  LOG_LEVEL: Env.schema.enum([
+    "fatal",
+    "error",
+    "warn",
+    "info",
+    "debug",
+    "trace",
+  ]),
+});
diff --git a/backend/src/start/kernel.ts b/backend/src/start/kernel.ts
new file mode 100644
index 00000000..df1d6084
--- /dev/null
+++ b/backend/src/start/kernel.ts
@@ -0,0 +1,14 @@
+import router from "@adonisjs/core/services/router";
+import server from "@adonisjs/core/services/server";
+
+server.errorHandler(() => import("@backend/app/exceptions/handler.js"));
+
+server.use([
+  () => import("@backend/app/middleware/container_bindings_middleware.js"),
+  () => import("@backend/app/middleware/force_json_response_middleware.js"),
+  () => import("@adonisjs/cors/cors_middleware"),
+]);
+
+router.use([() => import("@adonisjs/core/bodyparser_middleware")]);
+
+export const middleware = router.named({});
diff --git a/backend/src/start/routes.ts b/backend/src/start/routes.ts
new file mode 100644
index 00000000..fb89efca
--- /dev/null
+++ b/backend/src/start/routes.ts
@@ -0,0 +1,16 @@
+/*
+|--------------------------------------------------------------------------
+| Routes file
+|--------------------------------------------------------------------------
+|
+| The routes file is used for defining the HTTP routes.
+|
+*/
+
+import router from "@adonisjs/core/services/router";
+
+router.get("/", async () => {
+  return {
+    hello: "world",
+  };
+});
diff --git a/backend/src/storage/bl-storage.ts b/backend/src/storage/bl-storage.ts
deleted file mode 100644
index a3420c14..00000000
--- a/backend/src/storage/bl-storage.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { ToSchema } from "@backend/helper/typescript-helpers.js";
-import { BranchItemModel } from "@backend/storage/models/branch-item.model.js";
-import { BranchModel } from "@backend/storage/models/branch.model.js";
-import { CompanyModel } from "@backend/storage/models/company.model.js";
-import { CustomerItemModel } from "@backend/storage/models/customer-item.model.js";
-import { DeliveryModel } from "@backend/storage/models/delivery.model.js";
-import { EditableTextModel } from "@backend/storage/models/editable-text.model.js";
-import { EmailValidationModel } from "@backend/storage/models/email-validation.model.js";
-import { InvoiceModel } from "@backend/storage/models/invoice.model.js";
-import { ItemModel } from "@backend/storage/models/item.model.js";
-import { LocalLoginModel } from "@backend/storage/models/local-login.model.js";
-import { MessageModel } from "@backend/storage/models/message.model.js";
-import { OpeningHourModel } from "@backend/storage/models/opening-hour.model.js";
-import { OrderModel } from "@backend/storage/models/order.model.js";
-import { PaymentModel } from "@backend/storage/models/payment.model.js";
-import { PendingPasswordResetModel } from "@backend/storage/models/pending-password-reset.model.js";
-import { SignatureModel } from "@backend/storage/models/signature.model.js";
-import { StandMatchModel } from "@backend/storage/models/stand-match.model.js";
-import { UniqueItemModel } from "@backend/storage/models/unique-item.model.js";
-import { UserDetailModel } from "@backend/storage/models/user-detail.model.js";
-import { UserMatchModel } from "@backend/storage/models/user-match.model.js";
-import { UserModel } from "@backend/storage/models/user.model.js";
-import { MongodbHandler } from "@backend/storage/mongodb-handler.js";
-import { Schema } from "mongoose";
-
-export interface BlModel<T> {
-  name: string;
-  schema: Schema<ToSchema<T>>;
-}
-
-export const BlStorage = {
-  Branches: new MongodbHandler(BranchModel),
-  BranchItems: new MongodbHandler(BranchItemModel),
-  Companies: new MongodbHandler(CompanyModel),
-  CustomerItems: new MongodbHandler(CustomerItemModel),
-  Deliveries: new MongodbHandler(DeliveryModel),
-  EditableTexts: new MongodbHandler(EditableTextModel),
-  EmailValidations: new MongodbHandler(EmailValidationModel),
-  Invoices: new MongodbHandler(InvoiceModel),
-  Items: new MongodbHandler(ItemModel),
-  LocalLogins: new MongodbHandler(LocalLoginModel),
-  Messages: new MongodbHandler(MessageModel),
-  OpeningHours: new MongodbHandler(OpeningHourModel),
-  Orders: new MongodbHandler(OrderModel),
-  Payments: new MongodbHandler(PaymentModel),
-  PendingPasswordResets: new MongodbHandler(PendingPasswordResetModel),
-  Signatures: new MongodbHandler(SignatureModel),
-  StandMatches: new MongodbHandler(StandMatchModel),
-  UniqueItems: new MongodbHandler(UniqueItemModel),
-  Users: new MongodbHandler(UserModel),
-  UserDetails: new MongodbHandler(UserDetailModel),
-  UserMatches: new MongodbHandler(UserMatchModel),
-};
-
-export type BlStorageHandler = (typeof BlStorage)[keyof typeof BlStorage];
-
-type BlModelTypes = {
-  [K in keyof typeof BlStorage]: (typeof BlStorage)[K] extends MongodbHandler<
-    infer T
-  >
-    ? T
-    : never;
-}[keyof typeof BlStorage];
-
-export type BlStorageData =
-  | {
-      [K in keyof typeof BlStorage]: (typeof BlStorage)[K] extends MongodbHandler<
-        infer T
-      >
-        ? T[]
-        : never;
-    }[keyof typeof BlStorage]
-  | BlModelTypes[];
diff --git a/backend/src/tests/access-token.creator.spec.ts b/backend/src/tests/access-token.creator.spec.ts
index 6b278585..177eac2e 100644
--- a/backend/src/tests/access-token.creator.spec.ts
+++ b/backend/src/tests/access-token.creator.spec.ts
@@ -1,5 +1,5 @@
-import AccessTokenCreator from "@backend/auth/token/access-token/access-token.creator.js";
-import RefreshTokenCreator from "@backend/auth/token/refresh/refresh-token.creator.js";
+import AccessTokenCreator from "@backend/express/auth/token/access-token/access-token.creator.js";
+import RefreshTokenCreator from "@backend/express/auth/token/refresh/refresh-token.creator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { UserPermission } from "@shared/permission/user-permission.js";
diff --git a/backend/src/tests/api-path.spec.ts b/backend/src/tests/api-path.spec.ts
index fdac763a..84ac2a3a 100644
--- a/backend/src/tests/api-path.spec.ts
+++ b/backend/src/tests/api-path.spec.ts
@@ -1,5 +1,5 @@
-import { retrieveRefererPath } from "@backend/express-config/api-path.js";
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
+import { retrieveRefererPath } from "@backend/express/config/api-path.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/bl-crypto.spec.ts b/backend/src/tests/bl-crypto.spec.ts
index da698de7..6b38db0a 100644
--- a/backend/src/tests/bl-crypto.spec.ts
+++ b/backend/src/tests/bl-crypto.spec.ts
@@ -1,4 +1,4 @@
-import BlCrypto from "@backend/express-config/bl-crypto.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/blid.spec.ts b/backend/src/tests/blid.spec.ts
index 16a6a48e..79bbfaa2 100644
--- a/backend/src/tests/blid.spec.ts
+++ b/backend/src/tests/blid.spec.ts
@@ -1,4 +1,4 @@
-import Blid from "@backend/auth/blid.js";
+import Blid from "@backend/express/auth/blid.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/branch-get.hook.spec.ts b/backend/src/tests/branch-get.hook.spec.ts
index fbb157d9..9dc8cb37 100644
--- a/backend/src/tests/branch-get.hook.spec.ts
+++ b/backend/src/tests/branch-get.hook.spec.ts
@@ -1,4 +1,4 @@
-import { BranchGetHook } from "@backend/collections/branch/hook/branch-get.hook.js";
+import { BranchGetHook } from "@backend/express/collections/branch/hook/branch-get.hook.js";
 import { test } from "@japa/runner";
 import { AccessToken } from "@shared/token/access-token.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/collection-endpoint-document-auth.spec.ts b/backend/src/tests/collection-endpoint-document-auth.spec.ts
index 44dca747..d4005756 100644
--- a/backend/src/tests/collection-endpoint-document-auth.spec.ts
+++ b/backend/src/tests/collection-endpoint-document-auth.spec.ts
@@ -1,5 +1,5 @@
-import CollectionEndpointDocumentAuth from "@backend/collection-endpoint/collection-endpoint-document-auth.js";
-import { BlStorageData } from "@backend/storage/bl-storage.js";
+import CollectionEndpointDocumentAuth from "@backend/express/collection-endpoint/collection-endpoint-document-auth.js";
+import { BlStorageData } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import {
   BlDocumentPermission,
diff --git a/backend/src/tests/confirm-pending-password-reset.operation.spec.ts b/backend/src/tests/confirm-pending-password-reset.operation.spec.ts
index 5ea3def6..24d4db7a 100644
--- a/backend/src/tests/confirm-pending-password-reset.operation.spec.ts
+++ b/backend/src/tests/confirm-pending-password-reset.operation.spec.ts
@@ -1,7 +1,7 @@
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import { ConfirmPendingPasswordResetOperation } from "@backend/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.js";
-import BlCrypto from "@backend/express-config/bl-crypto.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import { ConfirmPendingPasswordResetOperation } from "@backend/express/collections/pending-password-reset/operations/confirm-pending-password-reset.operation.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/tests/customer-have-active-customer-items.spec.ts b/backend/src/tests/customer-have-active-customer-items.spec.ts
index fa6e44d9..845ac80a 100644
--- a/backend/src/tests/customer-have-active-customer-items.spec.ts
+++ b/backend/src/tests/customer-have-active-customer-items.spec.ts
@@ -1,5 +1,5 @@
-import { CustomerHaveActiveCustomerItems } from "@backend/collections/customer-item/helpers/customer-have-active-customer-items.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerHaveActiveCustomerItems } from "@backend/express/collections/customer-item/helpers/customer-have-active-customer-items.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
diff --git a/backend/src/tests/customer-invoice-active.spec.ts b/backend/src/tests/customer-invoice-active.spec.ts
index fedbaaa4..5d1180b7 100644
--- a/backend/src/tests/customer-invoice-active.spec.ts
+++ b/backend/src/tests/customer-invoice-active.spec.ts
@@ -1,5 +1,5 @@
-import { CustomerInvoiceActive } from "@backend/collections/invoice/helpers/customer-invoice-active.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerInvoiceActive } from "@backend/express/collections/invoice/helpers/customer-invoice-active.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Invoice } from "@shared/invoice/invoice.js";
diff --git a/backend/src/tests/customer-item-active-blid.spec.ts b/backend/src/tests/customer-item-active-blid.spec.ts
index 828a72f5..b969352f 100644
--- a/backend/src/tests/customer-item-active-blid.spec.ts
+++ b/backend/src/tests/customer-item-active-blid.spec.ts
@@ -1,5 +1,5 @@
-import { CustomerItemActiveBlid } from "@backend/collections/customer-item/helpers/customer-item-active-blid.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemActiveBlid } from "@backend/express/collections/customer-item/helpers/customer-item-active-blid.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/customer-item-active.spec.ts b/backend/src/tests/customer-item-active.spec.ts
index 11a03991..f9507e09 100644
--- a/backend/src/tests/customer-item-active.spec.ts
+++ b/backend/src/tests/customer-item-active.spec.ts
@@ -1,4 +1,4 @@
-import { CustomerItemActive } from "@backend/collections/customer-item/helpers/customer-item-active.js";
+import { CustomerItemActive } from "@backend/express/collections/customer-item/helpers/customer-item-active.js";
 import { test } from "@japa/runner";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 import { expect } from "chai";
diff --git a/backend/src/tests/customer-item-handler.spec.ts b/backend/src/tests/customer-item-handler.spec.ts
index ce6430ee..b91cc3f2 100644
--- a/backend/src/tests/customer-item-handler.spec.ts
+++ b/backend/src/tests/customer-item-handler.spec.ts
@@ -1,6 +1,6 @@
-import { CustomerItemHandler } from "@backend/collections/customer-item/helpers/customer-item-handler.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemHandler } from "@backend/express/collections/customer-item/helpers/customer-item-handler.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
diff --git a/backend/src/tests/customer-item-post.hook.spec.ts b/backend/src/tests/customer-item-post.hook.spec.ts
index d736db62..5966b60d 100644
--- a/backend/src/tests/customer-item-post.hook.spec.ts
+++ b/backend/src/tests/customer-item-post.hook.spec.ts
@@ -1,6 +1,6 @@
-import { CustomerItemPostHook } from "@backend/collections/customer-item/hooks/customer-item-post.hook.js";
-import { CustomerItemValidator } from "@backend/collections/customer-item/validators/customer-item-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemPostHook } from "@backend/express/collections/customer-item/hooks/customer-item-post.hook.js";
+import { CustomerItemValidator } from "@backend/express/collections/customer-item/validators/customer-item-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
diff --git a/backend/src/tests/customer-item-validator.spec.ts b/backend/src/tests/customer-item-validator.spec.ts
index d036216a..def917cf 100644
--- a/backend/src/tests/customer-item-validator.spec.ts
+++ b/backend/src/tests/customer-item-validator.spec.ts
@@ -1,4 +1,4 @@
-import { CustomerItemValidator } from "@backend/collections/customer-item/validators/customer-item-validator.js";
+import { CustomerItemValidator } from "@backend/express/collections/customer-item/validators/customer-item-validator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/date.service.spec.ts b/backend/src/tests/date.service.spec.ts
index 5058cc31..ec56f4d0 100644
--- a/backend/src/tests/date.service.spec.ts
+++ b/backend/src/tests/date.service.spec.ts
@@ -1,4 +1,4 @@
-import { DateService } from "@backend/blc/date.service.js";
+import { DateService } from "@backend/express/blc/date.service.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-boolean-filter.spec.ts b/backend/src/tests/db-query-boolean-filter.spec.ts
index 48748016..2e336886 100644
--- a/backend/src/tests/db-query-boolean-filter.spec.ts
+++ b/backend/src/tests/db-query-boolean-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryBooleanFilter } from "@backend/query/db-query-boolean-filter.js";
+import { DbQueryBooleanFilter } from "@backend/express/query/db-query-boolean-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-date-filter.spec.ts b/backend/src/tests/db-query-date-filter.spec.ts
index 504f7e76..cb6d61bd 100644
--- a/backend/src/tests/db-query-date-filter.spec.ts
+++ b/backend/src/tests/db-query-date-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryDateFilter } from "@backend/query/db-query-date-filter.js";
+import { DbQueryDateFilter } from "@backend/express/query/db-query-date-filter.js";
 import { test } from "@japa/runner";
 import { expect, should, use as chaiUse } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-expand-filter.spec.ts b/backend/src/tests/db-query-expand-filter.spec.ts
index 8a094c20..5f6c763a 100644
--- a/backend/src/tests/db-query-expand-filter.spec.ts
+++ b/backend/src/tests/db-query-expand-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryExpandFilter } from "@backend/query/db-query-expand-filter.js";
+import { DbQueryExpandFilter } from "@backend/express/query/db-query-expand-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-limit-filter.spec.ts b/backend/src/tests/db-query-limit-filter.spec.ts
index 3b6a5620..0edd70cf 100644
--- a/backend/src/tests/db-query-limit-filter.spec.ts
+++ b/backend/src/tests/db-query-limit-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryLimitFilter } from "@backend/query/db-query-limit-filter.js";
+import { DbQueryLimitFilter } from "@backend/express/query/db-query-limit-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-number-filter.spec.ts b/backend/src/tests/db-query-number-filter.spec.ts
index 66319b96..dd4a8fc6 100644
--- a/backend/src/tests/db-query-number-filter.spec.ts
+++ b/backend/src/tests/db-query-number-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryNumberFilter } from "@backend/query/db-query-number-filter.js";
+import { DbQueryNumberFilter } from "@backend/express/query/db-query-number-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-object-id-filter.spec.ts b/backend/src/tests/db-query-object-id-filter.spec.ts
index 7a8ae660..f55f8c22 100644
--- a/backend/src/tests/db-query-object-id-filter.spec.ts
+++ b/backend/src/tests/db-query-object-id-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryObjectIdFilter } from "@backend/query/db-query-object-id-filter.js";
+import { DbQueryObjectIdFilter } from "@backend/express/query/db-query-object-id-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-only-get-filter.spec.ts b/backend/src/tests/db-query-only-get-filter.spec.ts
index 5edccead..b5e29e4c 100644
--- a/backend/src/tests/db-query-only-get-filter.spec.ts
+++ b/backend/src/tests/db-query-only-get-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryOnlyGetFilter } from "@backend/query/db-query-only-get-filter.js";
+import { DbQueryOnlyGetFilter } from "@backend/express/query/db-query-only-get-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-regex-filter.spec.ts b/backend/src/tests/db-query-regex-filter.spec.ts
index 289d64d3..ed0c4403 100644
--- a/backend/src/tests/db-query-regex-filter.spec.ts
+++ b/backend/src/tests/db-query-regex-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryRegexFilter } from "@backend/query/db-query-regex-filter.js";
+import { DbQueryRegexFilter } from "@backend/express/query/db-query-regex-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-skip-filter.spec.ts b/backend/src/tests/db-query-skip-filter.spec.ts
index f83506f2..b0ee41b3 100644
--- a/backend/src/tests/db-query-skip-filter.spec.ts
+++ b/backend/src/tests/db-query-skip-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQuerySkipFilter } from "@backend/query/db-query-skip-filter.js";
+import { DbQuerySkipFilter } from "@backend/express/query/db-query-skip-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-sort-filter.spec.ts b/backend/src/tests/db-query-sort-filter.spec.ts
index 17b158a7..4b47981f 100644
--- a/backend/src/tests/db-query-sort-filter.spec.ts
+++ b/backend/src/tests/db-query-sort-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQuerySortFilter } from "@backend/query/db-query-sort-filter.js";
+import { DbQuerySortFilter } from "@backend/express/query/db-query-sort-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-string-filter.spec.ts b/backend/src/tests/db-query-string-filter.spec.ts
index b8507712..959d8b06 100644
--- a/backend/src/tests/db-query-string-filter.spec.ts
+++ b/backend/src/tests/db-query-string-filter.spec.ts
@@ -1,4 +1,4 @@
-import { DbQueryStringFilter } from "@backend/query/db-query-string-filter.js";
+import { DbQueryStringFilter } from "@backend/express/query/db-query-string-filter.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/db-query-valid-params.spec.ts b/backend/src/tests/db-query-valid-params.spec.ts
index b5ee86f6..529f23a0 100644
--- a/backend/src/tests/db-query-valid-params.spec.ts
+++ b/backend/src/tests/db-query-valid-params.spec.ts
@@ -1,7 +1,7 @@
 import {
   DbQueryValidParams,
   ValidParameter,
-} from "@backend/query/db-query-valid-params.js";
+} from "@backend/express/query/db-query-valid-params.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/delivery-branch-handler.spec.ts b/backend/src/tests/delivery-branch-handler.spec.ts
index 64bfbf54..c2303f3f 100644
--- a/backend/src/tests/delivery-branch-handler.spec.ts
+++ b/backend/src/tests/delivery-branch-handler.spec.ts
@@ -1,4 +1,4 @@
-import { DeliveryBranchHandler } from "@backend/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.js";
+import { DeliveryBranchHandler } from "@backend/express/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/delivery-bring-handler.spec.ts b/backend/src/tests/delivery-bring-handler.spec.ts
index 22e5ffc1..5175ff33 100644
--- a/backend/src/tests/delivery-bring-handler.spec.ts
+++ b/backend/src/tests/delivery-bring-handler.spec.ts
@@ -1,4 +1,4 @@
-import { DeliveryBringHandler } from "@backend/collections/delivery/helpers/deliveryBring/delivery-bring-handler.js";
+import { DeliveryBringHandler } from "@backend/express/collections/delivery/helpers/deliveryBring/delivery-bring-handler.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/delivery-handler.spec.ts b/backend/src/tests/delivery-handler.spec.ts
index d25fc79f..4c767f2e 100644
--- a/backend/src/tests/delivery-handler.spec.ts
+++ b/backend/src/tests/delivery-handler.spec.ts
@@ -1,5 +1,5 @@
-import { DeliveryHandler } from "@backend/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeliveryHandler } from "@backend/express/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/delivery-validator.spec.ts b/backend/src/tests/delivery-validator.spec.ts
index 2f689e60..0f861767 100644
--- a/backend/src/tests/delivery-validator.spec.ts
+++ b/backend/src/tests/delivery-validator.spec.ts
@@ -1,7 +1,7 @@
-import { DeliveryBranchHandler } from "@backend/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.js";
-import { DeliveryBringHandler } from "@backend/collections/delivery/helpers/deliveryBring/delivery-bring-handler.js";
-import { DeliveryValidator } from "@backend/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeliveryBranchHandler } from "@backend/express/collections/delivery/helpers/deliveryBranch/delivery-branch-handler.js";
+import { DeliveryBringHandler } from "@backend/express/collections/delivery/helpers/deliveryBring/delivery-bring-handler.js";
+import { DeliveryValidator } from "@backend/express/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/delivery.patch.hook.spec.ts b/backend/src/tests/delivery.patch.hook.spec.ts
index 318cc101..5f3524de 100644
--- a/backend/src/tests/delivery.patch.hook.spec.ts
+++ b/backend/src/tests/delivery.patch.hook.spec.ts
@@ -1,6 +1,6 @@
-import { DeliveryValidator } from "@backend/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
-import { DeliveryPatchHook } from "@backend/collections/delivery/hooks/delivery.patch.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeliveryValidator } from "@backend/express/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
+import { DeliveryPatchHook } from "@backend/express/collections/delivery/hooks/delivery.patch.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/delivery.post.hook.spec.ts b/backend/src/tests/delivery.post.hook.spec.ts
index 6c20eefb..a497b930 100644
--- a/backend/src/tests/delivery.post.hook.spec.ts
+++ b/backend/src/tests/delivery.post.hook.spec.ts
@@ -1,7 +1,7 @@
-import { DeliveryHandler } from "@backend/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
-import { DeliveryValidator } from "@backend/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
-import { DeliveryPostHook } from "@backend/collections/delivery/hooks/delivery.post.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeliveryHandler } from "@backend/express/collections/delivery/helpers/deliveryHandler/delivery-handler.js";
+import { DeliveryValidator } from "@backend/express/collections/delivery/helpers/deliveryValidator/delivery-validator.js";
+import { DeliveryPostHook } from "@backend/express/collections/delivery/hooks/delivery.post.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/dibs-payment.service.spec.ts b/backend/src/tests/dibs-payment.service.spec.ts
index dd180b9e..35b2e1ea 100644
--- a/backend/src/tests/dibs-payment.service.spec.ts
+++ b/backend/src/tests/dibs-payment.service.spec.ts
@@ -1,6 +1,6 @@
-import HttpHandler from "@backend/http/http.handler.js";
-import { DibsEasyOrder } from "@backend/payment/dibs/dibs-easy-order.js";
-import { DibsPaymentService } from "@backend/payment/dibs/dibs-payment.service.js";
+import HttpHandler from "@backend/express/http/http.handler.js";
+import { DibsEasyOrder } from "@backend/express/payment/dibs/dibs-easy-order.js";
+import { DibsPaymentService } from "@backend/express/payment/dibs/dibs-payment.service.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/email-service.spec.ts b/backend/src/tests/email-service.spec.ts
index 642cf501..70c55b96 100644
--- a/backend/src/tests/email-service.spec.ts
+++ b/backend/src/tests/email-service.spec.ts
@@ -1,5 +1,5 @@
-import { EmailService } from "@backend/messenger/email/email-service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EmailService } from "@backend/express/messenger/email/email-service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { EmailHandler, EmailLog } from "@boklisten/bl-email";
 import { PostOffice } from "@boklisten/bl-post-office";
 import { test } from "@japa/runner";
diff --git a/backend/src/tests/email-validation-confirm.operation.spec.ts b/backend/src/tests/email-validation-confirm.operation.spec.ts
index 0ef50131..12bd188d 100644
--- a/backend/src/tests/email-validation-confirm.operation.spec.ts
+++ b/backend/src/tests/email-validation-confirm.operation.spec.ts
@@ -1,7 +1,7 @@
-import { EmailValidation } from "@backend/collections/email-validation/email-validation.js";
-import { EmailValidationConfirmOperation } from "@backend/collections/email-validation/operations/email-validation-confirm.operation.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EmailValidation } from "@backend/express/collections/email-validation/email-validation.js";
+import { EmailValidationConfirmOperation } from "@backend/express/collections/email-validation/operations/email-validation-confirm.operation.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BlapiResponse } from "@shared/blapi-response/blapi-response.js";
diff --git a/backend/src/tests/email-validation-post.hook.spec.ts b/backend/src/tests/email-validation-post.hook.spec.ts
index 47e21286..f36f1b88 100644
--- a/backend/src/tests/email-validation-post.hook.spec.ts
+++ b/backend/src/tests/email-validation-post.hook.spec.ts
@@ -1,6 +1,6 @@
-import { EmailValidation } from "@backend/collections/email-validation/email-validation.js";
-import EmailValidationHelper from "@backend/collections/email-validation/helpers/email-validation.helper.js";
-import { EmailValidationPostHook } from "@backend/collections/email-validation/hooks/email-validation-post.hook.js";
+import { EmailValidation } from "@backend/express/collections/email-validation/email-validation.js";
+import EmailValidationHelper from "@backend/express/collections/email-validation/helpers/email-validation.helper.js";
+import { EmailValidationPostHook } from "@backend/express/collections/email-validation/hooks/email-validation-post.hook.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/email-validation.helper.spec.ts b/backend/src/tests/email-validation.helper.spec.ts
index dedbda94..15c58361 100644
--- a/backend/src/tests/email-validation.helper.spec.ts
+++ b/backend/src/tests/email-validation.helper.spec.ts
@@ -1,7 +1,7 @@
-import { EmailValidation } from "@backend/collections/email-validation/email-validation.js";
-import EmailValidationHelper from "@backend/collections/email-validation/helpers/email-validation.helper.js";
-import Messenger from "@backend/messenger/messenger.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { EmailValidation } from "@backend/express/collections/email-validation/email-validation.js";
+import EmailValidationHelper from "@backend/express/collections/email-validation/helpers/email-validation.helper.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
diff --git a/backend/src/tests/hashed-password-generator.spec.ts b/backend/src/tests/hashed-password-generator.spec.ts
index 5377880b..9253aaf3 100644
--- a/backend/src/tests/hashed-password-generator.spec.ts
+++ b/backend/src/tests/hashed-password-generator.spec.ts
@@ -1,4 +1,4 @@
-import HashedPasswordGenerator from "@backend/auth/local/hashed-password-generator.js";
+import HashedPasswordGenerator from "@backend/express/auth/local/hashed-password-generator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/invoice-active.spec.ts b/backend/src/tests/invoice-active.spec.ts
index 2d980c6d..8dfc364f 100644
--- a/backend/src/tests/invoice-active.spec.ts
+++ b/backend/src/tests/invoice-active.spec.ts
@@ -1,4 +1,4 @@
-import { InvoiceActive } from "@backend/collections/invoice/helpers/invoice-active.js";
+import { InvoiceActive } from "@backend/express/collections/invoice/helpers/invoice-active.js";
 import { test } from "@japa/runner";
 import { Invoice } from "@shared/invoice/invoice.js";
 import { expect } from "chai";
diff --git a/backend/src/tests/item-validator.spec.ts b/backend/src/tests/item-validator.spec.ts
index 3a29cc1a..e85613ae 100644
--- a/backend/src/tests/item-validator.spec.ts
+++ b/backend/src/tests/item-validator.spec.ts
@@ -1,4 +1,4 @@
-import { ItemValidator } from "@backend/collections/order/helpers/order-validator/item-validator/item-validator.js";
+import { ItemValidator } from "@backend/express/collections/order/helpers/order-validator/item-validator/item-validator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Item } from "@shared/item/item.js";
diff --git a/backend/src/tests/local-login-creator.spec.ts b/backend/src/tests/local-login-creator.spec.ts
index 8e691fba..e5d076f5 100644
--- a/backend/src/tests/local-login-creator.spec.ts
+++ b/backend/src/tests/local-login-creator.spec.ts
@@ -1,4 +1,4 @@
-import LocalLoginCreator from "@backend/auth/local/local-login-creator.js";
+import LocalLoginCreator from "@backend/express/auth/local/local-login-creator.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/tests/local-login-password.validator.spec.ts b/backend/src/tests/local-login-password.validator.spec.ts
index a303c4b9..d25eb4c4 100644
--- a/backend/src/tests/local-login-password.validator.spec.ts
+++ b/backend/src/tests/local-login-password.validator.spec.ts
@@ -1,5 +1,5 @@
-import LocalLoginPasswordValidator from "@backend/auth/local/local-login-password.validator.js";
-import BlCrypto from "@backend/express-config/bl-crypto.js";
+import LocalLoginPasswordValidator from "@backend/express/auth/local/local-login-password.validator.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/local-login.handler.spec.ts b/backend/src/tests/local-login.handler.spec.ts
index 483b19af..86f190fe 100644
--- a/backend/src/tests/local-login.handler.spec.ts
+++ b/backend/src/tests/local-login.handler.spec.ts
@@ -1,6 +1,6 @@
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/tests/local-login.validator.spec.ts b/backend/src/tests/local-login.validator.spec.ts
index 14759fd1..fe9ad20a 100644
--- a/backend/src/tests/local-login.validator.spec.ts
+++ b/backend/src/tests/local-login.validator.spec.ts
@@ -1,7 +1,7 @@
-import LocalLoginPasswordValidator from "@backend/auth/local/local-login-password.validator.js";
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import LocalLoginValidator from "@backend/auth/local/local-login.validator.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
+import LocalLoginPasswordValidator from "@backend/express/auth/local/local-login-password.validator.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import LocalLoginValidator from "@backend/express/auth/local/local-login.validator.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { User } from "@backend/types/user.js";
 import { test } from "@japa/runner";
diff --git a/backend/src/tests/matches/match-finder.spec.ts b/backend/src/tests/matches/match-finder.spec.ts
index 2d437b41..3ae2a10d 100644
--- a/backend/src/tests/matches/match-finder.spec.ts
+++ b/backend/src/tests/matches/match-finder.spec.ts
@@ -1,4 +1,4 @@
-import { MatchFinder } from "@backend/collections/user-match/helpers/match-finder/match-finder.js";
+import { MatchFinder } from "@backend/express/collections/user-match/helpers/match-finder/match-finder.js";
 import {
   createFakeMatchableUser,
   createFakeStandMatch,
@@ -7,8 +7,8 @@ import {
   seededRandom,
   shuffler,
   createMatchableUsersWithIdSuffix,
-} from "@backend/collections/user-match/helpers/match-finder/match-testing-utils.js";
-import { MatchableUser } from "@backend/collections/user-match/helpers/match-finder/match-types.js";
+} from "@backend/express/collections/user-match/helpers/match-finder/match-testing-utils.js";
+import { MatchableUser } from "@backend/express/collections/user-match/helpers/match-finder/match-types.js";
 import otto_treider_test_users_year_0 from "@backend/tests/matches/test-data/test_users_year_0.json" with { type: "json" };
 import otto_treider_test_users_year_1 from "@backend/tests/matches/test-data/test_users_year_1.json" with { type: "json" };
 import otto_treider_test_users_year_2 from "@backend/tests/matches/test-data/test_users_year_2.json" with { type: "json" };
diff --git a/backend/src/tests/message-helper.spec.ts b/backend/src/tests/message-helper.spec.ts
index e915853d..6c829ab2 100644
--- a/backend/src/tests/message-helper.spec.ts
+++ b/backend/src/tests/message-helper.spec.ts
@@ -1,5 +1,5 @@
-import { MessageHelper } from "@backend/collections/message/helper/message-helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { MessageHelper } from "@backend/express/collections/message/helper/message-helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { MessageMethod } from "@shared/message/message-method/message-method.js";
diff --git a/backend/src/tests/message-post.hook.spec.ts b/backend/src/tests/message-post.hook.spec.ts
index e4bffb68..e379efe1 100644
--- a/backend/src/tests/message-post.hook.spec.ts
+++ b/backend/src/tests/message-post.hook.spec.ts
@@ -1,7 +1,7 @@
-import { MessagePostHook } from "@backend/collections/message/hooks/message-post.hook.js";
-import Messenger from "@backend/messenger/messenger.js";
-import { MessengerReminder } from "@backend/messenger/reminder/messenger-reminder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { MessagePostHook } from "@backend/express/collections/message/hooks/message-post.hook.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import { MessengerReminder } from "@backend/express/messenger/reminder/messenger-reminder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { MessageMethod } from "@shared/message/message-method/message-method.js";
diff --git a/backend/src/tests/messenger-reminder.spec.ts b/backend/src/tests/messenger-reminder.spec.ts
index d5dba519..972f2985 100644
--- a/backend/src/tests/messenger-reminder.spec.ts
+++ b/backend/src/tests/messenger-reminder.spec.ts
@@ -1,7 +1,7 @@
-import { CustomerItemHandler } from "@backend/collections/customer-item/helpers/customer-item-handler.js";
-import { EmailService } from "@backend/messenger/email/email-service.js";
-import { MessengerReminder } from "@backend/messenger/reminder/messenger-reminder.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemHandler } from "@backend/express/collections/customer-item/helpers/customer-item-handler.js";
+import { EmailService } from "@backend/express/messenger/email/email-service.js";
+import { MessengerReminder } from "@backend/express/messenger/reminder/messenger-reminder.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { CustomerItem } from "@shared/customer-item/customer-item.js";
 import { Message } from "@shared/message/message.js";
diff --git a/backend/src/tests/mongoDb.spec.ts b/backend/src/tests/mongoDb.spec.ts
index 09e7c27c..7d09c371 100644
--- a/backend/src/tests/mongoDb.spec.ts
+++ b/backend/src/tests/mongoDb.spec.ts
@@ -1,4 +1,4 @@
-import { MongooseModelCreator } from "@backend/storage/mongoose-schema-creator.js";
+import { MongooseModelCreator } from "@backend/express/storage/mongoose-schema-creator.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/opening-hour-helper.spec.ts b/backend/src/tests/opening-hour-helper.spec.ts
index f629908f..e1c18cf7 100644
--- a/backend/src/tests/opening-hour-helper.spec.ts
+++ b/backend/src/tests/opening-hour-helper.spec.ts
@@ -1,5 +1,5 @@
-import { OpeningHourHelper } from "@backend/collections/opening-hour/helpers/opening-hour-helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OpeningHourHelper } from "@backend/express/collections/opening-hour/helpers/opening-hour-helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
diff --git a/backend/src/tests/order-active.spec.ts b/backend/src/tests/order-active.spec.ts
index e168e103..01e93438 100644
--- a/backend/src/tests/order-active.spec.ts
+++ b/backend/src/tests/order-active.spec.ts
@@ -1,5 +1,5 @@
-import { OrderActive } from "@backend/collections/order/helpers/order-active/order-active.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderActive } from "@backend/express/collections/order/helpers/order-active/order-active.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/order-confirm.operation.spec.ts b/backend/src/tests/order-confirm.operation.spec.ts
index b846deb0..abcae1b0 100644
--- a/backend/src/tests/order-confirm.operation.spec.ts
+++ b/backend/src/tests/order-confirm.operation.spec.ts
@@ -1,7 +1,7 @@
-import { OrderPlacedHandler } from "@backend/collections/order/helpers/order-placed-handler/order-placed-handler.js";
-import { OrderConfirmOperation } from "@backend/collections/order/operations/confirm/order-confirm.operation.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderPlacedHandler } from "@backend/express/collections/order/helpers/order-placed-handler/order-placed-handler.js";
+import { OrderConfirmOperation } from "@backend/express/collections/order/operations/confirm/order-confirm.operation.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/order-field-validator.spec.ts b/backend/src/tests/order-field-validator.spec.ts
index 004727d2..041d77f1 100644
--- a/backend/src/tests/order-field-validator.spec.ts
+++ b/backend/src/tests/order-field-validator.spec.ts
@@ -1,4 +1,4 @@
-import { OrderFieldValidator } from "@backend/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
+import { OrderFieldValidator } from "@backend/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/order-hook-before.spec.ts b/backend/src/tests/order-hook-before.spec.ts
index 45048c8e..38135d03 100644
--- a/backend/src/tests/order-hook-before.spec.ts
+++ b/backend/src/tests/order-hook-before.spec.ts
@@ -1,4 +1,4 @@
-import { OrderHookBefore } from "@backend/collections/order/hooks/order-hook-before.js";
+import { OrderHookBefore } from "@backend/express/collections/order/hooks/order-hook-before.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/order-item-buy-validator.spec.ts b/backend/src/tests/order-item-buy-validator.spec.ts
index d73ff797..9120d7cd 100644
--- a/backend/src/tests/order-item-buy-validator.spec.ts
+++ b/backend/src/tests/order-item-buy-validator.spec.ts
@@ -1,5 +1,5 @@
-import { OrderItemBuyValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.js";
-import { PriceService } from "@backend/price/price.service.js";
+import { OrderItemBuyValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.js";
+import { PriceService } from "@backend/express/price/price.service.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
diff --git a/backend/src/tests/order-item-extend-validator.spec.ts b/backend/src/tests/order-item-extend-validator.spec.ts
index 32487a10..001263b7 100644
--- a/backend/src/tests/order-item-extend-validator.spec.ts
+++ b/backend/src/tests/order-item-extend-validator.spec.ts
@@ -1,5 +1,5 @@
-import { OrderItemExtendValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderItemExtendValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
diff --git a/backend/src/tests/order-item-moved-from-order-handler.spec.ts b/backend/src/tests/order-item-moved-from-order-handler.spec.ts
index 3d635c0e..ae99d9f5 100644
--- a/backend/src/tests/order-item-moved-from-order-handler.spec.ts
+++ b/backend/src/tests/order-item-moved-from-order-handler.spec.ts
@@ -1,5 +1,5 @@
-import { OrderItemMovedFromOrderHandler } from "@backend/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderItemMovedFromOrderHandler } from "@backend/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/order-item-partly-payment-validator.spec.ts b/backend/src/tests/order-item-partly-payment-validator.spec.ts
index 17969c08..d2ea0a11 100644
--- a/backend/src/tests/order-item-partly-payment-validator.spec.ts
+++ b/backend/src/tests/order-item-partly-payment-validator.spec.ts
@@ -1,4 +1,4 @@
-import { OrderItemPartlyPaymentValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.js";
+import { OrderItemPartlyPaymentValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-partly-payment-validator/order-item-partly-payment-validator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
diff --git a/backend/src/tests/order-item-rent-period-validator.spec.ts b/backend/src/tests/order-item-rent-period-validator.spec.ts
index b5ac2a9e..81fa8940 100644
--- a/backend/src/tests/order-item-rent-period-validator.spec.ts
+++ b/backend/src/tests/order-item-rent-period-validator.spec.ts
@@ -1,5 +1,5 @@
-import { OrderItemRentPeriodValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderItemRentPeriodValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-period-validator/order-item-rent-period-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { BranchPaymentInfo } from "@shared/branch/branch-payment-info.js";
diff --git a/backend/src/tests/order-item-validator.spec.ts b/backend/src/tests/order-item-validator.spec.ts
index ec8ceb1e..7b4c6e97 100644
--- a/backend/src/tests/order-item-validator.spec.ts
+++ b/backend/src/tests/order-item-validator.spec.ts
@@ -1,9 +1,9 @@
-import { OrderFieldValidator } from "@backend/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
-import { OrderItemBuyValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.js";
-import { OrderItemExtendValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.js";
-import { OrderItemRentValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.js";
-import { OrderItemValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderFieldValidator } from "@backend/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
+import { OrderItemBuyValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-buy-validator/order-item-buy-validator.js";
+import { OrderItemExtendValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-extend-validator/order-item-extend-validator.js";
+import { OrderItemRentValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-rent-validator/order-item-rent-validator.js";
+import { OrderItemValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
diff --git a/backend/src/tests/order-place.operation.spec.ts b/backend/src/tests/order-place.operation.spec.ts
index 57270a70..920c471c 100644
--- a/backend/src/tests/order-place.operation.spec.ts
+++ b/backend/src/tests/order-place.operation.spec.ts
@@ -1,10 +1,10 @@
-import { OrderToCustomerItemGenerator } from "@backend/collections/customer-item/helpers/order-to-customer-item-generator.js";
-import { OrderPlacedHandler } from "@backend/collections/order/helpers/order-placed-handler/order-placed-handler.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { OrderPlaceOperation } from "@backend/collections/order/operations/place/order-place.operation.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
-import { Signature } from "@backend/storage/models/signature.model.js";
+import { OrderToCustomerItemGenerator } from "@backend/express/collections/customer-item/helpers/order-to-customer-item-generator.js";
+import { OrderPlacedHandler } from "@backend/express/collections/order/helpers/order-placed-handler/order-placed-handler.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { OrderPlaceOperation } from "@backend/express/collections/order/operations/place/order-place.operation.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
+import { Signature } from "@backend/express/storage/models/signature.model.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/order-placed-handler.spec.ts b/backend/src/tests/order-placed-handler.spec.ts
index bb6df1b8..c4d51035 100644
--- a/backend/src/tests/order-placed-handler.spec.ts
+++ b/backend/src/tests/order-placed-handler.spec.ts
@@ -1,9 +1,9 @@
-import { CustomerItemHandler } from "@backend/collections/customer-item/helpers/customer-item-handler.js";
-import { OrderItemMovedFromOrderHandler } from "@backend/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
-import { OrderPlacedHandler } from "@backend/collections/order/helpers/order-placed-handler/order-placed-handler.js";
-import { PaymentHandler } from "@backend/collections/payment/helpers/payment-handler.js";
-import Messenger from "@backend/messenger/messenger.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemHandler } from "@backend/express/collections/customer-item/helpers/customer-item-handler.js";
+import { OrderItemMovedFromOrderHandler } from "@backend/express/collections/order/helpers/order-item-moved-from-order-handler/order-item-moved-from-order-handler.js";
+import { OrderPlacedHandler } from "@backend/express/collections/order/helpers/order-placed-handler/order-placed-handler.js";
+import { PaymentHandler } from "@backend/express/collections/payment/helpers/payment-handler.js";
+import Messenger from "@backend/express/messenger/messenger.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/order-placed-validator.spec.ts b/backend/src/tests/order-placed-validator.spec.ts
index 75f5915d..25e80f5e 100644
--- a/backend/src/tests/order-placed-validator.spec.ts
+++ b/backend/src/tests/order-placed-validator.spec.ts
@@ -1,5 +1,5 @@
-import { OrderPlacedValidator } from "@backend/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderPlacedValidator } from "@backend/express/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/order-to-customer-item-generator.spec.ts b/backend/src/tests/order-to-customer-item-generator.spec.ts
index 0799bc1d..8397a443 100644
--- a/backend/src/tests/order-to-customer-item-generator.spec.ts
+++ b/backend/src/tests/order-to-customer-item-generator.spec.ts
@@ -1,5 +1,5 @@
-import { OrderToCustomerItemGenerator } from "@backend/collections/customer-item/helpers/order-to-customer-item-generator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderToCustomerItemGenerator } from "@backend/express/collections/customer-item/helpers/order-to-customer-item-generator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { OrderItem } from "@shared/order/order-item/order-item.js";
diff --git a/backend/src/tests/order-user-detail-validator.spec.ts b/backend/src/tests/order-user-detail-validator.spec.ts
index 9f1f2336..7c1fd621 100644
--- a/backend/src/tests/order-user-detail-validator.spec.ts
+++ b/backend/src/tests/order-user-detail-validator.spec.ts
@@ -1,5 +1,5 @@
-import { OrderUserDetailValidator } from "@backend/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderUserDetailValidator } from "@backend/express/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/order-validator.spec.ts b/backend/src/tests/order-validator.spec.ts
index 1f02ca30..f312091d 100644
--- a/backend/src/tests/order-validator.spec.ts
+++ b/backend/src/tests/order-validator.spec.ts
@@ -1,9 +1,9 @@
-import { OrderFieldValidator } from "@backend/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
-import { OrderItemValidator } from "@backend/collections/order/helpers/order-validator/order-item-validator/order-item-validator.js";
-import { OrderPlacedValidator } from "@backend/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.js";
-import { OrderUserDetailValidator } from "@backend/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderFieldValidator } from "@backend/express/collections/order/helpers/order-validator/order-field-validator/order-field-validator.js";
+import { OrderItemValidator } from "@backend/express/collections/order/helpers/order-validator/order-item-validator/order-item-validator.js";
+import { OrderPlacedValidator } from "@backend/express/collections/order/helpers/order-validator/order-placed-validator/order-placed-validator.js";
+import { OrderUserDetailValidator } from "@backend/express/collections/order/helpers/order-validator/order-user-detail-validator/order-user-detail-validator.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Branch } from "@shared/branch/branch.js";
diff --git a/backend/src/tests/order.patch.hook.spec.ts b/backend/src/tests/order.patch.hook.spec.ts
index 62041931..a8cee983 100644
--- a/backend/src/tests/order.patch.hook.spec.ts
+++ b/backend/src/tests/order.patch.hook.spec.ts
@@ -1,7 +1,7 @@
-import { OrderPlacedHandler } from "@backend/collections/order/helpers/order-placed-handler/order-placed-handler.js";
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { OrderPatchHook } from "@backend/collections/order/hooks/order.patch.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderPlacedHandler } from "@backend/express/collections/order/helpers/order-placed-handler/order-placed-handler.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { OrderPatchHook } from "@backend/express/collections/order/hooks/order.patch.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/order.post.hook.spec.ts b/backend/src/tests/order.post.hook.spec.ts
index 7adaa649..0a31f854 100644
--- a/backend/src/tests/order.post.hook.spec.ts
+++ b/backend/src/tests/order.post.hook.spec.ts
@@ -1,8 +1,8 @@
-import { OrderValidator } from "@backend/collections/order/helpers/order-validator/order-validator.js";
-import { OrderHookBefore } from "@backend/collections/order/hooks/order-hook-before.js";
-import { OrderPostHook } from "@backend/collections/order/hooks/order.post.hook.js";
-import { UserDetailHelper } from "@backend/collections/user-detail/helpers/user-detail.helper.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { OrderValidator } from "@backend/express/collections/order/helpers/order-validator/order-validator.js";
+import { OrderHookBefore } from "@backend/express/collections/order/hooks/order-hook-before.js";
+import { OrderPostHook } from "@backend/express/collections/order/hooks/order.post.hook.js";
+import { UserDetailHelper } from "@backend/express/collections/user-detail/helpers/user-detail.helper.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/payment-dibs-confirmer.spec.ts b/backend/src/tests/payment-dibs-confirmer.spec.ts
index 8ddec099..93bdf505 100644
--- a/backend/src/tests/payment-dibs-confirmer.spec.ts
+++ b/backend/src/tests/payment-dibs-confirmer.spec.ts
@@ -1,7 +1,7 @@
-import { PaymentDibsConfirmer } from "@backend/collections/payment/helpers/dibs/payment-dibs-confirmer.js";
-import { DibsEasyPayment } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
-import { DibsPaymentService } from "@backend/payment/dibs/dibs-payment.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentDibsConfirmer } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-confirmer.js";
+import { DibsEasyPayment } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
+import { DibsPaymentService } from "@backend/express/payment/dibs/dibs-payment.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/payment-dibs-handler.spec.ts b/backend/src/tests/payment-dibs-handler.spec.ts
index 5df094de..5a17b567 100644
--- a/backend/src/tests/payment-dibs-handler.spec.ts
+++ b/backend/src/tests/payment-dibs-handler.spec.ts
@@ -1,7 +1,7 @@
-import { PaymentDibsHandler } from "@backend/collections/payment/helpers/dibs/payment-dibs-handler.js";
-import { DibsEasyOrder } from "@backend/payment/dibs/dibs-easy-order.js";
-import { DibsPaymentService } from "@backend/payment/dibs/dibs-payment.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentDibsHandler } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-handler.js";
+import { DibsEasyOrder } from "@backend/express/payment/dibs/dibs-easy-order.js";
+import { DibsPaymentService } from "@backend/express/payment/dibs/dibs-payment.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/payment-handler.spec.ts b/backend/src/tests/payment-handler.spec.ts
index 7fffee6c..c960490b 100644
--- a/backend/src/tests/payment-handler.spec.ts
+++ b/backend/src/tests/payment-handler.spec.ts
@@ -1,7 +1,7 @@
-import { PaymentDibsConfirmer } from "@backend/collections/payment/helpers/dibs/payment-dibs-confirmer.js";
-import { PaymentHandler } from "@backend/collections/payment/helpers/payment-handler.js";
-import { DibsPaymentService } from "@backend/payment/dibs/dibs-payment.service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentDibsConfirmer } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-confirmer.js";
+import { PaymentHandler } from "@backend/express/collections/payment/helpers/payment-handler.js";
+import { DibsPaymentService } from "@backend/express/payment/dibs/dibs-payment.service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/payment.patch.hook.spec.ts b/backend/src/tests/payment.patch.hook.spec.ts
index 9a056d5a..8eaf2a76 100644
--- a/backend/src/tests/payment.patch.hook.spec.ts
+++ b/backend/src/tests/payment.patch.hook.spec.ts
@@ -1,7 +1,7 @@
-import { PaymentDibsHandler } from "@backend/collections/payment/helpers/dibs/payment-dibs-handler.js";
-import { PaymentValidator } from "@backend/collections/payment/helpers/payment.validator.js";
-import { PaymentPatchHook } from "@backend/collections/payment/hooks/payment.patch.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentDibsHandler } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-handler.js";
+import { PaymentValidator } from "@backend/express/collections/payment/helpers/payment.validator.js";
+import { PaymentPatchHook } from "@backend/express/collections/payment/hooks/payment.patch.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Payment } from "@shared/payment/payment.js";
diff --git a/backend/src/tests/payment.post.hook.spec.ts b/backend/src/tests/payment.post.hook.spec.ts
index 2046a87e..723bfb20 100644
--- a/backend/src/tests/payment.post.hook.spec.ts
+++ b/backend/src/tests/payment.post.hook.spec.ts
@@ -1,7 +1,7 @@
-import { PaymentDibsHandler } from "@backend/collections/payment/helpers/dibs/payment-dibs-handler.js";
-import { PaymentValidator } from "@backend/collections/payment/helpers/payment.validator.js";
-import { PaymentPostHook } from "@backend/collections/payment/hooks/payment.post.hook.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentDibsHandler } from "@backend/express/collections/payment/helpers/dibs/payment-dibs-handler.js";
+import { PaymentValidator } from "@backend/express/collections/payment/helpers/payment.validator.js";
+import { PaymentPostHook } from "@backend/express/collections/payment/hooks/payment.post.hook.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Order } from "@shared/order/order.js";
diff --git a/backend/src/tests/payment.validator.spec.ts b/backend/src/tests/payment.validator.spec.ts
index e53170a4..31e16e2a 100644
--- a/backend/src/tests/payment.validator.spec.ts
+++ b/backend/src/tests/payment.validator.spec.ts
@@ -1,5 +1,5 @@
-import { PaymentValidator } from "@backend/collections/payment/helpers/payment.validator.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { PaymentValidator } from "@backend/express/collections/payment/helpers/payment.validator.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { Delivery } from "@shared/delivery/delivery.js";
diff --git a/backend/src/tests/pending-password-reset-post.hook.spec.ts b/backend/src/tests/pending-password-reset-post.hook.spec.ts
index be1a22ac..a87a8e30 100644
--- a/backend/src/tests/pending-password-reset-post.hook.spec.ts
+++ b/backend/src/tests/pending-password-reset-post.hook.spec.ts
@@ -1,7 +1,7 @@
-import UserHandler from "@backend/auth/user/user.handler.js";
-import { PendingPasswordResetPostHook } from "@backend/collections/pending-password-reset/hooks/pending-password-reset-post.hook.js";
-import BlCrypto from "@backend/express-config/bl-crypto.js";
-import Messenger from "@backend/messenger/messenger.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
+import { PendingPasswordResetPostHook } from "@backend/express/collections/pending-password-reset/hooks/pending-password-reset-post.hook.js";
+import BlCrypto from "@backend/express/config/bl-crypto.js";
+import Messenger from "@backend/express/messenger/messenger.js";
 import { User } from "@backend/types/user.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/tests/permission.service.spec.ts b/backend/src/tests/permission.service.spec.ts
index aa73840b..af65b70f 100644
--- a/backend/src/tests/permission.service.spec.ts
+++ b/backend/src/tests/permission.service.spec.ts
@@ -1,4 +1,4 @@
-import { PermissionService } from "@backend/auth/permission.service.js";
+import { PermissionService } from "@backend/express/auth/permission.service.js";
 import { test } from "@japa/runner";
 import { BlDocument } from "@shared/bl-document/bl-document.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/price.service.spec.ts b/backend/src/tests/price.service.spec.ts
index 869ee43c..47295804 100644
--- a/backend/src/tests/price.service.spec.ts
+++ b/backend/src/tests/price.service.spec.ts
@@ -1,4 +1,4 @@
-import { PriceService } from "@backend/price/price.service.js";
+import { PriceService } from "@backend/express/price/price.service.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/provider-id-generator.spec.ts b/backend/src/tests/provider-id-generator.spec.ts
index 5d5f20a5..773748bb 100644
--- a/backend/src/tests/provider-id-generator.spec.ts
+++ b/backend/src/tests/provider-id-generator.spec.ts
@@ -1,4 +1,4 @@
-import ProviderIdGenerator from "@backend/auth/local/provider-id-generator.js";
+import ProviderIdGenerator from "@backend/express/auth/local/provider-id-generator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/refresh-token.creator.spec.ts b/backend/src/tests/refresh-token.creator.spec.ts
index 924e30b2..201ec301 100644
--- a/backend/src/tests/refresh-token.creator.spec.ts
+++ b/backend/src/tests/refresh-token.creator.spec.ts
@@ -1,4 +1,4 @@
-import RefreshTokenCreator from "@backend/auth/token/refresh/refresh-token.creator.js";
+import RefreshTokenCreator from "@backend/express/auth/token/refresh/refresh-token.creator.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/refresh-token.validator.spec.ts b/backend/src/tests/refresh-token.validator.spec.ts
index b4b1da09..bb67f850 100644
--- a/backend/src/tests/refresh-token.validator.spec.ts
+++ b/backend/src/tests/refresh-token.validator.spec.ts
@@ -1,6 +1,6 @@
-import RefreshTokenCreator from "@backend/auth/token/refresh/refresh-token.creator.js";
-import RefreshTokenValidator from "@backend/auth/token/refresh/refresh-token.validator.js";
-import { APP_CONFIG } from "@backend/express-config/application-config.js";
+import RefreshTokenCreator from "@backend/express/auth/token/refresh/refresh-token.creator.js";
+import RefreshTokenValidator from "@backend/express/auth/token/refresh/refresh-token.validator.js";
+import { APP_CONFIG } from "@backend/express/config/application-config.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/salt-generator.spec.ts b/backend/src/tests/salt-generator.spec.ts
index 7dc65756..2b3c9222 100644
--- a/backend/src/tests/salt-generator.spec.ts
+++ b/backend/src/tests/salt-generator.spec.ts
@@ -1,4 +1,4 @@
-import SaltGenerator from "@backend/auth/local/salt-generator.js";
+import SaltGenerator from "@backend/express/auth/local/salt-generator.js";
 import { test } from "@japa/runner";
 import { use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/se.db-query-builder.spec.ts b/backend/src/tests/se.db-query-builder.spec.ts
index c2d2ece0..96b21514 100644
--- a/backend/src/tests/se.db-query-builder.spec.ts
+++ b/backend/src/tests/se.db-query-builder.spec.ts
@@ -1,6 +1,6 @@
-import { ValidParameter } from "@backend/query/db-query-valid-params.js";
-import { SEDbQueryBuilder } from "@backend/query/se.db-query-builder.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
+import { ValidParameter } from "@backend/express/query/db-query-valid-params.js";
+import { SEDbQueryBuilder } from "@backend/express/query/se.db-query-builder.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/se.db-query.spec.ts b/backend/src/tests/se.db-query.spec.ts
index c44b4477..59641278 100644
--- a/backend/src/tests/se.db-query.spec.ts
+++ b/backend/src/tests/se.db-query.spec.ts
@@ -1,4 +1,4 @@
-import { SEDbQuery } from "@backend/query/se.db-query.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
 import { test } from "@japa/runner";
 import { expect, use as chaiUse, should } from "chai";
 import chaiAsPromised from "chai-as-promised";
diff --git a/backend/src/tests/sendgrid-event.operation.spec.ts b/backend/src/tests/sendgrid-event.operation.spec.ts
index e0559cba..41a15f32 100644
--- a/backend/src/tests/sendgrid-event.operation.spec.ts
+++ b/backend/src/tests/sendgrid-event.operation.spec.ts
@@ -1,5 +1,5 @@
-import { SendgridEventOperation } from "@backend/collections/message/operations/sendgrid-event.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { SendgridEventOperation } from "@backend/express/collections/message/operations/sendgrid-event.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { Message } from "@shared/message/message.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/token.handler.spec.ts b/backend/src/tests/token.handler.spec.ts
index 39d519b6..eebbcbbc 100644
--- a/backend/src/tests/token.handler.spec.ts
+++ b/backend/src/tests/token.handler.spec.ts
@@ -1,5 +1,5 @@
-import TokenHandler from "@backend/auth/token/token.handler.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
+import TokenHandler from "@backend/express/auth/token/token.handler.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/twillio-sms-event.operation.spec.ts b/backend/src/tests/twillio-sms-event.operation.spec.ts
index f8d5e4b4..5fef4aad 100644
--- a/backend/src/tests/twillio-sms-event.operation.spec.ts
+++ b/backend/src/tests/twillio-sms-event.operation.spec.ts
@@ -1,5 +1,5 @@
-import { TwilioSmsEventOperation } from "@backend/collections/message/operations/twillio-sms-event.operation.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { TwilioSmsEventOperation } from "@backend/express/collections/message/operations/twillio-sms-event.operation.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { Message } from "@shared/message/message.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/unique-item-active.operation.spec.ts b/backend/src/tests/unique-item-active.operation.spec.ts
index d233218d..b6312e4d 100644
--- a/backend/src/tests/unique-item-active.operation.spec.ts
+++ b/backend/src/tests/unique-item-active.operation.spec.ts
@@ -1,7 +1,7 @@
-import { CustomerItemActiveBlid } from "@backend/collections/customer-item/helpers/customer-item-active-blid.js";
-import { UniqueItemActiveOperation } from "@backend/collections/unique-item/operations/unique-item-active.operation.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { CustomerItemActiveBlid } from "@backend/express/collections/customer-item/helpers/customer-item-active-blid.js";
+import { UniqueItemActiveOperation } from "@backend/express/collections/unique-item/operations/unique-item-active.operation.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { UniqueItem } from "@shared/unique-item/unique-item.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/user-can-delete-user-detail.spec.ts b/backend/src/tests/user-can-delete-user-detail.spec.ts
index 5c940ae3..1a0e21d9 100644
--- a/backend/src/tests/user-can-delete-user-detail.spec.ts
+++ b/backend/src/tests/user-can-delete-user-detail.spec.ts
@@ -1,5 +1,5 @@
-import { UserCanDeleteUserDetail } from "@backend/collections/user-detail/helpers/user-can-delete-user-detail.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { UserCanDeleteUserDetail } from "@backend/express/collections/user-detail/helpers/user-can-delete-user-detail.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { User } from "@backend/types/user.js";
 import { test } from "@japa/runner";
 import { AccessToken } from "@shared/token/access-token.js";
diff --git a/backend/src/tests/user-delete-all-info.spec.ts b/backend/src/tests/user-delete-all-info.spec.ts
index f41aa147..0328dd04 100644
--- a/backend/src/tests/user-delete-all-info.spec.ts
+++ b/backend/src/tests/user-delete-all-info.spec.ts
@@ -1,5 +1,5 @@
-import { DeleteUserService } from "@backend/collections/user-detail/helpers/delete-user-service.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { DeleteUserService } from "@backend/express/collections/user-detail/helpers/delete-user-service.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { User } from "@backend/types/user.js";
 import { test } from "@japa/runner";
diff --git a/backend/src/tests/user-detail-change-email.operation.spec.ts b/backend/src/tests/user-detail-change-email.operation.spec.ts
index d1bbed6b..05a8a229 100644
--- a/backend/src/tests/user-detail-change-email.operation.spec.ts
+++ b/backend/src/tests/user-detail-change-email.operation.spec.ts
@@ -1,7 +1,7 @@
-import UserHandler from "@backend/auth/user/user.handler.js";
-import { UserDetailChangeEmailOperation } from "@backend/collections/user-detail/operations/change-email/user-detail-change-email.operation.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
+import { UserDetailChangeEmailOperation } from "@backend/express/collections/user-detail/operations/change-email/user-detail-change-email.operation.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { User } from "@backend/types/user.js";
 import { test } from "@japa/runner";
diff --git a/backend/src/tests/user-detail-delete.hook.spec.ts b/backend/src/tests/user-detail-delete.hook.spec.ts
index 0d2f61e3..cd62b02d 100644
--- a/backend/src/tests/user-detail-delete.hook.spec.ts
+++ b/backend/src/tests/user-detail-delete.hook.spec.ts
@@ -1,9 +1,9 @@
-import { CustomerHaveActiveCustomerItems } from "@backend/collections/customer-item/helpers/customer-have-active-customer-items.js";
-import { CustomerInvoiceActive } from "@backend/collections/invoice/helpers/customer-invoice-active.js";
-import { OrderActive } from "@backend/collections/order/helpers/order-active/order-active.js";
-import { DeleteUserService } from "@backend/collections/user-detail/helpers/delete-user-service.js";
-import { UserCanDeleteUserDetail } from "@backend/collections/user-detail/helpers/user-can-delete-user-detail.js";
-import { UserDetailDeleteHook } from "@backend/collections/user-detail/hooks/user-detail-delete.hook.js";
+import { CustomerHaveActiveCustomerItems } from "@backend/express/collections/customer-item/helpers/customer-have-active-customer-items.js";
+import { CustomerInvoiceActive } from "@backend/express/collections/invoice/helpers/customer-invoice-active.js";
+import { OrderActive } from "@backend/express/collections/order/helpers/order-active/order-active.js";
+import { DeleteUserService } from "@backend/express/collections/user-detail/helpers/delete-user-service.js";
+import { UserCanDeleteUserDetail } from "@backend/express/collections/user-detail/helpers/user-can-delete-user-detail.js";
+import { UserDetailDeleteHook } from "@backend/express/collections/user-detail/hooks/user-detail-delete.hook.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { AccessToken } from "@shared/token/access-token.js";
diff --git a/backend/src/tests/user-detail-permission.operation.spec.ts b/backend/src/tests/user-detail-permission.operation.spec.ts
index 825fc2ea..f87743c9 100644
--- a/backend/src/tests/user-detail-permission.operation.spec.ts
+++ b/backend/src/tests/user-detail-permission.operation.spec.ts
@@ -1,6 +1,6 @@
-import { UserDetailPermissionOperation } from "@backend/collections/user-detail/operations/permission/user-detail-permission.operation.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { UserDetailPermissionOperation } from "@backend/express/collections/user-detail/operations/permission/user-detail-permission.operation.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { User } from "@backend/types/user.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/tests/user-detail-update.hook.spec.ts b/backend/src/tests/user-detail-update.hook.spec.ts
index 0eb7ba54..0334dfab 100644
--- a/backend/src/tests/user-detail-update.hook.spec.ts
+++ b/backend/src/tests/user-detail-update.hook.spec.ts
@@ -1,7 +1,7 @@
 import {
   UserDetailUpdateHook,
   UserDetailPatch,
-} from "@backend/collections/user-detail/hooks/user-detail-update.hook.js";
+} from "@backend/express/collections/user-detail/hooks/user-detail-update.hook.js";
 import { test } from "@japa/runner";
 import { AccessToken } from "@shared/token/access-token.js";
 import { assert, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/user-detail-valid.operation.spec.ts b/backend/src/tests/user-detail-valid.operation.spec.ts
index 9eb0ed44..7ca6fe6e 100644
--- a/backend/src/tests/user-detail-valid.operation.spec.ts
+++ b/backend/src/tests/user-detail-valid.operation.spec.ts
@@ -1,6 +1,6 @@
-import { UserDetailValidOperation } from "@backend/collections/user-detail/operations/user-detail-valid.operation.js";
-import BlResponseHandler from "@backend/response/bl-response.handler.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { UserDetailValidOperation } from "@backend/express/collections/user-detail/operations/user-detail-valid.operation.js";
+import BlResponseHandler from "@backend/express/response/bl-response.handler.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { BlApiRequest } from "@backend/types/bl-api-request.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
diff --git a/backend/src/tests/user-detail.helper.spec.ts b/backend/src/tests/user-detail.helper.spec.ts
index 9c5c66eb..ef23feb5 100644
--- a/backend/src/tests/user-detail.helper.spec.ts
+++ b/backend/src/tests/user-detail.helper.spec.ts
@@ -1,6 +1,6 @@
-import { UserDetailHelper } from "@backend/collections/user-detail/helpers/user-detail.helper.js";
-import { DibsEasyPayment } from "@backend/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import { UserDetailHelper } from "@backend/express/collections/user-detail/helpers/user-detail.helper.js";
+import { DibsEasyPayment } from "@backend/express/payment/dibs/dibs-easy-payment/dibs-easy-payment.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { UserDetail } from "@shared/user/user-detail/user-detail.js";
diff --git a/backend/src/tests/user-provider.spec.ts b/backend/src/tests/user-provider.spec.ts
index 44e91bec..74fba170 100644
--- a/backend/src/tests/user-provider.spec.ts
+++ b/backend/src/tests/user-provider.spec.ts
@@ -1,7 +1,7 @@
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import TokenHandler from "@backend/auth/token/token.handler.js";
-import UserProvider from "@backend/auth/user/user-provider.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import TokenHandler from "@backend/express/auth/token/token.handler.js";
+import UserProvider from "@backend/express/auth/user/user-provider.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
 import { test } from "@japa/runner";
 import { BlError } from "@shared/bl-error/bl-error.js";
 import { expect, use as chaiUse, should } from "chai";
diff --git a/backend/src/tests/user.handler.spec.ts b/backend/src/tests/user.handler.spec.ts
index 2fdc644e..e154ae66 100644
--- a/backend/src/tests/user.handler.spec.ts
+++ b/backend/src/tests/user.handler.spec.ts
@@ -1,8 +1,8 @@
-import LocalLoginHandler from "@backend/auth/local/local-login.handler.js";
-import UserHandler from "@backend/auth/user/user.handler.js";
-import EmailValidationHelper from "@backend/collections/email-validation/helpers/email-validation.helper.js";
-import { SEDbQuery } from "@backend/query/se.db-query.js";
-import { BlStorage } from "@backend/storage/bl-storage.js";
+import LocalLoginHandler from "@backend/express/auth/local/local-login.handler.js";
+import UserHandler from "@backend/express/auth/user/user.handler.js";
+import EmailValidationHelper from "@backend/express/collections/email-validation/helpers/email-validation.helper.js";
+import { SEDbQuery } from "@backend/express/query/se.db-query.js";
+import { BlStorage } from "@backend/express/storage/bl-storage.js";
 import { LocalLogin } from "@backend/types/local-login.js";
 import { User } from "@backend/types/user.js";
 import { test } from "@japa/runner";
diff --git a/backend/src/types/bl-collection.ts b/backend/src/types/bl-collection.ts
index 1db90f04..0e627f5e 100644
--- a/backend/src/types/bl-collection.ts
+++ b/backend/src/types/bl-collection.ts
@@ -1,6 +1,6 @@
-import { Hook } from "@backend/hook/hook.js";
-import { ValidParameter } from "@backend/query/db-query-valid-params.js";
-import { BlStorageHandler } from "@backend/storage/bl-storage.js";
+import { Hook } from "@backend/express/hook/hook.js";
+import { ValidParameter } from "@backend/express/query/db-query-valid-params.js";
+import { BlStorageHandler } from "@backend/express/storage/bl-storage.js";
 import { NestedDocument } from "@backend/types/nested-document.js";
 import { Operation } from "@backend/types/operation.js";
 import { UserPermission } from "@shared/permission/user-permission.js";
diff --git a/backend/src/types/nested-document.ts b/backend/src/types/nested-document.ts
index 36af1c03..f34e47d4 100644
--- a/backend/src/types/nested-document.ts
+++ b/backend/src/types/nested-document.ts
@@ -1,4 +1,4 @@
-import { BlStorageHandler } from "@backend/storage/bl-storage.js";
+import { BlStorageHandler } from "@backend/express/storage/bl-storage.js";
 
 export interface NestedDocument {
   field: string;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 18f9523b..8a7d14ca 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -72,6 +72,15 @@ importers:
 
   backend:
     dependencies:
+      '@adonisjs/auth':
+        specifier: ^9.3.1
+        version: 9.3.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))(@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0))(@japa/plugin-adonisjs@4.0.0(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))(@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0))(@japa/runner@4.1.0))
+      '@adonisjs/core':
+        specifier: ^6.17.1
+        version: 6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0)
+      '@adonisjs/cors':
+        specifier: ^2.2.1
+        version: 2.2.1(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))
       '@boklisten/bl-email':
         specifier: ^1.8.2
         version: 1.8.2
@@ -150,6 +159,9 @@ importers:
       '@types/validator':
         specifier: ^13.12.2
         version: 13.12.2
+      '@vinejs/vine':
+        specifier: ^3.0.0
+        version: 3.0.0
       canvas:
         specifier: ^3.1.0
         version: 3.1.0
@@ -207,6 +219,9 @@ importers:
       qs:
         specifier: ^6.14.0
         version: 6.14.0
+      reflect-metadata:
+        specifier: ^0.2.2
+        version: 0.2.2
       request:
         specifier: ^2.88.2
         version: 2.88.2
@@ -223,9 +238,27 @@ importers:
         specifier: ^3.17.0
         version: 3.17.0
     devDependencies:
+      '@adonisjs/assembler':
+        specifier: ^7.8.2
+        version: 7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3)
+      '@adonisjs/eslint-config':
+        specifier: ^1.3.0
+        version: 1.3.0(@types/eslint@9.6.1)(eslint@9.18.0)(prettier@3.4.2)(typescript@5.7.3)
+      '@adonisjs/prettier-config':
+        specifier: ^1.4.0
+        version: 1.4.0
+      '@adonisjs/tsconfig':
+        specifier: ^1.4.0
+        version: 1.4.0
+      '@japa/api-client':
+        specifier: ^3.0.3
+        version: 3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0)
       '@japa/assert':
         specifier: ^4.0.1
         version: 4.0.1(@japa/runner@4.1.0)
+      '@japa/plugin-adonisjs':
+        specifier: ^4.0.0
+        version: 4.0.0(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))(@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0))(@japa/runner@4.1.0)
       '@japa/runner':
         specifier: ^4.1.0
         version: 4.1.0
@@ -235,6 +268,9 @@ importers:
       chai-as-promised:
         specifier: ^8.0.1
         version: 8.0.1(chai@5.1.2)
+      pino-pretty:
+        specifier: ^13.0.0
+        version: 13.0.0
       pkgroll:
         specifier: ^2.6.1
         version: 2.6.1(typescript@5.7.3)
@@ -370,10 +406,174 @@ importers:
 
 packages:
 
+  '@adonisjs/ace@13.3.0':
+    resolution: {integrity: sha512-68dveDFd766p69cBvK/MtOrOP0+YKYLeHspa9KLEWcWk9suPf3pbGkHQ2pwDnvLJxBPHk4932KbbSSzzpGNZGw==}
+    engines: {node: '>=18.16.0'}
+
+  '@adonisjs/application@8.3.1':
+    resolution: {integrity: sha512-hfZBgZ23BQAXvoSHDkc/I0hTSXyFVxypNqHPQ/WCk4VoWlBVWVgGaGnHLvIGhrZ3RMvyoC5NBgC0PR5G+/fGSw==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@adonisjs/config': ^5.0.0
+      '@adonisjs/fold': ^10.0.0
+
+  '@adonisjs/assembler@7.8.2':
+    resolution: {integrity: sha512-csLdMW58cwuRjdPEDE0dqwHZCT5snCh+1sQ19HPnQ/BLKPPAvQdDRdw0atoC8LVmouB8ghXVHp3SxnVxlvXYWQ==}
+    engines: {node: '>=20.6.0'}
+    peerDependencies:
+      typescript: ^4.0.0 || ^5.0.0
+
+  '@adonisjs/auth@9.3.1':
+    resolution: {integrity: sha512-FQ1ylsH/PRjqMsnjtplKgcWM7CEfmCGuIRbj0lFzTb9xajRTjjgBLWNIhUW/NocmkZP2T2rjV0TnDT1tQUe44Q==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@adonisjs/core': ^6.11.0
+      '@adonisjs/lucid': ^20.0.0 || ^21.0.1
+      '@adonisjs/session': ^7.4.1
+      '@japa/api-client': ^2.0.3 || ^3.0.0
+      '@japa/browser-client': ^2.0.3
+      '@japa/plugin-adonisjs': ^3.0.1 || ^4.0.0
+    peerDependenciesMeta:
+      '@adonisjs/lucid':
+        optional: true
+      '@adonisjs/session':
+        optional: true
+      '@japa/api-client':
+        optional: true
+      '@japa/browser-client':
+        optional: true
+      '@japa/plugin-adonisjs':
+        optional: true
+
+  '@adonisjs/bodyparser@10.0.2':
+    resolution: {integrity: sha512-dkbn+DK5B1dODTwk5367gHPhaD4ZIoGon/jvq47iX2cnHjk3a0SyQrBEjoFhnrNkVOJZ76I3OJ3oixqgMcE+yA==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@adonisjs/http-server': ^7.0.2
+
+  '@adonisjs/config@5.0.2':
+    resolution: {integrity: sha512-NXjFqDHNGRTZ1EnA4zr20GFEt7qw/JvZ4ZV8/PzFyVc7dPoFprpoyE3bw7kmlKHhcQdBbF7YXCGB4q+HQUnqiQ==}
+    engines: {node: '>=18.16.0'}
+
+  '@adonisjs/core@6.17.1':
+    resolution: {integrity: sha512-OrusoHVqksT0dY+ma5Mn1l9pLn69vDOqkVTW/8y6Ry3F9TupicLghiuVNn8CQbdWcC9I8FvphmTRIWHqqg7vuQ==}
+    engines: {node: '>=20.6.0'}
+    hasBin: true
+    peerDependencies:
+      '@adonisjs/assembler': ^7.8.0
+      '@vinejs/vine': ^2.1.0 || ^3.0.0
+      argon2: ^0.31.2 || ^0.41.0
+      bcrypt: ^5.1.1
+      edge.js: ^6.2.0
+    peerDependenciesMeta:
+      '@adonisjs/assembler':
+        optional: true
+      '@vinejs/vine':
+        optional: true
+      argon2:
+        optional: true
+      bcrypt:
+        optional: true
+      edge.js:
+        optional: true
+
+  '@adonisjs/cors@2.2.1':
+    resolution: {integrity: sha512-qnrSG8ylpgTeZBOYEN3yXxY0PBUEg1KGDhgn9VKVFGxLKT+o9GGVOSZxUK3wG341B1zB9w5vuZN1z4M0Jitb6g==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@adonisjs/core': ^6.2.0
+
+  '@adonisjs/encryption@6.0.2':
+    resolution: {integrity: sha512-37XqVPsZi6zXMbC0Me1/qlcTP0uE+KAtYOFx7D7Tvtz377NL/6gqxqgpW/BopgOSD+CVDXjzO/Wx3M2UrbkJRQ==}
+    engines: {node: '>=18.16.0'}
+
+  '@adonisjs/env@6.1.1':
+    resolution: {integrity: sha512-sYvcJMbLSqwFWH0WtTTLddxkyXzERZl+8TEkXlMiIFaAZveq9h5eC4SQ+L5ILe9FHHiHVfmHsYF6LlAfcsIG1w==}
+    engines: {node: '>=18.16.0'}
+
+  '@adonisjs/eslint-config@1.3.0':
+    resolution: {integrity: sha512-CBt/fl17+OCmaCd0rt79GvroDidaF/cBTc6iqjEh08IawAcanQE339kPRMgL1T43B6BDFmSahePvYU5es5j4yw==}
+    peerDependencies:
+      eslint: '>=7.4.0'
+      prettier: '>=2.0.0'
+
+  '@adonisjs/eslint-plugin@1.3.0':
+    resolution: {integrity: sha512-LpN85yyuKkfo4t5PlE2Pij1GU3BcFh15cOH6BK7iDDcMkR6KduXB90hYiRu013EVIH+/sfxP5k2VjhBRc31Mqw==}
+
+  '@adonisjs/events@9.0.2':
+    resolution: {integrity: sha512-qZn2e9V9C8tF4MNqEWv5JGxMG7gcHSJM8RncGpjuJ4cwFwd2jF4xrN6wkCprTVwoyZSxNS0Cp9NkAonySjG5vg==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@adonisjs/application': ^8.0.2
+      '@adonisjs/fold': ^10.0.1
+
+  '@adonisjs/fold@10.1.3':
+    resolution: {integrity: sha512-wzeuWMXx9SoJkNO4ycoyfxzoSyyMy3umVxb9cbzeWR/sYNVgi50l+vgJc634+lxpCE0RFTpxCv1M235EWDF9SQ==}
+    engines: {node: '>=18.16.0'}
+
+  '@adonisjs/hash@9.0.5':
+    resolution: {integrity: sha512-oY8PafBrdGsr5UY8cAzzxPCtehZDW7KsPcI47dZpjydOdL/PQrT4liX+cGujL6mSbi3JEgQLBgBs/+SlPFvCrg==}
+    engines: {node: '>=20.6.0'}
+    peerDependencies:
+      argon2: ^0.31.2 || ^0.41.0
+      bcrypt: ^5.1.1
+    peerDependenciesMeta:
+      argon2:
+        optional: true
+      bcrypt:
+        optional: true
+
+  '@adonisjs/health@2.0.0':
+    resolution: {integrity: sha512-dEAABiAJew1imzwi+OvV/SAnjkMp8TbD5ZIzx1dMRnPynJAlRf37//bHLwZ5Cw44ke5kPzZ/l1n9cx/VeBCicA==}
+    engines: {node: '>=20.6.0'}
+
+  '@adonisjs/http-server@7.4.0':
+    resolution: {integrity: sha512-2Me8ytUu0Sm0jYJs2SAiYQX3ECF6clOJwPE04cswsAwEnqSFLZkflD3c6rApjLjZO6P1wFlo090HNaZCFrlcMQ==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@adonisjs/application': ^8.0.2
+      '@adonisjs/encryption': ^6.0.0
+      '@adonisjs/events': ^9.0.0
+      '@adonisjs/fold': ^10.0.1
+      '@adonisjs/logger': ^6.0.1
+
+  '@adonisjs/logger@6.0.5':
+    resolution: {integrity: sha512-1QmbLPNC636MeJzqflMA64lUnAn5dbb7W0YQ/ea33papnNqGOfvDQuxqqKlzM6ww9jPZlXTIf/3t7KAWlfHCfQ==}
+    engines: {node: '>=18.16.0'}
+
+  '@adonisjs/presets@2.6.4':
+    resolution: {integrity: sha512-WvzWouziX88GMoGBLDobGRaSktWfz+fRqADJyhJd7+l0M2VMm5NF0LvAXbV8lMBLtBCicOxk973bJ9Kmyfy3qQ==}
+    peerDependencies:
+      '@adonisjs/assembler': ^7.8.2
+      '@adonisjs/core': ^6.13.0
+    peerDependenciesMeta:
+      '@adonisjs/assembler':
+        optional: true
+
+  '@adonisjs/prettier-config@1.4.0':
+    resolution: {integrity: sha512-6MqbAvGlxf8iNHwGiJmtMKMhwoxRNtpzuLV8F93lQtsLluU1fjF8EDDpTPl9RrQblt7+6zY28K5nh1rmmXk8mQ==}
+
+  '@adonisjs/repl@4.1.0':
+    resolution: {integrity: sha512-7Ml87uoufDQmpjRZYbJeRTk0/WcD4DllJ96L1r2IWF/jZIsryiVN5o+7Xd7fHlRzd8iapAbs32Tq4a6fVI6UKA==}
+    engines: {node: '>=18.16.0'}
+
+  '@adonisjs/tsconfig@1.4.0':
+    resolution: {integrity: sha512-go5KlxE8jJaeoIRzm51PcF2YJSK5i022douVk9OjAqvDiU1t2UepcDoEsSiEOgogUDojp9kbRQmFyf0y0YqvOg==}
+
   '@ampproject/remapping@2.3.0':
     resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
     engines: {node: '>=6.0.0'}
 
+  '@antfu/install-pkg@0.4.1':
+    resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==}
+
+  '@antfu/install-pkg@1.0.0':
+    resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==}
+
+  '@arr/every@1.0.1':
+    resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==}
+    engines: {node: '>=4'}
+
   '@babel/code-frame@7.26.2':
     resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
     engines: {node: '>=6.9.0'}
@@ -498,6 +698,21 @@ packages:
   '@boklisten/bl-post-office@0.5.56':
     resolution: {integrity: sha512-vkQojANsNau3QQmj0bQJC+05DcmSyRFi7Y3ZUZYEnm3yexKD5qT2uwdLz/W0mUbbdOs1L/kgdkOHvQeVmY5VJg==}
 
+  '@chevrotain/cst-dts-gen@11.0.3':
+    resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==}
+
+  '@chevrotain/gast@11.0.3':
+    resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==}
+
+  '@chevrotain/regexp-to-ast@11.0.3':
+    resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==}
+
+  '@chevrotain/types@11.0.3':
+    resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==}
+
+  '@chevrotain/utils@11.0.3':
+    resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==}
+
   '@colors/colors@1.5.0':
     resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
     engines: {node: '>=0.1.90'}
@@ -1205,6 +1420,19 @@ packages:
     cpu: [x64]
     os: [win32]
 
+  '@japa/api-client@3.0.3':
+    resolution: {integrity: sha512-HYU2EL+9Y89oaY199ZrQ4wQg3Ga54ntfsGa9p1R+HbDc+az9pwQgXKC0ecWWw+LxU2CB2k/cCfMMXbkwDLf+NQ==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@japa/assert': ^2.0.0 || ^3.0.0 || ^4.0.0
+      '@japa/openapi-assertions': ^0.1.1
+      '@japa/runner': ^3.1.2 || ^4.0.0
+    peerDependenciesMeta:
+      '@japa/assert':
+        optional: true
+      '@japa/openapi-assertions':
+        optional: true
+
   '@japa/assert@4.0.1':
     resolution: {integrity: sha512-n/dA9DVLNvM/Bw8DtN8kBdPjYsSHe3XTRjF5+U8vlzDavpW9skUANl2CHR1K/TBWZxwMfGi15SJIjo6UCs09AA==}
     engines: {node: '>=18.16.0'}
@@ -1219,6 +1447,23 @@ packages:
     resolution: {integrity: sha512-PdmNFcVYU//vbVeLR+lEOT8DckVgoVVx/JxuTulM/IHCEzz7zsYBY9BYEjcIxXY34nAMqLAkRSmnjUnL0tiJVA==}
     engines: {node: '>=18.16.0'}
 
+  '@japa/plugin-adonisjs@4.0.0':
+    resolution: {integrity: sha512-M2LUtHhKr4KgBfX73tDHNCD1IOmcXp9dvC+AinmRxsggIFnarsClcfjT/sXc3uNzjZW7Lk31LvcH76AxJHBmJQ==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      '@adonisjs/core': ^6.17.0
+      '@japa/api-client': ^2.0.3 || ^3.0.0
+      '@japa/browser-client': ^2.0.3
+      '@japa/runner': ^3.1.2 || ^4.0.0
+      playwright: ^1.42.1
+    peerDependenciesMeta:
+      '@japa/api-client':
+        optional: true
+      '@japa/browser-client':
+        optional: true
+      playwright:
+        optional: true
+
   '@japa/runner@4.1.0':
     resolution: {integrity: sha512-tbKp4yuhy+LjOPEWOF9YaB9lhmqVvrcpAkkLysG2q3gKY7FFSaMaUlVc25eufuvZ7KMW+Gx03Sma05/vB4EztQ==}
     engines: {node: '>=18.16.0'}
@@ -1616,6 +1861,10 @@ packages:
     cpu: [x64]
     os: [win32]
 
+  '@noble/hashes@1.7.1':
+    resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==}
+    engines: {node: ^14.21.3 || >=16}
+
   '@nodelib/fs.scandir@2.1.5':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     engines: {node: '>= 8'}
@@ -1844,9 +2093,30 @@ packages:
     peerDependencies:
       '@opentelemetry/api': ^1.1.0
 
+  '@paralleldrive/cuid2@2.2.2':
+    resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==}
+
+  '@phc/format@1.0.0':
+    resolution: {integrity: sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==}
+    engines: {node: '>=10'}
+
+  '@pkgr/core@0.1.1':
+    resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
+    engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
   '@popperjs/core@2.11.8':
     resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
 
+  '@poppinss/chokidar-ts@4.1.5':
+    resolution: {integrity: sha512-V8QtYZZMTbpv9aMX/agZSssIVfig7HK2s9grUqs6x221PEB/YirYtasj6g0Jx1o+yg7D38Y9kKPmL7d9MgeXBw==}
+    engines: {node: '>=18.16.0'}
+    peerDependencies:
+      typescript: ^4.0.0 || ^5.0.0
+
+  '@poppinss/cliui@6.4.2':
+    resolution: {integrity: sha512-+zx32scWjFUReNAzi75/QBwTiQrQ70a3khF5TNnyJVA8V2I9wTRPBLPdLWt83E5m1nTufoilF2MI7UBALkFH1Q==}
+    engines: {node: '>=18.16.0'}
+
   '@poppinss/colors@4.1.4':
     resolution: {integrity: sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==}
     engines: {node: '>=18.16.0'}
@@ -1866,10 +2136,35 @@ packages:
     resolution: {integrity: sha512-ct43jurbe7lsUX5eIrj4ijO3j/6zIPp7CDnFWXDs7UPAbw1Pu1iH3oAmFdP4jcskKJBURH5M9oTtyeiUXyHX8Q==}
     engines: {node: '>=18.16.0'}
 
+  '@poppinss/matchit@3.1.2':
+    resolution: {integrity: sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==}
+
+  '@poppinss/middleware@3.2.5':
+    resolution: {integrity: sha512-+P9yY4KYYZFTbOoIvVK/R4PfPcPyxt4E23Dx4l7V8Z/8+DOzAL01eWZs9mMgHOYTbAokKVLQ+JIsyDmrTA0Uyg==}
+    engines: {node: '>=18.16.0'}
+
+  '@poppinss/multiparty@2.0.1':
+    resolution: {integrity: sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==}
+
+  '@poppinss/object-builder@1.1.0':
+    resolution: {integrity: sha512-FOrOq52l7u8goR5yncX14+k+Ewi5djnrt1JwXeS/FvnwAPOiveFhiczCDuvXdssAwamtrV2hp5Rw9v+n2T7hQg==}
+    engines: {node: '>=20.6.0'}
+
+  '@poppinss/prompts@3.1.4':
+    resolution: {integrity: sha512-3xbwolmX8/G2jZZTRcymc1KysJ6b7vyonauKwyQtt3WOaUTHMFcxTJ/Sdp75ehHFJI1BOVzd4v6BS9pmqTcHlw==}
+    engines: {node: '>=18.16.0'}
+
   '@poppinss/string@1.2.0':
     resolution: {integrity: sha512-1z78zjqhfjqsvWr+pQzCpRNcZpIM+5vNY5SFOvz28GrL/LRanwtmOku5tBX7jE8/ng3oXaOVrB59lnnXFtvkug==}
     engines: {node: '>=20.6.0'}
 
+  '@poppinss/utils@6.9.2':
+    resolution: {integrity: sha512-ypVszZxhwiehhklM5so2BI+nClQJwp7mBUSJh/R1GepeUH1vvD5GtxMz8Lp9dO9oAbKyDmq1jc4g/4E0dv8r2g==}
+    engines: {node: '>=18.16.0'}
+
+  '@poppinss/validator-lite@2.0.1':
+    resolution: {integrity: sha512-jdmx+7RsQL4iHscjEfC9TE6xGYUVug680VqwF8ICYdasxcTHODgQLv6ukCUTNVRFu/Xz70SLPNqXD0dA6MTMVQ==}
+
   '@prisma/instrumentation@5.22.0':
     resolution: {integrity: sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==}
 
@@ -2052,6 +2347,9 @@ packages:
   '@rtsao/scc@1.1.0':
     resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
 
+  '@sec-ant/readable-stream@0.4.1':
+    resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+
   '@sendgrid/client@6.5.5':
     resolution: {integrity: sha512-Nbfgo94gbWSL8PIgJfuHoifyOJJepvV8NQkkglctAEfb1hyozKhrzE6v1kPG/z4j0RodaTtXD5LJj/t0q/VhLA==}
     engines: {node: '>=6.0.0'}
@@ -2244,10 +2542,22 @@ packages:
   '@sinclair/typebox@0.27.8':
     resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
 
+  '@sindresorhus/is@6.3.1':
+    resolution: {integrity: sha512-FX4MfcifwJyFOI2lPoX7PQxCqx8BG1HCho7WdiXwpEQx1Ycij0JxkfYtGK7yqNScrZGSlt6RE6sw8QYoH7eKnQ==}
+    engines: {node: '>=16'}
+
   '@sindresorhus/is@7.0.1':
     resolution: {integrity: sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==}
     engines: {node: '>=18'}
 
+  '@sindresorhus/merge-streams@2.3.0':
+    resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
+    engines: {node: '>=18'}
+
+  '@sindresorhus/merge-streams@4.0.0':
+    resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
+    engines: {node: '>=18'}
+
   '@sinonjs/commons@3.0.1':
     resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
 
@@ -2288,6 +2598,9 @@ packages:
       '@types/react-dom':
         optional: true
 
+  '@tokenizer/token@0.3.0':
+    resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
+
   '@toolpad/core@0.12.0':
     resolution: {integrity: sha512-2nzy6Y16nIvZspfdeKJqp70ZKTL4l3DVGe4zpjKi60UoRDYhQHTtwcXlTPiKYw/sCXjT8oa7svNaVD2GAI8Hfg==}
     engines: {node: '>=14.0.0'}
@@ -2308,6 +2621,9 @@ packages:
     peerDependencies:
       react: ^18.0.0 || ^19.0.0
 
+  '@ts-morph/common@0.24.0':
+    resolution: {integrity: sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==}
+
   '@tsconfig/cypress@1.0.2':
     resolution: {integrity: sha512-VMob5QMd/jWhZAzmT1Jbr5csbfWZWd0ASrmQVxoQ/JIUVhdtlUI0/E/QAgIMjhv9OPoSRmbxQsr9rkOAtRydaQ==}
 
@@ -2359,6 +2675,9 @@ packages:
   '@types/connect@3.4.38':
     resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
 
+  '@types/cookiejar@2.1.5':
+    resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==}
+
   '@types/cors@2.8.17':
     resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
 
@@ -2392,6 +2711,9 @@ packages:
   '@types/express@5.0.0':
     resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==}
 
+  '@types/he@1.2.3':
+    resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==}
+
   '@types/http-errors@2.0.4':
     resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
 
@@ -2404,6 +2726,9 @@ packages:
   '@types/jsonwebtoken@9.0.7':
     resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==}
 
+  '@types/methods@1.1.4':
+    resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==}
+
   '@types/mime@1.3.5':
     resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
 
@@ -2419,6 +2744,9 @@ packages:
   '@types/node@22.10.7':
     resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==}
 
+  '@types/normalize-package-data@2.4.4':
+    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
   '@types/oauth@0.9.6':
     resolution: {integrity: sha512-H9TRCVKBNOhZZmyHLqFt9drPM9l+ShWiqqJijU1B8P3DX3ub84NjxDuy+Hjrz+fEca5Kwip3qPMKNyiLgNJtIA==}
 
@@ -2496,6 +2824,9 @@ packages:
   '@types/sanitize-html@2.13.0':
     resolution: {integrity: sha512-X31WxbvW9TjIhZZNyNBZ/p5ax4ti7qsNDBDEnH4zAgmEh35YnFD1UiS6z9Cd34kKm0LslFW0KPmTQzu/oGtsqQ==}
 
+  '@types/semver@7.5.8':
+    resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
+
   '@types/send@0.17.4':
     resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
 
@@ -2523,6 +2854,9 @@ packages:
   '@types/string-similarity@4.0.2':
     resolution: {integrity: sha512-LkJQ/jsXtCVMK+sKYAmX/8zEq+/46f1PTQw7YtmQwb74jemS1SlNLmARM2Zml9DgdDTWKAtc5L13WorpHPDjDA==}
 
+  '@types/superagent@8.1.9':
+    resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==}
+
   '@types/tedious@4.0.14':
     resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==}
 
@@ -2544,6 +2878,17 @@ packages:
   '@types/yauzl@2.10.3':
     resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
 
+  '@typescript-eslint/eslint-plugin@6.21.0':
+    resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
+      eslint: ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   '@typescript-eslint/eslint-plugin@8.21.0':
     resolution: {integrity: sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2552,6 +2897,16 @@ packages:
       eslint: ^8.57.0 || ^9.0.0
       typescript: '>=4.8.4 <5.8.0'
 
+  '@typescript-eslint/parser@6.21.0':
+    resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   '@typescript-eslint/parser@8.21.0':
     resolution: {integrity: sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2559,10 +2914,24 @@ packages:
       eslint: ^8.57.0 || ^9.0.0
       typescript: '>=4.8.4 <5.8.0'
 
+  '@typescript-eslint/scope-manager@6.21.0':
+    resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+
   '@typescript-eslint/scope-manager@8.21.0':
     resolution: {integrity: sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  '@typescript-eslint/type-utils@6.21.0':
+    resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   '@typescript-eslint/type-utils@8.21.0':
     resolution: {integrity: sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2570,16 +2939,35 @@ packages:
       eslint: ^8.57.0 || ^9.0.0
       typescript: '>=4.8.4 <5.8.0'
 
+  '@typescript-eslint/types@6.21.0':
+    resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+
   '@typescript-eslint/types@8.21.0':
     resolution: {integrity: sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  '@typescript-eslint/typescript-estree@6.21.0':
+    resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   '@typescript-eslint/typescript-estree@8.21.0':
     resolution: {integrity: sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       typescript: '>=4.8.4 <5.8.0'
 
+  '@typescript-eslint/utils@6.21.0':
+    resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0
+
   '@typescript-eslint/utils@8.21.0':
     resolution: {integrity: sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2587,10 +2975,22 @@ packages:
       eslint: ^8.57.0 || ^9.0.0
       typescript: '>=4.8.4 <5.8.0'
 
+  '@typescript-eslint/visitor-keys@6.21.0':
+    resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+
   '@typescript-eslint/visitor-keys@8.21.0':
     resolution: {integrity: sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  '@vinejs/compiler@3.0.0':
+    resolution: {integrity: sha512-v9Lsv59nR56+bmy2p0+czjZxsLHwaibJ+SV5iK9JJfehlJMa501jUJQqqz4X/OqKXrxtE3uTQmSqjUqzF3B2mw==}
+    engines: {node: '>=18.0.0'}
+
+  '@vinejs/vine@3.0.0':
+    resolution: {integrity: sha512-GeCAHLzKkL2kMFqatgqyiiNh+FILOSAV8x8imBDo6AWQ91w30Kaxw4FnzUDqgcd9z8aCYOBQ7RJxBBGfyr+USQ==}
+    engines: {node: '>=18.16.0'}
+
   '@vitejs/plugin-react@4.3.4':
     resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
     engines: {node: ^14.18.0 || >=16.0.0}
@@ -2654,6 +3054,9 @@ packages:
       react: ^17 || ^18 || ^19
       react-dom: ^17 || ^18 || ^19
 
+  abstract-logging@2.0.1:
+    resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
+
   accepts@1.3.8:
     resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
     engines: {node: '>= 0.6'}
@@ -2713,6 +3116,10 @@ packages:
     resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
     engines: {node: '>=8'}
 
+  ansi-escapes@7.0.0:
+    resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==}
+    engines: {node: '>=18'}
+
   ansi-regex@5.0.1:
     resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
     engines: {node: '>=8'}
@@ -2733,6 +3140,10 @@ packages:
     resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
     engines: {node: '>=10'}
 
+  ansi-styles@6.2.1:
+    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+    engines: {node: '>=12'}
+
   anymatch@3.1.3:
     resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
     engines: {node: '>= 8'}
@@ -2764,6 +3175,10 @@ packages:
     resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
     engines: {node: '>= 0.4'}
 
+  array-union@2.1.0:
+    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+    engines: {node: '>=8'}
+
   array.prototype.findlast@1.2.5:
     resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
     engines: {node: '>= 0.4'}
@@ -2788,6 +3203,9 @@ packages:
     resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
     engines: {node: '>= 0.4'}
 
+  as-table@1.0.55:
+    resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
+
   asap@2.0.6:
     resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
 
@@ -2826,6 +3244,15 @@ packages:
     resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
     engines: {node: '>= 4.0.0'}
 
+  atob@2.1.2:
+    resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+    engines: {node: '>= 4.5.0'}
+    hasBin: true
+
+  atomic-sleep@1.0.0:
+    resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
+    engines: {node: '>=8.0.0'}
+
   available-typed-arrays@1.0.7:
     resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
     engines: {node: '>= 0.4'}
@@ -2871,6 +3298,10 @@ packages:
     resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==}
     engines: {node: '>=6.0.0'}
 
+  basic-auth@2.0.1:
+    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
+    engines: {node: '>= 0.8'}
+
   bcrypt-pbkdf@1.0.2:
     resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
 
@@ -2931,6 +3362,10 @@ packages:
   buffer@5.7.1:
     resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
 
+  builtin-modules@3.3.0:
+    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+    engines: {node: '>=6'}
+
   busboy@1.6.0:
     resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
     engines: {node: '>=10.16.0'}
@@ -2963,6 +3398,10 @@ packages:
     resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
     engines: {node: '>=6'}
 
+  camelcase@8.0.0:
+    resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
+    engines: {node: '>=16'}
+
   caniuse-lite@1.0.30001695:
     resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==}
 
@@ -3002,6 +3441,10 @@ packages:
     resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
     engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
 
+  check-disk-space@3.4.0:
+    resolution: {integrity: sha512-drVkSqfwA+TvuEhFipiR1OC9boEGZL5RrWvVsOthdcvQNXyCCuKkEiTOTXZ7qxSf/GLwq4GvzfrQD/Wz325hgw==}
+    engines: {node: '>=16'}
+
   check-error@2.1.1:
     resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
     engines: {node: '>= 16'}
@@ -3017,10 +3460,17 @@ packages:
     resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==}
     engines: {node: '>=18.17'}
 
+  chevrotain@11.0.3:
+    resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==}
+
   chokidar@3.6.0:
     resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
     engines: {node: '>= 8.10.0'}
 
+  chokidar@4.0.3:
+    resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+    engines: {node: '>= 14.16.0'}
+
   chownr@1.1.4:
     resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
 
@@ -3028,6 +3478,10 @@ packages:
     resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
     engines: {node: '>=6.0'}
 
+  ci-info@3.9.0:
+    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+    engines: {node: '>=8'}
+
   ci-info@4.1.0:
     resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==}
     engines: {node: '>=8'}
@@ -3038,14 +3492,26 @@ packages:
   classnames@2.5.1:
     resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
 
+  clean-regexp@1.0.0:
+    resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
+    engines: {node: '>=4'}
+
   clean-stack@2.2.0:
     resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
     engines: {node: '>=6'}
 
+  cli-boxes@4.0.1:
+    resolution: {integrity: sha512-5IOn+jcCEHEraYolBPs/sT4BxYCe2nHg374OPiItB1O96KZFseS2gthU4twyYzeDcFew4DaUM/xwc5BQf08JJw==}
+    engines: {node: '>=18.20 <19 || >=20.10'}
+
   cli-cursor@3.1.0:
     resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
     engines: {node: '>=8'}
 
+  cli-cursor@5.0.0:
+    resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+    engines: {node: '>=18'}
+
   cli-table3@0.6.5:
     resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==}
     engines: {node: 10.* || >= 12.*}
@@ -3054,6 +3520,10 @@ packages:
     resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
     engines: {node: '>=8'}
 
+  cli-truncate@4.0.0:
+    resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
+    engines: {node: '>=18'}
+
   client-only@0.0.1:
     resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
 
@@ -3076,6 +3546,9 @@ packages:
     resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
     engines: {node: '>=6'}
 
+  code-block-writer@13.0.3:
+    resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==}
+
   color-convert@1.9.3:
     resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
 
@@ -3126,6 +3599,9 @@ packages:
   commondir@1.0.1:
     resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
 
+  component-emitter@1.3.1:
+    resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+
   concat-map@0.0.1:
     resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
 
@@ -3170,6 +3646,13 @@ packages:
     resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
     engines: {node: '>=18'}
 
+  cookiejar@2.1.4:
+    resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==}
+
+  copy-file@11.0.0:
+    resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==}
+    engines: {node: '>=18'}
+
   core-js@3.40.0:
     resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==}
 
@@ -3184,6 +3667,10 @@ packages:
     resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
     engines: {node: '>=10'}
 
+  cpy@11.1.0:
+    resolution: {integrity: sha512-QGHetPSSuprVs+lJmMDcivvrBwTKASzXQ5qxFvRC2RFESjjod71bDvFvhxTjDgkNjrrb72AI6JPjfYwxrIy33A==}
+    engines: {node: '>=18'}
+
   cross-fetch@3.2.0:
     resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
 
@@ -3204,6 +3691,9 @@ packages:
     resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
     engines: {node: '>= 6'}
 
+  css@3.0.0:
+    resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==}
+
   cssom@0.5.0:
     resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
 
@@ -3222,6 +3712,9 @@ packages:
     resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==}
     engines: {node: '>=0.10'}
 
+  data-uri-to-buffer@2.0.2:
+    resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
+
   data-view-buffer@1.0.2:
     resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
     engines: {node: '>= 0.4'}
@@ -3234,6 +3727,9 @@ packages:
     resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
     engines: {node: '>= 0.4'}
 
+  dateformat@4.6.3:
+    resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
+
   dayjs@1.11.13:
     resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
 
@@ -3266,10 +3762,22 @@ packages:
     resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
     engines: {node: '>=0.10.0'}
 
+  decode-uri-component@0.2.2:
+    resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+    engines: {node: '>=0.10'}
+
   decompress-response@6.0.0:
     resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
     engines: {node: '>=10'}
 
+  dedent@1.5.3:
+    resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
+    peerDependencies:
+      babel-plugin-macros: ^3.1.0
+    peerDependenciesMeta:
+      babel-plugin-macros:
+        optional: true
+
   deep-eql@5.0.2:
     resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
     engines: {node: '>=6'}
@@ -3320,6 +3828,9 @@ packages:
   devtools-protocol@0.0.869402:
     resolution: {integrity: sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==}
 
+  dezalgo@1.0.4:
+    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
+
   dfa@1.2.0:
     resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==}
 
@@ -3334,6 +3845,13 @@ packages:
   dijkstrajs@1.0.3:
     resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==}
 
+  dir-glob@3.0.1:
+    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+    engines: {node: '>=8'}
+
+  dlv@1.1.3:
+    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
   doctrine@2.1.0:
     resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
     engines: {node: '>=0.10.0'}
@@ -3383,6 +3901,9 @@ packages:
   ecdsa-sig-formatter@1.0.11:
     resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
 
+  edgejs-parser@0.2.13:
+    resolution: {integrity: sha512-v4S/ZVmnJu0E1Cf9VezH+XP23ueVE+cZ0aZa/g+an//taIovQsWUskw0EfEFYQnXmCwq5KkX6CvDyVyNaBDzfw==}
+
   ee-first@1.1.1:
     resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
 
@@ -3431,12 +3952,19 @@ packages:
     resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
     engines: {node: '>=0.12'}
 
+  environment@1.1.0:
+    resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
+    engines: {node: '>=18'}
+
   error-ex@1.3.2:
     resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
 
   error-stack-parser-es@0.1.5:
     resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==}
 
+  error-stack-parser-es@1.0.5:
+    resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==}
+
   es-abstract@1.23.9:
     resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
     engines: {node: '>= 0.4'}
@@ -3501,15 +4029,38 @@ packages:
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
 
+  eslint-compat-utils@0.6.4:
+    resolution: {integrity: sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==}
+    engines: {node: '>=12'}
+    peerDependencies:
+      eslint: '>=6.0.0'
+
   eslint-config-prettier@10.0.1:
     resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==}
     hasBin: true
     peerDependencies:
       eslint: '>=7.0.0'
 
+  eslint-config-prettier@8.10.0:
+    resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
+    hasBin: true
+    peerDependencies:
+      eslint: '>=7.0.0'
+
   eslint-import-resolver-node@0.3.9:
     resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
 
+  eslint-json-compat-utils@0.2.1:
+    resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
+    engines: {node: '>=12'}
+    peerDependencies:
+      '@eslint/json': '*'
+      eslint: '*'
+      jsonc-eslint-parser: ^2.4.0
+    peerDependenciesMeta:
+      '@eslint/json':
+        optional: true
+
   eslint-module-utils@2.12.0:
     resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
     engines: {node: '>=4'}
@@ -3552,6 +4103,12 @@ packages:
       '@typescript-eslint/parser':
         optional: true
 
+  eslint-plugin-jsonc@2.18.2:
+    resolution: {integrity: sha512-SDhJiSsWt3nItl/UuIv+ti4g3m4gpGkmnUJS9UWR3TrpyNsIcnJoBRD7Kof6cM4Rk3L0wrmY5Tm3z7ZPjR2uGg==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      eslint: '>=6.0.0'
+
   eslint-plugin-jsx-a11y@6.10.2:
     resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
     engines: {node: '>=4.0'}
@@ -3561,6 +4118,20 @@ packages:
   eslint-plugin-no-relative-import-paths@1.6.1:
     resolution: {integrity: sha512-YZNeOnsOrJcwhFw0X29MXjIzu2P/f5X2BZDPWw1R3VUYBRFxNIh77lyoL/XrMU9ewZNQPcEvAgL/cBOT1P330A==}
 
+  eslint-plugin-prettier@5.2.3:
+    resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==}
+    engines: {node: ^14.18.0 || >=16.0.0}
+    peerDependencies:
+      '@types/eslint': '>=8.0.0'
+      eslint: '>=8.0.0'
+      eslint-config-prettier: '*'
+      prettier: '>=3.0.0'
+    peerDependenciesMeta:
+      '@types/eslint':
+        optional: true
+      eslint-config-prettier:
+        optional: true
+
   eslint-plugin-react-compiler@19.0.0-beta-e552027-20250112:
     resolution: {integrity: sha512-VjkIXHouCYyJHgk5HmZ1LH+fAK5CX+ULRX9iNYtwYJ+ljbivFhIT+JJyxNT/USQpCeS2Dt5ahjFeeMv0RRwTww==}
     engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0}
@@ -3579,6 +4150,12 @@ packages:
     peerDependencies:
       eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
 
+  eslint-plugin-unicorn@47.0.0:
+    resolution: {integrity: sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==}
+    engines: {node: '>=16'}
+    peerDependencies:
+      eslint: '>=8.38.0'
+
   eslint-scope@5.1.1:
     resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
     engines: {node: '>=8.0.0'}
@@ -3609,6 +4186,10 @@ packages:
     resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  espree@9.6.1:
+    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
   esquery@1.6.0:
     resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
     engines: {node: '>=0.10'}
@@ -3654,6 +4235,10 @@ packages:
     resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
     engines: {node: '>=16.17'}
 
+  execa@9.5.2:
+    resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==}
+    engines: {node: ^18.19.0 || >=20.5.0}
+
   executable@4.1.1:
     resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
     engines: {node: '>=4'}
@@ -3689,6 +4274,9 @@ packages:
     resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==}
     engines: {'0': node >=0.6.0}
 
+  fast-copy@3.0.2:
+    resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==}
+
   fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
 
@@ -3712,9 +4300,20 @@ packages:
   fast-levenshtein@2.0.6:
     resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
 
+  fast-redact@3.5.0:
+    resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
+    engines: {node: '>=6'}
+
+  fast-safe-stringify@2.1.1:
+    resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
+
   fast-uri@3.0.6:
     resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
 
+  fastest-levenshtein@1.0.16:
+    resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
+    engines: {node: '>= 4.9.1'}
+
   fastq@1.18.0:
     resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
 
@@ -3742,10 +4341,18 @@ packages:
     resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
     engines: {node: '>=8'}
 
+  figures@6.1.0:
+    resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
+    engines: {node: '>=18'}
+
   file-entry-cache@8.0.0:
     resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
     engines: {node: '>=16.0.0'}
 
+  file-type@19.6.0:
+    resolution: {integrity: sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==}
+    engines: {node: '>=18'}
+
   file-uri-to-path@1.0.0:
     resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
 
@@ -3786,6 +4393,10 @@ packages:
   flatted@3.3.2:
     resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
 
+  flattie@1.1.1:
+    resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
+    engines: {node: '>=8'}
+
   fn.name@1.1.0:
     resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
 
@@ -3819,6 +4430,9 @@ packages:
     resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
     engines: {node: '>= 6'}
 
+  formidable@3.5.2:
+    resolution: {integrity: sha512-Jqc1btCy3QzRbJaICGwKcBfGWuLADRerLzDqi2NwSt/UkXLsHJw2TVResiaoBufHVHy9aSgClOHCeJsSsFLTbg==}
+
   forwarded-parse@2.1.2:
     resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==}
 
@@ -3880,10 +4494,17 @@ packages:
     resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==}
     engines: {node: '>= 0.4'}
 
+  get-port@7.1.0:
+    resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==}
+    engines: {node: '>=16'}
+
   get-proto@1.0.1:
     resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
     engines: {node: '>= 0.4'}
 
+  get-source@2.0.12:
+    resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
+
   get-stream@5.2.0:
     resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
     engines: {node: '>=8'}
@@ -3892,6 +4513,10 @@ packages:
     resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
     engines: {node: '>=16'}
 
+  get-stream@9.0.1:
+    resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
+    engines: {node: '>=18'}
+
   get-symbol-description@1.1.0:
     resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
     engines: {node: '>= 0.4'}
@@ -3950,6 +4575,14 @@ packages:
     resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
     engines: {node: '>= 0.4'}
 
+  globby@11.1.0:
+    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+    engines: {node: '>=10'}
+
+  globby@14.0.2:
+    resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==}
+    engines: {node: '>=18'}
+
   gopd@1.2.0:
     resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
     engines: {node: '>= 0.4'}
@@ -4005,15 +4638,29 @@ packages:
     resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
     engines: {node: '>= 0.4'}
 
+  he@1.2.0:
+    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+    hasBin: true
+
+  help-me@5.0.0:
+    resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==}
+
   hermes-estree@0.25.1:
     resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==}
 
   hermes-parser@0.25.1:
     resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==}
 
+  hexoid@2.0.0:
+    resolution: {integrity: sha512-qlspKUK7IlSQv2o+5I7yhUd7TxlOG2Vr5LTa3ve2XSNVKAL/n/u/7KLvKmFNimomDIKvZFXWHv0T12mv7rT8Aw==}
+    engines: {node: '>=8'}
+
   hoist-non-react-statics@3.3.2:
     resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
 
+  hosted-git-info@2.8.9:
+    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+
   href-content@2.0.3:
     resolution: {integrity: sha512-ikrAoI1l5ihN5Be2cR9nozFfivVJxPQDpa4+sb6PLt/uaNE/a7A05rHbnJEUduoHddbB3GyT5tdqzXMUmPgJYA==}
 
@@ -4053,6 +4700,10 @@ packages:
     resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
     engines: {node: '>=16.17.0'}
 
+  human-signals@8.0.0:
+    resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==}
+    engines: {node: '>=18.18.0'}
+
   iconv-lite@0.4.24:
     resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
     engines: {node: '>=0.10.0'}
@@ -4087,6 +4738,10 @@ packages:
     resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
     engines: {node: '>=8'}
 
+  inflation@2.1.0:
+    resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==}
+    engines: {node: '>= 0.8.0'}
+
   inflight@1.0.6:
     resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
     deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
@@ -4149,6 +4804,10 @@ packages:
     resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==}
     engines: {node: '>= 0.4'}
 
+  is-builtin-module@3.2.1:
+    resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+    engines: {node: '>=6'}
+
   is-callable@1.2.7:
     resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
     engines: {node: '>= 0.4'}
@@ -4182,6 +4841,14 @@ packages:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
     engines: {node: '>=8'}
 
+  is-fullwidth-code-point@4.0.0:
+    resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+    engines: {node: '>=12'}
+
+  is-fullwidth-code-point@5.0.0:
+    resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
+    engines: {node: '>=18'}
+
   is-generator-function@1.1.0:
     resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
     engines: {node: '>= 0.4'}
@@ -4218,6 +4885,10 @@ packages:
     resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
     engines: {node: '>=8'}
 
+  is-plain-obj@4.1.0:
+    resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+    engines: {node: '>=12'}
+
   is-plain-object@5.0.0:
     resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
     engines: {node: '>=0.10.0'}
@@ -4245,6 +4916,10 @@ packages:
     resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
 
+  is-stream@4.0.1:
+    resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+    engines: {node: '>=18'}
+
   is-string@1.1.1:
     resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
     engines: {node: '>= 0.4'}
@@ -4264,6 +4939,10 @@ packages:
     resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
     engines: {node: '>=10'}
 
+  is-unicode-supported@2.1.0:
+    resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
+    engines: {node: '>=18'}
+
   is-weakmap@2.0.2:
     resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
     engines: {node: '>= 0.4'}
@@ -4309,6 +4988,10 @@ packages:
     resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
     engines: {node: '>= 10.13.0'}
 
+  joycon@3.1.1:
+    resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
+    engines: {node: '>=10'}
+
   jpeg-exif@1.1.4:
     resolution: {integrity: sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==}
 
@@ -4325,6 +5008,10 @@ packages:
   jsbn@0.1.1:
     resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
 
+  jsesc@0.5.0:
+    resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
+    hasBin: true
+
   jsesc@3.1.0:
     resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
     engines: {node: '>=6'}
@@ -4360,9 +5047,16 @@ packages:
     engines: {node: '>=6'}
     hasBin: true
 
+  jsonc-eslint-parser@2.4.0:
+    resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
   jsonfile@6.1.0:
     resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
 
+  jsonschema@1.5.0:
+    resolution: {integrity: sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==}
+
   jsonwebtoken@8.5.1:
     resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==}
     engines: {node: '>=4', npm: '>=1.4.28'}
@@ -4383,6 +5077,10 @@ packages:
     resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
     engines: {node: '>=4.0'}
 
+  junk@4.0.1:
+    resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==}
+    engines: {node: '>=12.20'}
+
   just-extend@6.2.0:
     resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
 
@@ -4458,6 +5156,9 @@ packages:
     resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
 
+  lodash-es@4.17.21:
+    resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+
   lodash.get@4.4.2:
     resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
 
@@ -4496,6 +5197,10 @@ packages:
     resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==}
     engines: {node: '>=10'}
 
+  log-update@6.1.0:
+    resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
+    engines: {node: '>=18'}
+
   logform@2.7.0:
     resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==}
     engines: {node: '>= 12.0.0'}
@@ -4532,9 +5237,17 @@ packages:
     resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
     engines: {node: '>= 0.6'}
 
+  media-typer@1.1.0:
+    resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
+    engines: {node: '>= 0.8'}
+
   mediaquery-text@1.2.0:
     resolution: {integrity: sha512-cJyRqgYQi+hsYhRkyd5le0s4LsEPvOB7r+6X3jdEELNqVlM9mRIgyUPg9BzF+PuTqQH1ZekgIjYVOeWSXWq35Q==}
 
+  memoize@10.0.0:
+    resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==}
+    engines: {node: '>=18'}
+
   memory-pager@1.5.0:
     resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==}
 
@@ -4569,6 +5282,11 @@ packages:
     engines: {node: '>=4'}
     hasBin: true
 
+  mime@2.6.0:
+    resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
+    engines: {node: '>=4.0.0'}
+    hasBin: true
+
   mimic-fn@2.1.0:
     resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
     engines: {node: '>=6'}
@@ -4577,10 +5295,18 @@ packages:
     resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
     engines: {node: '>=12'}
 
+  mimic-function@5.0.1:
+    resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+    engines: {node: '>=18'}
+
   mimic-response@3.1.0:
     resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
     engines: {node: '>=10'}
 
+  min-indent@1.0.1:
+    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+    engines: {node: '>=4'}
+
   minimatch@3.1.2:
     resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
 
@@ -4588,6 +5314,10 @@ packages:
     resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==}
     engines: {node: '>=16 || 14 >=14.17'}
 
+  minimatch@9.0.3:
+    resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+    engines: {node: '>=16 || 14 >=14.17'}
+
   minimatch@9.0.5:
     resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
     engines: {node: '>=16 || 14 >=14.17'}
@@ -4606,6 +5336,11 @@ packages:
   mkdirp-classic@0.5.3:
     resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
 
+  mkdirp@3.0.1:
+    resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
+    engines: {node: '>=10'}
+    hasBin: true
+
   module-details-from-path@1.0.3:
     resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
 
@@ -4668,6 +5403,10 @@ packages:
     engines: {npm: '>=1.4.0'}
     hasBin: true
 
+  mustache@4.2.0:
+    resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
+    hasBin: true
+
   nan@2.22.0:
     resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==}
 
@@ -4732,10 +5471,17 @@ packages:
   node-releases@2.0.19:
     resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
 
+  normalize-package-data@2.5.0:
+    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
   normalize-path@3.0.0:
     resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
     engines: {node: '>=0.10.0'}
 
+  normalize-url@8.0.1:
+    resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
+    engines: {node: '>=14.16'}
+
   npm-run-path@4.0.1:
     resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
     engines: {node: '>=8'}
@@ -4744,6 +5490,10 @@ packages:
     resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
 
+  npm-run-path@6.0.0:
+    resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
+    engines: {node: '>=18'}
+
   nth-check@2.1.1:
     resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
 
@@ -4789,6 +5539,10 @@ packages:
     resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
     engines: {node: '>= 0.4'}
 
+  on-exit-leak-free@2.1.2:
+    resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
+    engines: {node: '>=14.0.0'}
+
   on-finished@2.4.1:
     resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
     engines: {node: '>= 0.8'}
@@ -4811,6 +5565,10 @@ packages:
     resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
     engines: {node: '>=12'}
 
+  onetime@7.0.0:
+    resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+    engines: {node: '>=18'}
+
   oppa@0.4.0:
     resolution: {integrity: sha512-DFvM3+F+rB/igo3FRnkDWitjZgBH9qZAn68IacYHsqbZBKwuTA+LdD4zSJiQtgQpWq7M08we5FlGAVHz0yW7PQ==}
     engines: {node: '>=10'}
@@ -4826,6 +5584,14 @@ packages:
     resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
     engines: {node: '>= 0.4'}
 
+  p-event@6.0.1:
+    resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==}
+    engines: {node: '>=16.17'}
+
+  p-filter@4.1.0:
+    resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==}
+    engines: {node: '>=18'}
+
   p-limit@2.3.0:
     resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
     engines: {node: '>=6'}
@@ -4854,10 +5620,21 @@ packages:
     resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
     engines: {node: '>=10'}
 
+  p-map@7.0.3:
+    resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==}
+    engines: {node: '>=18'}
+
+  p-timeout@6.1.4:
+    resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==}
+    engines: {node: '>=14.16'}
+
   p-try@2.2.0:
     resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
     engines: {node: '>=6'}
 
+  package-manager-detector@0.2.8:
+    resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==}
+
   pako@0.2.9:
     resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
 
@@ -4868,10 +5645,18 @@ packages:
     resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
     engines: {node: '>=6'}
 
+  parse-imports@2.2.1:
+    resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==}
+    engines: {node: '>= 18'}
+
   parse-json@5.2.0:
     resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
     engines: {node: '>=8'}
 
+  parse-ms@4.0.0:
+    resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
+    engines: {node: '>=18'}
+
   parse-srcset@1.0.2:
     resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
 
@@ -4915,6 +5700,9 @@ packages:
     resolution: {integrity: sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==}
     engines: {node: '>= 0.4.0'}
 
+  path-browserify@1.0.1:
+    resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
   path-exists@4.0.0:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     engines: {node: '>=8'}
@@ -4956,6 +5744,10 @@ packages:
     resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
     engines: {node: '>=8'}
 
+  path-type@5.0.0:
+    resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
+    engines: {node: '>=12'}
+
   pathval@2.0.0:
     resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
     engines: {node: '>= 14.16'}
@@ -4966,6 +5758,10 @@ packages:
   pdfkit@0.16.0:
     resolution: {integrity: sha512-oXMxkIqXH4uTAtohWdYA41i/f6i2ReB78uhgizN8H4hJEpgR3/Xjy3iu2InNAuwCIabN3PVs8P1D6G4+W2NH0A==}
 
+  peek-readable@5.3.1:
+    resolution: {integrity: sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==}
+    engines: {node: '>=14.16'}
+
   pend@1.2.0:
     resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
 
@@ -5001,6 +5797,20 @@ packages:
     resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
     engines: {node: '>=0.10.0'}
 
+  pino-abstract-transport@2.0.0:
+    resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==}
+
+  pino-pretty@13.0.0:
+    resolution: {integrity: sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==}
+    hasBin: true
+
+  pino-std-serializers@7.0.0:
+    resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
+
+  pino@9.6.0:
+    resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==}
+    hasBin: true
+
   pkg-dir@4.2.0:
     resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
     engines: {node: '>=8'}
@@ -5070,6 +5880,13 @@ packages:
     resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
     engines: {node: '>= 0.8.0'}
 
+  prettier-edgejs@0.2.34:
+    resolution: {integrity: sha512-rIQklQGc3bvFpfJIBZ3lwslSBEFGkoOg+BYeJT5l3P0k+ZWdHsDE05yEeyUG8qgt8ACW48KAOX3xKp3/zoQWTg==}
+
+  prettier-linter-helpers@1.0.0:
+    resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+    engines: {node: '>=6.0.0'}
+
   prettier@3.3.3:
     resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
     engines: {node: '>=14'}
@@ -5092,6 +5909,20 @@ packages:
     resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
 
+  pretty-hrtime@1.0.3:
+    resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
+    engines: {node: '>= 0.8'}
+
+  pretty-ms@9.2.0:
+    resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==}
+    engines: {node: '>=18'}
+
+  printable-characters@1.0.42:
+    resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
+
+  process-warning@4.0.1:
+    resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==}
+
   process@0.11.10:
     resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
     engines: {node: '>= 0.6.0'}
@@ -5165,6 +5996,9 @@ packages:
   queue-microtask@1.2.3:
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
 
+  quick-format-unescaped@4.0.4:
+    resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
+
   quill-delta@3.6.3:
     resolution: {integrity: sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==}
     engines: {node: '>=0.10'}
@@ -5248,6 +6082,14 @@ packages:
     resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
     engines: {node: '>=0.10.0'}
 
+  read-pkg-up@7.0.1:
+    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+    engines: {node: '>=8'}
+
+  read-pkg@5.2.0:
+    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+    engines: {node: '>=8'}
+
   readable-stream@3.6.2:
     resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
     engines: {node: '>= 6'}
@@ -5256,9 +6098,20 @@ packages:
     resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
     engines: {node: '>=8.10.0'}
 
+  readdirp@4.1.1:
+    resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==}
+    engines: {node: '>= 14.18.0'}
+
+  real-require@0.2.0:
+    resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
+    engines: {node: '>= 12.13.0'}
+
   reflect-metadata@0.1.14:
     resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==}
 
+  reflect-metadata@0.2.2:
+    resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
+
   reflect.getprototypeof@1.0.10:
     resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
     engines: {node: '>= 0.4'}
@@ -5266,10 +6119,18 @@ packages:
   regenerator-runtime@0.14.1:
     resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
 
+  regexp-tree@0.1.27:
+    resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
+    hasBin: true
+
   regexp.prototype.flags@1.5.4:
     resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
     engines: {node: '>= 0.4'}
 
+  regjsparser@0.10.0:
+    resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
+    hasBin: true
+
   remote-content@4.0.1:
     resolution: {integrity: sha512-W2lDnjK4k1vAJg7UZArH/rkNYJqZuteHkX1jS7tO9TJUiLhDcu2Ejvj97gK/XbZNDhzld0sn11OW8vihin4cAg==}
 
@@ -5336,6 +6197,10 @@ packages:
     resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
     engines: {node: '>=8'}
 
+  restore-cursor@5.1.0:
+    resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+    engines: {node: '>=18'}
+
   restructure@3.0.2:
     resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==}
 
@@ -5378,6 +6243,9 @@ packages:
     resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
     engines: {node: '>=0.4'}
 
+  safe-buffer@5.1.2:
+    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
   safe-buffer@5.2.1:
     resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
 
@@ -5389,6 +6257,9 @@ packages:
     resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
     engines: {node: '>= 0.4'}
 
+  safe-regex@2.1.1:
+    resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
+
   safe-stable-stringify@2.5.0:
     resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
     engines: {node: '>=10'}
@@ -5416,6 +6287,12 @@ packages:
   sdp@3.2.0:
     resolution: {integrity: sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==}
 
+  secure-json-parse@2.7.0:
+    resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
+
+  secure-json-parse@3.0.2:
+    resolution: {integrity: sha512-H6nS2o8bWfpFEV6U38sOSjS7bTbdgbCGU9wEM6W14P5H0QOsz94KCusifV44GpHDTu2nqZbuDNhTzu+mjDSw1w==}
+
   semver@5.7.2:
     resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
     hasBin: true
@@ -5447,6 +6324,9 @@ packages:
   set-blocking@2.0.0:
     resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
 
+  set-cookie-parser@2.7.1:
+    resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
+
   set-function-length@1.2.2:
     resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
     engines: {node: '>= 0.4'}
@@ -5528,10 +6408,17 @@ packages:
   sinon@19.0.2:
     resolution: {integrity: sha512-euuToqM+PjO4UgXeLETsfQiuoyPXlqFezr6YZDFwHR3t4qaX0fZUe1MfPMznTL5f8BWrVS89KduLdMUsxFCO6g==}
 
+  slash@3.0.0:
+    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+    engines: {node: '>=8'}
+
   slash@5.1.0:
     resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
     engines: {node: '>=14.16'}
 
+  slashes@3.0.12:
+    resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
+
   slice-ansi@3.0.0:
     resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
     engines: {node: '>=8'}
@@ -5540,6 +6427,14 @@ packages:
     resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
     engines: {node: '>=10'}
 
+  slice-ansi@5.0.0:
+    resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+    engines: {node: '>=12'}
+
+  slice-ansi@7.1.0:
+    resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
+    engines: {node: '>=18'}
+
   slick@1.12.2:
     resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==}
 
@@ -5547,10 +6442,17 @@ packages:
     resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==}
     engines: {node: '>=8.0.0'}
 
+  sonic-boom@4.2.0:
+    resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==}
+
   source-map-js@1.2.1:
     resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
     engines: {node: '>=0.10.0'}
 
+  source-map-resolve@0.6.0:
+    resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==}
+    deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+
   source-map-support@0.5.21:
     resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
 
@@ -5565,10 +6467,30 @@ packages:
   sparse-bitfield@3.0.3:
     resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==}
 
+  spdx-correct@3.2.0:
+    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+  spdx-exceptions@2.5.0:
+    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+  spdx-expression-parse@3.0.1:
+    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+  spdx-license-ids@3.0.21:
+    resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}
+
   specificity@0.4.1:
     resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==}
     hasBin: true
 
+  split-lines@3.0.0:
+    resolution: {integrity: sha512-d0TpRBL/VfKDXsk8JxPF7zgF5pCUDdBMSlEL36xBgVeaX448t+yGXcJaikUyzkoKOJ0l6KpMfygzJU9naIuivw==}
+    engines: {node: '>=12'}
+
+  split2@4.2.0:
+    resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
+    engines: {node: '>= 10.x'}
+
   sshpk@1.18.0:
     resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==}
     engines: {node: '>=0.10.0'}
@@ -5581,6 +6503,9 @@ packages:
     resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==}
     engines: {node: '>=6'}
 
+  stacktracey@2.1.8:
+    resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
+
   statuses@2.0.1:
     resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
     engines: {node: '>= 0.8'}
@@ -5651,6 +6576,14 @@ packages:
     resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
     engines: {node: '>=12'}
 
+  strip-final-newline@4.0.0:
+    resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
+    engines: {node: '>=18'}
+
+  strip-indent@3.0.0:
+    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+    engines: {node: '>=8'}
+
   strip-json-comments@2.0.1:
     resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
     engines: {node: '>=0.10.0'}
@@ -5659,6 +6592,10 @@ packages:
     resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
     engines: {node: '>=8'}
 
+  strtok3@9.1.1:
+    resolution: {integrity: sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==}
+    engines: {node: '>=16'}
+
   style-data@2.0.2:
     resolution: {integrity: sha512-5BZRqj2IME+3e/gLOFvFQJ65qq+Wn81h1Y30HTXjE9TNZSpJ3DQZnd1xlqXM+okBj5IFuorFttfGwUg7oCv4yQ==}
 
@@ -5678,6 +6615,10 @@ packages:
   stylis@4.2.0:
     resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
 
+  superagent@10.1.1:
+    resolution: {integrity: sha512-9pIwrHrOj3uAnqg9gDlW7EA2xv+N5au/dSM0kM22HTqmUu8jBxNT+8uA7tA3UoCnmiqzpSbu8rasIUZvbyamMQ==}
+    engines: {node: '>=14.18.0'}
+
   supports-color@10.0.0:
     resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==}
     engines: {node: '>=18'}
@@ -5703,6 +6644,14 @@ packages:
     peerDependencies:
       react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
 
+  synckit@0.6.2:
+    resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==}
+    engines: {node: '>=12.20'}
+
+  synckit@0.9.2:
+    resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
+    engines: {node: ^14.18.0 || >=16.0.0}
+
   system-architecture@0.1.0:
     resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
     engines: {node: '>=18'}
@@ -5718,6 +6667,14 @@ packages:
     resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
     engines: {node: '>=6'}
 
+  tempura@0.4.1:
+    resolution: {integrity: sha512-NQ4Cs23jM6UUp3CcS5vjmyjTC6dtA5EsflBG2cyG0wZvP65AV26tJ920MGvTRYIImCY13RBpOhc7q4/pu+FG5A==}
+    engines: {node: '>=10'}
+
+  terminal-size@4.0.0:
+    resolution: {integrity: sha512-rcdty1xZ2/BkWa4ANjWRp4JGpda2quksXIHgn5TMjNBPZfwzJIgR68DKfSYiTL+CZWowDX/sbOo5ME/FRURvYQ==}
+    engines: {node: '>=18'}
+
   terser-webpack-plugin@5.3.11:
     resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==}
     engines: {node: '>= 10.13.0'}
@@ -5742,6 +6699,9 @@ packages:
   text-hex@1.0.0:
     resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
 
+  thread-stream@3.1.0:
+    resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==}
+
   throttleit@1.0.1:
     resolution: {integrity: sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==}
 
@@ -5755,6 +6715,9 @@ packages:
   tiny-inflate@1.0.3:
     resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==}
 
+  tinyexec@0.3.2:
+    resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
+
   title@4.0.1:
     resolution: {integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==}
     hasBin: true
@@ -5766,6 +6729,10 @@ packages:
     resolution: {integrity: sha512-/h4bVmuEMm57c2uCiAf1Q9mlQk7cA22m+1Bu0K92vUUtTVT9D4mOFWD9r4WQuTULcG9eeZtNKhLl0Il1LdKGog==}
     hasBin: true
 
+  tmp-cache@1.1.0:
+    resolution: {integrity: sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==}
+    engines: {node: '>=6'}
+
   tmp@0.2.3:
     resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
     engines: {node: '>=14.14'}
@@ -5778,6 +6745,10 @@ packages:
     resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
     engines: {node: '>=0.6'}
 
+  token-types@6.0.0:
+    resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==}
+    engines: {node: '>=14.16'}
+
   tough-cookie@2.5.0:
     resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
     engines: {node: '>=0.8'}
@@ -5804,12 +6775,21 @@ packages:
   truncatise@0.0.8:
     resolution: {integrity: sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==}
 
+  ts-api-utils@1.4.3:
+    resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
+    engines: {node: '>=16'}
+    peerDependencies:
+      typescript: '>=4.2.0'
+
   ts-api-utils@2.0.0:
     resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
     engines: {node: '>=18.12'}
     peerDependencies:
       typescript: '>=4.8.4'
 
+  ts-morph@23.0.0:
+    resolution: {integrity: sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==}
+
   tsconfig-paths@3.15.0:
     resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
 
@@ -5851,10 +6831,18 @@ packages:
     resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
     engines: {node: '>=10'}
 
+  type-fest@0.6.0:
+    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+    engines: {node: '>=8'}
+
   type-fest@0.7.1:
     resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
     engines: {node: '>=8'}
 
+  type-fest@0.8.1:
+    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+    engines: {node: '>=8'}
+
   type-fest@4.33.0:
     resolution: {integrity: sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==}
     engines: {node: '>=16'}
@@ -5915,6 +6903,10 @@ packages:
   uid2@0.0.4:
     resolution: {integrity: sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==}
 
+  uint8array-extras@1.4.0:
+    resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==}
+    engines: {node: '>=18'}
+
   unbox-primitive@1.1.0:
     resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
     engines: {node: '>= 0.4'}
@@ -5935,6 +6927,14 @@ packages:
   unicode-trie@2.0.0:
     resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==}
 
+  unicorn-magic@0.1.0:
+    resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+    engines: {node: '>=18'}
+
+  unicorn-magic@0.3.0:
+    resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
+    engines: {node: '>=18'}
+
   universalify@2.0.1:
     resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
     engines: {node: '>= 10.0.0'}
@@ -5987,6 +6987,9 @@ packages:
     resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
     hasBin: true
 
+  validate-npm-package-license@3.0.4:
+    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
   validator@13.12.0:
     resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==}
     engines: {node: '>= 0.10'}
@@ -6136,6 +7139,10 @@ packages:
     resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
     engines: {node: '>=10'}
 
+  wrap-ansi@9.0.0:
+    resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
+    engines: {node: '>=18'}
+
   wrappy@1.0.2:
     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
 
@@ -6210,10 +7217,20 @@ packages:
     resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==}
     engines: {node: '>=12.20'}
 
+  yoctocolors@2.1.1:
+    resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==}
+    engines: {node: '>=18'}
+
   youch-core@0.3.1:
     resolution: {integrity: sha512-KOAmtABz17fgK+uBBJYIzaPpIgX+JgTRgY4t3zXH18akc5rRtFkRmcNTMCuSxLdbOJDY9+T/O3nyA/EQuN4EWA==}
     engines: {node: '>=20.6.0'}
 
+  youch-terminal@2.2.3:
+    resolution: {integrity: sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==}
+
+  youch@3.3.4:
+    resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==}
+
   youch@4.1.0-beta.5:
     resolution: {integrity: sha512-92+bvKtAjm18S2o+IP0aLBpLtzY332Ji9geNLp07cLgHsK3aHVjWrg2eyE5LIKMv6j+GWu+Ehx4My7BTXxMbsA==}
     engines: {node: '>=20.6.0'}
@@ -6250,11 +7267,250 @@ packages:
 
 snapshots:
 
+  '@adonisjs/ace@13.3.0':
+    dependencies:
+      '@poppinss/cliui': 6.4.2
+      '@poppinss/hooks': 7.2.5
+      '@poppinss/macroable': 1.0.4
+      '@poppinss/prompts': 3.1.4
+      '@poppinss/utils': 6.9.2
+      fastest-levenshtein: 1.0.16
+      jsonschema: 1.5.0
+      string-width: 7.2.0
+      yargs-parser: 21.1.1
+      youch: 3.3.4
+      youch-terminal: 2.2.3
+
+  '@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3)':
+    dependencies:
+      '@adonisjs/config': 5.0.2
+      '@adonisjs/fold': 10.1.3
+      '@poppinss/hooks': 7.2.5
+      '@poppinss/macroable': 1.0.4
+      '@poppinss/utils': 6.9.2
+      glob-parent: 6.0.2
+      tempura: 0.4.1
+
+  '@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3)':
+    dependencies:
+      '@adonisjs/env': 6.1.1
+      '@antfu/install-pkg': 0.4.1
+      '@poppinss/chokidar-ts': 4.1.5(typescript@5.7.3)
+      '@poppinss/cliui': 6.4.2
+      '@poppinss/hooks': 7.2.5
+      '@poppinss/utils': 6.9.2
+      cpy: 11.1.0
+      dedent: 1.5.3(babel-plugin-macros@3.1.0)
+      execa: 9.5.2
+      fast-glob: 3.3.3
+      get-port: 7.1.0
+      junk: 4.0.1
+      picomatch: 4.0.2
+      pretty-hrtime: 1.0.3
+      slash: 5.1.0
+      ts-morph: 23.0.0
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - babel-plugin-macros
+
+  '@adonisjs/auth@9.3.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))(@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0))(@japa/plugin-adonisjs@4.0.0(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))(@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0))(@japa/runner@4.1.0))':
+    dependencies:
+      '@adonisjs/core': 6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0)
+      '@adonisjs/presets': 2.6.4(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))
+      '@poppinss/utils': 6.9.2
+      basic-auth: 2.0.1
+    optionalDependencies:
+      '@japa/api-client': 3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0)
+      '@japa/plugin-adonisjs': 4.0.0(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))(@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0))(@japa/runner@4.1.0)
+    transitivePeerDependencies:
+      - '@adonisjs/assembler'
+
+  '@adonisjs/bodyparser@10.0.2(@adonisjs/http-server@7.4.0(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)(@adonisjs/logger@6.0.5))':
+    dependencies:
+      '@adonisjs/http-server': 7.4.0(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)(@adonisjs/logger@6.0.5)
+      '@paralleldrive/cuid2': 2.2.2
+      '@poppinss/macroable': 1.0.4
+      '@poppinss/multiparty': 2.0.1
+      '@poppinss/utils': 6.9.2
+      '@types/qs': 6.9.18
+      bytes: 3.1.2
+      file-type: 19.6.0
+      inflation: 2.1.0
+      media-typer: 1.1.0
+      qs: 6.14.0
+      raw-body: 2.5.2
+
+  '@adonisjs/config@5.0.2':
+    dependencies:
+      '@poppinss/utils': 6.9.2
+
+  '@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0)':
+    dependencies:
+      '@adonisjs/ace': 13.3.0
+      '@adonisjs/application': 8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3)
+      '@adonisjs/bodyparser': 10.0.2(@adonisjs/http-server@7.4.0(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)(@adonisjs/logger@6.0.5))
+      '@adonisjs/config': 5.0.2
+      '@adonisjs/encryption': 6.0.2
+      '@adonisjs/env': 6.1.1
+      '@adonisjs/events': 9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)
+      '@adonisjs/fold': 10.1.3
+      '@adonisjs/hash': 9.0.5
+      '@adonisjs/health': 2.0.0
+      '@adonisjs/http-server': 7.4.0(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)(@adonisjs/logger@6.0.5)
+      '@adonisjs/logger': 6.0.5
+      '@adonisjs/repl': 4.1.0
+      '@antfu/install-pkg': 1.0.0
+      '@paralleldrive/cuid2': 2.2.2
+      '@poppinss/colors': 4.1.4
+      '@poppinss/dumper': 0.6.2
+      '@poppinss/macroable': 1.0.4
+      '@poppinss/utils': 6.9.2
+      '@sindresorhus/is': 7.0.1
+      '@types/he': 1.2.3
+      error-stack-parser-es: 1.0.5
+      he: 1.2.0
+      parse-imports: 2.2.1
+      pretty-hrtime: 1.0.3
+      string-width: 7.2.0
+      youch: 3.3.4
+      youch-terminal: 2.2.3
+    optionalDependencies:
+      '@adonisjs/assembler': 7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3)
+      '@vinejs/vine': 3.0.0
+
+  '@adonisjs/cors@2.2.1(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))':
+    dependencies:
+      '@adonisjs/core': 6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0)
+
+  '@adonisjs/encryption@6.0.2':
+    dependencies:
+      '@poppinss/utils': 6.9.2
+
+  '@adonisjs/env@6.1.1':
+    dependencies:
+      '@poppinss/utils': 6.9.2
+      '@poppinss/validator-lite': 2.0.1
+      dotenv: 16.4.7
+      split-lines: 3.0.0
+
+  '@adonisjs/eslint-config@1.3.0(@types/eslint@9.6.1)(eslint@9.18.0)(prettier@3.4.2)(typescript@5.7.3)':
+    dependencies:
+      '@adonisjs/eslint-plugin': 1.3.0(eslint@9.18.0)(typescript@5.7.3)
+      '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.18.0)(typescript@5.7.3))(eslint@9.18.0)(typescript@5.7.3)
+      '@typescript-eslint/parser': 6.21.0(eslint@9.18.0)(typescript@5.7.3)
+      eslint: 9.18.0
+      eslint-config-prettier: 8.10.0(eslint@9.18.0)
+      eslint-plugin-jsonc: 2.18.2(eslint@9.18.0)
+      eslint-plugin-prettier: 5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@8.10.0(eslint@9.18.0))(eslint@9.18.0)(prettier@3.4.2)
+      eslint-plugin-unicorn: 47.0.0(eslint@9.18.0)
+      jsonc-eslint-parser: 2.4.0
+      prettier: 3.4.2
+    transitivePeerDependencies:
+      - '@eslint/json'
+      - '@types/eslint'
+      - supports-color
+      - typescript
+
+  '@adonisjs/eslint-plugin@1.3.0(eslint@9.18.0)(typescript@5.7.3)':
+    dependencies:
+      '@typescript-eslint/utils': 6.21.0(eslint@9.18.0)(typescript@5.7.3)
+    transitivePeerDependencies:
+      - eslint
+      - supports-color
+      - typescript
+
+  '@adonisjs/events@9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)':
+    dependencies:
+      '@adonisjs/application': 8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3)
+      '@adonisjs/fold': 10.1.3
+      '@poppinss/utils': 6.9.2
+      '@sindresorhus/is': 6.3.1
+      emittery: 1.0.3
+
+  '@adonisjs/fold@10.1.3':
+    dependencies:
+      '@poppinss/utils': 6.9.2
+
+  '@adonisjs/hash@9.0.5':
+    dependencies:
+      '@phc/format': 1.0.0
+      '@poppinss/utils': 6.9.2
+
+  '@adonisjs/health@2.0.0':
+    dependencies:
+      '@poppinss/utils': 6.9.2
+      check-disk-space: 3.4.0
+
+  '@adonisjs/http-server@7.4.0(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)(@adonisjs/logger@6.0.5)':
+    dependencies:
+      '@adonisjs/application': 8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3)
+      '@adonisjs/encryption': 6.0.2
+      '@adonisjs/events': 9.0.2(@adonisjs/application@8.3.1(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.3))(@adonisjs/fold@10.1.3)
+      '@adonisjs/fold': 10.1.3
+      '@adonisjs/logger': 6.0.5
+      '@paralleldrive/cuid2': 2.2.2
+      '@poppinss/macroable': 1.0.4
+      '@poppinss/matchit': 3.1.2
+      '@poppinss/middleware': 3.2.5
+      '@poppinss/utils': 6.9.2
+      '@sindresorhus/is': 7.0.1
+      accepts: 1.3.8
+      content-disposition: 0.5.4
+      cookie: 1.0.2
+      destroy: 1.2.0
+      encodeurl: 2.0.0
+      etag: 1.8.1
+      fresh: 0.5.2
+      mime-types: 2.1.35
+      on-finished: 2.4.1
+      proxy-addr: 2.0.7
+      qs: 6.14.0
+      tmp-cache: 1.1.0
+      type-is: 1.6.18
+      vary: 1.1.2
+      youch: 3.3.4
+
+  '@adonisjs/logger@6.0.5':
+    dependencies:
+      '@poppinss/utils': 6.9.2
+      abstract-logging: 2.0.1
+      pino: 9.6.0
+
+  '@adonisjs/presets@2.6.4(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))':
+    dependencies:
+      '@adonisjs/core': 6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0)
+      '@poppinss/utils': 6.9.2
+    optionalDependencies:
+      '@adonisjs/assembler': 7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3)
+
+  '@adonisjs/prettier-config@1.4.0':
+    dependencies:
+      prettier-edgejs: 0.2.34
+
+  '@adonisjs/repl@4.1.0':
+    dependencies:
+      '@poppinss/colors': 4.1.4
+      string-width: 7.2.0
+
+  '@adonisjs/tsconfig@1.4.0': {}
+
   '@ampproject/remapping@2.3.0':
     dependencies:
       '@jridgewell/gen-mapping': 0.3.8
       '@jridgewell/trace-mapping': 0.3.25
 
+  '@antfu/install-pkg@0.4.1':
+    dependencies:
+      package-manager-detector: 0.2.8
+      tinyexec: 0.3.2
+
+  '@antfu/install-pkg@1.0.0':
+    dependencies:
+      package-manager-detector: 0.2.8
+      tinyexec: 0.3.2
+
+  '@arr/every@1.0.1': {}
+
   '@babel/code-frame@7.26.2':
     dependencies:
       '@babel/helper-validator-identifier': 7.25.9
@@ -6454,6 +7710,23 @@ snapshots:
       - debug
       - supports-color
 
+  '@chevrotain/cst-dts-gen@11.0.3':
+    dependencies:
+      '@chevrotain/gast': 11.0.3
+      '@chevrotain/types': 11.0.3
+      lodash-es: 4.17.21
+
+  '@chevrotain/gast@11.0.3':
+    dependencies:
+      '@chevrotain/types': 11.0.3
+      lodash-es: 4.17.21
+
+  '@chevrotain/regexp-to-ast@11.0.3': {}
+
+  '@chevrotain/types@11.0.3': {}
+
+  '@chevrotain/utils@11.0.3': {}
+
   '@colors/colors@1.5.0':
     optional: true
 
@@ -6968,6 +8241,20 @@ snapshots:
   '@img/sharp-win32-x64@0.33.5':
     optional: true
 
+  '@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0)':
+    dependencies:
+      '@japa/runner': 4.1.0
+      '@poppinss/hooks': 7.2.5
+      '@poppinss/macroable': 1.0.4
+      '@types/superagent': 8.1.9
+      cookie: 1.0.2
+      set-cookie-parser: 2.7.1
+      superagent: 10.1.1
+    optionalDependencies:
+      '@japa/assert': 4.0.1(@japa/runner@4.1.0)
+    transitivePeerDependencies:
+      - supports-color
+
   '@japa/assert@4.0.1(@japa/runner@4.1.0)':
     dependencies:
       '@japa/runner': 4.1.0
@@ -6993,6 +8280,13 @@ snapshots:
       supports-color: 10.0.0
       youch: 4.1.0-beta.5
 
+  '@japa/plugin-adonisjs@4.0.0(@adonisjs/core@6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0))(@japa/api-client@3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0))(@japa/runner@4.1.0)':
+    dependencies:
+      '@adonisjs/core': 6.17.1(@adonisjs/assembler@7.8.2(babel-plugin-macros@3.1.0)(typescript@5.7.3))(@vinejs/vine@3.0.0)
+      '@japa/runner': 4.1.0
+    optionalDependencies:
+      '@japa/api-client': 3.0.3(@japa/assert@4.0.1(@japa/runner@4.1.0))(@japa/runner@4.1.0)
+
   '@japa/runner@4.1.0':
     dependencies:
       '@japa/core': 10.3.0
@@ -7329,6 +8623,8 @@ snapshots:
   '@next/swc-win32-x64-msvc@15.1.5':
     optional: true
 
+  '@noble/hashes@1.7.1': {}
+
   '@nodelib/fs.scandir@2.1.5':
     dependencies:
       '@nodelib/fs.stat': 2.0.5
@@ -7621,8 +8917,38 @@ snapshots:
       '@opentelemetry/api': 1.9.0
       '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0)
 
+  '@paralleldrive/cuid2@2.2.2':
+    dependencies:
+      '@noble/hashes': 1.7.1
+
+  '@phc/format@1.0.0': {}
+
+  '@pkgr/core@0.1.1': {}
+
   '@popperjs/core@2.11.8': {}
 
+  '@poppinss/chokidar-ts@4.1.5(typescript@5.7.3)':
+    dependencies:
+      chokidar: 4.0.3
+      emittery: 1.0.3
+      memoize: 10.0.0
+      picomatch: 4.0.2
+      slash: 5.1.0
+      typescript: 5.7.3
+
+  '@poppinss/cliui@6.4.2':
+    dependencies:
+      '@poppinss/colors': 4.1.4
+      cli-boxes: 4.0.1
+      cli-table3: 0.6.5
+      cli-truncate: 4.0.0
+      log-update: 6.1.0
+      pretty-hrtime: 1.0.3
+      string-width: 7.2.0
+      supports-color: 10.0.0
+      terminal-size: 4.0.0
+      wordwrap: 1.0.0
+
   '@poppinss/colors@4.1.4':
     dependencies:
       kleur: 4.1.5
@@ -7639,6 +8965,27 @@ snapshots:
 
   '@poppinss/macroable@1.0.4': {}
 
+  '@poppinss/matchit@3.1.2':
+    dependencies:
+      '@arr/every': 1.0.1
+
+  '@poppinss/middleware@3.2.5': {}
+
+  '@poppinss/multiparty@2.0.1':
+    dependencies:
+      http-errors: 2.0.0
+      safe-buffer: 5.2.1
+      uid-safe: 2.1.5
+
+  '@poppinss/object-builder@1.1.0': {}
+
+  '@poppinss/prompts@3.1.4':
+    dependencies:
+      '@poppinss/colors': 4.1.4
+      '@poppinss/exception': 1.2.0
+      '@poppinss/object-builder': 1.1.0
+      enquirer: 2.4.1
+
   '@poppinss/string@1.2.0':
     dependencies:
       '@lukeed/ms': 2.0.2
@@ -7650,6 +8997,17 @@ snapshots:
       slugify: 1.6.6
       truncatise: 0.0.8
 
+  '@poppinss/utils@6.9.2':
+    dependencies:
+      '@poppinss/exception': 1.2.0
+      '@poppinss/object-builder': 1.1.0
+      '@poppinss/string': 1.2.0
+      flattie: 1.1.1
+      safe-stable-stringify: 2.5.0
+      secure-json-parse: 3.0.2
+
+  '@poppinss/validator-lite@2.0.1': {}
+
   '@prisma/instrumentation@5.22.0':
     dependencies:
       '@opentelemetry/api': 1.9.0
@@ -7802,6 +9160,8 @@ snapshots:
 
   '@rtsao/scc@1.1.0': {}
 
+  '@sec-ant/readable-stream@0.4.1': {}
+
   '@sendgrid/client@6.5.5':
     dependencies:
       '@sendgrid/helpers': 6.5.5
@@ -8068,8 +9428,14 @@ snapshots:
 
   '@sinclair/typebox@0.27.8': {}
 
+  '@sindresorhus/is@6.3.1': {}
+
   '@sindresorhus/is@7.0.1': {}
 
+  '@sindresorhus/merge-streams@2.3.0': {}
+
+  '@sindresorhus/merge-streams@4.0.0': {}
+
   '@sinonjs/commons@3.0.1':
     dependencies:
       type-detect: 4.0.8
@@ -8114,6 +9480,8 @@ snapshots:
     optionalDependencies:
       '@types/react': 19.0.7
 
+  '@tokenizer/token@0.3.0': {}
+
   '@toolpad/core@0.12.0(bfggwaiq2usozigr3z2yd6xkzu)':
     dependencies:
       '@babel/runtime': 7.26.0
@@ -8149,6 +9517,13 @@ snapshots:
       yaml: 2.5.1
       yaml-diff-patch: 2.0.0
 
+  '@ts-morph/common@0.24.0':
+    dependencies:
+      fast-glob: 3.3.3
+      minimatch: 9.0.5
+      mkdirp: 3.0.1
+      path-browserify: 1.0.1
+
   '@tsconfig/cypress@1.0.2': {}
 
   '@tsconfig/next@2.0.3': {}
@@ -8210,6 +9585,8 @@ snapshots:
     dependencies:
       '@types/node': 22.10.7
 
+  '@types/cookiejar@2.1.5': {}
+
   '@types/cors@2.8.17':
     dependencies:
       '@types/node': 22.10.7
@@ -8255,6 +9632,8 @@ snapshots:
       '@types/qs': 6.9.18
       '@types/serve-static': 1.15.7
 
+  '@types/he@1.2.3': {}
+
   '@types/http-errors@2.0.4': {}
 
   '@types/json-schema@7.0.15': {}
@@ -8265,6 +9644,8 @@ snapshots:
     dependencies:
       '@types/node': 22.10.7
 
+  '@types/methods@1.1.4': {}
+
   '@types/mime@1.3.5': {}
 
   '@types/mustache@0.8.32': {}
@@ -8279,6 +9660,8 @@ snapshots:
     dependencies:
       undici-types: 6.20.0
 
+  '@types/normalize-package-data@2.4.4': {}
+
   '@types/oauth@0.9.6':
     dependencies:
       '@types/node': 22.10.7
@@ -8384,6 +9767,8 @@ snapshots:
     dependencies:
       htmlparser2: 8.0.2
 
+  '@types/semver@7.5.8': {}
+
   '@types/send@0.17.4':
     dependencies:
       '@types/mime': 1.3.5
@@ -8414,6 +9799,13 @@ snapshots:
 
   '@types/string-similarity@4.0.2': {}
 
+  '@types/superagent@8.1.9':
+    dependencies:
+      '@types/cookiejar': 2.1.5
+      '@types/methods': 1.1.4
+      '@types/node': 22.10.7
+      form-data: 4.0.1
+
   '@types/tedious@4.0.14':
     dependencies:
       '@types/node': 22.10.7
@@ -8435,6 +9827,26 @@ snapshots:
       '@types/node': 22.10.7
     optional: true
 
+  '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.18.0)(typescript@5.7.3))(eslint@9.18.0)(typescript@5.7.3)':
+    dependencies:
+      '@eslint-community/regexpp': 4.12.1
+      '@typescript-eslint/parser': 6.21.0(eslint@9.18.0)(typescript@5.7.3)
+      '@typescript-eslint/scope-manager': 6.21.0
+      '@typescript-eslint/type-utils': 6.21.0(eslint@9.18.0)(typescript@5.7.3)
+      '@typescript-eslint/utils': 6.21.0(eslint@9.18.0)(typescript@5.7.3)
+      '@typescript-eslint/visitor-keys': 6.21.0
+      debug: 4.4.0(supports-color@8.1.1)
+      eslint: 9.18.0
+      graphemer: 1.4.0
+      ignore: 5.3.2
+      natural-compare: 1.4.0
+      semver: 7.6.3
+      ts-api-utils: 1.4.3(typescript@5.7.3)
+    optionalDependencies:
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - supports-color
+
   '@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0)(typescript@5.7.3))(eslint@9.18.0)(typescript@5.7.3)':
     dependencies:
       '@eslint-community/regexpp': 4.12.1
@@ -8452,6 +9864,19 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@typescript-eslint/parser@6.21.0(eslint@9.18.0)(typescript@5.7.3)':
+    dependencies:
+      '@typescript-eslint/scope-manager': 6.21.0
+      '@typescript-eslint/types': 6.21.0
+      '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3)
+      '@typescript-eslint/visitor-keys': 6.21.0
+      debug: 4.4.0(supports-color@8.1.1)
+      eslint: 9.18.0
+    optionalDependencies:
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - supports-color
+
   '@typescript-eslint/parser@8.21.0(eslint@9.18.0)(typescript@5.7.3)':
     dependencies:
       '@typescript-eslint/scope-manager': 8.21.0
@@ -8464,11 +9889,28 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@typescript-eslint/scope-manager@6.21.0':
+    dependencies:
+      '@typescript-eslint/types': 6.21.0
+      '@typescript-eslint/visitor-keys': 6.21.0
+
   '@typescript-eslint/scope-manager@8.21.0':
     dependencies:
       '@typescript-eslint/types': 8.21.0
       '@typescript-eslint/visitor-keys': 8.21.0
 
+  '@typescript-eslint/type-utils@6.21.0(eslint@9.18.0)(typescript@5.7.3)':
+    dependencies:
+      '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3)
+      '@typescript-eslint/utils': 6.21.0(eslint@9.18.0)(typescript@5.7.3)
+      debug: 4.4.0(supports-color@8.1.1)
+      eslint: 9.18.0
+      ts-api-utils: 1.4.3(typescript@5.7.3)
+    optionalDependencies:
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - supports-color
+
   '@typescript-eslint/type-utils@8.21.0(eslint@9.18.0)(typescript@5.7.3)':
     dependencies:
       '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
@@ -8480,8 +9922,25 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@typescript-eslint/types@6.21.0': {}
+
   '@typescript-eslint/types@8.21.0': {}
 
+  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.3)':
+    dependencies:
+      '@typescript-eslint/types': 6.21.0
+      '@typescript-eslint/visitor-keys': 6.21.0
+      debug: 4.4.0(supports-color@8.1.1)
+      globby: 11.1.0
+      is-glob: 4.0.3
+      minimatch: 9.0.3
+      semver: 7.6.3
+      ts-api-utils: 1.4.3(typescript@5.7.3)
+    optionalDependencies:
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - supports-color
+
   '@typescript-eslint/typescript-estree@8.21.0(typescript@5.7.3)':
     dependencies:
       '@typescript-eslint/types': 8.21.0
@@ -8496,6 +9955,20 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@typescript-eslint/utils@6.21.0(eslint@9.18.0)(typescript@5.7.3)':
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0)
+      '@types/json-schema': 7.0.15
+      '@types/semver': 7.5.8
+      '@typescript-eslint/scope-manager': 6.21.0
+      '@typescript-eslint/types': 6.21.0
+      '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3)
+      eslint: 9.18.0
+      semver: 7.6.3
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+
   '@typescript-eslint/utils@8.21.0(eslint@9.18.0)(typescript@5.7.3)':
     dependencies:
       '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0)
@@ -8507,11 +9980,29 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@typescript-eslint/visitor-keys@6.21.0':
+    dependencies:
+      '@typescript-eslint/types': 6.21.0
+      eslint-visitor-keys: 3.4.3
+
   '@typescript-eslint/visitor-keys@8.21.0':
     dependencies:
       '@typescript-eslint/types': 8.21.0
       eslint-visitor-keys: 4.2.0
 
+  '@vinejs/compiler@3.0.0': {}
+
+  '@vinejs/vine@3.0.0':
+    dependencies:
+      '@poppinss/macroable': 1.0.4
+      '@types/validator': 13.12.2
+      '@vinejs/compiler': 3.0.0
+      camelcase: 8.0.0
+      dayjs: 1.11.13
+      dlv: 1.1.3
+      normalize-url: 8.0.1
+      validator: 13.12.0
+
   '@vitejs/plugin-react@4.3.4(vite@6.0.5(@types/node@22.10.7)(terser@5.37.0)(tsx@4.19.2)(yaml@2.5.1))':
     dependencies:
       '@babel/core': 7.26.0
@@ -8610,6 +10101,8 @@ snapshots:
       react-dom: 19.0.0(react@19.0.0)
       webrtc-adapter: 9.0.1
 
+  abstract-logging@2.0.1: {}
+
   accepts@1.3.8:
     dependencies:
       mime-types: 2.1.35
@@ -8669,6 +10162,10 @@ snapshots:
     dependencies:
       type-fest: 0.21.3
 
+  ansi-escapes@7.0.0:
+    dependencies:
+      environment: 1.1.0
+
   ansi-regex@5.0.1: {}
 
   ansi-regex@6.1.0: {}
@@ -8683,6 +10180,8 @@ snapshots:
 
   ansi-styles@5.2.0: {}
 
+  ansi-styles@6.2.1: {}
+
   anymatch@3.1.3:
     dependencies:
       normalize-path: 3.0.0
@@ -8716,6 +10215,8 @@ snapshots:
       get-intrinsic: 1.2.7
       is-string: 1.1.1
 
+  array-union@2.1.0: {}
+
   array.prototype.findlast@1.2.5:
     dependencies:
       call-bind: 1.0.8
@@ -8766,6 +10267,10 @@ snapshots:
       get-intrinsic: 1.2.7
       is-array-buffer: 3.0.5
 
+  as-table@1.0.55:
+    dependencies:
+      printable-characters: 1.0.42
+
   asap@2.0.6: {}
 
   asn1@0.2.6:
@@ -8792,6 +10297,10 @@ snapshots:
 
   at-least-node@1.0.0: {}
 
+  atob@2.1.2: {}
+
+  atomic-sleep@1.0.0: {}
+
   available-typed-arrays@1.0.7:
     dependencies:
       possible-typed-array-names: 1.0.0
@@ -8837,6 +10346,10 @@ snapshots:
 
   base64url@3.0.1: {}
 
+  basic-auth@2.0.1:
+    dependencies:
+      safe-buffer: 5.1.2
+
   bcrypt-pbkdf@1.0.2:
     dependencies:
       tweetnacl: 0.14.5
@@ -8914,6 +10427,8 @@ snapshots:
       base64-js: 1.5.1
       ieee754: 1.2.1
 
+  builtin-modules@3.3.0: {}
+
   busboy@1.6.0:
     dependencies:
       streamsearch: 1.1.0
@@ -8943,6 +10458,8 @@ snapshots:
 
   camelcase@5.3.1: {}
 
+  camelcase@8.0.0: {}
+
   caniuse-lite@1.0.30001695: {}
 
   canvas@3.1.0:
@@ -8985,6 +10502,8 @@ snapshots:
 
   chalk@5.4.1: {}
 
+  check-disk-space@3.4.0: {}
+
   check-error@2.1.1: {}
 
   check-more-types@2.24.0: {}
@@ -9012,6 +10531,15 @@ snapshots:
       undici: 6.21.1
       whatwg-mimetype: 4.0.0
 
+  chevrotain@11.0.3:
+    dependencies:
+      '@chevrotain/cst-dts-gen': 11.0.3
+      '@chevrotain/gast': 11.0.3
+      '@chevrotain/regexp-to-ast': 11.0.3
+      '@chevrotain/types': 11.0.3
+      '@chevrotain/utils': 11.0.3
+      lodash-es: 4.17.21
+
   chokidar@3.6.0:
     dependencies:
       anymatch: 3.1.3
@@ -9024,22 +10552,38 @@ snapshots:
     optionalDependencies:
       fsevents: 2.3.3
 
+  chokidar@4.0.3:
+    dependencies:
+      readdirp: 4.1.1
+
   chownr@1.1.4: {}
 
   chrome-trace-event@1.0.4: {}
 
+  ci-info@3.9.0: {}
+
   ci-info@4.1.0: {}
 
   cjs-module-lexer@1.4.1: {}
 
   classnames@2.5.1: {}
 
+  clean-regexp@1.0.0:
+    dependencies:
+      escape-string-regexp: 1.0.5
+
   clean-stack@2.2.0: {}
 
+  cli-boxes@4.0.1: {}
+
   cli-cursor@3.1.0:
     dependencies:
       restore-cursor: 3.1.0
 
+  cli-cursor@5.0.0:
+    dependencies:
+      restore-cursor: 5.1.0
+
   cli-table3@0.6.5:
     dependencies:
       string-width: 4.2.3
@@ -9051,6 +10595,11 @@ snapshots:
       slice-ansi: 3.0.0
       string-width: 4.2.3
 
+  cli-truncate@4.0.0:
+    dependencies:
+      slice-ansi: 5.0.0
+      string-width: 7.2.0
+
   client-only@0.0.1: {}
 
   clipboardy@4.0.0:
@@ -9075,6 +10624,8 @@ snapshots:
 
   clsx@2.1.1: {}
 
+  code-block-writer@13.0.3: {}
+
   color-convert@1.9.3:
     dependencies:
       color-name: 1.1.3
@@ -9123,6 +10674,8 @@ snapshots:
 
   commondir@1.0.1: {}
 
+  component-emitter@1.3.1: {}
+
   concat-map@0.0.1: {}
 
   concurrently@9.1.2:
@@ -9157,6 +10710,13 @@ snapshots:
 
   cookie@1.0.2: {}
 
+  cookiejar@2.1.4: {}
+
+  copy-file@11.0.0:
+    dependencies:
+      graceful-fs: 4.2.11
+      p-event: 6.0.1
+
   core-js@3.40.0: {}
 
   core-util-is@1.0.2: {}
@@ -9174,6 +10734,15 @@ snapshots:
       path-type: 4.0.0
       yaml: 1.10.2
 
+  cpy@11.1.0:
+    dependencies:
+      copy-file: 11.0.0
+      globby: 14.0.2
+      junk: 4.0.1
+      micromatch: 4.0.8
+      p-filter: 4.1.0
+      p-map: 7.0.3
+
   cross-fetch@3.2.0:
     dependencies:
       node-fetch: 2.7.0
@@ -9202,6 +10771,12 @@ snapshots:
 
   css-what@6.1.0: {}
 
+  css@3.0.0:
+    dependencies:
+      inherits: 2.0.4
+      source-map: 0.6.1
+      source-map-resolve: 0.6.0
+
   cssom@0.5.0: {}
 
   csstype@3.1.3: {}
@@ -9258,6 +10833,8 @@ snapshots:
     dependencies:
       assert-plus: 1.0.0
 
+  data-uri-to-buffer@2.0.2: {}
+
   data-view-buffer@1.0.2:
     dependencies:
       call-bound: 1.0.3
@@ -9276,6 +10853,8 @@ snapshots:
       es-errors: 1.3.0
       is-data-view: 1.0.2
 
+  dateformat@4.6.3: {}
+
   dayjs@1.11.13: {}
 
   debug@2.6.9:
@@ -9296,10 +10875,16 @@ snapshots:
 
   decamelize@1.2.0: {}
 
+  decode-uri-component@0.2.2: {}
+
   decompress-response@6.0.0:
     dependencies:
       mimic-response: 3.1.0
 
+  dedent@1.5.3(babel-plugin-macros@3.1.0):
+    optionalDependencies:
+      babel-plugin-macros: 3.1.0
+
   deep-eql@5.0.2: {}
 
   deep-equal@1.1.2:
@@ -9341,6 +10926,11 @@ snapshots:
 
   devtools-protocol@0.0.869402: {}
 
+  dezalgo@1.0.4:
+    dependencies:
+      asap: 2.0.6
+      wrappy: 1.0.2
+
   dfa@1.2.0: {}
 
   diff-sequences@29.6.3: {}
@@ -9349,6 +10939,12 @@ snapshots:
 
   dijkstrajs@1.0.3: {}
 
+  dir-glob@3.0.1:
+    dependencies:
+      path-type: 4.0.0
+
+  dlv@1.1.3: {}
+
   doctrine@2.1.0:
     dependencies:
       esutils: 2.0.3
@@ -9410,6 +11006,10 @@ snapshots:
     dependencies:
       safe-buffer: 5.2.1
 
+  edgejs-parser@0.2.13:
+    dependencies:
+      chevrotain: 11.0.3
+
   ee-first@1.1.1: {}
 
   electron-to-chromium@1.5.84: {}
@@ -9449,12 +11049,16 @@ snapshots:
 
   entities@4.5.0: {}
 
+  environment@1.1.0: {}
+
   error-ex@1.3.2:
     dependencies:
       is-arrayish: 0.2.1
 
   error-stack-parser-es@0.1.5: {}
 
+  error-stack-parser-es@1.0.5: {}
+
   es-abstract@1.23.9:
     dependencies:
       array-buffer-byte-length: 1.0.2
@@ -9645,10 +11249,19 @@ snapshots:
 
   escape-string-regexp@4.0.0: {}
 
+  eslint-compat-utils@0.6.4(eslint@9.18.0):
+    dependencies:
+      eslint: 9.18.0
+      semver: 7.6.3
+
   eslint-config-prettier@10.0.1(eslint@9.18.0):
     dependencies:
       eslint: 9.18.0
 
+  eslint-config-prettier@8.10.0(eslint@9.18.0):
+    dependencies:
+      eslint: 9.18.0
+
   eslint-import-resolver-node@0.3.9:
     dependencies:
       debug: 3.2.7(supports-color@8.1.1)
@@ -9657,6 +11270,12 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  eslint-json-compat-utils@0.2.1(eslint@9.18.0)(jsonc-eslint-parser@2.4.0):
+    dependencies:
+      eslint: 9.18.0
+      esquery: 1.6.0
+      jsonc-eslint-parser: 2.4.0
+
   eslint-module-utils@2.12.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0):
     dependencies:
       debug: 3.2.7(supports-color@8.1.1)
@@ -9705,6 +11324,20 @@ snapshots:
       - eslint-import-resolver-webpack
       - supports-color
 
+  eslint-plugin-jsonc@2.18.2(eslint@9.18.0):
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0)
+      eslint: 9.18.0
+      eslint-compat-utils: 0.6.4(eslint@9.18.0)
+      eslint-json-compat-utils: 0.2.1(eslint@9.18.0)(jsonc-eslint-parser@2.4.0)
+      espree: 9.6.1
+      graphemer: 1.4.0
+      jsonc-eslint-parser: 2.4.0
+      natural-compare: 1.4.0
+      synckit: 0.6.2
+    transitivePeerDependencies:
+      - '@eslint/json'
+
   eslint-plugin-jsx-a11y@6.10.2(eslint@9.18.0):
     dependencies:
       aria-query: 5.3.2
@@ -9726,6 +11359,16 @@ snapshots:
 
   eslint-plugin-no-relative-import-paths@1.6.1: {}
 
+  eslint-plugin-prettier@5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@8.10.0(eslint@9.18.0))(eslint@9.18.0)(prettier@3.4.2):
+    dependencies:
+      eslint: 9.18.0
+      prettier: 3.4.2
+      prettier-linter-helpers: 1.0.0
+      synckit: 0.9.2
+    optionalDependencies:
+      '@types/eslint': 9.6.1
+      eslint-config-prettier: 8.10.0(eslint@9.18.0)
+
   eslint-plugin-react-compiler@19.0.0-beta-e552027-20250112(eslint@9.18.0):
     dependencies:
       '@babel/core': 7.26.0
@@ -9764,6 +11407,26 @@ snapshots:
       string.prototype.matchall: 4.0.12
       string.prototype.repeat: 1.0.0
 
+  eslint-plugin-unicorn@47.0.0(eslint@9.18.0):
+    dependencies:
+      '@babel/helper-validator-identifier': 7.25.9
+      '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0)
+      ci-info: 3.9.0
+      clean-regexp: 1.0.0
+      eslint: 9.18.0
+      esquery: 1.6.0
+      indent-string: 4.0.0
+      is-builtin-module: 3.2.1
+      jsesc: 3.1.0
+      lodash: 4.17.21
+      pluralize: 8.0.0
+      read-pkg-up: 7.0.1
+      regexp-tree: 0.1.27
+      regjsparser: 0.10.0
+      safe-regex: 2.1.1
+      semver: 7.6.3
+      strip-indent: 3.0.0
+
   eslint-scope@5.1.1:
     dependencies:
       esrecurse: 4.3.0
@@ -9823,6 +11486,12 @@ snapshots:
       acorn-jsx: 5.3.2(acorn@8.14.0)
       eslint-visitor-keys: 4.2.0
 
+  espree@9.6.1:
+    dependencies:
+      acorn: 8.14.0
+      acorn-jsx: 5.3.2(acorn@8.14.0)
+      eslint-visitor-keys: 3.4.3
+
   esquery@1.6.0:
     dependencies:
       estraverse: 5.3.0
@@ -9871,6 +11540,21 @@ snapshots:
       signal-exit: 4.1.0
       strip-final-newline: 3.0.0
 
+  execa@9.5.2:
+    dependencies:
+      '@sindresorhus/merge-streams': 4.0.0
+      cross-spawn: 7.0.6
+      figures: 6.1.0
+      get-stream: 9.0.1
+      human-signals: 8.0.0
+      is-plain-obj: 4.1.0
+      is-stream: 4.0.1
+      npm-run-path: 6.0.0
+      pretty-ms: 9.2.0
+      signal-exit: 4.1.0
+      strip-final-newline: 4.0.0
+      yoctocolors: 2.1.1
+
   executable@4.1.1:
     dependencies:
       pify: 2.3.0
@@ -9951,6 +11635,8 @@ snapshots:
 
   extsprintf@1.3.0: {}
 
+  fast-copy@3.0.2: {}
+
   fast-deep-equal@3.1.3: {}
 
   fast-diff@1.1.2: {}
@@ -9977,8 +11663,14 @@ snapshots:
 
   fast-levenshtein@2.0.6: {}
 
+  fast-redact@3.5.0: {}
+
+  fast-safe-stringify@2.1.1: {}
+
   fast-uri@3.0.6: {}
 
+  fastest-levenshtein@1.0.16: {}
+
   fastq@1.18.0:
     dependencies:
       reusify: 1.0.4
@@ -10012,10 +11704,21 @@ snapshots:
     dependencies:
       escape-string-regexp: 1.0.5
 
+  figures@6.1.0:
+    dependencies:
+      is-unicode-supported: 2.1.0
+
   file-entry-cache@8.0.0:
     dependencies:
       flat-cache: 4.0.1
 
+  file-type@19.6.0:
+    dependencies:
+      get-stream: 9.0.1
+      strtok3: 9.1.1
+      token-types: 6.0.0
+      uint8array-extras: 1.4.0
+
   file-uri-to-path@1.0.0:
     optional: true
 
@@ -10066,6 +11769,8 @@ snapshots:
 
   flatted@3.3.2: {}
 
+  flattie@1.1.1: {}
+
   fn.name@1.1.0: {}
 
   follow-redirects@1.15.9: {}
@@ -10107,6 +11812,12 @@ snapshots:
       combined-stream: 1.0.8
       mime-types: 2.1.35
 
+  formidable@3.5.2:
+    dependencies:
+      dezalgo: 1.0.4
+      hexoid: 2.0.0
+      once: 1.4.0
+
   forwarded-parse@2.1.2: {}
 
   forwarded@0.2.0: {}
@@ -10167,17 +11878,29 @@ snapshots:
       hasown: 2.0.2
       math-intrinsics: 1.1.0
 
+  get-port@7.1.0: {}
+
   get-proto@1.0.1:
     dependencies:
       dunder-proto: 1.0.1
       es-object-atoms: 1.1.1
 
+  get-source@2.0.12:
+    dependencies:
+      data-uri-to-buffer: 2.0.2
+      source-map: 0.6.1
+
   get-stream@5.2.0:
     dependencies:
       pump: 3.0.2
 
   get-stream@8.0.1: {}
 
+  get-stream@9.0.1:
+    dependencies:
+      '@sec-ant/readable-stream': 0.4.1
+      is-stream: 4.0.1
+
   get-symbol-description@1.1.0:
     dependencies:
       call-bound: 1.0.3
@@ -10241,6 +11964,24 @@ snapshots:
       define-properties: 1.2.1
       gopd: 1.2.0
 
+  globby@11.1.0:
+    dependencies:
+      array-union: 2.1.0
+      dir-glob: 3.0.1
+      fast-glob: 3.3.3
+      ignore: 5.3.2
+      merge2: 1.4.1
+      slash: 3.0.0
+
+  globby@14.0.2:
+    dependencies:
+      '@sindresorhus/merge-streams': 2.3.0
+      fast-glob: 3.3.3
+      ignore: 5.3.2
+      path-type: 5.0.0
+      slash: 5.1.0
+      unicorn-magic: 0.1.0
+
   gopd@1.2.0: {}
 
   graceful-fs@4.2.11: {}
@@ -10287,16 +12028,24 @@ snapshots:
     dependencies:
       function-bind: 1.1.2
 
+  he@1.2.0: {}
+
+  help-me@5.0.0: {}
+
   hermes-estree@0.25.1: {}
 
   hermes-parser@0.25.1:
     dependencies:
       hermes-estree: 0.25.1
 
+  hexoid@2.0.0: {}
+
   hoist-non-react-statics@3.3.2:
     dependencies:
       react-is: 16.13.1
 
+  hosted-git-info@2.8.9: {}
+
   href-content@2.0.3:
     dependencies:
       remote-content: 4.0.1
@@ -10353,6 +12102,8 @@ snapshots:
 
   human-signals@5.0.0: {}
 
+  human-signals@8.0.0: {}
+
   iconv-lite@0.4.24:
     dependencies:
       safer-buffer: 2.1.2
@@ -10383,6 +12134,8 @@ snapshots:
 
   indent-string@4.0.0: {}
 
+  inflation@2.1.0: {}
+
   inflight@1.0.6:
     dependencies:
       once: 1.4.0
@@ -10455,6 +12208,10 @@ snapshots:
       call-bound: 1.0.3
       has-tostringtag: 1.0.2
 
+  is-builtin-module@3.2.1:
+    dependencies:
+      builtin-modules: 3.3.0
+
   is-callable@1.2.7: {}
 
   is-core-module@2.16.1:
@@ -10482,6 +12239,12 @@ snapshots:
 
   is-fullwidth-code-point@3.0.0: {}
 
+  is-fullwidth-code-point@4.0.0: {}
+
+  is-fullwidth-code-point@5.0.0:
+    dependencies:
+      get-east-asian-width: 1.3.0
+
   is-generator-function@1.1.0:
     dependencies:
       call-bound: 1.0.3
@@ -10515,6 +12278,8 @@ snapshots:
 
   is-path-inside@3.0.3: {}
 
+  is-plain-obj@4.1.0: {}
+
   is-plain-object@5.0.0: {}
 
   is-reference@1.2.1:
@@ -10538,6 +12303,8 @@ snapshots:
 
   is-stream@3.0.0: {}
 
+  is-stream@4.0.1: {}
+
   is-string@1.1.1:
     dependencies:
       call-bound: 1.0.3
@@ -10557,6 +12324,8 @@ snapshots:
 
   is-unicode-supported@0.1.0: {}
 
+  is-unicode-supported@2.1.0: {}
+
   is-weakmap@2.0.2: {}
 
   is-weakref@1.1.0:
@@ -10606,6 +12375,8 @@ snapshots:
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
+  joycon@3.1.1: {}
+
   jpeg-exif@1.1.4: {}
 
   js-tokens@4.0.0: {}
@@ -10618,6 +12389,8 @@ snapshots:
 
   jsbn@0.1.1: {}
 
+  jsesc@0.5.0: {}
+
   jsesc@3.1.0: {}
 
   json-buffer@3.0.1: {}
@@ -10640,12 +12413,21 @@ snapshots:
 
   json5@2.2.3: {}
 
+  jsonc-eslint-parser@2.4.0:
+    dependencies:
+      acorn: 8.14.0
+      eslint-visitor-keys: 3.4.3
+      espree: 9.6.1
+      semver: 7.6.3
+
   jsonfile@6.1.0:
     dependencies:
       universalify: 2.0.1
     optionalDependencies:
       graceful-fs: 4.2.11
 
+  jsonschema@1.5.0: {}
+
   jsonwebtoken@8.5.1:
     dependencies:
       jws: 3.2.2
@@ -10693,6 +12475,8 @@ snapshots:
       object.assign: 4.1.7
       object.values: 1.2.1
 
+  junk@4.0.1: {}
+
   just-extend@6.2.0: {}
 
   jwa@1.4.1:
@@ -10772,6 +12556,8 @@ snapshots:
     dependencies:
       p-locate: 6.0.0
 
+  lodash-es@4.17.21: {}
+
   lodash.get@4.4.2: {}
 
   lodash.includes@4.3.0: {}
@@ -10804,6 +12590,14 @@ snapshots:
       slice-ansi: 4.0.0
       wrap-ansi: 6.2.0
 
+  log-update@6.1.0:
+    dependencies:
+      ansi-escapes: 7.0.0
+      cli-cursor: 5.0.0
+      slice-ansi: 7.1.0
+      strip-ansi: 7.1.0
+      wrap-ansi: 9.0.0
+
   logform@2.7.0:
     dependencies:
       '@colors/colors': 1.6.0
@@ -10839,10 +12633,16 @@ snapshots:
 
   media-typer@0.3.0: {}
 
+  media-typer@1.1.0: {}
+
   mediaquery-text@1.2.0:
     dependencies:
       cssom: 0.5.0
 
+  memoize@10.0.0:
+    dependencies:
+      mimic-function: 5.0.1
+
   memory-pager@1.5.0: {}
 
   merge-descriptors@1.0.3: {}
@@ -10866,12 +12666,18 @@ snapshots:
 
   mime@1.6.0: {}
 
+  mime@2.6.0: {}
+
   mimic-fn@2.1.0: {}
 
   mimic-fn@4.0.0: {}
 
+  mimic-function@5.0.1: {}
+
   mimic-response@3.1.0: {}
 
+  min-indent@1.0.1: {}
+
   minimatch@3.1.2:
     dependencies:
       brace-expansion: 1.1.11
@@ -10880,6 +12686,10 @@ snapshots:
     dependencies:
       brace-expansion: 2.0.1
 
+  minimatch@9.0.3:
+    dependencies:
+      brace-expansion: 2.0.1
+
   minimatch@9.0.5:
     dependencies:
       brace-expansion: 2.0.1
@@ -10892,6 +12702,8 @@ snapshots:
 
   mkdirp-classic@0.5.3: {}
 
+  mkdirp@3.0.1: {}
+
   module-details-from-path@1.0.3: {}
 
   moment-timezone@0.5.46:
@@ -10944,6 +12756,8 @@ snapshots:
 
   mustache@3.2.1: {}
 
+  mustache@4.2.0: {}
+
   nan@2.22.0:
     optional: true
 
@@ -11003,8 +12817,17 @@ snapshots:
 
   node-releases@2.0.19: {}
 
+  normalize-package-data@2.5.0:
+    dependencies:
+      hosted-git-info: 2.8.9
+      resolve: 1.22.10
+      semver: 5.7.2
+      validate-npm-package-license: 3.0.4
+
   normalize-path@3.0.0: {}
 
+  normalize-url@8.0.1: {}
+
   npm-run-path@4.0.1:
     dependencies:
       path-key: 3.1.1
@@ -11013,6 +12836,11 @@ snapshots:
     dependencies:
       path-key: 4.0.0
 
+  npm-run-path@6.0.0:
+    dependencies:
+      path-key: 4.0.0
+      unicorn-magic: 0.3.0
+
   nth-check@2.1.1:
     dependencies:
       boolbase: 1.0.0
@@ -11067,6 +12895,8 @@ snapshots:
       define-properties: 1.2.1
       es-object-atoms: 1.1.1
 
+  on-exit-leak-free@2.1.2: {}
+
   on-finished@2.4.1:
     dependencies:
       ee-first: 1.1.1
@@ -11089,6 +12919,10 @@ snapshots:
     dependencies:
       mimic-fn: 4.0.0
 
+  onetime@7.0.0:
+    dependencies:
+      mimic-function: 5.0.1
+
   oppa@0.4.0:
     dependencies:
       chalk: 4.1.2
@@ -11110,6 +12944,14 @@ snapshots:
       object-keys: 1.1.1
       safe-push-apply: 1.0.0
 
+  p-event@6.0.1:
+    dependencies:
+      p-timeout: 6.1.4
+
+  p-filter@4.1.0:
+    dependencies:
+      p-map: 7.0.3
+
   p-limit@2.3.0:
     dependencies:
       p-try: 2.2.0
@@ -11138,8 +12980,14 @@ snapshots:
     dependencies:
       aggregate-error: 3.1.0
 
+  p-map@7.0.3: {}
+
+  p-timeout@6.1.4: {}
+
   p-try@2.2.0: {}
 
+  package-manager-detector@0.2.8: {}
+
   pako@0.2.9: {}
 
   parchment@1.1.4: {}
@@ -11148,6 +12996,11 @@ snapshots:
     dependencies:
       callsites: 3.1.0
 
+  parse-imports@2.2.1:
+    dependencies:
+      es-module-lexer: 1.6.0
+      slashes: 3.0.12
+
   parse-json@5.2.0:
     dependencies:
       '@babel/code-frame': 7.26.2
@@ -11155,6 +13008,8 @@ snapshots:
       json-parse-even-better-errors: 2.3.1
       lines-and-columns: 1.2.4
 
+  parse-ms@4.0.0: {}
+
   parse-srcset@1.0.2: {}
 
   parse5-htmlparser2-tree-adapter@7.1.0:
@@ -11205,6 +13060,8 @@ snapshots:
       pause: 0.0.1
       utils-merge: 1.0.1
 
+  path-browserify@1.0.1: {}
+
   path-exists@4.0.0: {}
 
   path-exists@5.0.0: {}
@@ -11230,6 +13087,8 @@ snapshots:
 
   path-type@4.0.0: {}
 
+  path-type@5.0.0: {}
+
   pathval@2.0.0: {}
 
   pause@0.0.1: {}
@@ -11242,6 +13101,8 @@ snapshots:
       linebreak: 1.1.0
       png-js: 1.0.0
 
+  peek-readable@5.3.1: {}
+
   pend@1.2.0: {}
 
   performance-now@2.1.0: {}
@@ -11270,6 +13131,42 @@ snapshots:
 
   pify@2.3.0: {}
 
+  pino-abstract-transport@2.0.0:
+    dependencies:
+      split2: 4.2.0
+
+  pino-pretty@13.0.0:
+    dependencies:
+      colorette: 2.0.20
+      dateformat: 4.6.3
+      fast-copy: 3.0.2
+      fast-safe-stringify: 2.1.1
+      help-me: 5.0.0
+      joycon: 3.1.1
+      minimist: 1.2.8
+      on-exit-leak-free: 2.1.2
+      pino-abstract-transport: 2.0.0
+      pump: 3.0.2
+      secure-json-parse: 2.7.0
+      sonic-boom: 4.2.0
+      strip-json-comments: 3.1.1
+
+  pino-std-serializers@7.0.0: {}
+
+  pino@9.6.0:
+    dependencies:
+      atomic-sleep: 1.0.0
+      fast-redact: 3.5.0
+      on-exit-leak-free: 2.1.2
+      pino-abstract-transport: 2.0.0
+      pino-std-serializers: 7.0.0
+      process-warning: 4.0.1
+      quick-format-unescaped: 4.0.4
+      real-require: 0.2.0
+      safe-stable-stringify: 2.5.0
+      sonic-boom: 4.2.0
+      thread-stream: 3.1.0
+
   pkg-dir@4.2.0:
     dependencies:
       find-up: 4.1.0
@@ -11343,6 +13240,17 @@ snapshots:
 
   prelude-ls@1.2.1: {}
 
+  prettier-edgejs@0.2.34:
+    dependencies:
+      css: 3.0.0
+      edgejs-parser: 0.2.13
+      prettier: 3.4.2
+      uglify-js: 3.19.3
+
+  prettier-linter-helpers@1.0.0:
+    dependencies:
+      fast-diff: 1.1.2
+
   prettier@3.3.3: {}
 
   prettier@3.4.2: {}
@@ -11361,6 +13269,16 @@ snapshots:
       ansi-styles: 5.2.0
       react-is: 18.3.1
 
+  pretty-hrtime@1.0.3: {}
+
+  pretty-ms@9.2.0:
+    dependencies:
+      parse-ms: 4.0.0
+
+  printable-characters@1.0.42: {}
+
+  process-warning@4.0.1: {}
+
   process@0.11.10: {}
 
   progress@2.0.3: {}
@@ -11445,6 +13363,8 @@ snapshots:
 
   queue-microtask@1.2.3: {}
 
+  quick-format-unescaped@4.0.4: {}
+
   quill-delta@3.6.3:
     dependencies:
       deep-equal: 1.1.2
@@ -11538,6 +13458,19 @@ snapshots:
 
   react@19.0.0: {}
 
+  read-pkg-up@7.0.1:
+    dependencies:
+      find-up: 4.1.0
+      read-pkg: 5.2.0
+      type-fest: 0.8.1
+
+  read-pkg@5.2.0:
+    dependencies:
+      '@types/normalize-package-data': 2.4.4
+      normalize-package-data: 2.5.0
+      parse-json: 5.2.0
+      type-fest: 0.6.0
+
   readable-stream@3.6.2:
     dependencies:
       inherits: 2.0.4
@@ -11548,8 +13481,14 @@ snapshots:
     dependencies:
       picomatch: 2.3.1
 
+  readdirp@4.1.1: {}
+
+  real-require@0.2.0: {}
+
   reflect-metadata@0.1.14: {}
 
+  reflect-metadata@0.2.2: {}
+
   reflect.getprototypeof@1.0.10:
     dependencies:
       call-bind: 1.0.8
@@ -11563,6 +13502,8 @@ snapshots:
 
   regenerator-runtime@0.14.1: {}
 
+  regexp-tree@0.1.27: {}
+
   regexp.prototype.flags@1.5.4:
     dependencies:
       call-bind: 1.0.8
@@ -11572,6 +13513,10 @@ snapshots:
       gopd: 1.2.0
       set-function-name: 2.0.2
 
+  regjsparser@0.10.0:
+    dependencies:
+      jsesc: 0.5.0
+
   remote-content@4.0.1:
     dependencies:
       axios: 1.7.9
@@ -11662,6 +13607,11 @@ snapshots:
       onetime: 5.1.2
       signal-exit: 3.0.7
 
+  restore-cursor@5.1.0:
+    dependencies:
+      onetime: 7.0.0
+      signal-exit: 4.1.0
+
   restructure@3.0.2: {}
 
   retry@0.13.1: {}
@@ -11721,6 +13671,8 @@ snapshots:
       has-symbols: 1.1.0
       isarray: 2.0.5
 
+  safe-buffer@5.1.2: {}
+
   safe-buffer@5.2.1: {}
 
   safe-push-apply@1.0.0:
@@ -11734,6 +13686,10 @@ snapshots:
       es-errors: 1.3.0
       is-regex: 1.2.1
 
+  safe-regex@2.1.1:
+    dependencies:
+      regexp-tree: 0.1.27
+
   safe-stable-stringify@2.5.0: {}
 
   safer-buffer@2.1.2: {}
@@ -11766,6 +13722,10 @@ snapshots:
 
   sdp@3.2.0: {}
 
+  secure-json-parse@2.7.0: {}
+
+  secure-json-parse@3.0.2: {}
+
   semver@5.7.2: {}
 
   semver@6.3.1: {}
@@ -11809,6 +13769,8 @@ snapshots:
 
   set-blocking@2.0.0: {}
 
+  set-cookie-parser@2.7.1: {}
+
   set-function-length@1.2.2:
     dependencies:
       define-data-property: 1.1.4
@@ -11931,8 +13893,12 @@ snapshots:
       nise: 6.1.1
       supports-color: 7.2.0
 
+  slash@3.0.0: {}
+
   slash@5.1.0: {}
 
+  slashes@3.0.12: {}
+
   slice-ansi@3.0.0:
     dependencies:
       ansi-styles: 4.3.0
@@ -11945,12 +13911,31 @@ snapshots:
       astral-regex: 2.0.0
       is-fullwidth-code-point: 3.0.0
 
+  slice-ansi@5.0.0:
+    dependencies:
+      ansi-styles: 6.2.1
+      is-fullwidth-code-point: 4.0.0
+
+  slice-ansi@7.1.0:
+    dependencies:
+      ansi-styles: 6.2.1
+      is-fullwidth-code-point: 5.0.0
+
   slick@1.12.2: {}
 
   slugify@1.6.6: {}
 
+  sonic-boom@4.2.0:
+    dependencies:
+      atomic-sleep: 1.0.0
+
   source-map-js@1.2.1: {}
 
+  source-map-resolve@0.6.0:
+    dependencies:
+      atob: 2.1.2
+      decode-uri-component: 0.2.2
+
   source-map-support@0.5.21:
     dependencies:
       buffer-from: 1.1.2
@@ -11964,8 +13949,26 @@ snapshots:
     dependencies:
       memory-pager: 1.5.0
 
+  spdx-correct@3.2.0:
+    dependencies:
+      spdx-expression-parse: 3.0.1
+      spdx-license-ids: 3.0.21
+
+  spdx-exceptions@2.5.0: {}
+
+  spdx-expression-parse@3.0.1:
+    dependencies:
+      spdx-exceptions: 2.5.0
+      spdx-license-ids: 3.0.21
+
+  spdx-license-ids@3.0.21: {}
+
   specificity@0.4.1: {}
 
+  split-lines@3.0.0: {}
+
+  split2@4.2.0: {}
+
   sshpk@1.18.0:
     dependencies:
       asn1: 0.2.6
@@ -11984,6 +13987,11 @@ snapshots:
     dependencies:
       type-fest: 0.7.1
 
+  stacktracey@2.1.8:
+    dependencies:
+      as-table: 1.0.55
+      get-source: 2.0.12
+
   statuses@2.0.1: {}
 
   stealthy-require@1.1.1: {}
@@ -12072,10 +14080,21 @@ snapshots:
 
   strip-final-newline@3.0.0: {}
 
+  strip-final-newline@4.0.0: {}
+
+  strip-indent@3.0.0:
+    dependencies:
+      min-indent: 1.0.1
+
   strip-json-comments@2.0.1: {}
 
   strip-json-comments@3.1.1: {}
 
+  strtok3@9.1.1:
+    dependencies:
+      '@tokenizer/token': 0.3.0
+      peek-readable: 5.3.1
+
   style-data@2.0.2:
     dependencies:
       cheerio: 1.0.0
@@ -12091,6 +14110,20 @@ snapshots:
 
   stylis@4.2.0: {}
 
+  superagent@10.1.1:
+    dependencies:
+      component-emitter: 1.3.1
+      cookiejar: 2.1.4
+      debug: 4.4.0(supports-color@8.1.1)
+      fast-safe-stringify: 2.1.1
+      form-data: 4.0.1
+      formidable: 3.5.2
+      methods: 1.1.2
+      mime: 2.6.0
+      qs: 6.14.0
+    transitivePeerDependencies:
+      - supports-color
+
   supports-color@10.0.0: {}
 
   supports-color@5.5.0:
@@ -12113,6 +14146,15 @@ snapshots:
       react: 19.0.0
       use-sync-external-store: 1.4.0(react@19.0.0)
 
+  synckit@0.6.2:
+    dependencies:
+      tslib: 2.8.1
+
+  synckit@0.9.2:
+    dependencies:
+      '@pkgr/core': 0.1.1
+      tslib: 2.8.1
+
   system-architecture@0.1.0: {}
 
   tapable@2.2.1: {}
@@ -12132,6 +14174,10 @@ snapshots:
       inherits: 2.0.4
       readable-stream: 3.6.2
 
+  tempura@0.4.1: {}
+
+  terminal-size@4.0.0: {}
+
   terser-webpack-plugin@5.3.11(webpack@5.97.1):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
@@ -12150,6 +14196,10 @@ snapshots:
 
   text-hex@1.0.0: {}
 
+  thread-stream@3.1.0:
+    dependencies:
+      real-require: 0.2.0
+
   throttleit@1.0.1: {}
 
   through@2.3.8: {}
@@ -12160,6 +14210,8 @@ snapshots:
 
   tiny-inflate@1.0.3: {}
 
+  tinyexec@0.3.2: {}
+
   title@4.0.1:
     dependencies:
       arg: 5.0.2
@@ -12172,6 +14224,8 @@ snapshots:
     dependencies:
       tldts-core: 6.1.73
 
+  tmp-cache@1.1.0: {}
+
   tmp@0.2.3: {}
 
   to-regex-range@5.0.1:
@@ -12180,6 +14234,11 @@ snapshots:
 
   toidentifier@1.0.1: {}
 
+  token-types@6.0.0:
+    dependencies:
+      '@tokenizer/token': 0.3.0
+      ieee754: 1.2.1
+
   tough-cookie@2.5.0:
     dependencies:
       psl: 1.15.0
@@ -12201,10 +14260,19 @@ snapshots:
 
   truncatise@0.0.8: {}
 
+  ts-api-utils@1.4.3(typescript@5.7.3):
+    dependencies:
+      typescript: 5.7.3
+
   ts-api-utils@2.0.0(typescript@5.7.3):
     dependencies:
       typescript: 5.7.3
 
+  ts-morph@23.0.0:
+    dependencies:
+      '@ts-morph/common': 0.24.0
+      code-block-writer: 13.0.3
+
   tsconfig-paths@3.15.0:
     dependencies:
       '@types/json5': 0.0.29
@@ -12267,8 +14335,12 @@ snapshots:
 
   type-fest@0.21.3: {}
 
+  type-fest@0.6.0: {}
+
   type-fest@0.7.1: {}
 
+  type-fest@0.8.1: {}
+
   type-fest@4.33.0: {}
 
   type-is@1.6.18:
@@ -12327,8 +14399,7 @@ snapshots:
 
   uc.micro@1.0.6: {}
 
-  uglify-js@3.19.3:
-    optional: true
+  uglify-js@3.19.3: {}
 
   uid-safe@2.1.5:
     dependencies:
@@ -12336,6 +14407,8 @@ snapshots:
 
   uid2@0.0.4: {}
 
+  uint8array-extras@1.4.0: {}
+
   unbox-primitive@1.1.0:
     dependencies:
       call-bound: 1.0.3
@@ -12362,6 +14435,10 @@ snapshots:
       pako: 0.2.9
       tiny-inflate: 1.0.3
 
+  unicorn-magic@0.1.0: {}
+
+  unicorn-magic@0.3.0: {}
+
   universalify@2.0.1: {}
 
   unpipe@1.0.0: {}
@@ -12404,6 +14481,11 @@ snapshots:
 
   uuid@9.0.1: {}
 
+  validate-npm-package-license@3.0.4:
+    dependencies:
+      spdx-correct: 3.2.0
+      spdx-expression-parse: 3.0.1
+
   validator@13.12.0: {}
 
   vary@1.1.2: {}
@@ -12573,6 +14655,12 @@ snapshots:
       string-width: 4.2.3
       strip-ansi: 6.0.1
 
+  wrap-ansi@9.0.0:
+    dependencies:
+      ansi-styles: 6.2.1
+      string-width: 7.2.0
+      strip-ansi: 7.1.0
+
   wrappy@1.0.2: {}
 
   ws@7.5.10: {}
@@ -12637,11 +14725,25 @@ snapshots:
 
   yocto-queue@1.1.1: {}
 
+  yoctocolors@2.1.1: {}
+
   youch-core@0.3.1:
     dependencies:
       '@poppinss/exception': 1.2.0
       error-stack-parser-es: 0.1.5
 
+  youch-terminal@2.2.3:
+    dependencies:
+      kleur: 4.1.5
+      string-width: 4.2.3
+      wordwrap: 1.0.0
+
+  youch@3.3.4:
+    dependencies:
+      cookie: 0.7.2
+      mustache: 4.2.0
+      stacktracey: 2.1.8
+
   youch@4.1.0-beta.5:
     dependencies:
       '@poppinss/dumper': 0.6.2