diff --git a/.cache_ggshield b/.cache_ggshield index fe2879b..37a9bf5 100644 --- a/.cache_ggshield +++ b/.cache_ggshield @@ -1 +1 @@ -{"last_found_secrets": [{"match": "0854bfbb9c5e31e8c4cb7e69740d16b897e6ddf1a78595f5c54fc1287d070936", "name": "Generic High Entropy Secret - commit://staged/infra/k3s_kubeconfig.yaml"}, {"match": "452f437daf87b2ed4091dc0ecc764dc678c7af19c0bd7524048aba8d90de784f", "name": "Base64 Elliptic Curve Private Key - commit://staged/infra/k3s_kubeconfig.yaml"}, {"match": "3b4e99a1da49206e7520272a2c6671a502b7378fce5d5e2e72dbcd1b4c1640f4", "name": "Generic Password - commit://staged/infra/terraform.tfstate"}, {"match": "eb463a0daedea3af5d49bc7579a670cfa4c595853e66b4b2938685f2370519de", "name": "OpenSSH Private Key - commit://staged/infra/terraform.tfstate"}]} \ No newline at end of file +{"last_found_secrets": [{"match": "f5c0ea409f9fc16f713ef47c76d4376c3f6ae0d0124f358f7e314dc81879b999", "name": "Generic High Entropy Secret - commit://staged/apps/bright/torrentfile-0.9.1/PKG-INFO"}]} \ No newline at end of file diff --git a/.gitea/workflows/builder.yaml b/.gitea/workflows/builder.yaml index 06893b7..ef4b620 100644 --- a/.gitea/workflows/builder.yaml +++ b/.gitea/workflows/builder.yaml @@ -22,3 +22,14 @@ jobs: dockerfile: dockerfiles/opentracker.dockerfile username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + + + - uses: mr-smithers-excellent/docker-build-push@v6 + name: Build futureporn/bright + with: + image: futureporn/bright + tags: latest + registry: gitea.futureporn.net + dockerfile: dockerfiles/bright.dockerfile + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} \ No newline at end of file diff --git a/.gitea/workflows/tests.yaml b/.gitea/workflows/tests.yaml index 71305ac..aea8959 100644 --- a/.gitea/workflows/tests.yaml +++ b/.gitea/workflows/tests.yaml @@ -1,26 +1,142 @@ name: ci on: + pull_request: push: branches: - - 'main' + - "main" schedule: - - cron: '6 */12 * * *' + - cron: "6 */12 * * *" jobs: - build: - runs-on: ubuntu-latest - environment: docker + # test_javascript: + # runs-on: ubuntu-latest + # environment: docker + # steps: + # - name: Check out code + # uses: actions/checkout@v3 + + # - name: Setup pnpm + # uses: pnpm/action-setup@v4 + # with: + # run_install: | + # - recursive: true + # args: [--frozen-lockfile, --strict-peer-dependencies] + + # - name: Unit test all packages + # run: pnpm test -r + + test: + name: Tests & Checks + runs-on: ubuntu-22.04 + timeout-minutes: 600 + permissions: + contents: read + pull-requests: write + env: + MIX_ENV: test + TRACKER_URL: http://localhost:8666/announce + WHITELIST_URL: http://localhost:8666/whitelist + WHITELIST_USERNAME: ${{ secrets.WHITELIST_USERNAME }} + WHITELIST_PASSWORD: ${{ secrets.WHITELIST_PASSWORD }} + WHITELIST_PASSWORD_CADDY: ${{ secrets.WHITELIST_PASSWORD_CADDY }} + WHITELIST_FEED_URL: http://localhost:4000/torrents + AWS_BUCKET: ${{ secrets.AWS_BUCKET }} + AWS_HOST: ${{ secrets.AWS_HOST }} + AWS_REGION: ${{ secrets.AWS_REGION }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + PUBLIC_S3_ENDPOINT: ${{ secrets.PUBLIC_S3_ENDPOINT }} + SITE_URL: https://futureporn.net + + # @blocking @see https://gitea.com/gitea/act_runner/issues/506 + services: + db: + image: postgres:16 + ports: + - 5432:5432 + env: + POSTGRES_DB: bright_test + POSTGRES_USER: postgres + POSTGRES_PASSWORD: password + + opentracker: + image: gitea.futureporn.net/futureporn/opentracker:latest + ports: + - 8666:8666 + env: + WHITELIST_USERNAME: ${{ secrets.WHITELIST_USERNAME }} + WHITELIST_PASSWORD_CADDY: ${{ secrets.WHITELIST_PASSWORD_CADDY }} + # @todo delete WHITELIST_PASSWORD ASAP. we're waiting for futureporn/opentracker to update + # We've corrected it to WHITELIST_PASSWORD_CADDY in the Caddyfile, + # but the change isn't live in the container yet. + WHITELIST_PASSWORD: ${{ secrets.WHITELIST_PASSWORD_CADDY }} + WHITELIST_FEED_URL: https://bright.futureporn.net/torrents + steps: - - name: Check out code - uses: actions/checkout@v3 + - name: Setup FFmpeg + uses: FedericoCarboni/setup-ffmpeg@v3 - - name: Setup pnpm - uses: pnpm/action-setup@v4 + - name: Setup futureporn cache dir + run: | + mkdir -p ~/.cache/futureporn + + - name: Setup PIP packages + uses: insightsengineering/pip-action@v2 with: - run_install: | - - recursive: true - args: [--frozen-lockfile, --strict-peer-dependencies] + packages: | + torrentfile - - name: Unit test all packages - run: pnpm test -r \ No newline at end of file + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Erlang and Elixir + uses: erlef/setup-beam@v1.17 + with: + elixir-version: "1.16.0-otp-26" + otp-version: "26.0" + + - name: Mix and build cache + uses: actions/cache@v4 + with: + path: | + deps + _build + key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }} + restore-keys: ${{ runner.os }}-mix- + + - name: Get dependencies + run: mix deps.get + working-directory: ./apps/bright + + - name: Code analyzers + run: | + mix format --check-formatted + mix compile --warnings-as-errors + working-directory: ./apps/bright + + # @blocking @see https://github.com/nektos/act/issues/2529 + - name: Unit tests + run: | + mix test --only=unit + working-directory: ./apps/bright + + - name: Integration tests + run: | + mix test --only=integration + working-directory: ./apps/bright + + - name: Acceptance tests + run: | + mix test --only=acceptance + working-directory: ./apps/bright + + - name: Uncategorized tests (ideally there should be none) + run: | + mix test --exclude=acceptance --exclude=unit --exclude=integration + working-directory: ./apps/bright + + - name: Code coverage + run: | + mix coveralls + working-directory: ./apps/bright diff --git a/.vscode/extensions.json b/.vscode/extensions.json index dd02caf..bbcc199 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,6 +2,7 @@ "recommendations": [ "helm-ls.helm-ls", "tchoupinax.tilt", - "redhat.vscode-yaml" + "redhat.vscode-yaml", + "elixir-lsp.elixir-ls" ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 8911a9d..b625447 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,5 +6,8 @@ ], "https://json.schemastore.org/kustomization.json": "file:///home/cj/Documents/futureporn-monorepo/clusters/production/infrastructure.yaml" }, - "editor.tabSize": 2 + "editor.tabSize": 2, + "elixirLS.projectDir": "apps/bright", + "editor.formatOnSave": true, + "elixirLS.useCurrentRootFolderAsProjectDir": true } \ No newline at end of file diff --git a/apps/README.md b/apps/README.md new file mode 100644 index 0000000..66c97a4 --- /dev/null +++ b/apps/README.md @@ -0,0 +1,4 @@ +This directory is for complete applications that are NOT node.js applications. + +For node apps, see ../services +For node app dependencies, see ../packages diff --git a/apps/bright/.coveralls.json b/apps/bright/.coveralls.json new file mode 100644 index 0000000..254f455 --- /dev/null +++ b/apps/bright/.coveralls.json @@ -0,0 +1,13 @@ +{ + "default_stop_words": [ + "defmodule", + "defrecord", + "defimpl", + "def.+(.+\/\/.+).+do" + ], + "custom_stop_words": [], + "coverage_options": { + "treat_no_relevant_lines_as_covered": true, + "minimum_coverage": 60 + } +} \ No newline at end of file diff --git a/services/bright/.dockerignore b/apps/bright/.dockerignore similarity index 100% rename from services/bright/.dockerignore rename to apps/bright/.dockerignore diff --git a/services/bright/.formatter.exs b/apps/bright/.formatter.exs similarity index 100% rename from services/bright/.formatter.exs rename to apps/bright/.formatter.exs diff --git a/services/bright/.gitignore b/apps/bright/.gitignore similarity index 100% rename from services/bright/.gitignore rename to apps/bright/.gitignore diff --git a/services/bright/README.md b/apps/bright/README.md similarity index 100% rename from services/bright/README.md rename to apps/bright/README.md diff --git a/services/bright/assets/css/_variables.scss b/apps/bright/assets/css/_variables.scss similarity index 100% rename from services/bright/assets/css/_variables.scss rename to apps/bright/assets/css/_variables.scss diff --git a/services/bright/assets/css/app.scss b/apps/bright/assets/css/app.scss similarity index 100% rename from services/bright/assets/css/app.scss rename to apps/bright/assets/css/app.scss diff --git a/services/bright/assets/images/favicon.png b/apps/bright/assets/images/favicon.png similarity index 100% rename from services/bright/assets/images/favicon.png rename to apps/bright/assets/images/favicon.png diff --git a/services/bright/assets/js/app.js b/apps/bright/assets/js/app.js similarity index 100% rename from services/bright/assets/js/app.js rename to apps/bright/assets/js/app.js diff --git a/services/bright/assets/js/hooks/index.js b/apps/bright/assets/js/hooks/index.js similarity index 100% rename from services/bright/assets/js/hooks/index.js rename to apps/bright/assets/js/hooks/index.js diff --git a/services/bright/assets/js/hooks/videojs_hook.js b/apps/bright/assets/js/hooks/videojs_hook.js similarity index 100% rename from services/bright/assets/js/hooks/videojs_hook.js rename to apps/bright/assets/js/hooks/videojs_hook.js diff --git a/services/bright/assets/js/hooks/vidstack_hook.js b/apps/bright/assets/js/hooks/vidstack_hook.js similarity index 100% rename from services/bright/assets/js/hooks/vidstack_hook.js rename to apps/bright/assets/js/hooks/vidstack_hook.js diff --git a/services/bright/assets/package-lock.json b/apps/bright/assets/package-lock.json similarity index 100% rename from services/bright/assets/package-lock.json rename to apps/bright/assets/package-lock.json diff --git a/services/bright/assets/package.json b/apps/bright/assets/package.json similarity index 100% rename from services/bright/assets/package.json rename to apps/bright/assets/package.json diff --git a/services/bright/assets/static/127.jpg b/apps/bright/assets/static/127.jpg similarity index 100% rename from services/bright/assets/static/127.jpg rename to apps/bright/assets/static/127.jpg diff --git a/services/bright/assets/static/favicon.ico b/apps/bright/assets/static/favicon.ico similarity index 100% rename from services/bright/assets/static/favicon.ico rename to apps/bright/assets/static/favicon.ico diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/LICENSE.txt b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/LICENSE.txt similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/LICENSE.txt rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/LICENSE.txt diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/README.md b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/README.md similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/README.md rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/README.md diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/all.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/brands.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/fontawesome.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/regular.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/solid.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/svg-with-js.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-font-face.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v4-shims.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.min.css b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.min.css similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.min.css rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/css/v5-font-face.min.css diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.min.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.min.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.min.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/all.min.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.min.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.min.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.min.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/brands.min.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.min.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.min.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.min.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/conflict-detection.min.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.min.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.min.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.min.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/fontawesome.min.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.min.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.min.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.min.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/regular.min.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.min.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.min.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.min.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/solid.min.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.min.js b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.min.js similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.min.js rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/js/v4-shims.min.js diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_animated.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_animated.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_animated.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_animated.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_bordered-pulled.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_bordered-pulled.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_bordered-pulled.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_bordered-pulled.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_core.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_core.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_core.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_core.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_fixed-width.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_fixed-width.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_fixed-width.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_fixed-width.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_icons.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_icons.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_icons.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_icons.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_list.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_list.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_list.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_list.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_mixins.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_mixins.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_mixins.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_mixins.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_rotated-flipped.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_rotated-flipped.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_rotated-flipped.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_rotated-flipped.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_screen-reader.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_screen-reader.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_screen-reader.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_screen-reader.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_shims.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_shims.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_shims.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_shims.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_sizing.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_sizing.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_sizing.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_sizing.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_stacked.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_stacked.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_stacked.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_stacked.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_variables.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_variables.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/_variables.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/_variables.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/brands.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/brands.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/brands.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/brands.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/fontawesome.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/fontawesome.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/fontawesome.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/fontawesome.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/regular.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/regular.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/regular.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/regular.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/solid.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/solid.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/solid.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/solid.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/less/v4-shims.less b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/v4-shims.less similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/less/v4-shims.less rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/less/v4-shims.less diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/categories.yml b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/categories.yml similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/categories.yml rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/categories.yml diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.json b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.json similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.json rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.json diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.yml b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.yml similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.yml rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icon-families.yml diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icons.yml b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icons.yml similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icons.yml rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/icons.yml diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/shims.yml b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/shims.yml similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/shims.yml rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/shims.yml diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/sponsors.yml b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/sponsors.yml similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/sponsors.yml rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/metadata/sponsors.yml diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/package.json b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/package.json similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/package.json rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/package.json diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_animated.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_animated.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_animated.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_animated.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_bordered-pulled.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_bordered-pulled.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_bordered-pulled.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_bordered-pulled.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_core.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_core.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_core.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_core.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_fixed-width.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_fixed-width.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_fixed-width.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_fixed-width.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_functions.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_functions.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_functions.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_functions.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_icons.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_icons.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_icons.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_icons.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_list.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_list.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_list.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_list.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_mixins.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_mixins.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_mixins.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_mixins.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_rotated-flipped.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_rotated-flipped.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_rotated-flipped.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_rotated-flipped.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_screen-reader.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_screen-reader.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_screen-reader.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_screen-reader.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_shims.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_shims.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_shims.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_shims.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_sizing.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_sizing.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_sizing.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_sizing.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_stacked.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_stacked.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_stacked.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_stacked.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_variables.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_variables.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_variables.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/_variables.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/brands.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/brands.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/brands.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/brands.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/fontawesome.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/fontawesome.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/fontawesome.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/fontawesome.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/regular.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/regular.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/regular.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/regular.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/solid.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/solid.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/solid.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/solid.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/v4-shims.scss b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/v4-shims.scss similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/scss/v4-shims.scss rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/scss/v4-shims.scss diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/brands.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/brands.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/brands.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/brands.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/regular.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/regular.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/regular.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/regular.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/solid.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/solid.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/solid.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/sprites/solid.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/42-group.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/42-group.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/42-group.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/42-group.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/500px.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/500px.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/500px.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/500px.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accessible-icon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accessible-icon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accessible-icon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accessible-icon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accusoft.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accusoft.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accusoft.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/accusoft.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adversal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adversal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adversal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/adversal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/affiliatetheme.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/affiliatetheme.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/affiliatetheme.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/affiliatetheme.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/airbnb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/airbnb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/airbnb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/airbnb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/algolia.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/algolia.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/algolia.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/algolia.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/alipay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/alipay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/alipay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/alipay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon-pay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon-pay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon-pay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon-pay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amazon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amilia.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amilia.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amilia.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/amilia.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/android.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/android.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/android.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/android.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angellist.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angellist.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angellist.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angellist.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angrycreative.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angrycreative.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angrycreative.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angrycreative.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angular.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angular.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angular.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/angular.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store-ios.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store-ios.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store-ios.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store-ios.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/app-store.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple-pay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple-pay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple-pay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple-pay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/apple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/artstation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/artstation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/artstation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/artstation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/asymmetrik.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/asymmetrik.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/asymmetrik.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/asymmetrik.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/atlassian.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/atlassian.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/atlassian.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/atlassian.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/audible.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/audible.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/audible.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/audible.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/autoprefixer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/autoprefixer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/autoprefixer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/autoprefixer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/avianex.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/avianex.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/avianex.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/avianex.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aviato.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aviato.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aviato.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aviato.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aws.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aws.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aws.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/aws.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bandcamp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bandcamp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bandcamp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bandcamp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/battle-net.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/battle-net.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/battle-net.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/battle-net.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/behance.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/behance.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/behance.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/behance.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bilibili.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bilibili.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bilibili.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bilibili.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bimobject.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bimobject.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bimobject.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bimobject.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitbucket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitbucket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitbucket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitbucket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitcoin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitcoin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitcoin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bitcoin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bity.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bity.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bity.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bity.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/black-tie.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/black-tie.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/black-tie.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/black-tie.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blackberry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blackberry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blackberry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blackberry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger-b.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger-b.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger-b.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger-b.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/blogger.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluesky.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluesky.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluesky.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluesky.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth-b.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth-b.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth-b.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth-b.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bluetooth.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bootstrap.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bootstrap.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bootstrap.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bootstrap.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bots.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bots.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bots.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/bots.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave-reverse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave-reverse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave-reverse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave-reverse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/brave.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/btc.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/btc.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/btc.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/btc.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buffer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buffer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buffer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buffer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buromobelexperte.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buromobelexperte.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buromobelexperte.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buromobelexperte.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buy-n-large.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buy-n-large.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buy-n-large.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buy-n-large.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buysellads.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buysellads.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buysellads.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/buysellads.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/canadian-maple-leaf.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/canadian-maple-leaf.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/canadian-maple-leaf.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/canadian-maple-leaf.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amazon-pay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amazon-pay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amazon-pay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amazon-pay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amex.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amex.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amex.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-amex.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-apple-pay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-apple-pay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-apple-pay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-apple-pay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-diners-club.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-diners-club.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-diners-club.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-diners-club.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-discover.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-discover.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-discover.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-discover.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-jcb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-jcb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-jcb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-jcb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-mastercard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-mastercard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-mastercard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-mastercard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-paypal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-paypal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-paypal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-paypal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-stripe.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-stripe.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-stripe.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-stripe.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-visa.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-visa.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-visa.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cc-visa.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centercode.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centercode.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centercode.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centercode.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centos.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centos.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centos.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/centos.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chrome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chrome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chrome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chrome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chromecast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chromecast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chromecast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/chromecast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudflare.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudflare.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudflare.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudflare.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudscale.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudscale.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudscale.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudscale.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudsmith.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudsmith.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudsmith.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudsmith.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudversify.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudversify.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudversify.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cloudversify.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cmplid.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cmplid.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cmplid.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cmplid.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codepen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codepen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codepen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codepen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codiepie.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codiepie.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codiepie.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/codiepie.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/confluence.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/confluence.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/confluence.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/confluence.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/connectdevelop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/connectdevelop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/connectdevelop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/connectdevelop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/contao.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/contao.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/contao.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/contao.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cotton-bureau.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cotton-bureau.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cotton-bureau.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cotton-bureau.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cpanel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cpanel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cpanel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cpanel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-by.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-by.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-by.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-by.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-eu.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-eu.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-eu.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-eu.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-jp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-jp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-jp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-jp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd-alt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd-alt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd-alt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd-alt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-remix.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-remix.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-remix.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-remix.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sa.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sa.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sa.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sa.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-share.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-share.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-share.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-share.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-zero.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-zero.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-zero.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons-zero.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/creative-commons.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/critical-role.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/critical-role.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/critical-role.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/critical-role.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3-alt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3-alt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3-alt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3-alt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/css3.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cuttlefish.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cuttlefish.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cuttlefish.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/cuttlefish.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d-beyond.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d-beyond.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d-beyond.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d-beyond.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/d-and-d.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dailymotion.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dailymotion.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dailymotion.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dailymotion.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dart-lang.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dart-lang.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dart-lang.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dart-lang.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dashcube.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dashcube.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dashcube.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dashcube.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/debian.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/debian.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/debian.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/debian.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deezer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deezer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deezer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deezer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/delicious.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/delicious.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/delicious.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/delicious.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deploydog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deploydog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deploydog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deploydog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deskpro.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deskpro.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deskpro.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deskpro.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dev.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dev.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dev.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dev.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deviantart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deviantart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deviantart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/deviantart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dhl.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dhl.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dhl.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dhl.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/diaspora.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/diaspora.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/diaspora.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/diaspora.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digg.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digg.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digg.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digg.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digital-ocean.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digital-ocean.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digital-ocean.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/digital-ocean.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discord.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discord.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discord.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discord.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discourse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discourse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discourse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/discourse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dochub.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dochub.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dochub.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dochub.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/docker.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/docker.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/docker.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/docker.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/draft2digital.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/draft2digital.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/draft2digital.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/draft2digital.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dribbble.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dribbble.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dribbble.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dribbble.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dropbox.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dropbox.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dropbox.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dropbox.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/drupal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/drupal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/drupal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/drupal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dyalog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dyalog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dyalog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/dyalog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/earlybirds.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/earlybirds.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/earlybirds.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/earlybirds.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ebay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ebay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ebay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ebay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge-legacy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge-legacy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge-legacy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge-legacy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/edge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/elementor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/elementor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/elementor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/elementor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ello.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ello.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ello.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ello.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ember.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ember.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ember.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ember.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/empire.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/empire.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/empire.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/empire.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/envira.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/envira.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/envira.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/envira.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/erlang.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/erlang.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/erlang.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/erlang.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ethereum.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ethereum.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ethereum.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ethereum.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/etsy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/etsy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/etsy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/etsy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/evernote.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/evernote.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/evernote.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/evernote.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/expeditedssl.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/expeditedssl.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/expeditedssl.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/expeditedssl.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-f.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-f.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-f.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-f.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-messenger.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-messenger.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-messenger.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook-messenger.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/facebook.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fantasy-flight-games.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fantasy-flight-games.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fantasy-flight-games.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fantasy-flight-games.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedex.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedex.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedex.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedex.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedora.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedora.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedora.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fedora.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/figma.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/figma.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/figma.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/figma.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/files-pinwheel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/files-pinwheel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/files-pinwheel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/files-pinwheel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox-browser.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox-browser.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox-browser.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox-browser.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firefox.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order-alt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order-alt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order-alt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order-alt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/first-order.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firstdraft.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firstdraft.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firstdraft.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/firstdraft.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flickr.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flickr.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flickr.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flickr.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flipboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flipboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flipboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flipboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flutter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flutter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flutter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/flutter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fly.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fly.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fly.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fly.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/font-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/font-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/font-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/font-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons-fi.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons-fi.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons-fi.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons-fi.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fonticons.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome-alt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome-alt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome-alt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome-alt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fort-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/forumbee.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/forumbee.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/forumbee.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/forumbee.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/foursquare.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/foursquare.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/foursquare.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/foursquare.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/free-code-camp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/free-code-camp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/free-code-camp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/free-code-camp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/freebsd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/freebsd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/freebsd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/freebsd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fulcrum.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fulcrum.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fulcrum.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/fulcrum.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-republic.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-republic.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-republic.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-republic.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-senate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-senate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-senate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/galactic-senate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/get-pocket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/get-pocket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/get-pocket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/get-pocket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg-circle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg-circle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg-circle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg-circle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gg.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git-alt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git-alt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git-alt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git-alt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/git.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github-alt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github-alt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github-alt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github-alt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/github.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitkraken.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitkraken.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitkraken.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitkraken.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitlab.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitlab.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitlab.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitlab.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gitter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide-g.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide-g.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide-g.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide-g.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/glide.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gofore.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gofore.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gofore.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gofore.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/golang.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/golang.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/golang.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/golang.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads-g.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads-g.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads-g.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads-g.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/goodreads.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-drive.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-drive.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-drive.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-drive.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-pay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-pay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-pay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-pay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-play.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-play.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-play.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-play.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus-g.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus-g.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus-g.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus-g.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-scholar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-scholar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-scholar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-scholar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-wallet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-wallet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-wallet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google-wallet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/google.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gratipay.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gratipay.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gratipay.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gratipay.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grav.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grav.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grav.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grav.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gripfire.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gripfire.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gripfire.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gripfire.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grunt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grunt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grunt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/grunt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/guilded.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/guilded.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/guilded.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/guilded.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gulp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gulp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gulp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/gulp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hacker-news.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hacker-news.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hacker-news.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hacker-news.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hackerrank.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hackerrank.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hackerrank.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hackerrank.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hashnode.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hashnode.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hashnode.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hashnode.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hips.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hips.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hips.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hips.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hire-a-helper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hire-a-helper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hire-a-helper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hire-a-helper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hive.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hive.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hive.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hive.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hooli.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hooli.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hooli.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hooli.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hornbill.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hornbill.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hornbill.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hornbill.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hotjar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hotjar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hotjar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hotjar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/houzz.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/houzz.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/houzz.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/houzz.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/html5.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/html5.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/html5.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/html5.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hubspot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hubspot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hubspot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/hubspot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ideal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ideal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ideal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ideal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/imdb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/imdb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/imdb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/imdb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instagram.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instagram.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instagram.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instagram.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instalod.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instalod.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instalod.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/instalod.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/intercom.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/intercom.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/intercom.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/intercom.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/internet-explorer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/internet-explorer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/internet-explorer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/internet-explorer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/invision.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/invision.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/invision.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/invision.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ioxhost.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ioxhost.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ioxhost.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ioxhost.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itch-io.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itch-io.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itch-io.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itch-io.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes-note.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes-note.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes-note.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes-note.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/itunes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/java.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/java.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/java.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/java.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jedi-order.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jedi-order.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jedi-order.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jedi-order.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jenkins.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jenkins.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jenkins.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jenkins.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jira.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jira.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jira.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jira.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joget.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joget.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joget.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joget.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joomla.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joomla.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joomla.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/joomla.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/js.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/js.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/js.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/js.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jsfiddle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jsfiddle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jsfiddle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jsfiddle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jxl.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jxl.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jxl.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/jxl.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kaggle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kaggle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kaggle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kaggle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keybase.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keybase.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keybase.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keybase.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keycdn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keycdn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keycdn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/keycdn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter-k.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter-k.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter-k.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter-k.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/kickstarter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/korvue.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/korvue.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/korvue.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/korvue.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/laravel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/laravel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/laravel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/laravel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lastfm.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lastfm.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lastfm.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lastfm.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/leanpub.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/leanpub.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/leanpub.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/leanpub.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/less.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/less.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/less.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/less.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/letterboxd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/letterboxd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/letterboxd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/letterboxd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin-in.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin-in.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin-in.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin-in.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linkedin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linode.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linode.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linode.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linode.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linux.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linux.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linux.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/linux.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lyft.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lyft.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lyft.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/lyft.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/magento.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/magento.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/magento.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/magento.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mailchimp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mailchimp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mailchimp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mailchimp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mandalorian.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mandalorian.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mandalorian.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mandalorian.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/markdown.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/markdown.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/markdown.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/markdown.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mastodon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mastodon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mastodon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mastodon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/maxcdn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/maxcdn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/maxcdn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/maxcdn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mdb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mdb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mdb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mdb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medapps.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medapps.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medapps.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medapps.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medium.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medium.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medium.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medium.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medrt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medrt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medrt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/medrt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meetup.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meetup.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meetup.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meetup.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/megaport.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/megaport.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/megaport.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/megaport.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mendeley.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mendeley.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mendeley.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mendeley.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meta.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meta.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meta.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/meta.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microblog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microblog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microblog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microblog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microsoft.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microsoft.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microsoft.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/microsoft.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mintbit.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mintbit.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mintbit.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mintbit.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mix.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mix.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mix.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mix.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixcloud.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixcloud.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixcloud.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixcloud.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mixer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mizuni.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mizuni.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mizuni.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/mizuni.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/modx.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/modx.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/modx.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/modx.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/monero.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/monero.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/monero.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/monero.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/napster.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/napster.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/napster.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/napster.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/neos.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/neos.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/neos.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/neos.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-directional.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-directional.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-directional.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-directional.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-symbol.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-symbol.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-symbol.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nfc-symbol.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nimblr.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nimblr.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nimblr.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nimblr.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node-js.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node-js.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node-js.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node-js.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/node.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/npm.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/npm.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/npm.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/npm.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ns8.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ns8.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ns8.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ns8.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nutritionix.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nutritionix.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nutritionix.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/nutritionix.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/octopus-deploy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/octopus-deploy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/octopus-deploy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/octopus-deploy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odnoklassniki.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odnoklassniki.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odnoklassniki.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odnoklassniki.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odysee.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odysee.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odysee.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/odysee.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/old-republic.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/old-republic.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/old-republic.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/old-republic.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opencart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opencart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opencart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opencart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/openid.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/openid.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/openid.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/openid.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opensuse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opensuse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opensuse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opensuse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opera.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opera.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opera.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/opera.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/optin-monster.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/optin-monster.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/optin-monster.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/optin-monster.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/orcid.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/orcid.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/orcid.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/orcid.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/osi.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/osi.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/osi.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/osi.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/padlet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/padlet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/padlet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/padlet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/page4.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/page4.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/page4.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/page4.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pagelines.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pagelines.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pagelines.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pagelines.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/palfed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/palfed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/palfed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/palfed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/patreon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/patreon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/patreon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/patreon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/paypal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/paypal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/paypal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/paypal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/perbyte.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/perbyte.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/perbyte.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/perbyte.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/periscope.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/periscope.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/periscope.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/periscope.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phabricator.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phabricator.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phabricator.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phabricator.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-framework.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-framework.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-framework.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-framework.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-squadron.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-squadron.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-squadron.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/phoenix-squadron.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/php.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/php.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/php.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/php.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-alt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-alt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-alt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-alt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-hat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-hat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-hat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-hat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-pp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-pp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-pp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper-pp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pied-piper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest-p.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest-p.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest-p.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest-p.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pinterest.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pix.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pix.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pix.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pix.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pixiv.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pixiv.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pixiv.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pixiv.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/playstation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/playstation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/playstation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/playstation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/product-hunt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/product-hunt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/product-hunt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/product-hunt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pushed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pushed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pushed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/pushed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/python.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/python.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/python.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/python.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/qq.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/qq.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/qq.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/qq.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quinscape.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quinscape.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quinscape.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quinscape.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quora.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quora.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quora.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/quora.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/r-project.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/r-project.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/r-project.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/r-project.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/raspberry-pi.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/raspberry-pi.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/raspberry-pi.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/raspberry-pi.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ravelry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ravelry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ravelry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ravelry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/react.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/react.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/react.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/react.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reacteurope.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reacteurope.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reacteurope.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reacteurope.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/readme.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/readme.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/readme.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/readme.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rebel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rebel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rebel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rebel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/red-river.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/red-river.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/red-river.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/red-river.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit-alien.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit-alien.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit-alien.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit-alien.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/reddit.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/redhat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/redhat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/redhat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/redhat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/renren.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/renren.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/renren.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/renren.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/replyd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/replyd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/replyd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/replyd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/researchgate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/researchgate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/researchgate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/researchgate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/resolving.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/resolving.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/resolving.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/resolving.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rev.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rev.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rev.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rev.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rocketchat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rocketchat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rocketchat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rocketchat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rockrms.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rockrms.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rockrms.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rockrms.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rust.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rust.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rust.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/rust.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/safari.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/safari.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/safari.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/safari.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/salesforce.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/salesforce.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/salesforce.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/salesforce.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/schlix.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/schlix.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/schlix.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/schlix.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/screenpal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/screenpal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/screenpal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/screenpal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/scribd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/scribd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/scribd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/scribd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/searchengin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/searchengin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/searchengin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/searchengin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellcast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellcast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellcast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellcast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellsy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellsy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellsy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sellsy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/servicestack.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/servicestack.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/servicestack.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/servicestack.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shirtsinbulk.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shirtsinbulk.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shirtsinbulk.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shirtsinbulk.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shoelace.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shoelace.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shoelace.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shoelace.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopify.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopify.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopify.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopify.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopware.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopware.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopware.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/shopware.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/signal-messenger.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/signal-messenger.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/signal-messenger.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/signal-messenger.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/simplybuilt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/simplybuilt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/simplybuilt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/simplybuilt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sistrix.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sistrix.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sistrix.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sistrix.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sith.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sith.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sith.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sith.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sitrox.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sitrox.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sitrox.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sitrox.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sketch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sketch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sketch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sketch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skyatlas.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skyatlas.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skyatlas.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skyatlas.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skype.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skype.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skype.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/skype.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slack.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slack.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slack.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slack.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slideshare.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slideshare.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slideshare.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/slideshare.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/snapchat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/snapchat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/snapchat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/snapchat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/soundcloud.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/soundcloud.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/soundcloud.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/soundcloud.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sourcetree.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sourcetree.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sourcetree.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sourcetree.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/space-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/space-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/space-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/space-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speakap.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speakap.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speakap.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speakap.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speaker-deck.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speaker-deck.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speaker-deck.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/speaker-deck.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/spotify.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/spotify.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/spotify.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/spotify.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-behance.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-behance.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-behance.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-behance.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-bluesky.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-bluesky.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-bluesky.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-bluesky.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-dribbble.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-dribbble.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-dribbble.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-dribbble.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-facebook.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-facebook.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-facebook.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-facebook.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome-stroke.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome-stroke.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome-stroke.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome-stroke.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-git.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-git.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-git.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-git.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-github.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-github.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-github.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-github.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-gitlab.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-gitlab.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-gitlab.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-gitlab.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-google-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-google-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-google-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-google-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-hacker-news.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-hacker-news.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-hacker-news.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-hacker-news.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-instagram.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-instagram.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-instagram.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-instagram.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-js.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-js.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-js.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-js.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-lastfm.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-lastfm.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-lastfm.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-lastfm.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-letterboxd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-letterboxd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-letterboxd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-letterboxd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-odnoklassniki.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-odnoklassniki.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-odnoklassniki.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-odnoklassniki.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pied-piper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pied-piper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pied-piper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pied-piper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pinterest.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pinterest.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pinterest.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-pinterest.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-reddit.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-reddit.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-reddit.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-reddit.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-snapchat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-snapchat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-snapchat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-snapchat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-steam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-steam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-steam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-steam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-threads.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-threads.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-threads.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-threads.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-tumblr.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-tumblr.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-tumblr.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-tumblr.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-twitter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-twitter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-twitter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-twitter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-upwork.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-upwork.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-upwork.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-upwork.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-viadeo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-viadeo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-viadeo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-viadeo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-vimeo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-vimeo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-vimeo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-vimeo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome-stroke.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome-stroke.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome-stroke.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome-stroke.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-whatsapp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-whatsapp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-whatsapp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-whatsapp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-x-twitter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-x-twitter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-x-twitter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-x-twitter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-xing.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-xing.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-xing.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-xing.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-youtube.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-youtube.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-youtube.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/square-youtube.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/squarespace.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/squarespace.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/squarespace.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/squarespace.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-exchange.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-exchange.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-exchange.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-exchange.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-overflow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-overflow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-overflow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stack-overflow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stackpath.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stackpath.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stackpath.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stackpath.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/staylinked.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/staylinked.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/staylinked.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/staylinked.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam-symbol.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam-symbol.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam-symbol.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam-symbol.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/steam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sticker-mule.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sticker-mule.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sticker-mule.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/sticker-mule.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/strava.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/strava.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/strava.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/strava.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe-s.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe-s.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe-s.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe-s.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stripe.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stubber.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stubber.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stubber.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stubber.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/studiovinari.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/studiovinari.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/studiovinari.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/studiovinari.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon-circle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon-circle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon-circle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon-circle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/stumbleupon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/superpowers.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/superpowers.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/superpowers.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/superpowers.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/supple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/supple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/supple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/supple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/suse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/suse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/suse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/suse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/swift.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/swift.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/swift.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/swift.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/symfony.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/symfony.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/symfony.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/symfony.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/teamspeak.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/teamspeak.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/teamspeak.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/teamspeak.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/telegram.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/telegram.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/telegram.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/telegram.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tencent-weibo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tencent-weibo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tencent-weibo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tencent-weibo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/the-red-yeti.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/the-red-yeti.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/the-red-yeti.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/the-red-yeti.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeco.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeco.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeco.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeco.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeisle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeisle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeisle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/themeisle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/think-peaks.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/think-peaks.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/think-peaks.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/think-peaks.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/threads.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/threads.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/threads.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/threads.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tiktok.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tiktok.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tiktok.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tiktok.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trade-federation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trade-federation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trade-federation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trade-federation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trello.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trello.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trello.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/trello.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tumblr.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tumblr.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tumblr.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/tumblr.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/twitter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/typo3.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/typo3.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/typo3.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/typo3.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uber.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uber.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uber.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uber.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ubuntu.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ubuntu.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ubuntu.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ubuntu.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uikit.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uikit.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uikit.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uikit.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/umbraco.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/umbraco.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/umbraco.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/umbraco.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uncharted.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uncharted.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uncharted.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uncharted.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uniregistry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uniregistry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uniregistry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/uniregistry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unity.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unity.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unity.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unity.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unsplash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unsplash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unsplash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/unsplash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/untappd.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/untappd.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/untappd.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/untappd.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ups.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ups.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ups.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ups.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/upwork.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/upwork.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/upwork.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/upwork.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usps.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usps.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usps.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/usps.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ussunnah.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ussunnah.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ussunnah.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/ussunnah.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vaadin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vaadin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vaadin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vaadin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viacoin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viacoin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viacoin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viacoin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viadeo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viadeo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viadeo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viadeo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viber.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viber.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viber.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/viber.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo-v.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo-v.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo-v.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo-v.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vimeo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vine.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vine.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vine.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vine.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vk.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vk.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vk.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vk.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vnv.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vnv.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vnv.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vnv.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vuejs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vuejs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vuejs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/vuejs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/watchman-monitoring.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/watchman-monitoring.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/watchman-monitoring.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/watchman-monitoring.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/waze.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/waze.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/waze.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/waze.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/web-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/web-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/web-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/web-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/webflow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/webflow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/webflow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/webflow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weebly.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weebly.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weebly.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weebly.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weibo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weibo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weibo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weibo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weixin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weixin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weixin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/weixin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whatsapp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whatsapp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whatsapp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whatsapp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whmcs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whmcs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whmcs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/whmcs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wikipedia-w.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wikipedia-w.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wikipedia-w.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wikipedia-w.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/windows.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/windows.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/windows.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/windows.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wirsindhandwerk.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wirsindhandwerk.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wirsindhandwerk.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wirsindhandwerk.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wix.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wix.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wix.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wix.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wizards-of-the-coast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wizards-of-the-coast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wizards-of-the-coast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wizards-of-the-coast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wodu.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wodu.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wodu.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wodu.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wolf-pack-battalion.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wolf-pack-battalion.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wolf-pack-battalion.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wolf-pack-battalion.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wordpress.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpbeginner.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpbeginner.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpbeginner.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpbeginner.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpexplorer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpexplorer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpexplorer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpexplorer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpforms.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpforms.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpforms.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpforms.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpressr.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpressr.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpressr.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/wpressr.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/x-twitter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/x-twitter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/x-twitter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/x-twitter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xbox.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xbox.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xbox.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xbox.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xing.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xing.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xing.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/xing.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/y-combinator.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/y-combinator.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/y-combinator.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/y-combinator.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yahoo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yahoo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yahoo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yahoo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yammer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yammer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yammer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yammer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex-international.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex-international.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex-international.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex-international.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yandex.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yarn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yarn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yarn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yarn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yelp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yelp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yelp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yelp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yoast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yoast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yoast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/yoast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/youtube.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/youtube.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/youtube.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/youtube.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/zhihu.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/zhihu.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/zhihu.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/brands/zhihu.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-book.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-book.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-book.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-book.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/address-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bell.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bookmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bookmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bookmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/bookmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/building.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/building.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/building.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/building.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-days.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-days.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-days.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-days.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/calendar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chart-bar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chart-bar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chart-bar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chart-bar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-bishop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-bishop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-bishop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-bishop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-king.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-king.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-king.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-king.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-knight.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-knight.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-knight.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-knight.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-pawn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-pawn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-pawn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-pawn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-queen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-queen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-queen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-queen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-rook.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-rook.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-rook.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/chess-rook.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-dot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-dot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-dot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-dot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-pause.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-pause.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-pause.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-pause.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-play.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-play.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-play.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-play.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-question.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-question.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-question.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-question.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-stop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-stop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-stop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-stop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/circle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clipboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clipboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clipboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clipboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clone.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clone.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clone.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/clone.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/closed-captioning.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/closed-captioning.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/closed-captioning.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/closed-captioning.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment-dots.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment-dots.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment-dots.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment-dots.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comment.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comments.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comments.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comments.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/comments.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/compass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/compass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/compass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/compass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copyright.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copyright.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copyright.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/copyright.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/credit-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/credit-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/credit-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/credit-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/envelope.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/eye.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-angry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-angry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-angry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-angry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-dizzy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-dizzy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-dizzy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-dizzy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-flushed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-flushed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-flushed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-flushed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-frown.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grimace.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grimace.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grimace.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grimace.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam-sweat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam-sweat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam-sweat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam-sweat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-hearts.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-hearts.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-hearts.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-hearts.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint-tears.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint-tears.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint-tears.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint-tears.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-stars.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-stars.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-stars.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-stars.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tears.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tears.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tears.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tears.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-squint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-squint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-squint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-squint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wide.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wide.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wide.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wide.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-grin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-wink-heart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-wink-heart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-wink-heart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss-wink-heart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-kiss.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-squint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-squint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-squint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-squint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-laugh.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh-blank.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh-blank.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh-blank.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh-blank.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-meh.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-rolling-eyes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-rolling-eyes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-rolling-eyes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-rolling-eyes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-cry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-cry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-cry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-cry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-tear.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-tear.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-tear.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-sad-tear.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-smile.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-surprise.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-surprise.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-surprise.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-surprise.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-tired.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-tired.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-tired.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/face-tired.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-audio.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-audio.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-audio.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-audio.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-code.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-code.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-code.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-code.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-excel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-excel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-excel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-excel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-image.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-image.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-image.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-image.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-lines.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-lines.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-lines.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-lines.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-pdf.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-pdf.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-pdf.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-pdf.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-powerpoint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-powerpoint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-powerpoint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-powerpoint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-video.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-video.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-video.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-video.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-word.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-word.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-word.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-word.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-zipper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-zipper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-zipper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file-zipper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/file.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/flag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/flag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/flag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/flag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/floppy-disk.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/floppy-disk.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/floppy-disk.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/floppy-disk.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-closed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-closed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-closed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-closed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/folder.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/font-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/font-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/font-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/font-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/futbol.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/futbol.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/futbol.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/futbol.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/gem.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/gem.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/gem.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/gem.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-back-fist.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-back-fist.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-back-fist.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-back-fist.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-lizard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-lizard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-lizard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-lizard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-peace.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-peace.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-peace.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-peace.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-point-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-pointer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-pointer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-pointer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-pointer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-scissors.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-scissors.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-scissors.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-scissors.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-spock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-spock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-spock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand-spock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hand.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/handshake.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/handshake.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/handshake.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/handshake.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hard-drive.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hard-drive.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hard-drive.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hard-drive.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/heart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/heart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/heart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/heart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hospital.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hospital.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hospital.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hospital.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass-half.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass-half.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass-half.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass-half.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/hourglass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-badge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-badge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-badge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-badge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/id-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/image.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/image.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/image.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/image.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/images.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/images.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/images.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/images.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/keyboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/keyboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/keyboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/keyboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lemon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lemon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lemon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lemon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/life-ring.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/life-ring.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/life-ring.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/life-ring.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lightbulb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lightbulb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lightbulb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/lightbulb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/map.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/map.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/map.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/map.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/message.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/message.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/message.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/message.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/money-bill-1.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/money-bill-1.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/money-bill-1.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/money-bill-1.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/moon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/moon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/moon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/moon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/newspaper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/newspaper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/newspaper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/newspaper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/note-sticky.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/note-sticky.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/note-sticky.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/note-sticky.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-group.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-group.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-group.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-group.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-ungroup.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-ungroup.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-ungroup.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/object-ungroup.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paper-plane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paper-plane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paper-plane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paper-plane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paste.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paste.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paste.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/paste.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/pen-to-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/pen-to-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/pen-to-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/pen-to-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-list.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-list.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-list.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-list.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/rectangle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/registered.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/registered.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/registered.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/registered.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/share-from-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/share-from-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/share-from-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/share-from-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/snowflake.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/snowflake.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/snowflake.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/snowflake.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-caret-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-full.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-full.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-full.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-full.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half-stroke.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half-stroke.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half-stroke.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half-stroke.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star-half.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/star.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/sun.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/sun.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/sun.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/sun.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/thumbs-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/trash-can.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/trash-can.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/trash-can.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/trash-can.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-maximize.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-maximize.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-maximize.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-maximize.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-minimize.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-minimize.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-minimize.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-minimize.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-restore.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-restore.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-restore.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/regular/window-restore.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/0.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/0.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/0.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/0.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/1.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/1.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/1.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/1.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/2.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/2.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/2.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/2.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/3.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/3.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/3.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/3.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/4.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/4.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/4.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/4.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/5.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/5.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/5.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/5.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/6.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/6.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/6.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/6.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/7.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/7.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/7.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/7.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/8.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/8.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/8.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/8.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/9.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/9.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/9.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/9.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/a.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/a.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/a.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/a.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-book.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-book.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-book.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-book.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/address-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-center.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-center.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-center.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-center.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-justify.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-justify.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-justify.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-justify.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/align-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/anchor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angle-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/angles-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ankh.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ankh.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ankh.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ankh.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/apple-whole.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/apple-whole.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/apple-whole.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/apple-whole.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/archway.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/archway.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/archway.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/archway.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-1-9.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-1-9.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-1-9.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-1-9.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-9-1.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-9-1.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-9-1.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-9-1.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-a-z.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-a-z.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-a-z.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-a-z.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-short-wide.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-short-wide.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-short-wide.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-short-wide.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-across-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-across-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-across-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-across-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-wide-short.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-wide-short.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-wide-short.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-wide-short.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-z-a.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-z-a.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-z-a.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down-z-a.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-pointer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-pointer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-pointer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-pointer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-arrow-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-arrow-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-arrow-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-arrow-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-from-bracket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-from-bracket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-from-bracket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-from-bracket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-bracket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-bracket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-bracket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-bracket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-city.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-city.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-city.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-city.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-1-9.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-1-9.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-1-9.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-1-9.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-9-1.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-9-1.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-9-1.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-9-1.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-a-z.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-a-z.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-a-z.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-a-z.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-bracket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-bracket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-bracket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-bracket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-ground-water.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-ground-water.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-ground-water.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-ground-water.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-water-pump.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-water-pump.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-water-pump.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-water-pump.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-dots.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-dots.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-dots.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-dots.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-from-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-from-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-from-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-from-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-short-wide.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-short-wide.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-short-wide.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-short-wide.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-wide-short.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-wide-short.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-wide-short.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-wide-short.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-z-a.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-z-a.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-z-a.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up-z-a.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrow-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-people.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-people.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-people.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-people.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right-to-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right-to-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right-to-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right-to-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-rotate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-rotate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-rotate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-rotate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-spin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-spin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-spin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-spin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-split-up-and-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-split-up-and-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-split-up-and-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-split-up-and-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-circle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-circle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-circle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-circle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-dot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-dot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-dot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-dot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-eye.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-eye.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-eye.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-to-eye.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-to-dots.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-to-dots.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-to-dots.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-to-dots.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down-left-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down-left-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down-left-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down-left-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-to-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-to-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-to-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/arrows-up-to-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/asterisk.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/asterisk.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/asterisk.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/asterisk.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/at.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/at.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/at.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/at.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/atom.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/atom.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/atom.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/atom.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/audio-description.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/audio-description.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/audio-description.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/audio-description.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/austral-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/austral-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/austral-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/austral-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/award.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/award.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/award.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/award.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/b.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/b.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/b.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/b.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby-carriage.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby-carriage.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby-carriage.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby-carriage.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baby.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-fast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-fast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-fast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-fast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-step.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-step.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-step.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward-step.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/backward.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacteria.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacteria.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacteria.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacteria.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacterium.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacterium.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacterium.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bacterium.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bag-shopping.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bag-shopping.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bag-shopping.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bag-shopping.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bahai.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bahai.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bahai.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bahai.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baht-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baht-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baht-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baht-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban-smoking.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban-smoking.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban-smoking.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban-smoking.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ban.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bandage.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bandage.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bandage.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bandage.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bangladeshi-taka-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bangladeshi-taka-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bangladeshi-taka-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bangladeshi-taka-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/barcode.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/barcode.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/barcode.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/barcode.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-progress.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-progress.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-progress.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-progress.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-staggered.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-staggered.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-staggered.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars-staggered.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bars.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball-bat-ball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball-bat-ball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball-bat-ball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball-bat-ball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/baseball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basket-shopping.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basket-shopping.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basket-shopping.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basket-shopping.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basketball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basketball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basketball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/basketball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bath.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bath.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bath.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bath.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-empty.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-empty.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-empty.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-empty.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-full.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-full.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-full.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-full.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-half.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-half.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-half.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-half.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-quarter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-quarter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-quarter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-quarter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-three-quarters.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-three-quarters.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-three-quarters.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/battery-three-quarters.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed-pulse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed-pulse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed-pulse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed-pulse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/beer-mug-empty.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/beer-mug-empty.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/beer-mug-empty.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/beer-mug-empty.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-concierge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-concierge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-concierge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-concierge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bell.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bezier-curve.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bezier-curve.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bezier-curve.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bezier-curve.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bicycle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bicycle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bicycle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bicycle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/binoculars.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/binoculars.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/binoculars.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/binoculars.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/biohazard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/biohazard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/biohazard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/biohazard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bitcoin-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bitcoin-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bitcoin-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bitcoin-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender-phone.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender-phone.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender-phone.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender-phone.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blender.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/blog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bold.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bold.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bold.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bold.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt-lightning.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt-lightning.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt-lightning.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt-lightning.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bolt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bomb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bomb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bomb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bomb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bone.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bone.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bone.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bone.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bong.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bong.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bong.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bong.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-atlas.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-atlas.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-atlas.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-atlas.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bible.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bible.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bible.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bible.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bookmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bookmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bookmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-bookmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-journal-whills.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-journal-whills.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-journal-whills.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-journal-whills.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open-reader.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open-reader.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open-reader.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open-reader.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-quran.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-quran.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-quran.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-quran.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-skull.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-skull.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-skull.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-skull.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-tanakh.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-tanakh.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-tanakh.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book-tanakh.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/book.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bookmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bookmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bookmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bookmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-all.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-all.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-all.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-all.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-none.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-none.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-none.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-none.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-top-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-top-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-top-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/border-top-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bore-hole.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bore-hole.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bore-hole.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bore-hole.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-droplet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-droplet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-droplet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-droplet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-water.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-water.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-water.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bottle-water.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-food.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-food.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-food.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-food.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-rice.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-rice.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-rice.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowl-rice.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowling-ball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowling-ball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowling-ball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bowling-ball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-archive.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-archive.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-archive.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-archive.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-tissue.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-tissue.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-tissue.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box-tissue.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/box.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-packing.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-packing.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-packing.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-packing.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-stacked.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-stacked.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-stacked.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/boxes-stacked.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/braille.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/braille.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/braille.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/braille.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brain.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brain.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brain.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brain.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brazilian-real-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brazilian-real-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brazilian-real-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brazilian-real-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bread-slice.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bread-slice.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bread-slice.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bread-slice.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-water.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-water.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-water.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge-water.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bridge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/briefcase.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom-ball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom-ball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom-ball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom-ball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/broom.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brush.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brush.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brush.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/brush.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bucket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bucket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bucket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bucket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bug.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bugs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bugs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bugs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bugs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-columns.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-columns.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-columns.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-columns.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-flag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-flag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-flag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-flag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-ngo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-ngo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-ngo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-ngo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-shield.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-shield.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-shield.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-shield.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-un.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-un.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-un.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-un.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-wheat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-wheat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-wheat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building-wheat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/building.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullhorn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullhorn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullhorn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullhorn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullseye.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullseye.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullseye.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bullseye.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burger.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burger.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burger.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burger.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burst.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burst.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burst.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/burst.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/bus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/business-time.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/business-time.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/business-time.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/business-time.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/c.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/c.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/c.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/c.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cable-car.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cable-car.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cable-car.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cable-car.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cake-candles.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cake-candles.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cake-candles.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cake-candles.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calculator.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calculator.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calculator.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calculator.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-day.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-day.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-day.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-day.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-days.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-days.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-days.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-days.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-week.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-week.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-week.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-week.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/calendar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-retro.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-retro.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-retro.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-retro.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-rotate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-rotate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-rotate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera-rotate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/camera.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/campground.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/campground.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/campground.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/campground.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/candy-cane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/candy-cane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/candy-cane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/candy-cane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cannabis.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cannabis.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cannabis.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cannabis.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/capsules.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/capsules.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/capsules.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/capsules.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-battery.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-battery.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-battery.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-battery.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-burst.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-burst.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-burst.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-burst.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-on.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-on.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-on.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-on.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-rear.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-rear.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-rear.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-rear.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-side.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-side.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-side.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-side.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-tunnel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-tunnel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-tunnel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car-tunnel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/car.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caravan.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caravan.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caravan.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caravan.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/caret-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/carrot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/carrot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/carrot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/carrot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-arrow-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-arrow-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-arrow-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-arrow-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed-suitcase.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed-suitcase.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed-suitcase.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed-suitcase.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-shopping.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-shopping.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-shopping.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cart-shopping.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cash-register.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cash-register.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cash-register.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cash-register.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cedi-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cedi-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cedi-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cedi-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cent-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cent-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cent-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cent-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/certificate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/certificate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/certificate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/certificate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chair.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chair.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chair.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chair.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chalkboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/champagne-glasses.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/champagne-glasses.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/champagne-glasses.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/champagne-glasses.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/charging-station.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/charging-station.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/charging-station.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/charging-station.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-area.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-area.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-area.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-area.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-bar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-bar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-bar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-bar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-column.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-column.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-column.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-column.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-diagram.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-diagram.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-diagram.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-diagram.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-gantt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-gantt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-gantt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-gantt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-pie.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-pie.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-pie.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-pie.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chart-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-double.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-double.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-double.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-double.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-to-slot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-to-slot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-to-slot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check-to-slot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cheese.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cheese.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cheese.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cheese.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-bishop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-bishop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-bishop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-bishop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-board.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-board.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-board.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-board.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-king.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-king.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-king.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-king.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-knight.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-knight.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-knight.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-knight.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-pawn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-pawn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-pawn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-pawn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-queen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-queen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-queen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-queen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-rook.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-rook.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-rook.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess-rook.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chess.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/chevron-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-combatant.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-combatant.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-combatant.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-combatant.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-dress.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-dress.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-dress.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-dress.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-reaching.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-reaching.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-reaching.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child-reaching.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/child.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/children.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/children.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/children.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/children.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/church.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/church.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/church.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/church.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dollar-to-slot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dollar-to-slot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dollar-to-slot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dollar-to-slot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-dot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-h.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-h.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-h.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-h.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-half-stroke.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-half-stroke.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-half-stroke.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-half-stroke.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-info.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-info.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-info.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-info.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-nodes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-nodes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-nodes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-nodes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-notch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-notch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-notch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-notch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-pause.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-pause.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-pause.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-pause.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-play.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-play.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-play.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-play.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-question.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-question.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-question.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-question.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-radiation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-radiation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-radiation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-radiation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-stop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-stop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-stop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-stop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/circle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/city.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/city.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/city.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/city.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clapperboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clapperboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clapperboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clapperboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-list.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-list.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-list.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-list.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-question.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-question.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-question.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-question.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clipboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock-rotate-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock-rotate-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock-rotate-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock-rotate-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clone.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clone.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clone.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clone.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/closed-captioning.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/closed-captioning.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/closed-captioning.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/closed-captioning.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-bolt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-bolt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-bolt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-bolt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-meatball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-meatball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-meatball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-meatball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon-rain.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon-rain.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon-rain.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon-rain.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-moon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-rain.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-rain.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-rain.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-rain.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-heavy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-heavy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-heavy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-heavy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-water.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-water.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-water.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-water.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun-rain.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun-rain.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun-rain.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun-rain.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud-sun.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cloud.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clover.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clover.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clover.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/clover.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-branch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-branch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-branch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-branch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-commit.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-commit.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-commit.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-commit.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-compare.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-compare.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-compare.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-compare.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-fork.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-fork.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-fork.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-fork.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-merge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-merge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-merge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-merge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-pull-request.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-pull-request.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-pull-request.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code-pull-request.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/code.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/coins.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/coins.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/coins.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/coins.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/colon-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/colon-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/colon-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/colon-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dots.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dots.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dots.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-dots.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-nodes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-nodes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-nodes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-nodes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-sms.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-sms.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-sms.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment-sms.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comment.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/comments.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compact-disc.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compact-disc.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compact-disc.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compact-disc.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass-drafting.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass-drafting.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass-drafting.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass-drafting.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compress.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compress.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compress.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/compress.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer-mouse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer-mouse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer-mouse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer-mouse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/computer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie-bite.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie-bite.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie-bite.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie-bite.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cookie.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copyright.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copyright.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copyright.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/copyright.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/couch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/couch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/couch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/couch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/credit-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/credit-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/credit-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/credit-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cross.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cross.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cross.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cross.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crosshairs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crosshairs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crosshairs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crosshairs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crown.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crown.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crown.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crown.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crutch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crutch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crutch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/crutch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cruzeiro-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cruzeiro-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cruzeiro-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cruzeiro-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cube.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cube.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cube.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cube.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes-stacked.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes-stacked.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes-stacked.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes-stacked.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/cubes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/d.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/d.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/d.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/d.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/database.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/database.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/database.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/database.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/delete-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/delete-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/delete-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/delete-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/democrat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/democrat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/democrat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/democrat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/desktop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/desktop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/desktop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/desktop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dharmachakra.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dharmachakra.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dharmachakra.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dharmachakra.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-next.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-next.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-next.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-next.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-predecessor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-predecessor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-predecessor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-predecessor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-project.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-project.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-project.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-project.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-successor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-successor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-successor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diagram-successor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond-turn-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond-turn-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond-turn-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond-turn-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/diamond.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d20.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d20.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d20.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d20.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d6.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d6.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d6.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-d6.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-five.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-five.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-five.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-five.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-four.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-four.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-four.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-four.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-one.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-one.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-one.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-one.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-six.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-six.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-six.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-six.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-three.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-three.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-three.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-three.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-two.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-two.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-two.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice-two.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dice.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/disease.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/disease.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/disease.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/disease.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/display.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/display.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/display.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/display.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/divide.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/divide.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/divide.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/divide.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dna.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dna.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dna.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dna.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dollar-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dollar-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dollar-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dollar-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dolly.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dolly.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dolly.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dolly.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dong-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dong-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dong-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dong-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-closed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-closed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-closed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-closed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/door-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dove.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dove.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dove.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dove.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-left-and-up-right-to-center.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-left-and-up-right-to-center.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-left-and-up-right-to-center.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-left-and-up-right-to-center.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/down-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/download.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/download.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/download.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/download.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dragon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dragon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dragon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dragon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/draw-polygon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/draw-polygon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/draw-polygon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/draw-polygon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/droplet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum-steelpan.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum-steelpan.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum-steelpan.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum-steelpan.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drum.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drumstick-bite.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drumstick-bite.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drumstick-bite.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/drumstick-bite.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumbbell.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumbbell.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumbbell.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumbbell.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster-fire.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster-fire.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster-fire.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster-fire.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dumpster.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dungeon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dungeon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dungeon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/dungeon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/e.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/e.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/e.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/e.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-deaf.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-deaf.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-deaf.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-deaf.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-listen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-listen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-listen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ear-listen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-africa.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-africa.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-africa.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-africa.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-americas.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-americas.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-americas.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-americas.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-asia.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-asia.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-asia.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-asia.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-europe.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-europe.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-europe.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-europe.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-oceania.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-oceania.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-oceania.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/earth-oceania.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/egg.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/egg.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/egg.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/egg.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eject.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eject.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eject.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eject.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/elevator.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/elevator.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/elevator.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/elevator.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis-vertical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis-vertical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis-vertical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis-vertical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ellipsis.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open-text.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open-text.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open-text.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open-text.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelope.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelopes-bulk.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelopes-bulk.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelopes-bulk.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/envelopes-bulk.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/equals.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/equals.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/equals.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/equals.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eraser.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eraser.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eraser.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eraser.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ethernet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ethernet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ethernet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ethernet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/euro-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/euro-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/euro-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/euro-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/expand.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/expand.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/expand.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/expand.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/explosion.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/explosion.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/explosion.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/explosion.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-dropper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-dropper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-dropper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-dropper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-low-vision.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-low-vision.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-low-vision.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-low-vision.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/eye.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/f.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/f.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/f.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/f.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-angry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-angry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-angry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-angry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-dizzy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-dizzy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-dizzy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-dizzy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-flushed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-flushed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-flushed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-flushed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-frown.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grimace.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grimace.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grimace.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grimace.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam-sweat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam-sweat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam-sweat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam-sweat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-hearts.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-hearts.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-hearts.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-hearts.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint-tears.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint-tears.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint-tears.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint-tears.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-stars.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-stars.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-stars.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-stars.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tears.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tears.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tears.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tears.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-squint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-squint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-squint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-squint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wide.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wide.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wide.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wide.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-grin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-wink-heart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-wink-heart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-wink-heart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss-wink-heart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-kiss.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-squint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-squint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-squint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-squint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-laugh.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh-blank.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh-blank.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh-blank.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh-blank.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-meh.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-rolling-eyes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-rolling-eyes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-rolling-eyes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-rolling-eyes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-cry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-cry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-cry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-cry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-tear.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-tear.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-tear.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-sad-tear.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-beam.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-beam.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-beam.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-beam.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-wink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-wink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-wink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile-wink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-smile.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-surprise.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-surprise.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-surprise.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-surprise.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-tired.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-tired.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-tired.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/face-tired.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fan.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fan.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fan.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fan.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet-drip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet-drip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet-drip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet-drip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/faucet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fax.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fax.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fax.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fax.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather-pointed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather-pointed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather-pointed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather-pointed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/feather.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ferry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ferry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ferry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ferry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-arrow-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-audio.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-audio.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-audio.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-audio.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-question.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-question.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-question.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-question.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-code.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-code.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-code.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-code.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-contract.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-contract.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-contract.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-contract.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-csv.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-csv.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-csv.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-csv.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-excel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-excel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-excel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-excel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-export.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-export.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-export.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-export.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-fragment.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-fragment.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-fragment.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-fragment.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-half-dashed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-half-dashed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-half-dashed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-half-dashed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-image.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-image.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-image.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-image.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-import.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-import.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-import.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-import.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-invoice.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-lines.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-lines.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-lines.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-lines.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pdf.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pdf.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pdf.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pdf.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-pen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-powerpoint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-powerpoint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-powerpoint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-powerpoint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-prescription.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-prescription.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-prescription.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-prescription.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-shield.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-shield.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-shield.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-shield.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-signature.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-signature.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-signature.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-signature.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-video.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-video.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-video.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-video.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-waveform.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-waveform.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-waveform.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-waveform.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-word.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-word.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-word.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-word.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-zipper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-zipper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-zipper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file-zipper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/file.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill-drip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill-drip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill-drip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill-drip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fill.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/film.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/film.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/film.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/film.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/filter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fingerprint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fingerprint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fingerprint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fingerprint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-burner.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-burner.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-burner.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-burner.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-extinguisher.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-extinguisher.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-extinguisher.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-extinguisher.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-curved.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-curved.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-curved.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-curved.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire-flame-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fire.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish-fins.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish-fins.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish-fins.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish-fins.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/fish.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-checkered.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-checkered.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-checkered.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-checkered.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-usa.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-usa.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-usa.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag-usa.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask-vial.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask-vial.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask-vial.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask-vial.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/flask.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/floppy-disk.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/floppy-disk.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/floppy-disk.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/floppy-disk.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/florin-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/florin-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/florin-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/florin-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-closed.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-closed.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-closed.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-closed.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-tree.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-tree.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-tree.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder-tree.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/folder.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/font.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/football.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/football.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/football.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/football.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-fast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-fast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-fast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-fast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-step.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-step.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-step.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward-step.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/forward.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/franc-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/franc-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/franc-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/franc-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/frog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/frog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/frog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/frog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/futbol.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/futbol.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/futbol.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/futbol.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/g.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/g.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/g.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/g.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gamepad.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gamepad.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gamepad.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gamepad.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gas-pump.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gas-pump.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gas-pump.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gas-pump.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-high.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-high.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-high.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-high.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple-high.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple-high.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple-high.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple-high.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gauge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gavel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gavel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gavel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gavel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gear.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gear.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gear.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gear.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gears.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gears.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gears.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gears.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gem.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gem.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gem.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gem.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/genderless.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/genderless.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/genderless.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/genderless.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ghost.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ghost.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ghost.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ghost.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gift.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gift.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gift.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gift.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gifts.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gifts.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gifts.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gifts.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water-droplet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water-droplet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water-droplet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water-droplet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glass-water.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glasses.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glasses.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glasses.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/glasses.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/globe.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/globe.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/globe.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/globe.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/golf-ball-tee.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/golf-ball-tee.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/golf-ball-tee.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/golf-ball-tee.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gopuram.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gopuram.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gopuram.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gopuram.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/graduation-cap.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/graduation-cap.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/graduation-cap.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/graduation-cap.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than-equal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than-equal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than-equal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than-equal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/greater-than.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines-vertical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines-vertical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines-vertical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines-vertical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-lines.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-vertical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-vertical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-vertical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip-vertical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/grip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/group-arrows-rotate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/group-arrows-rotate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/group-arrows-rotate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/group-arrows-rotate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guarani-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guarani-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guarani-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guarani-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guitar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guitar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guitar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/guitar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gun.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gun.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gun.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/gun.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/h.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/h.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/h.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/h.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hammer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hammer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hammer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hammer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hamsa.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hamsa.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hamsa.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hamsa.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-back-fist.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-back-fist.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-back-fist.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-back-fist.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-dots.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-dots.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-dots.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-dots.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-fist.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-fist.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-fist.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-fist.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-droplet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-droplet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-droplet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-droplet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-hand.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-hand.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-hand.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-hand.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-heart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-heart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-heart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-heart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-holding.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-lizard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-lizard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-lizard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-lizard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-middle-finger.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-middle-finger.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-middle-finger.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-middle-finger.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-peace.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-peace.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-peace.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-peace.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-point-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-pointer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-pointer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-pointer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-pointer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-scissors.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-scissors.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-scissors.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-scissors.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-sparkles.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-sparkles.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-sparkles.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-sparkles.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-spock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-spock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-spock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand-spock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hand.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handcuffs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handcuffs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handcuffs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handcuffs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-asl-interpreting.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-asl-interpreting.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-asl-interpreting.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-asl-interpreting.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bound.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bound.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bound.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bound.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bubbles.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bubbles.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bubbles.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-bubbles.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-clapping.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-clapping.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-clapping.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-clapping.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-child.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-child.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-child.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-child.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-circle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-circle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-circle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding-circle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-holding.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-praying.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-praying.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-praying.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands-praying.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hands.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-angle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-angle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-angle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-angle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/handshake.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hanukiah.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hanukiah.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hanukiah.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hanukiah.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hard-drive.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hard-drive.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hard-drive.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hard-drive.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hashtag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hashtag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hashtag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hashtag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy-side.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy-side.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy-side.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy-side.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-wizard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-wizard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-wizard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hat-wizard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-cough.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-mask.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-mask.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-mask.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-mask.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-virus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-virus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-virus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/head-side-virus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heading.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heading.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heading.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heading.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headphones.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headset.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headset.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headset.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/headset.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-bolt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-bolt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-bolt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-bolt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-crack.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-crack.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-crack.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-crack.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-pulse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-pulse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-pulse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart-pulse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/heart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter-symbol.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter-symbol.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter-symbol.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter-symbol.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helicopter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-safety.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-safety.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-safety.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-safety.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-un.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-un.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-un.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/helmet-un.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes-bolt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes-bolt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes-bolt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes-bolt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/highlighter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/highlighter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/highlighter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/highlighter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-avalanche.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-avalanche.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-avalanche.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-avalanche.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-rockslide.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-rockslide.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-rockslide.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hill-rockslide.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hippo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hippo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hippo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hippo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hockey-puck.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hockey-puck.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hockey-puck.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hockey-puck.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/holly-berry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/holly-berry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/holly-berry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/holly-berry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse-head.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse-head.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse-head.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse-head.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/horse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hospital.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hot-tub-person.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hot-tub-person.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hot-tub-person.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hot-tub-person.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotdog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotdog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotdog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotdog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hotel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-end.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-end.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-end.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-end.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-half.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-half.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-half.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-half.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-start.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-start.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-start.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass-start.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hourglass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-crack.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-crack.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-crack.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-crack.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-window.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-window.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-window.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney-window.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-chimney.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-crack.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-crack.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-crack.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-crack.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-fire.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-fire.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-fire.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-fire.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water-circle-arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water-circle-arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water-circle-arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water-circle-arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-flood-water.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-laptop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-laptop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-laptop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-laptop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-flag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-flag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-flag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical-flag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-signal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-signal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-signal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-signal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-tsunami.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-tsunami.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-tsunami.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-tsunami.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house-user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/house.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hryvnia-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hryvnia-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hryvnia-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hryvnia-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hurricane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hurricane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hurricane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/hurricane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i-cursor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i-cursor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i-cursor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i-cursor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/i.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ice-cream.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ice-cream.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ice-cream.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ice-cream.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icicles.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icicles.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icicles.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icicles.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icons.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icons.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icons.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/icons.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-badge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-badge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-badge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-badge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card-clip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card-clip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card-clip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card-clip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/id-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/igloo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/igloo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/igloo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/igloo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image-portrait.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image-portrait.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image-portrait.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image-portrait.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/image.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/images.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/images.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/images.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/images.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/inbox.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/inbox.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/inbox.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/inbox.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indent.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indent.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indent.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indent.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indian-rupee-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indian-rupee-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indian-rupee-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/indian-rupee-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/industry.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/industry.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/industry.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/industry.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/infinity.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/infinity.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/infinity.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/infinity.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/info.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/info.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/info.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/info.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/italic.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/italic.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/italic.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/italic.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/j.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/j.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/j.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/j.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar-wheat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar-wheat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar-wheat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar-wheat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jedi.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jedi.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jedi.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jedi.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jet-fighter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/joint.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/joint.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/joint.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/joint.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jug-detergent.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jug-detergent.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jug-detergent.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/jug-detergent.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/k.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/k.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/k.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/k.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kaaba.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kaaba.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kaaba.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kaaba.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/key.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/key.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/key.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/key.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/keyboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/keyboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/keyboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/keyboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/khanda.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/khanda.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/khanda.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/khanda.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kip-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kip-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kip-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kip-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kit-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kit-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kit-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kit-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kitchen-set.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kitchen-set.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kitchen-set.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kitchen-set.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kiwi-bird.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kiwi-bird.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kiwi-bird.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/kiwi-bird.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/l.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/l.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/l.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/l.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/land-mine-on.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/land-mine-on.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/land-mine-on.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/land-mine-on.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-dome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-dome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-dome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-dome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-flag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-flag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-flag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark-flag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/landmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/language.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/language.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/language.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/language.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-code.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-code.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-code.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-code.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-file.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-file.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-file.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-file.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/laptop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lari-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lari-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lari-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lari-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/layer-group.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/layer-group.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/layer-group.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/layer-group.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/leaf.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/leaf.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/leaf.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/leaf.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/left-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lemon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lemon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lemon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lemon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than-equal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than-equal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than-equal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than-equal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/less-than.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/life-ring.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/life-ring.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/life-ring.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/life-ring.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lightbulb.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lightbulb.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lightbulb.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lightbulb.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lines-leaning.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lines-leaning.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lines-leaning.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lines-leaning.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/link.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lira-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lira-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lira-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lira-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ol.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ol.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ol.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ol.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ul.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ul.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ul.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list-ul.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/list.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/litecoin-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/litecoin-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/litecoin-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/litecoin-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-arrow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-arrow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-arrow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-arrow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-crosshairs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-crosshairs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-crosshairs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-crosshairs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-dot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-dot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-dot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-dot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/location-pin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/locust.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/locust.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/locust.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/locust.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs-virus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs-virus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs-virus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs-virus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/lungs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/m.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/m.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/m.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/m.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-chart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-chart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-chart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-chart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-location.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-location.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-location.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-location.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/manat-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/manat-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/manat-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/manat-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location-dot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location-dot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location-dot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location-dot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-location.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-pin.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-pin.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-pin.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map-pin.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/map.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/marker.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/marker.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/marker.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/marker.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus-burst.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus-burst.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus-burst.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus-burst.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-double.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-double.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-double.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-double.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars-stroke.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mars.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-citrus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-citrus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-citrus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-citrus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-empty.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-empty.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-empty.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass-empty.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/martini-glass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-face.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-face.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-face.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-face.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-ventilator.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-ventilator.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-ventilator.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask-ventilator.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mask.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/masks-theater.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/masks-theater.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/masks-theater.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/masks-theater.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mattress-pillow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mattress-pillow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mattress-pillow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mattress-pillow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/maximize.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/maximize.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/maximize.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/maximize.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/medal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/medal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/medal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/medal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/memory.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/memory.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/memory.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/memory.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/menorah.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/menorah.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/menorah.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/menorah.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mercury.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mercury.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mercury.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mercury.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/message.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/message.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/message.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/message.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/meteor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/meteor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/meteor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/meteor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microchip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microchip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microchip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microchip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-lines.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microphone.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microscope.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microscope.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microscope.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/microscope.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mill-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mill-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mill-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mill-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minimize.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minimize.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minimize.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minimize.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mitten.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mitten.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mitten.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mitten.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-button.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-button.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-button.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-button.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-retro.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-retro.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-retro.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-retro.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen-button.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen-button.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen-button.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen-button.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile-screen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mobile.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1-wave.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1-wave.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1-wave.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1-wave.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-1.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-transfer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-transfer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-transfer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-transfer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-trend-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-trend-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-trend-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-trend-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wave.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wave.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wave.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wave.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wheat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wheat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wheat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill-wheat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bill.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bills.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bills.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bills.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-bills.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/money-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/monument.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/monument.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/monument.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/monument.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/moon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/moon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/moon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/moon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mortar-pestle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mortar-pestle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mortar-pestle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mortar-pestle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosque.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosque.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosque.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosque.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito-net.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito-net.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito-net.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito-net.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mosquito.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/motorcycle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/motorcycle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/motorcycle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/motorcycle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mound.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mound.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mound.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mound.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-city.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-city.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-city.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-city.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-sun.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-sun.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-sun.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain-sun.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mountain.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-hot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-hot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-hot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-hot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-saucer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-saucer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-saucer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/mug-saucer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/music.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/music.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/music.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/music.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/n.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/n.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/n.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/n.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/naira-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/naira-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/naira-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/naira-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/network-wired.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/network-wired.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/network-wired.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/network-wired.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/neuter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/neuter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/neuter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/neuter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/newspaper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/newspaper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/newspaper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/newspaper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/not-equal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/not-equal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/not-equal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/not-equal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notdef.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notdef.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notdef.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notdef.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/note-sticky.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/note-sticky.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/note-sticky.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/note-sticky.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notes-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notes-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notes-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/notes-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/o.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/o.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/o.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/o.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-group.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-group.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-group.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-group.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-ungroup.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-ungroup.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-ungroup.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/object-ungroup.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-can.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-can.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-can.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-can.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-well.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-well.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-well.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/oil-well.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/om.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/om.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/om.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/om.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/otter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/otter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/otter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/otter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/outdent.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/outdent.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/outdent.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/outdent.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/p.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/p.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/p.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/p.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pager.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pager.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pager.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pager.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paint-roller.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paint-roller.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paint-roller.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paint-roller.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paintbrush.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paintbrush.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paintbrush.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paintbrush.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/palette.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/palette.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/palette.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/palette.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pallet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pallet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pallet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pallet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/panorama.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/panorama.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/panorama.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/panorama.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paper-plane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paper-plane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paper-plane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paper-plane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paperclip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paperclip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paperclip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paperclip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/parachute-box.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/parachute-box.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/parachute-box.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/parachute-box.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paragraph.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paragraph.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paragraph.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paragraph.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/passport.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/passport.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/passport.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/passport.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paste.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paste.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paste.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paste.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pause.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pause.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pause.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pause.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paw.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paw.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paw.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/paw.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peace.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peace.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peace.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peace.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-clip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-clip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-clip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-clip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-fancy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-fancy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-fancy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-fancy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-nib.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-nib.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-nib.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-nib.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-ruler.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-ruler.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-ruler.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-ruler.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-to-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-to-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-to-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen-to-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pencil.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pencil.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pencil.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pencil.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-arrows.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-arrows.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-arrows.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-arrows.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-carry-box.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-carry-box.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-carry-box.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-carry-box.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-group.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-group.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-group.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-group.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-pulling.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-pulling.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-pulling.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-pulling.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-robbery.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-robbery.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-robbery.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-robbery.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-roof.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-roof.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-roof.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/people-roof.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pepper-hot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pepper-hot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pepper-hot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pepper-hot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/percent.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/percent.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/percent.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/percent.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-down-to-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-down-to-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-down-to-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-down-to-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-up-from-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-up-from-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-up-from-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-arrow-up-from-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-biking.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-biking.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-biking.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-biking.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-booth.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-booth.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-booth.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-booth.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-breastfeeding.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-breastfeeding.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-breastfeeding.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-breastfeeding.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-burst.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-burst.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-burst.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-burst.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-cane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-cane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-cane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-cane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-chalkboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-chalkboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-chalkboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-chalkboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-question.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-question.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-question.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-question.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-digging.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-digging.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-digging.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-digging.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dots-from-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dots-from-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dots-from-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dots-from-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress-burst.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress-burst.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress-burst.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress-burst.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-dress.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-drowning.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-drowning.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-drowning.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-drowning.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling-burst.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling-burst.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling-burst.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling-burst.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-falling.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-half-dress.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-half-dress.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-half-dress.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-half-dress.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-harassing.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-harassing.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-harassing.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-harassing.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-hiking.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-hiking.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-hiking.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-hiking.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-pointing.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-pointing.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-pointing.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-pointing.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-rifle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-rifle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-rifle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-rifle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-to-person.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-to-person.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-to-person.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-military-to-person.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-praying.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-praying.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-praying.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-praying.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-pregnant.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-pregnant.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-pregnant.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-pregnant.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rays.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rays.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rays.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rays.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rifle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rifle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rifle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-rifle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-running.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-running.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-running.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-running.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-shelter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-shelter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-shelter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-shelter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skating.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skating.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skating.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skating.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing-nordic.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing-nordic.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing-nordic.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing-nordic.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-skiing.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-snowboarding.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-snowboarding.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-snowboarding.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-snowboarding.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-swimming.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-swimming.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-swimming.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-swimming.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-through-window.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-through-window.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-through-window.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-through-window.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-loop-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-loop-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-loop-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-loop-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-dashed-line-arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-dashed-line-arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-dashed-line-arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-dashed-line-arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-luggage.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-luggage.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-luggage.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-luggage.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-with-cane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-with-cane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-with-cane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking-with-cane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person-walking.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/person.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peseta-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peseta-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peseta-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peseta-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peso-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peso-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peso-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/peso-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-flip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-flip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-flip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-flip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-volume.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-volume.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-volume.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone-volume.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/phone.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/photo-film.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/photo-film.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/photo-film.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/photo-film.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/piggy-bank.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/piggy-bank.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/piggy-bank.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/piggy-bank.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pills.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pills.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pills.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pills.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pizza-slice.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pizza-slice.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pizza-slice.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pizza-slice.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/place-of-worship.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/place-of-worship.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/place-of-worship.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/place-of-worship.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-arrival.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-arrival.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-arrival.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-arrival.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-departure.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-departure.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-departure.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-departure.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plant-wilt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plant-wilt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plant-wilt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plant-wilt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plate-wheat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plate-wheat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plate-wheat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plate-wheat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/play.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/play.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/play.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/play.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-bolt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-bolt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-bolt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-bolt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plug.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/podcast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/podcast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/podcast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/podcast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo-storm.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo-storm.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo-storm.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo-storm.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poo.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/poop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/power-off.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/power-off.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/power-off.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/power-off.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/prescription.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/print.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/print.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/print.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/print.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-soap.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-soap.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-soap.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/pump-soap.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/puzzle-piece.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/puzzle-piece.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/puzzle-piece.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/puzzle-piece.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/q.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/q.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/q.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/q.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/qrcode.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/qrcode.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/qrcode.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/qrcode.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/question.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/question.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/question.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/question.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/quote-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/r.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/r.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/r.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/r.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radiation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radiation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radiation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radiation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radio.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radio.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radio.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/radio.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rainbow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rainbow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rainbow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rainbow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ranking-star.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ranking-star.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ranking-star.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ranking-star.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/receipt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/receipt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/receipt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/receipt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/record-vinyl.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/record-vinyl.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/record-vinyl.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/record-vinyl.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-ad.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-ad.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-ad.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-ad.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-list.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-list.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-list.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-list.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rectangle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/recycle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/recycle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/recycle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/recycle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/registered.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/registered.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/registered.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/registered.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/repeat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/repeat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/repeat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/repeat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply-all.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply-all.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply-all.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply-all.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/reply.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/republican.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/republican.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/republican.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/republican.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/restroom.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/restroom.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/restroom.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/restroom.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/retweet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/retweet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/retweet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/retweet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ribbon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ribbon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ribbon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ribbon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-from-bracket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-from-bracket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-from-bracket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-from-bracket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-to-bracket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-to-bracket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-to-bracket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/right-to-bracket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ring.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ring.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ring.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ring.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-barrier.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-barrier.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-barrier.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-barrier.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-bridge.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-bridge.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-bridge.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-bridge.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-spikes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-spikes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-spikes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road-spikes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/road.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/robot.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/robot.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/robot.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/robot.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rocket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rocket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rocket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rocket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rotate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/route.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/route.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/route.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/route.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rss.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rss.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rss.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rss.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruble-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruble-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruble-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruble-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rug.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rug.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rug.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rug.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-combined.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-combined.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-combined.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-combined.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-horizontal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-horizontal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-horizontal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-horizontal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-vertical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-vertical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-vertical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler-vertical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ruler.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupee-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupee-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupee-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupee-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupiah-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupiah-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupiah-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/rupiah-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/s.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/s.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/s.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/s.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-dollar.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-dollar.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-dollar.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-dollar.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sack-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sailboat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sailboat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sailboat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sailboat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite-dish.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite-dish.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite-dish.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite-dish.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/satellite.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-balanced.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-balanced.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-balanced.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-balanced.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced-flip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced-flip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced-flip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced-flip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-circle-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-flag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-flag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-flag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-flag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/school.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scissors.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scissors.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scissors.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scissors.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver-wrench.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver-wrench.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver-wrench.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver-wrench.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/screwdriver.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll-torah.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll-torah.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll-torah.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll-torah.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/scroll.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sd-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sd-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sd-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sd-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/section.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/section.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/section.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/section.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/seedling.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/seedling.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/seedling.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/seedling.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/server.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/server.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/server.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/server.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shapes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shapes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shapes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shapes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-from-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-from-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-from-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-from-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-nodes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-nodes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-nodes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share-nodes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/share.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sheet-plastic.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sheet-plastic.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sheet-plastic.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sheet-plastic.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shekel-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shekel-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shekel-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shekel-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-cat.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-cat.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-cat.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-cat.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-dog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-dog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-dog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-dog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-halved.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-halved.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-halved.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-halved.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-heart.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-heart.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-heart.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-heart.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-virus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-virus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-virus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield-virus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shield.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ship.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ship.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ship.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ship.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shirt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shirt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shirt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shirt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shoe-prints.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shoe-prints.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shoe-prints.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shoe-prints.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shower.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shower.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shower.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shower.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shrimp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shrimp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shrimp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shrimp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuffle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuffle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuffle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuffle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuttle-space.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuttle-space.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuttle-space.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/shuttle-space.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sign-hanging.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sign-hanging.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sign-hanging.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sign-hanging.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signature.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signature.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signature.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signature.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signs-post.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signs-post.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signs-post.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/signs-post.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sim-card.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sim-card.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sim-card.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sim-card.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sink.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sink.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sink.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sink.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sitemap.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sitemap.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sitemap.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sitemap.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull-crossbones.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull-crossbones.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull-crossbones.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull-crossbones.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/skull.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sleigh.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sleigh.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sleigh.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sleigh.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sliders.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sliders.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sliders.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sliders.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smog.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smog.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smog.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smog.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smoking.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smoking.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smoking.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/smoking.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowflake.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowflake.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowflake.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowflake.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowman.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowman.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowman.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowman.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowplow.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowplow.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowplow.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/snowplow.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/soap.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/soap.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/soap.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/soap.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/socks.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/socks.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/socks.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/socks.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/solar-panel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/solar-panel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/solar-panel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/solar-panel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sort.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spa.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spa.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spa.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spa.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spaghetti-monster-flying.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spaghetti-monster-flying.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spaghetti-monster-flying.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spaghetti-monster-flying.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spell-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spell-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spell-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spell-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spider.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spider.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spider.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spider.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spinner.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spinner.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spinner.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spinner.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/splotch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/splotch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/splotch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/splotch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spoon.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spoon.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spoon.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spoon.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can-sparkles.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can-sparkles.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can-sparkles.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can-sparkles.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/spray-can.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-arrow-up-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-arrow-up-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-arrow-up-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-arrow-up-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-binary.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-binary.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-binary.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-binary.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-caret-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-envelope.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-envelope.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-envelope.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-envelope.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-full.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-full.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-full.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-full.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-h.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-h.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-h.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-h.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-nfi.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-nfi.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-nfi.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-nfi.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-parking.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-parking.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-parking.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-parking.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-pen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-pen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-pen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-pen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-person-confined.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-person-confined.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-person-confined.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-person-confined.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone-flip.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone-flip.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone-flip.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone-flip.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-phone.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-horizontal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-horizontal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-horizontal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-horizontal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-vertical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-vertical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-vertical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-poll-vertical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-root-variable.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-root-variable.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-root-variable.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-root-variable.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-rss.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-rss.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-rss.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-rss.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-share-nodes.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-share-nodes.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-share-nodes.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-share-nodes.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-up-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-up-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-up-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-up-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-virus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-virus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-virus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-virus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/staff-snake.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/staff-snake.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/staff-snake.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/staff-snake.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stairs.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stairs.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stairs.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stairs.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stamp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stamp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stamp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stamp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stapler.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stapler.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stapler.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stapler.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-and-crescent.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-and-crescent.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-and-crescent.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-and-crescent.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half-stroke.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half-stroke.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half-stroke.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half-stroke.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-half.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-david.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-david.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-david.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-david.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-life.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-life.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-life.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star-of-life.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/star.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sterling-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sterling-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sterling-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sterling-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stethoscope.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stethoscope.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stethoscope.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stethoscope.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stop.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stop.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stop.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stop.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch-20.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch-20.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch-20.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch-20.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stopwatch.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/store.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/street-view.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/street-view.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/street-view.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/street-view.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/strikethrough.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/strikethrough.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/strikethrough.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/strikethrough.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stroopwafel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stroopwafel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stroopwafel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/stroopwafel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/subscript.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/subscript.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/subscript.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/subscript.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-rolling.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-rolling.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-rolling.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase-rolling.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/suitcase.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun-plant-wilt.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun-plant-wilt.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun-plant-wilt.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun-plant-wilt.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/sun.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/superscript.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/superscript.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/superscript.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/superscript.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/swatchbook.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/swatchbook.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/swatchbook.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/swatchbook.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/synagogue.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/synagogue.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/synagogue.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/synagogue.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/syringe.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/syringe.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/syringe.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/syringe.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/t.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/t.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/t.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/t.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-column-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-column-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-column-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-column-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-large.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-large.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-large.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-large.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-unlock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-unlock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-unlock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-unlock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-cells.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-columns.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-columns.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-columns.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-columns.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-list.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-list.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-list.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-list.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-tennis-paddle-ball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-tennis-paddle-ball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-tennis-paddle-ball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table-tennis-paddle-ball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/table.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-button.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-button.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-button.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-button.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-screen-button.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-screen-button.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-screen-button.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet-screen-button.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablets.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablets.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablets.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tablets.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tachograph-digital.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tachograph-digital.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tachograph-digital.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tachograph-digital.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tags.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tags.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tags.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tags.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tape.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tape.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tape.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tape.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp-droplet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp-droplet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp-droplet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp-droplet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tarp.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/taxi.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/taxi.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/taxi.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/taxi.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth-open.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth-open.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth-open.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth-open.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/teeth.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-empty.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-empty.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-empty.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-empty.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-full.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-full.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-full.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-full.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-half.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-half.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-half.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-half.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-high.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-high.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-high.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-high.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-low.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-low.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-low.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-low.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-quarter.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-quarter.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-quarter.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-quarter.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-three-quarters.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-three-quarters.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-three-quarters.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/temperature-three-quarters.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tenge-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tenge-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tenge-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tenge-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-down-to-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-down-to-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-down-to-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-down-to-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-left-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-left-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-left-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-left-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-turn-left.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-turn-left.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-turn-left.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-turn-left.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrows-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrows-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrows-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent-arrows-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tent.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tents.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tents.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tents.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tents.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/terminal.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/terminal.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/terminal.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/terminal.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-height.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-height.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-height.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-height.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-width.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-width.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-width.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/text-width.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thermometer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thermometer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thermometer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thermometer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbs-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/thumbtack.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket-simple.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket-simple.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket-simple.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket-simple.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/ticket.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/timeline.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/timeline.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/timeline.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/timeline.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-off.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-off.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-off.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-off.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-on.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-on.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-on.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toggle-on.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-paper.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-portable.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-portable.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-portable.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet-portable.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilets-portable.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilets-portable.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilets-portable.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toilets-portable.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toolbox.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toolbox.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toolbox.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/toolbox.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tooth.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tooth.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tooth.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tooth.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/torii-gate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/torii-gate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/torii-gate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/torii-gate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tornado.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tornado.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tornado.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tornado.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-broadcast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-broadcast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-broadcast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-broadcast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-cell.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-cell.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-cell.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-cell.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-observation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-observation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-observation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tower-observation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tractor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tractor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tractor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tractor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trademark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trademark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trademark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trademark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/traffic-light.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/traffic-light.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/traffic-light.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/traffic-light.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trailer.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trailer.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trailer.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trailer.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-subway.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-subway.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-subway.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-subway.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-tram.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-tram.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-tram.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train-tram.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/train.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/transgender.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/transgender.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/transgender.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/transgender.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-arrow-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-arrow-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-arrow-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-arrow-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can-arrow-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can-arrow-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can-arrow-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can-arrow-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash-can.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree-city.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree-city.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree-city.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree-city.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tree.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/triangle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/triangle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/triangle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/triangle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trophy.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trophy.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trophy.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trophy.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel-bricks.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel-bricks.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel-bricks.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel-bricks.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/trowel.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-arrow-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-arrow-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-arrow-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-arrow-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-droplet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-droplet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-droplet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-droplet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-fast.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-fast.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-fast.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-fast.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field-un.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field-un.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field-un.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field-un.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-field.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-front.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-front.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-front.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-front.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-medical.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-medical.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-medical.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-medical.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-monster.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-monster.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-monster.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-monster.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-moving.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-moving.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-moving.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-moving.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-pickup.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-pickup.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-pickup.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-pickup.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-plane.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-plane.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-plane.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-plane.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-ramp-box.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-ramp-box.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-ramp-box.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck-ramp-box.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/truck.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tty.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tty.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tty.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tty.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turkish-lira-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turkish-lira-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turkish-lira-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turkish-lira-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-up.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-up.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-up.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/turn-up.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tv.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tv.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tv.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/tv.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/u.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/u.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/u.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/u.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella-beach.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella-beach.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella-beach.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella-beach.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/umbrella.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/underline.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/underline.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/underline.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/underline.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/universal-access.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/universal-access.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/universal-access.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/universal-access.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock-keyhole.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock-keyhole.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock-keyhole.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock-keyhole.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/unlock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down-left-right.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down-left-right.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down-left-right.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down-left-right.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-down.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-long.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-long.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-long.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-long.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-and-down-left-from-center.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-and-down-left-from-center.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-and-down-left-from-center.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-and-down-left-from-center.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-from-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-from-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-from-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/up-right-from-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/upload.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/upload.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/upload.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/upload.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-astronaut.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-astronaut.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-astronaut.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-astronaut.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-clock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-clock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-clock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-clock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-doctor.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-doctor.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-doctor.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-doctor.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-gear.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-gear.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-gear.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-gear.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-graduate.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-graduate.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-graduate.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-graduate.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-group.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-group.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-group.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-group.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-injured.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-injured.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-injured.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-injured.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-large.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-lock.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-lock.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-lock.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-lock.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-minus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-minus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-minus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-minus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-ninja.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-ninja.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-ninja.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-ninja.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-nurse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-nurse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-nurse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-nurse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-pen.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-pen.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-pen.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-pen.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-plus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-plus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-plus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-plus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-secret.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-secret.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-secret.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-secret.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-shield.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-shield.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-shield.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-shield.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tag.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tag.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tag.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tag.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tie.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tie.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tie.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-tie.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/user.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-between-lines.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-between-lines.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-between-lines.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-between-lines.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-gear.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-gear.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-gear.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-gear.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-line.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-line.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-line.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-line.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rays.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rays.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rays.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rays.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rectangle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rectangle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rectangle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-rectangle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-viewfinder.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-viewfinder.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-viewfinder.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users-viewfinder.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/users.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/utensils.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/utensils.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/utensils.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/utensils.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/v.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/v.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/v.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/v.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/van-shuttle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/van-shuttle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/van-shuttle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/van-shuttle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vault.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vault.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vault.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vault.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vector-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vector-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vector-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vector-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-double.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-double.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-double.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-double.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-mars.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-mars.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-mars.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus-mars.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/venus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest-patches.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest-patches.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest-patches.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest-patches.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vest.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-circle-check.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-circle-check.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-circle-check.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-circle-check.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-virus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-virus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-virus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial-virus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vial.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vials.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vials.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vials.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vials.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/video.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vihara.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vihara.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vihara.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vihara.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-covid.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-slash.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-slash.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-slash.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus-slash.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/virus.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/viruses.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/viruses.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/viruses.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/viruses.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/voicemail.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/voicemail.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/voicemail.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/voicemail.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volcano.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volcano.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volcano.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volcano.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volleyball.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volleyball.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volleyball.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volleyball.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-high.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-high.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-high.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-high.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-low.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-low.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-low.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-low.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-off.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-off.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-off.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-off.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/volume-xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vr-cardboard.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vr-cardboard.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vr-cardboard.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/vr-cardboard.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/w.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/w.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/w.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/w.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/walkie-talkie.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/walkie-talkie.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/walkie-talkie.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/walkie-talkie.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wallet.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wallet.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wallet.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wallet.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic-sparkles.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic-sparkles.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic-sparkles.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic-sparkles.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-magic.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-sparkles.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-sparkles.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-sparkles.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wand-sparkles.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/warehouse.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/warehouse.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/warehouse.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/warehouse.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water-ladder.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water-ladder.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water-ladder.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water-ladder.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/water.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wave-square.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wave-square.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wave-square.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wave-square.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/web-awesome.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/web-awesome.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/web-awesome.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/web-awesome.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-hanging.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-hanging.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-hanging.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-hanging.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-scale.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-scale.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-scale.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/weight-scale.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn-circle-exclamation.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn-circle-exclamation.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn-circle-exclamation.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn-circle-exclamation.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheat-awn.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair-move.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair-move.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair-move.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair-move.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wheelchair.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/whiskey-glass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/whiskey-glass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/whiskey-glass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/whiskey-glass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wifi.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wifi.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wifi.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wifi.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wind.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wind.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wind.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wind.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-maximize.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-maximize.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-maximize.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-maximize.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-minimize.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-minimize.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-minimize.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-minimize.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-restore.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-restore.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-restore.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/window-restore.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-bottle.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-bottle.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-bottle.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-bottle.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass-empty.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass-empty.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass-empty.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass-empty.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wine-glass.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/won-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/won-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/won-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/won-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/worm.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/worm.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/worm.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/worm.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wrench.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wrench.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wrench.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/wrench.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x-ray.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x-ray.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x-ray.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x-ray.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/x.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmark.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmark.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmark.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmark.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmarks-lines.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmarks-lines.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmarks-lines.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/xmarks-lines.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/y.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/y.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/y.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/y.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yen-sign.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yen-sign.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yen-sign.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yen-sign.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yin-yang.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yin-yang.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yin-yang.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/yin-yang.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/z.svg b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/z.svg similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/z.svg rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/svgs/solid/z.svg diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf diff --git a/services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 b/apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 similarity index 100% rename from services/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 rename to apps/bright/assets/vendor/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 diff --git a/services/bright/assets/vendor/README.md b/apps/bright/assets/vendor/README.md similarity index 100% rename from services/bright/assets/vendor/README.md rename to apps/bright/assets/vendor/README.md diff --git a/services/bright/assets/vendor/hls.js b/apps/bright/assets/vendor/hls.js similarity index 100% rename from services/bright/assets/vendor/hls.js rename to apps/bright/assets/vendor/hls.js diff --git a/services/bright/assets/vendor/player.js b/apps/bright/assets/vendor/player.js similarity index 100% rename from services/bright/assets/vendor/player.js rename to apps/bright/assets/vendor/player.js diff --git a/services/bright/assets/vendor/player.js.map b/apps/bright/assets/vendor/player.js.map similarity index 100% rename from services/bright/assets/vendor/player.js.map rename to apps/bright/assets/vendor/player.js.map diff --git a/services/bright/assets/vendor/topbar.js b/apps/bright/assets/vendor/topbar.js similarity index 100% rename from services/bright/assets/vendor/topbar.js rename to apps/bright/assets/vendor/topbar.js diff --git a/services/bright/config/config.exs b/apps/bright/config/config.exs similarity index 83% rename from services/bright/config/config.exs rename to apps/bright/config/config.exs index 100a01f..5a2808a 100644 --- a/services/bright/config/config.exs +++ b/apps/bright/config/config.exs @@ -11,8 +11,6 @@ config :bright, ecto_repos: [Bright.Repo], generators: [timestamp_type: :utc_datetime] - - # Configures the endpoint config :bright, BrightWeb.Endpoint, url: [host: "localhost"], @@ -24,7 +22,6 @@ config :bright, BrightWeb.Endpoint, pubsub_server: Bright.PubSub, live_view: [signing_salt: "JGNufzrG"] - config :bright, Oban, engine: Oban.Engines.Basic, notifier: Oban.Notifiers.PG, @@ -39,15 +36,16 @@ config :bright, Oban, config :ueberauth, Ueberauth, providers: [ github: {Ueberauth.Strategy.Github, [default_scope: "user:email"]}, - patreon: {Ueberauth.Strategy.Patreon, [ - default_scope: "identity identity.memberships", - # identity[email] campaigns w:campaigns.benefits campaigns.members campaigns.members[email] identity.memberships w:campaigns.apps w:campaigns.webhook apps.tiers w:campaigns.posts campaigns.members.address identity w:identity.clients campaigns.webhook campaigns.posts - ]} + patreon: + {Ueberauth.Strategy.Patreon, + [ + default_scope: "identity identity.memberships" + # identity[email] campaigns w:campaigns.benefits campaigns.members campaigns.members[email] identity.memberships w:campaigns.apps w:campaigns.webhook apps.tiers w:campaigns.posts campaigns.members.address identity w:identity.clients campaigns.webhook campaigns.posts + ]} ] - - ## These variables are required at runtime, but we must also get them from system env here (not sure why) - ## we don't raise here, in case mix is running some task like creating an ecto migration +## These variables are required at runtime, but we must also get them from system env here (not sure why) +## we don't raise here, in case mix is running some task like creating an ecto migration config :ueberauth, Ueberauth.Strategy.Patreon.OAuth, client_id: System.get_env("PATREON_CLIENT_ID"), client_secret: System.get_env("PATREON_CLIENT_SECRET"), @@ -57,9 +55,6 @@ config :ueberauth, Ueberauth.Strategy.Github.OAuth, client_id: System.get_env("GITHUB_CLIENT_ID"), client_secret: System.get_env("GITHUB_CLIENT_SECRET") - - - # Configures the mailer # # By default it uses the "Local" adapter which stores the emails @@ -87,7 +82,6 @@ config :dart_sass, cd: Path.expand("../assets", __DIR__) ] - # # Configure tailwind (the version is required) # config :tailwind, # version: "3.4.3", diff --git a/services/bright/config/dev.exs b/apps/bright/config/dev.exs similarity index 91% rename from services/bright/config/dev.exs rename to apps/bright/config/dev.exs index bf23b20..e23dbc1 100644 --- a/services/bright/config/dev.exs +++ b/apps/bright/config/dev.exs @@ -1,15 +1,13 @@ import Config - config :oauth2, debug: true # Configure the database config :bright, Bright.Repo, - username: "postgres", - password: "password", - # hostname: "db", - hostname: System.cmd("docker", ["inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "futureporn-db"]) |> elem(0) |> String.trim(), - database: "bright", + database: System.get_env("DB_NAME", "bright"), + hostname: System.get_env("DB_HOST", "db"), + username: System.get_env("DB_USER", "postgres"), + password: System.get_env("DB_PASS", "password"), stacktrace: true, show_sensitive_data_on_connection_error: true, pool_size: 10 diff --git a/services/bright/config/prod.exs b/apps/bright/config/prod.exs similarity index 100% rename from services/bright/config/prod.exs rename to apps/bright/config/prod.exs diff --git a/services/bright/config/runtime.exs b/apps/bright/config/runtime.exs similarity index 89% rename from services/bright/config/runtime.exs rename to apps/bright/config/runtime.exs index 090bec8..658f998 100644 --- a/services/bright/config/runtime.exs +++ b/apps/bright/config/runtime.exs @@ -28,12 +28,15 @@ config :bright, aws_region: System.get_env("AWS_REGION"), public_s3_endpoint: System.get_env("PUBLIC_S3_ENDPOINT"), s3_cdn_endpoint: System.get_env("PUBLIC_S3_ENDPOINT"), - bt_tracker_url: System.get_env("BT_TRACKER_URL"), - bt_tracker_accesslist_url: System.get_env("BT_TRACKER_ACCESSLIST_URL"), site_url: System.get_env("SITE_URL") -config :bright, :buckets, - media: System.get_env("AWS_BUCKET") +config :bright, :torrent, + tracker_url: System.get_env("TRACKER_URL"), + whitelist_url: System.get_env("WHITELIST_URL"), + whitelist_username: System.get_env("WHITELIST_USERNAME"), + whitelist_password: System.get_env("WHITELIST_PASSWORD") + +config :bright, :buckets, media: System.get_env("AWS_BUCKET") # @see https://elixirforum.com/t/backblaze-and-ex-aws-ex-aws-s3-2-4-3-presign-url-issue/56805 config :ex_aws, @@ -44,7 +47,6 @@ config :ex_aws, bucket: System.get_env("AWS_BUCKET") ] - if config_env() == :prod do database_url = System.get_env("DATABASE_URL") || @@ -76,7 +78,6 @@ if config_env() == :prod do host = System.get_env("PHX_HOST") || "example.com" port = String.to_integer(System.get_env("PORT") || "4000") - config :bright, :dns_cluster_query, System.get_env("DNS_CLUSTER_QUERY") config :bright, BrightWeb.Endpoint, @@ -91,27 +92,18 @@ if config_env() == :prod do ], secret_key_base: secret_key_base - - - # We need to stop the program from running if OAuth client IDs and client secrets are not present in env. # We also do this in config.exs, but we wait to raise until here otherwise mix wouldn't be able to run ecto migrations # System.get_env("GITHUB_CLIENT_ID") || raise("environment variable GITHUB_CLIENT_ID is missing.") # System.get_env("GITHUB_CLIENT_SECRET") || raise("environment variable GITHUB_CLIENT_SECRET is missing.") + # config :ueberauth, Ueberauth.Strategy.Patreon.OAuth, + # client_id: {:system, "PATREON_CLIENT_ID"}, + # client_secret: {:system, "PATREON_CLIENT_SECRET"} - - - - - # config :ueberauth, Ueberauth.Strategy.Patreon.OAuth, - # client_id: {:system, "PATREON_CLIENT_ID"}, - # client_secret: {:system, "PATREON_CLIENT_SECRET"} - - - # config :ueberauth, Ueberauth.Strategy.Github.OAuth, - # client_id: {:system, "GITHUB_CLIENT_ID"}, - # client_secret: {:system, "GITHUB_CLIENT_SECRET"} + # config :ueberauth, Ueberauth.Strategy.Github.OAuth, + # client_id: {:system, "GITHUB_CLIENT_ID"}, + # client_secret: {:system, "GITHUB_CLIENT_SECRET"} # ## SSL Support # diff --git a/services/bright/config/test.exs b/apps/bright/config/test.exs similarity index 65% rename from services/bright/config/test.exs rename to apps/bright/config/test.exs index b6bc564..14b9181 100644 --- a/services/bright/config/test.exs +++ b/apps/bright/config/test.exs @@ -1,8 +1,5 @@ import Config - - - # Only in tests, remove the complexity from the password hashing algorithm config :bcrypt_elixir, :log_rounds, 1 @@ -14,11 +11,19 @@ config :bcrypt_elixir, :log_rounds, 1 config :bright, Bright.Repo, username: "postgres", password: "password", - hostname: System.cmd("docker", ["inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "futureporn-db"]) |> elem(0) |> String.trim(), - # hostname: "futureporn-db", + # hostname: + # System.cmd("docker", [ + # "inspect", + # "--format", + # "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", + # "futureporn-db" + # ]) + # |> elem(0) + # |> String.trim(), + hostname: "localhost", database: "bright_test#{System.get_env("MIX_TEST_PARTITION")}", pool: Ecto.Adapters.SQL.Sandbox, - pool_size: System.schedulers_online() * 2 + pool_size: System.schedulers_online() * 4 # We don't run a server during test. If one is required, # you can enable the server option below. @@ -28,9 +33,7 @@ config :bright, BrightWeb.Endpoint, server: false # Prevent Oban from running jobs and plugins during test runs -config :bright, Oban, - testing: :manual - +config :bright, Oban, testing: :manual # In test we don't send emails config :bright, Bright.Mailer, adapter: Swoosh.Adapters.Test @@ -48,9 +51,9 @@ config :phoenix, :plug_init_mode, :runtime config :phoenix_live_view, enable_expensive_runtime_checks: true - # @see https://elixirforum.com/t/backblaze-and-ex-aws-ex-aws-s3-2-4-3-presign-url-issue/56805 - # config :ex_aws, :s3, - # host: Application.get_env(:bright, :aws_host), - # access_key_id: Application.get_env(:bright, :aws_access_key_id), - # secret_access_key: Application.get_env(:bright, :aws_secret_access_key), - # bucket: Application.get_env(:bright, :aws_bucket) +# @see https://elixirforum.com/t/backblaze-and-ex-aws-ex-aws-s3-2-4-3-presign-url-issue/56805 +# config :ex_aws, :s3, +# host: Application.get_env(:bright, :aws_host), +# access_key_id: Application.get_env(:bright, :aws_access_key_id), +# secret_access_key: Application.get_env(:bright, :aws_secret_access_key), +# bucket: Application.get_env(:bright, :aws_bucket) diff --git a/services/bright/lib/bright.ex b/apps/bright/lib/bright.ex similarity index 100% rename from services/bright/lib/bright.ex rename to apps/bright/lib/bright.ex diff --git a/services/bright/lib/bright/application.ex b/apps/bright/lib/bright/application.ex similarity index 95% rename from services/bright/lib/bright/application.ex rename to apps/bright/lib/bright/application.ex index 6678c5e..7465209 100644 --- a/services/bright/lib/bright/application.ex +++ b/apps/bright/lib/bright/application.ex @@ -8,6 +8,7 @@ defmodule Bright.Application do @impl true def start(_type, _args) do Oban.Telemetry.attach_default_logger(level: :debug) + children = [ BrightWeb.Telemetry, Bright.Repo, @@ -16,10 +17,11 @@ defmodule Bright.Application do # Start the Finch HTTP client for sending emails {Finch, name: Bright.Finch}, {Oban, Application.fetch_env!(:bright, Oban)}, + # Start the PubSub system # Start a worker by calling: Bright.Worker.start_link(arg) # {Bright.Worker, arg}, # Start to serve requests, typically the last entry - BrightWeb.Endpoint, + BrightWeb.Endpoint ] # See https://hexdocs.pm/elixir/Supervisor.html diff --git a/services/bright/lib/bright/b2.ex b/apps/bright/lib/bright/b2.ex similarity index 81% rename from services/bright/lib/bright/b2.ex rename to apps/bright/lib/bright/b2.ex index 68b0706..da11e4b 100644 --- a/services/bright/lib/bright/b2.ex +++ b/apps/bright/lib/bright/b2.ex @@ -21,42 +21,43 @@ defmodule Bright.B2 do Put a file from local disk to Backblaze. """ def put(local_file, object_key) do - bucket = Application.get_env(:bright, :aws_bucket) + if bucket === nil do raise("bucket specification is missing") end s3_cdn_endpoint = Application.get_env(:bright, :s3_cdn_endpoint) + if s3_cdn_endpoint === nil do raise("s3_cdn_endpoint specification is missing") end + cdn_url = "#{s3_cdn_endpoint}/#{object_key}" - IO.puts "putting local_file=#{local_file} to bucket=#{bucket} s3_cdn_endpoint=#{s3_cdn_endpoint} key=#{object_key}" + Logger.debug( + "putting local_file=#{local_file} to bucket=#{bucket} s3_cdn_endpoint=#{s3_cdn_endpoint} key=#{object_key}" + ) local_file - |> S3.Upload.stream_file + |> S3.Upload.stream_file() |> S3.upload(bucket, object_key) - |> ExAws.request + |> ExAws.request() |> case do {:ok, %{status_code: 200}} -> {:ok, %{key: object_key, cdn_url: cdn_url}} {:error, reason} -> {:error, reason} end - - - end - def get(%Vod{} = vod) do object_key = vod.s3_cdn_url |> URI.parse() |> Map.get(:path) |> String.trim_leading("/") + local_file = Cache.generate_filename(object_key) - IO.puts "get/1 object_key=#{object_key} local_file=#{local_file}" + Logger.debug("get/1 object_key=#{object_key} local_file=#{local_file}") get(object_key, local_file) end @@ -65,23 +66,23 @@ defmodule Bright.B2 do """ def get(object_key, local_file) do bucket = Application.get_env(:bright, :aws_bucket) + S3.download_file(bucket, object_key, local_file) - |> ExAws.request + |> ExAws.request() |> case do {:ok, :done} -> {:ok, local_file} {:error, reason} -> {:error, reason} end end - @doc """ Given a S3 object_key, generate an appropriate CDN url. """ def generate_cdn_url(object_key) do - cdn_url = Application.get_env(:bright, :public_s3_endpoint) || raise(":public_s3_endpoint missing from App env") + cdn_url = + Application.get_env(:bright, :public_s3_endpoint) || + raise(":public_s3_endpoint missing from App env") + "#{cdn_url}/#{object_key}" end - - - end diff --git a/services/bright/lib/bright/bittorrent_url_encoder.ex b/apps/bright/lib/bright/bittorrent_url_encoder.ex similarity index 92% rename from services/bright/lib/bright/bittorrent_url_encoder.ex rename to apps/bright/lib/bright/bittorrent_url_encoder.ex index 70086f1..856c71a 100644 --- a/services/bright/lib/bright/bittorrent_url_encoder.ex +++ b/apps/bright/lib/bright/bittorrent_url_encoder.ex @@ -7,7 +7,6 @@ # """ # import Bitwise - # @doc """ # Encodes `string` as Bittorrent flavored percent-encoded string. @@ -44,11 +43,8 @@ # defp hex(n) when n <= 9, do: n + ?0 # defp hex(n), do: n + ?a - 10 - # end - - defmodule Bright.BittorrentUrlEncoder do @moduledoc """ URL encoding for Bittorrent Info hash v1. Designed to be compatible with qBittorrent's percent encoding. @@ -68,7 +64,8 @@ defmodule Bright.BittorrentUrlEncoder do @spec encode(binary()) :: binary() def encode(hex_string) when is_binary(hex_string) do hex_string - |> Base.decode16!(case: :lower) # Decode from hex to raw bytes + # Decode from hex to raw bytes + |> Base.decode16!(case: :lower) |> encode_bytes() end @@ -78,7 +75,8 @@ defmodule Bright.BittorrentUrlEncoder do percent_encode(byte) <> encode_bytes(rest) end - defp percent_encode(byte) when byte in ?0..?9 or byte in ?a..?z or byte in ?A..?Z or byte in ~c"~_-.!" do + defp percent_encode(byte) + when byte in ?0..?9 or byte in ?a..?z or byte in ?A..?Z or byte in ~c"~_-.!" do <> end diff --git a/services/bright/lib/bright/cache.ex b/apps/bright/lib/bright/cache.ex similarity index 84% rename from services/bright/lib/bright/cache.ex rename to apps/bright/lib/bright/cache.ex index 96319d5..615e0d0 100644 --- a/services/bright/lib/bright/cache.ex +++ b/apps/bright/lib/bright/cache.ex @@ -3,8 +3,6 @@ defmodule Bright.Cache do A simple caching module that saves files to the `/tmp` directory. """ - - @cache_dir Path.join(System.user_home!(), ".cache/futureporn") require Logger @@ -14,15 +12,23 @@ defmodule Bright.Cache do end def generate_basename(input) do - prefix = :crypto.strong_rand_bytes(6) |> Base.encode64(padding: false) |> String.replace(~r/[^a-zA-Z0-9]/, "") + if is_nil(input), do: raise("generate_basename was called with nil argument") + + prefix = + :crypto.strong_rand_bytes(6) + |> Base.encode64(padding: false) + |> String.replace(~r/[^a-zA-Z0-9]/, "") + base = Path.basename(input) "#{prefix}-#{base}" end def generate_basename(input, ext) do + if is_nil(input), do: raise("generate_basename was called with nil argument") + input |> generate_basename - |> Path.rootname + |> Path.rootname() |> Kernel.<>(".#{ext}") end @@ -45,10 +51,6 @@ defmodule Bright.Cache do end end - - - - @doc """ Delete a cached item by its key. @@ -97,11 +99,9 @@ defmodule Bright.Cache do ensure_cache_dir!() :ok - {:error, reason} -> + {:error, _posix, reason} -> Logger.error("[Cache] Failed to clear cache: #{reason}") {:error, reason} end end - - end diff --git a/services/bright/lib/bright/downloader.ex b/apps/bright/lib/bright/downloader.ex similarity index 78% rename from services/bright/lib/bright/downloader.ex rename to apps/bright/lib/bright/downloader.ex index 2660e75..aacf5ba 100644 --- a/services/bright/lib/bright/downloader.ex +++ b/apps/bright/lib/bright/downloader.ex @@ -3,10 +3,11 @@ defmodule Bright.Downloader do Downloader functions """ + require Logger + def get(url) do filename = Bright.Cache.generate_filename(url) - IO.puts("Downloader getting url=#{url}") - + Logger.debug("Downloader getting url=#{inspect(url)}") try do {download!(url, filename), filename} @@ -18,7 +19,8 @@ defmodule Bright.Downloader do # greets https://elixirforum.com/t/how-to-download-big-files/9173/4 def download!(file_url, filename) do - IO.puts("Downloader downloading file_url=#{file_url} to filename=#{filename}") + Logger.debug("Downloader downloading file_url=#{file_url} to filename=#{filename}") + file = if File.exists?(filename) do File.open!(filename, [:append]) @@ -46,11 +48,8 @@ defmodule Bright.Downloader do # don't know what httpoison returns in case of an error ... # you can inspect `_other` below to find out # and match on the error to exit the loop early - other -> - IO.puts( - "!!!!!!!!!!!!!! WARNING: append_loop is doing it's recursive thing which may cause an infinite loop. @todo please implement error handling. other=#{inspect(other)}" - ) - + _ -> + Logger.debug("recursively downloading #{inspect(ref)} #{inspect(file)}") append_loop(ref, file) end end diff --git a/services/bright/lib/bright/events.ex b/apps/bright/lib/bright/events.ex similarity index 99% rename from services/bright/lib/bright/events.ex rename to apps/bright/lib/bright/events.ex index 28891ff..ca1bca4 100644 --- a/services/bright/lib/bright/events.ex +++ b/apps/bright/lib/bright/events.ex @@ -1,6 +1,4 @@ defmodule Bright.Events do - - defmodule ThumbnailsGenerated do defstruct vod: nil end diff --git a/services/bright/lib/bright/images.ex b/apps/bright/lib/bright/images.ex similarity index 60% rename from services/bright/lib/bright/images.ex rename to apps/bright/lib/bright/images.ex index f50d619..83c725a 100644 --- a/services/bright/lib/bright/images.ex +++ b/apps/bright/lib/bright/images.ex @@ -14,7 +14,9 @@ defmodule Bright.Images do streams |> Enum.find(fn stream -> stream["codec_type"] == "video" end) |> case do - nil -> {:error, "No video stream found"} + nil -> + {:error, "No video stream found"} + video_stream -> duration = video_stream @@ -26,7 +28,8 @@ defmodule Bright.Images do end end - {:error, reason} -> {:error, reason} + {:error, reason} -> + {:error, reason} end end @@ -38,60 +41,71 @@ defmodule Bright.Images do in ffmpex we aren't able to set cmd_args ourselves """ def get_video_framecount_slow(file_path) do - cmd_args = ["-print_format", "json", "-show_streams", "-count_frames", file_path] - {:ok, streams} = case Rambo.run(ffprobe_path(), cmd_args, log: false) do - {:ok, %{out: result}} -> - streams = - result - |> Jason.decode!() - |> Map.get("streams", []) + {:ok, streams} = + case Rambo.run(ffprobe_path(), cmd_args, log: false) do + {:ok, %{out: result}} -> + streams = + result + |> Jason.decode!() + |> Map.get("streams", []) - {:ok, streams} + {:ok, streams} - {:error, %{err: result}} -> - file_error(file_path, result) - end + {:error, %{err: result}} -> + file_error(file_path, result) + end streams |> Enum.find(fn stream -> stream["codec_type"] == "video" end) |> case do - nil -> {:error, "No video stream found"} - video_stream -> + nil -> + {:error, "No video stream found"} + video_stream -> nb_read_frames = video_stream |> Map.get("nb_read_frames", %{}) case nb_read_frames do - nil -> {:error, "nb_read_frames not found. (nil)"} - %{} -> {:error, "nb_read_frames not found. (empty map.)"} + nil -> + {:error, "nb_read_frames not found. (nil)"} + + %{} -> + {:error, "nb_read_frames not found. (empty map.)"} + nb_read_frames -> case Integer.parse(nb_read_frames) do {number, _} -> {:ok, number} end end end - end def get_video_framecount(file_path) do - IO.puts "get_video_framecount using file_path=#{file_path}" + Logger.debug("get_video_framecount using file_path=#{file_path}") + case FFprobe.streams(file_path) do {:ok, streams} -> streams |> Enum.find(fn stream -> stream["codec_type"] == "video" end) |> case do - nil -> {:error, "No video stream found"} + nil -> + {:error, "No video stream found"} + video_stream -> nb_frames = video_stream |> Map.get("nb_frames", %{}) case nb_frames do - nil -> {:error, "nb_frames not found. (nil)"} - %{} -> get_video_framecount_slow(file_path) + nil -> + {:error, "nb_frames not found. (nil)"} + + %{} -> + get_video_framecount_slow(file_path) + nb_frames -> case Integer.parse(nb_frames) do {number, _} -> {:ok, number} @@ -99,39 +113,53 @@ defmodule Bright.Images do end end - {:error, reason} -> {:error, reason} + {:error, reason} -> + {:error, reason} end end - - defp gen_thumb(input_file, output_file) do case get_video_framecount(input_file) do - {:error, reason} -> {:error, reason} - {:ok, framecount} -> + {:error, reason} -> + {:error, reason} + {:ok, framecount} -> frame_interval = div(framecount, 25) scale_width = 160 tile_grid = "5x5" # ffmpeg -y -i ~/Videos/moose-encounter_75.mp4 -frames:v 1 -vf 'select=not(mod(n\,257)),scale=160:-1,tile=5x5' -update 1 -fps_mode passthrough ~/Videos/thumb.jpg + # -vsync 0 -update 1 -frames:v 1 + update_option = %FFmpex.Option{name: "-update", argument: "1"} + command = - FFmpex.new_command + FFmpex.new_command() |> add_global_option(option_y()) |> add_input_file(input_file) |> add_output_file(output_file) - |> add_file_option(option_vframes(1)) - |> add_file_option(option_vf("select=not(mod(n\\,#{frame_interval})),scale=#{scale_width}:-1,tile=#{tile_grid}")) - |> add_file_option(option_vsync(0)) # -vsync is deprecated in ffmpeg but ffmpex doesn't have the modern replacement, -fps_mode - # |> add_file_option(option_update(1)) # ffmpeg complains but it doesn't necessarily need this. I'm omitting because ffmpex doesn't know this function - # |> add_file_option(option_fps_mode("passthrough")) # -fps_mode is the modern replacement for -vsync + |> add_file_option(option_vframes(1)) + |> add_file_option(update_option) + |> add_file_option( + option_vf( + "select=not(mod(n\\,#{frame_interval})),scale=#{scale_width}:-1,tile=#{tile_grid}" + ) + ) + # -vsync is deprecated in ffmpeg but ffmpex doesn't have the modern replacement, -fps_mode + |> add_file_option(option_vsync(0)) + # |> add_file_option(option_update(1)) # certain versions of ffmpeg complain about the -update flag. ffmpex doesn't know this + # |> add_file_option(option_fps_mode("passthrough")) # -fps_mode is the modern replacement for -vsync Logger.info("generating thumbnail...") - IO.puts "generating thumbnail with input_file=#{input_file} output_file=#{output_file}" + + Logger.debug( + "generating thumbnail with input_file=#{input_file} output_file=#{output_file}" + ) + case execute(command) do - {:ok, output} -> - {:ok, %{output: output, filename: output_file}} + {:ok, _} -> + {:ok, output_file} + {:error, reason} -> Logger.error("Error generating thumbnail: #{inspect(reason)}") {:error, reason} @@ -141,7 +169,7 @@ defmodule Bright.Images do def create_thumbnail(input_file) do output_file = Cache.generate_filename(input_file, "png") - IO.puts "creating_thumbnail from #{input_file} and saving it to #{output_file}" + Logger.debug("creating_thumbnail from #{input_file} and saving it to #{output_file}") gen_thumb(input_file, output_file) end @@ -152,10 +180,17 @@ defmodule Bright.Images do ## copied from ffmpex defp file_error(file_path, error_text) do cond do - File.exists?(file_path) -> {:error, :invalid_file} - String.contains?(error_text, "Invalid data found when processing input") -> {:error, :invalid_file} - String.contains?(error_text, "404 Not Found") -> {:error, :no_such_file} - true -> {:error, :no_such_file} + File.exists?(file_path) -> + {:error, :invalid_file} + + String.contains?(error_text, "Invalid data found when processing input") -> + {:error, :invalid_file} + + String.contains?(error_text, "404 Not Found") -> + {:error, :no_such_file} + + true -> + {:error, :no_such_file} end end @@ -176,7 +211,4 @@ defmodule Bright.Images do path end end - - - end diff --git a/services/bright/lib/bright/oban_workers/create_hls_playlist.ex b/apps/bright/lib/bright/oban_workers/create_hls_playlist.ex similarity index 100% rename from services/bright/lib/bright/oban_workers/create_hls_playlist.ex rename to apps/bright/lib/bright/oban_workers/create_hls_playlist.ex diff --git a/services/bright/lib/bright/oban_workers/create_s3_asset.ex b/apps/bright/lib/bright/oban_workers/create_s3_asset.ex similarity index 77% rename from services/bright/lib/bright/oban_workers/create_s3_asset.ex rename to apps/bright/lib/bright/oban_workers/create_s3_asset.ex index 80bddae..02ff3d1 100644 --- a/services/bright/lib/bright/oban_workers/create_s3_asset.ex +++ b/apps/bright/lib/bright/oban_workers/create_s3_asset.ex @@ -3,24 +3,21 @@ defmodule Bright.ObanWorkers.CreateS3Asset do require Logger - alias Bright.Downloader alias Bright.B2 alias Bright.Repo alias Bright.Streams.Vod - - @impl Oban.Worker def perform(%Oban.Job{args: %{"vod_id" => vod_id}}) do - - Logger.info("CreateS3Asset begin.") + Logger.debug("CreateS3Asset begin") vod = Repo.get!(Vod, vod_id) + Logger.debug("vod.origin_temp_input_url=#{inspect(vod.origin_temp_input_url)}") + if is_nil(vod.origin_temp_input_url), do: raise("vod.origin_temp_input_url was missing!") with {:ok, local_file} <- Downloader.get(vod.origin_temp_input_url), {:ok, %{cdn_url: cdn_url}} <- B2.put(local_file) do update_vod_with_s3_asset(vod, cdn_url) - else {:error, reason} -> Logger.error("Failed to create S3 Asset for VOD ID #{vod_id}: #{inspect(reason)}") @@ -28,15 +25,14 @@ defmodule Bright.ObanWorkers.CreateS3Asset do end end - defp update_vod_with_s3_asset(vod, s3_cdn_url) do case Repo.update(vod |> Ecto.Changeset.change(s3_cdn_url: s3_cdn_url)) do {:ok, updated_vod} -> Oban.insert!(Bright.ObanWorkers.CreateTorrent.new(%{vod_id: updated_vod.id})) {:ok, updated_vod} - {:error, changeset} -> {:error, changeset} + + {:error, changeset} -> + {:error, changeset} end end - - end diff --git a/services/bright/lib/bright/oban_workers/create_thumbnail.ex b/apps/bright/lib/bright/oban_workers/create_thumbnail.ex similarity index 89% rename from services/bright/lib/bright/oban_workers/create_thumbnail.ex rename to apps/bright/lib/bright/oban_workers/create_thumbnail.ex index 35d53d7..2744f5f 100644 --- a/services/bright/lib/bright/oban_workers/create_thumbnail.ex +++ b/apps/bright/lib/bright/oban_workers/create_thumbnail.ex @@ -1,18 +1,17 @@ defmodule Bright.ObanWorkers.CreateThumbnail do use Oban.Worker, queue: :default, max_attempts: 3 - alias Bright.Streams.Vod + alias Bright.{ Repo, Downloader, B2, Images } + require Logger - - @impl Oban.Worker def perform(%Oban.Job{args: %{"vod_id" => vod_id}}) do Logger.info(">>>> CreateThumbnail is performing. with vod_id=#{vod_id}") @@ -24,9 +23,8 @@ defmodule Bright.ObanWorkers.CreateThumbnail do %Vod{origin_temp_input_url: origin_temp_input_url} = vod -> with {:ok, local_filename} <- Downloader.get(origin_temp_input_url), - {:ok, %{filename: output_file}} <- Images.create_thumbnail(local_filename), - {:ok, s3Asset} <- B2.put(output_file) - do + {:ok, thumbnail_filename} <- Images.create_thumbnail(local_filename), + {:ok, s3Asset} <- B2.put(thumbnail_filename) do update_vod_with_thumbnail_url(vod, s3Asset.cdn_url) else {:error, reason} -> @@ -36,15 +34,11 @@ defmodule Bright.ObanWorkers.CreateThumbnail do end end - # defp generate_thumbnail_url(basename), do: "#{Application.get_env(:bright, :public_s3_endpoint)}/#{basename}" - - defp update_vod_with_thumbnail_url(vod, thumbnail_url) do case Repo.update(vod |> Ecto.Changeset.change(thumbnail_url: thumbnail_url)) do {:ok, updated_vod} -> {:ok, updated_vod} {:error, changeset} -> {:error, changeset} end end - end diff --git a/apps/bright/lib/bright/oban_workers/create_torrent.ex b/apps/bright/lib/bright/oban_workers/create_torrent.ex new file mode 100644 index 0000000..3ba1297 --- /dev/null +++ b/apps/bright/lib/bright/oban_workers/create_torrent.ex @@ -0,0 +1,35 @@ +defmodule Bright.ObanWorkers.CreateTorrent do + use Oban.Worker, queue: :default, max_attempts: 3 + + alias Bright.Streams + + alias Bright.{ + B2, + Torrents, + Tracker, + Torrentfile + } + + import Ecto.Query, warn: false + + def perform(%Oban.Job{args: %{"vod_id" => vod_id}}) do + vod = Streams.get_vod!(vod_id) + + with {:ok, filename} <- B2.get(vod), + {:ok, tf} <- Torrentfile.create(vod, filename), + {:ok, %{cdn_url: cdn_url}} <- B2.put(tf.save_path, Path.basename(tf.save_path)), + {:ok, torrent} <- + Torrents.create_torrent(%{ + vod_id: vod.id, + info_hash_v1: tf.btih, + info_hash_v2: tf.btmh, + cdn_url: cdn_url, + magnet: tf.magnet + }), + {:ok, _} <- Tracker.whitelist_info_hash(torrent.info_hash_v1), + {:ok, _} <- Tracker.announce_torrent(torrent.info_hash_v1) do + # {:ok, updated_vod} <- Streams.update_vod(vod, %{}) do + {:ok, torrent} + end + end +end diff --git a/services/bright/lib/bright/oban_workers/process_vod.ex b/apps/bright/lib/bright/oban_workers/process_vod.ex similarity index 99% rename from services/bright/lib/bright/oban_workers/process_vod.ex rename to apps/bright/lib/bright/oban_workers/process_vod.ex index 2d97e89..e6f76f4 100644 --- a/services/bright/lib/bright/oban_workers/process_vod.ex +++ b/apps/bright/lib/bright/oban_workers/process_vod.ex @@ -5,6 +5,7 @@ defmodule Bright.ObanWorkers.ProcessVod do alias Bright.Repo alias Bright.Streams.Vod + alias Bright.ObanWorkers.{ CreateHlsPlaylist, CreateS3Asset, @@ -13,21 +14,15 @@ defmodule Bright.ObanWorkers.ProcessVod do @impl Oban.Worker def perform(%Oban.Job{args: %{"vod_id" => vod_id}}) do - - vod = Repo.get!(Vod, vod_id) - if vod.origin_temp_input_url do unless vod.s3_cdn_url, do: queue_create_s3_asset(vod) unless vod.playlist_url, do: queue_create_hls_playlist(vod) unless vod.thumbnail_url, do: queue_create_thumbnail(vod) end - - :ok - end defp queue_create_hls_playlist(%Vod{id: id}) do @@ -44,7 +39,4 @@ defmodule Bright.ObanWorkers.ProcessVod do job_args = %{vod_id: id} Oban.insert!(CreateThumbnail.new(job_args)) end - - - end diff --git a/services/bright/lib/bright/patreon_entitlements.ex b/apps/bright/lib/bright/patreon_entitlements.ex similarity index 100% rename from services/bright/lib/bright/patreon_entitlements.ex rename to apps/bright/lib/bright/patreon_entitlements.ex diff --git a/services/bright/lib/bright/patrons.ex b/apps/bright/lib/bright/patrons.ex similarity index 100% rename from services/bright/lib/bright/patrons.ex rename to apps/bright/lib/bright/patrons.ex diff --git a/services/bright/lib/bright/patrons/patron.ex b/apps/bright/lib/bright/patrons/patron.ex similarity index 100% rename from services/bright/lib/bright/patrons/patron.ex rename to apps/bright/lib/bright/patrons/patron.ex diff --git a/services/bright/lib/bright/platforms.ex b/apps/bright/lib/bright/platforms.ex similarity index 100% rename from services/bright/lib/bright/platforms.ex rename to apps/bright/lib/bright/platforms.ex diff --git a/services/bright/lib/bright/platforms/platform.ex b/apps/bright/lib/bright/platforms/platform.ex similarity index 100% rename from services/bright/lib/bright/platforms/platform.ex rename to apps/bright/lib/bright/platforms/platform.ex diff --git a/services/bright/test/bright/oban_workers/create_ipfs_cid_test.exs b/apps/bright/lib/bright/pub_sub.ex similarity index 100% rename from services/bright/test/bright/oban_workers/create_ipfs_cid_test.exs rename to apps/bright/lib/bright/pub_sub.ex diff --git a/services/bright/lib/bright/regexp.ex b/apps/bright/lib/bright/regexp.ex similarity index 100% rename from services/bright/lib/bright/regexp.ex rename to apps/bright/lib/bright/regexp.ex diff --git a/services/bright/lib/bright/release.ex b/apps/bright/lib/bright/release.ex similarity index 100% rename from services/bright/lib/bright/release.ex rename to apps/bright/lib/bright/release.ex diff --git a/services/bright/lib/bright/repo.ex b/apps/bright/lib/bright/repo.ex similarity index 100% rename from services/bright/lib/bright/repo.ex rename to apps/bright/lib/bright/repo.ex diff --git a/services/bright/lib/bright/rss.ex b/apps/bright/lib/bright/rss.ex similarity index 99% rename from services/bright/lib/bright/rss.ex rename to apps/bright/lib/bright/rss.ex index 189de8d..07a2f76 100644 --- a/services/bright/lib/bright/rss.ex +++ b/apps/bright/lib/bright/rss.ex @@ -1,5 +1,4 @@ defmodule Bright.RSS do - use Timex def to_rfc822(date) do @@ -9,8 +8,6 @@ defmodule Bright.RSS do end end - - # which is better? # date diff --git a/services/bright/lib/bright/shopping_cart/cart.ex b/apps/bright/lib/bright/shopping_cart/cart.ex similarity index 100% rename from services/bright/lib/bright/shopping_cart/cart.ex rename to apps/bright/lib/bright/shopping_cart/cart.ex diff --git a/services/bright/lib/bright/shopping_cart/cart_item.ex b/apps/bright/lib/bright/shopping_cart/cart_item.ex similarity index 100% rename from services/bright/lib/bright/shopping_cart/cart_item.ex rename to apps/bright/lib/bright/shopping_cart/cart_item.ex diff --git a/services/bright/lib/bright/storage.ex b/apps/bright/lib/bright/storage.ex similarity index 99% rename from services/bright/lib/bright/storage.ex rename to apps/bright/lib/bright/storage.ex index 84e5e3a..fa4aefb 100644 --- a/services/bright/lib/bright/storage.ex +++ b/apps/bright/lib/bright/storage.ex @@ -78,5 +78,4 @@ defmodule Bright.Storage do ExAws.S3.delete_object(Bright.config([:buckets, bucket]), remote_path, opts) |> ExAws.request([]) end - end diff --git a/services/bright/lib/bright/streams.ex b/apps/bright/lib/bright/streams.ex similarity index 73% rename from services/bright/lib/bright/streams.ex rename to apps/bright/lib/bright/streams.ex index 1f81f5a..e11e6c8 100644 --- a/services/bright/lib/bright/streams.ex +++ b/apps/bright/lib/bright/streams.ex @@ -7,16 +7,19 @@ defmodule Bright.Streams do import Ecto.Query, warn: false alias Bright.Repo - alias Bright.Streams.{Stream,Vod} + alias Bright.Streams.{Stream, Vod} alias Bright.Vtubers.Vtuber alias Bright.Tags.Tag alias Bright.Platforms.Platform + alias Bright.{ Cache, Downloader, Storage, + Events } + @pubsub Bright.PubSub @doc """ Returns the list of streams. @@ -120,6 +123,7 @@ defmodule Bright.Streams do vods = list_vods_by_id(attrs["vod_ids"]) vtubers = list_vtubers_by_id(attrs["vtuber_ids"]) platforms = list_platforms_by_id(attrs["platform_ids"]) + stream |> Repo.preload([:tags, :vods, :vtubers]) |> Stream.changeset(attrs) @@ -129,23 +133,26 @@ defmodule Bright.Streams do |> Ecto.Changeset.put_assoc(:platforms, platforms) end - def list_tags_by_id(nil), do: [] + def list_tags_by_id(tag_ids) do Repo.all(from t in Tag, where: t.id in ^tag_ids) end def list_vods_by_id(nil), do: [] + def list_vods_by_id(vod_ids) do Repo.all(from v in Vod, where: v.id in ^vod_ids) end def list_vtubers_by_id(nil), do: [] + def list_vtubers_by_id(vtuber_ids) do Repo.all(from v in Vtuber, where: v.id in ^vtuber_ids) end def list_platforms_by_id(nil), do: [] + def list_platforms_by_id(platform_ids) do Repo.all(from p in Platform, where: p.id in ^platform_ids) end @@ -167,7 +174,6 @@ defmodule Bright.Streams do |> Repo.preload(:torrent) end - @doc """ Returns the most recently updated vod """ @@ -175,7 +181,7 @@ defmodule Bright.Streams do Vod |> order_by([v], desc: v.updated_at) |> limit(1) - |> Repo.one + |> Repo.one() end @doc """ @@ -216,6 +222,7 @@ defmodule Bright.Streams do |> Repo.insert() |> case do {:ok, %Vod{} = vod} -> + vod = Repo.preload(vod, [:torrent]) Oban.insert!(Bright.ObanWorkers.ProcessVod.new(%{vod_id: vod.id})) {:ok, vod} @@ -237,8 +244,6 @@ defmodule Bright.Streams do # |> Repo.insert() # end - - # defp enqueue_process_vod(%Vod{id: id} = vod) do # %{vod_id: id} # |> Bright.ObanWorkers.ProcessVod.new() @@ -246,8 +251,6 @@ defmodule Bright.Streams do # vod # end - - @doc """ Updates a vod. @@ -296,19 +299,19 @@ defmodule Bright.Streams do end def transmux_to_hls(%Vod{} = vod, cb) do - if !vod.origin_temp_input_url, do: raise("vod was missing origin_temp_input_url") local_path = Cache.generate_filename(vod.origin_temp_input_url) Downloader.download!(vod.origin_temp_input_url, local_path) - IO.puts "transmuxing to hls using origin_temp_input_url=#{vod.origin_temp_input_url}, local_path=#{local_path}" - + Logger.debug( + "transmuxing to hls using origin_temp_input_url=#{vod.origin_temp_input_url}, local_path=#{local_path}" + ) master_pl_name = "master.m3u8" dir_name = "vod-#{vod.id}" - dir = Path.join(Bright.Cache.cache_dir, dir_name) + dir = Path.join(Bright.Cache.cache_dir(), dir_name) File.mkdir_p!(dir) cb.(%{stage: :transmuxing, done: 1, total: 1}) @@ -336,42 +339,130 @@ defmodule Bright.Streams do # -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2" \ # stream_%v/playlist.m3u8 - System.cmd("ffmpeg", [ "-i", local_path, "-filter_complex", "[0:v]split=5[v1][v2][v3][v4][v5];" <> - "[v1]scale=w=1920:h=1080[v1out];" <> - "[v2]scale=w=1280:h=720[v2out];" <> - "[v3]scale=w=854:h=480[v3out];" <> - "[v4]scale=w=640:h=360[v4out];" <> - "[v5]scale=w=284:h=160[v5out]", + "[v1]scale=w=1920:h=1080[v1out];" <> + "[v2]scale=w=1280:h=720[v2out];" <> + "[v3]scale=w=854:h=480[v3out];" <> + "[v4]scale=w=640:h=360[v4out];" <> + "[v5]scale=w=284:h=160[v5out]", # Video streams - "-map", "[v1out]", "-c:v:0", "libx264", "-b:v:0", "5000k", "-maxrate:v:0", "5350k", "-bufsize:v:0", "7500k", - "-map", "[v2out]", "-c:v:1", "libx264", "-b:v:1", "2800k", "-maxrate:v:1", "2996k", "-bufsize:v:1", "4200k", - "-map", "[v3out]", "-c:v:2", "libx264", "-b:v:2", "1400k", "-maxrate:v:2", "1498k", "-bufsize:v:2", "2100k", - "-map", "[v4out]", "-c:v:3", "libx264", "-b:v:3", "800k", "-maxrate:v:3", "856k", "-bufsize:v:3", "1200k", - "-map", "[v5out]", "-c:v:4", "libx264", "-b:v:4", "300k", "-maxrate:v:4", "300k", "-bufsize:v:4", "480k", + "-map", + "[v1out]", + "-c:v:0", + "libx264", + "-b:v:0", + "5000k", + "-maxrate:v:0", + "5350k", + "-bufsize:v:0", + "7500k", + "-map", + "[v2out]", + "-c:v:1", + "libx264", + "-b:v:1", + "2800k", + "-maxrate:v:1", + "2996k", + "-bufsize:v:1", + "4200k", + "-map", + "[v3out]", + "-c:v:2", + "libx264", + "-b:v:2", + "1400k", + "-maxrate:v:2", + "1498k", + "-bufsize:v:2", + "2100k", + "-map", + "[v4out]", + "-c:v:3", + "libx264", + "-b:v:3", + "800k", + "-maxrate:v:3", + "856k", + "-bufsize:v:3", + "1200k", + "-map", + "[v5out]", + "-c:v:4", + "libx264", + "-b:v:4", + "300k", + "-maxrate:v:4", + "300k", + "-bufsize:v:4", + "480k", # Audio streams - "-map", "a:0", "-c:a:0", "aac", "-b:a:0", "192k", "-ac:a:0", "2", - "-map", "a:0", "-c:a:1", "aac", "-b:a:1", "192k", "-ac:a:1", "2", - "-map", "a:0", "-c:a:2", "aac", "-b:a:2", "192k", "-ac:a:2", "2", - "-map", "a:0", "-c:a:3", "aac", "-b:a:3", "164k", "-ac:a:3", "2", - "-map", "a:0", "-c:a:4", "aac", "-b:a:4", "164k", "-ac:a:4", "2", - - "-f", "hls", - "-hls_time", "2", - "-hls_playlist_type", "vod", - "-hls_flags", "independent_segments", - "-hls_segment_type", "mpegts", - "-start_number", "0", - "-hls_list_size", "0", - "-hls_segment_filename", "#{dir}/stream_%v_segment_%d.ts", - "-master_pl_name", master_pl_name, - "-var_stream_map", "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3 v:4,a:4", + "-map", + "a:0", + "-c:a:0", + "aac", + "-b:a:0", + "192k", + "-ac:a:0", + "2", + "-map", + "a:0", + "-c:a:1", + "aac", + "-b:a:1", + "192k", + "-ac:a:1", + "2", + "-map", + "a:0", + "-c:a:2", + "aac", + "-b:a:2", + "192k", + "-ac:a:2", + "2", + "-map", + "a:0", + "-c:a:3", + "aac", + "-b:a:3", + "164k", + "-ac:a:3", + "2", + "-map", + "a:0", + "-c:a:4", + "aac", + "-b:a:4", + "164k", + "-ac:a:4", + "2", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_flags", + "independent_segments", + "-hls_segment_type", + "mpegts", + "-start_number", + "0", + "-hls_list_size", + "0", + "-hls_segment_filename", + "#{dir}/stream_%v_segment_%d.ts", + "-master_pl_name", + master_pl_name, + "-var_stream_map", + "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3 v:4,a:4", "#{dir}/stream_%v.m3u8" ]) @@ -396,15 +487,15 @@ defmodule Bright.Streams do end) playlist_url = "#{Bright.config([:s3_cdn_endpoint])}/package/vod-#{vod.id}/master.m3u8" - IO.puts "playlist_url=#{playlist_url} local_path=#{local_path}" + Logger.debug("playlist_url=#{playlist_url} local_path=#{local_path}") + hls_vod = + update_vod(vod, %{ + playlist_url: playlist_url, + local_path: local_path + }) - hls_vod = update_vod(vod, %{ - playlist_url: playlist_url, - local_path: local_path - }) - - IO.puts inspect(hls_vod) + Logger.debug(inspect(hls_vod)) cb.(%{stage: :generating_thumbnail, done: 1, total: 1}) # {:ok, hls_vod} = store_thumbnail_from_file(hls_vod, vod.local_path) @@ -415,10 +506,6 @@ defmodule Bright.Streams do hls_vod end - defp thumbnail_filename(%Vod{} = vod) do - "vod-#{vod.id}-index.jpeg" - end - # def store_thumbnail_from_file(%Vod{} = vod, src_path, marker \\ %{minutes: 0}, opts \\ []) do # with {:ok, thumbnail} <- create_thumbnail_from_file(vod, src_path, marker, opts), # {:ok, %{key: key, cdn_url: cdn_url}} <- B2.put(thumbnail, thumbnail_filename(vod)) do @@ -442,27 +529,24 @@ defmodule Bright.Streams do # File.read(dst_path) # end - # @todo IDK how to use Phoenix pubsub - # defp broadcast!(topic, msg) do - # Phoenix.PubSub.broadcast!(@pubsub, topic, {__MODULE__, msg}) - # end + defp broadcast!(topic, msg) do + Phoenix.PubSub.broadcast!(@pubsub, topic, {__MODULE__, msg}) + end - # def broadcast_processing_progressed!(stage, vod, pct) do - # broadcast!("backend", %Events.ProcessingProgressed{vod: vod, stage: stage, pct: pct}) - # end - - # def broadcast_processing_completed!(action, vod, url) do - # broadcast!("backend", %Events.ProcessingCompleted{action: action, vod: vod, url: url}) - # end - - # def broadcast_processing_failed!(vod, attempt, max_attempts) do - # broadcast!("backend", %Events.ProcessingFailed{ - # vod: vod, - # attempt: attempt, - # max_attempts: max_attempts - # }) - # end + def broadcast_processing_progressed!(stage, vod, pct) do + broadcast!("backend", %Events.ProcessingProgressed{vod: vod, stage: stage, pct: pct}) + end + def broadcast_processing_completed!(action, vod, url) do + broadcast!("backend", %Events.ProcessingCompleted{action: action, vod: vod, url: url}) + end + def broadcast_processing_failed!(vod, attempt, max_attempts) do + broadcast!("backend", %Events.ProcessingFailed{ + vod: vod, + attempt: attempt, + max_attempts: max_attempts + }) + end end diff --git a/services/bright/lib/bright/streams/stream.ex b/apps/bright/lib/bright/streams/stream.ex similarity index 100% rename from services/bright/lib/bright/streams/stream.ex rename to apps/bright/lib/bright/streams/stream.ex diff --git a/services/bright/lib/bright/streams/vod.ex b/apps/bright/lib/bright/streams/vod.ex similarity index 80% rename from services/bright/lib/bright/streams/vod.ex rename to apps/bright/lib/bright/streams/vod.ex index 9061979..62d6b4c 100644 --- a/services/bright/lib/bright/streams/vod.ex +++ b/apps/bright/lib/bright/streams/vod.ex @@ -10,7 +10,6 @@ defmodule Bright.Streams.Vod do field :thumbnail_url, :string field :local_path, :string - belongs_to :stream, Bright.Streams.Stream has_one :torrent, Bright.Torrents.Torrent @@ -22,10 +21,14 @@ defmodule Bright.Streams.Vod do @doc false def changeset(vod, attrs) do vod - |> cast(attrs, [:local_path, :s3_cdn_url, :stream_id, :origin_temp_input_url, :playlist_url, :thumbnail_url]) + |> cast(attrs, [ + :local_path, + :s3_cdn_url, + :stream_id, + :origin_temp_input_url, + :playlist_url, + :thumbnail_url + ]) |> validate_required([:stream_id]) end - - - end diff --git a/services/bright/lib/bright/tags.ex b/apps/bright/lib/bright/tags.ex similarity index 100% rename from services/bright/lib/bright/tags.ex rename to apps/bright/lib/bright/tags.ex diff --git a/services/bright/lib/bright/tags/stream_tag.ex b/apps/bright/lib/bright/tags/stream_tag.ex similarity index 99% rename from services/bright/lib/bright/tags/stream_tag.ex rename to apps/bright/lib/bright/tags/stream_tag.ex index a047f34..f422455 100644 --- a/services/bright/lib/bright/tags/stream_tag.ex +++ b/apps/bright/lib/bright/tags/stream_tag.ex @@ -3,7 +3,6 @@ defmodule Bright.Tags.StreamTag do import Ecto.Changeset schema "streams_tags" do - field :stream_id, :id field :tag_id, :id diff --git a/services/bright/lib/bright/tags/tag.ex b/apps/bright/lib/bright/tags/tag.ex similarity index 100% rename from services/bright/lib/bright/tags/tag.ex rename to apps/bright/lib/bright/tags/tag.ex diff --git a/apps/bright/lib/bright/tier_mapper.ex b/apps/bright/lib/bright/tier_mapper.ex new file mode 100644 index 0000000..bb9d58c --- /dev/null +++ b/apps/bright/lib/bright/tier_mapper.ex @@ -0,0 +1,43 @@ +defmodule Bright.TierMapper do + @patreon_tiers %{ + "everyone" => 0, + "free" => 0, + "archiveSupporter" => 1, + "stealthSupporter" => 1, + "tuneItUp" => 2, + "maxQ" => 2, + "archiveCollector" => 3, + "advancedArchiveSupporter" => 3, + "quantumSupporter" => 4, + "sneakyQuantumSupporter" => 4, + "luberPlusPlus" => 5 + } + + @patreon_ids %{ + "everyone" => "-1", + "free" => "10620388", + "archiveSupporter" => "8154170", + "stealthSupporter" => "9561793", + "tuneItUp" => "9184994", + "maxQ" => "22529959", + "archiveCollector" => "8154171", + "advancedArchiveSupporter" => "8686045", + "quantumSupporter" => "8694826", + "sneakyQuantumSupporter" => "9560538", + "luberPlusPlus" => "8686022" + } + + def get_tier_number("patreon", tier_id) when is_binary(tier_id) do + @patreon_ids + |> Enum.find_value(0, fn {key, id} -> if id == tier_id, do: @patreon_tiers[key] end) + end + + def get_tier_number(_, _), do: 0 + + def largest_tier_for_platform(platform, tier_ids) + when is_list(tier_ids) and is_binary(platform) do + tier_ids + |> Enum.map(&get_tier_number(platform, &1)) + |> Enum.max() + end +end diff --git a/services/bright/lib/bright/torrentfile.ex b/apps/bright/lib/bright/torrentfile.ex similarity index 70% rename from services/bright/lib/bright/torrentfile.ex rename to apps/bright/lib/bright/torrentfile.ex index 4424853..64e7da4 100644 --- a/services/bright/lib/bright/torrentfile.ex +++ b/apps/bright/lib/bright/torrentfile.ex @@ -3,16 +3,26 @@ defmodule Bright.Torrentfile do Provides functions to work with [torrentfile](https://github.com/alexpdev/torrentfile) CLI program """ + require Logger alias Bright.Cache alias Bright.Streams.Vod - + @spec bittorrent_tracker_url() :: binary() def bittorrent_tracker_url do - Application.fetch_env!(:bright, :bt_tracker_url) + case Application.fetch_env!(:bright, :torrent)[:tracker_url] do + nil -> raise "tracker_url missing or empty in app config" + "" -> raise "tracker_url missing or empty in app config" + url -> url + end end + @spec site_url() :: binary() def site_url do - Application.fetch_env!(:bright, :site_url) + case Application.fetch_env!(:bright, :site_url) do + nil -> raise "site_url missing or empty in app config" + "" -> raise "site_url missing or empty in app config" + url -> url + end end # @spec execute(command :: Command.t) :: {:ok, binary()} | {:error, {Collectable.t, exit_status :: non_neg_integer}} @@ -48,11 +58,11 @@ defmodule Bright.Torrentfile do _ -> {:error, "Version not found"} end - {:error, reason} -> {:error, reason} + {:error, reason} -> + {:error, reason} end end - # def parse_output(output) do # magnet = extract_last(Regex.run(~r/(magnet:\?[^\s]+)/, output)) # save_path = extract_last(Regex.run(~r/Torrent Save Path:\s+(.+)/, output)) @@ -71,8 +81,6 @@ defmodule Bright.Torrentfile do %{magnet: magnet, save_path: save_path, btih: btih, btmh: btmh} end - - defp extract_last(nil), do: nil defp extract_last(list) when is_list(list), do: List.last(list) @@ -87,19 +95,37 @@ defmodule Bright.Torrentfile do create(input_path, output_path, tracker_url, comment, source_url, web_seed_url, meta_version) end - def create(input_path, output_path, tracker_url, source_url, comment, web_seed_url, meta_version) do - IO.puts "Torrentfile.create called with args input_path=#{input_path}, output_path=#{output_path}, tracker_url=#{tracker_url}, source_url=#{source_url}, comment=#{comment}, web_seed_url=#{web_seed_url}, meta_version=#{meta_version}" + def create( + input_path, + output_path, + tracker_url, + source_url, + comment, + web_seed_url, + meta_version + ) do + Logger.debug( + "Torrentfile.create called with args input_path=#{input_path}, output_path=#{output_path}, tracker_url=#{tracker_url}, source_url=#{source_url}, comment=#{comment}, web_seed_url=#{web_seed_url}, meta_version=#{meta_version}" + ) + case Rambo.run(torrentfile_path(), [ - "--magnet", - "--prog", "0", - "--out", output_path, - "-a", tracker_url, - "--source", source_url, - "--comment", comment, - "--web-seed", web_seed_url, - "--meta-version", to_string(meta_version), - input_path - ]) do + "--magnet", + "--prog", + "0", + "--out", + output_path, + "-a", + tracker_url, + "--source", + source_url, + "--comment", + comment, + "--web-seed", + web_seed_url, + "--meta-version", + to_string(meta_version), + input_path + ]) do {:error, reason} -> {:error, reason} {:ok, %Rambo{status: 0, out: out, err: ""}} -> {:ok, parse_output(out)} end @@ -111,5 +137,4 @@ defmodule Bright.Torrentfile do path -> path end end - end diff --git a/services/bright/lib/bright/torrents.ex b/apps/bright/lib/bright/torrents.ex similarity index 96% rename from services/bright/lib/bright/torrents.ex rename to apps/bright/lib/bright/torrents.ex index 3120d5b..c9a00e1 100644 --- a/services/bright/lib/bright/torrents.ex +++ b/apps/bright/lib/bright/torrents.ex @@ -8,9 +8,6 @@ defmodule Bright.Torrents do alias Bright.Repo alias Bright.Torrents.Torrent - - - @doc """ Returns the list of torrent. @@ -40,7 +37,6 @@ defmodule Bright.Torrents do """ def get_torrent!(id), do: Repo.get!(Torrent, id) - @doc """ Creates a torrent. @@ -59,10 +55,6 @@ defmodule Bright.Torrents do |> Repo.insert() end - - - - @doc """ Updates a torrent. @@ -110,13 +102,11 @@ defmodule Bright.Torrents do Torrent.changeset(torrent, attrs) end - - - defimpl String.Chars, for: Bright.Torrents.Torrent do - def to_string(%Bright.Torrents.Torrent{info_hash_v1: info_hash_v1}) when not is_nil(info_hash_v1), do: info_hash_v1 + def to_string(%Bright.Torrents.Torrent{info_hash_v1: info_hash_v1}) + when not is_nil(info_hash_v1), + do: info_hash_v1 + def to_string(%Bright.Torrents.Torrent{}), do: "" end - - end diff --git a/services/bright/lib/bright/torrents/torrent.ex b/apps/bright/lib/bright/torrents/torrent.ex similarity index 99% rename from services/bright/lib/bright/torrents/torrent.ex rename to apps/bright/lib/bright/torrents/torrent.ex index c13cab8..e3db6ea 100644 --- a/services/bright/lib/bright/torrents/torrent.ex +++ b/apps/bright/lib/bright/torrents/torrent.ex @@ -21,9 +21,6 @@ defmodule Bright.Torrents.Torrent do end end - - - defimpl Phoenix.HTML.Safe, for: Bright.Torrents.Torrent do def to_iodata(torrent) do Phoenix.HTML.Safe.to_iodata("Torrent #{torrent.id}") diff --git a/apps/bright/lib/bright/tracker.ex b/apps/bright/lib/bright/tracker.ex new file mode 100644 index 0000000..9177e60 --- /dev/null +++ b/apps/bright/lib/bright/tracker.ex @@ -0,0 +1,144 @@ +defmodule Bright.Tracker do + alias Bright.BittorrentUrlEncoder + require Logger + + def tracker_url do + url = Application.fetch_env!(:bright, :torrent)[:tracker_url] + Logger.debug("tracker_url=#{url}") + + if is_nil(url) or url == "" do + raise "tracker_url is missing or empty in app config" + end + + url + end + + @doc """ + get the URL to our Bittorrent tracker accesslist URL, which is part of our opentracker docker container. + This is where we send infohashes that end up in opentracker's adder.fifo + Usually it's port 8666, path /whitelist + """ + @spec whitelist_url() :: binary() + def whitelist_url do + case Application.fetch_env!(:bright, :torrent)[:whitelist_url] do + nil -> raise "whitelist_url missing or empty in app config" + "" -> raise "whitelist_url missing or empty in app config" + url -> url + end + end + + @spec whitelist_username() :: binary() + def whitelist_username do + case Application.fetch_env!(:bright, :torrent)[:whitelist_username] do + nil -> raise "whitelist_username missing or empty in app config" + "" -> raise "whitelist_username missing or empty in app config" + username -> username + end + end + + @spec whitelist_password() :: binary() + def whitelist_password do + case Application.fetch_env!(:bright, :torrent)[:whitelist_password] do + nil -> raise "whitelist_password missing or empty in app config" + "" -> raise "whitelist_password missing or empty in app config" + password -> password + end + end + + @spec whitelist_feed_url() :: binary() + def whitelist_feed_url do + case Application.fetch_env!(:bright, :torrent)[:whitelist_feed_url] do + nil -> raise "whitelist_feed_url missing or empty in app config" + "" -> raise "whitelist_feed_url missing or empty in app config" + feed_url -> feed_url + end + end + + def announce_torrent(info_hash) do + encoded_info_hash = BittorrentUrlEncoder.encode(info_hash) + + Logger.debug( + "announce_torrent with info_hash=#{info_hash}, encoded_info_hash=#{encoded_info_hash}" + ) + + url = + tracker_url() + |> URI.parse() + |> URI.append_query("info_hash=#{encoded_info_hash}") + |> URI.to_string() + + body = [] + headers = [] + + case HTTPoison.get(url, body, headers) do + {:ok, %HTTPoison.Response{status_code: 200, body: body}} -> + Logger.debug(inspect(Bento.decode(body))) + + case Bento.decode(body) do + {:ok, decoded} -> + case decoded do + %{"failure reason" => failure_reason} -> {:error, failure_reason} + _ -> {:ok, decoded} + end + + {:error, reason} -> + {:error, reason} + end + + {:ok, %HTTPoison.Response{status_code: status, body: body}} -> + {:error, %{status: status, body: body}} + + {:error, %HTTPoison.Error{reason: reason}} -> + {:error, reason} + + failed -> + Logger.error("Failed to POST. #{inspect(failed)}") + {:error, :failed} + end + end + + def whitelist_info_hash(info_hash) do + Logger.debug("Attempting to whitelist info_hash=#{info_hash}") + + whitelist_url = whitelist_url() + username = whitelist_username() + password = whitelist_password() + Logger.debug("whitelist_username=#{username} whitelist_password=#{password}") + + send_whitelist_request(whitelist_url, info_hash, username, password) + # case URI.parse(whitelist_url) do + # %URI{scheme: scheme, host: host, port: port} when host not in [nil, ""] and port != nil -> + # full_url = "#{scheme}://#{host}:#{port}" + + # _ -> + # Logger.error("Invalid whitelist_url: #{whitelist_url}") + # {:error, :invalid_url} + # end + end + + defp send_whitelist_request(url, info_hash, username, password) do + Logger.debug("send_whitelist_request to url=#{url}") + + headers = [ + {"Content-Type", "text/plain"}, + {"Authorization", "Basic " <> Base.encode64("#{username}:#{password}")} + ] + + case HTTPoison.post(url, info_hash, headers) do + {:ok, %HTTPoison.Response{status_code: 200, body: response_body}} -> + Logger.info("Successfully whitelisted info_hash=#{info_hash}") + {:ok, response_body} + + {:ok, %HTTPoison.Response{status_code: status_code, body: error_body}} -> + Logger.warning( + "Whitelist failed: info_hash=#{info_hash}, status=#{status_code}, error=#{error_body}" + ) + + {:error, %{status: status_code, body: error_body}} + + {:error, %HTTPoison.Error{reason: reason}} -> + Logger.error("HTTP request failed: info_hash=#{info_hash}, reason=#{inspect(reason)}") + {:error, reason} + end + end +end diff --git a/services/bright/lib/bright/ueberauth/strategy/patreon.ex b/apps/bright/lib/bright/ueberauth/strategy/patreon.ex similarity index 78% rename from services/bright/lib/bright/ueberauth/strategy/patreon.ex rename to apps/bright/lib/bright/ueberauth/strategy/patreon.ex index ea2f71a..4e0c329 100644 --- a/services/bright/lib/bright/ueberauth/strategy/patreon.ex +++ b/apps/bright/lib/bright/ueberauth/strategy/patreon.ex @@ -1,5 +1,4 @@ defmodule Ueberauth.Strategy.Patreon do - require Logger @moduledoc """ @@ -94,6 +93,7 @@ defmodule Ueberauth.Strategy.Patreon do """ def handle_request!(conn) do Logger.debug("patreon handle_request! #{inspect(conn)}") + opts = [] |> with_scopes(conn) @@ -121,6 +121,7 @@ defmodule Ueberauth.Strategy.Patreon do token = apply(module, :get_token!, [[code: code]]) Logger.debug("token=#{inspect(token)}") + if token.access_token == nil do set_errors!(conn, [ error(token.other_params["error"], token.other_params["error_description"]) @@ -142,6 +143,7 @@ defmodule Ueberauth.Strategy.Patreon do """ def handle_cleanup!(conn) do Logger.debug("patreon handle_cleanup!") + conn |> put_private(:patreon_user, nil) |> put_private(:patreon_token, nil) @@ -183,13 +185,13 @@ defmodule Ueberauth.Strategy.Patreon do def info(conn) do Logger.debug("patreon info()") user = conn.private.patreon_user - allow_private_emails = Keyword.get(options(conn), :allow_private_emails, false) + # allow_private_emails = Keyword.get(options(conn), :allow_private_emails, false) %Info{ name: user["name"], description: user["bio"], nickname: user["login"], - email: maybe_fetch_email(user, allow_private_emails), + email: nil, location: user["location"], image: user["avatar_url"], urls: %{ @@ -210,28 +212,27 @@ defmodule Ueberauth.Strategy.Patreon do } end - - @doc """ Stores the raw information (including the token) obtained from the Patreon callback. """ def extra(conn) do Logger.debug("patreon extra") + %Extra{ raw_info: %{ token: conn.private.patreon_token, - user: conn.private.patreon_user, + user: conn.private.patreon_user } } end - defp fetch_uid("email", conn) do - Logger.debug("patreon fetch_uid with email") - # private email will not be available as :email and must be fetched - allow_private_emails = Keyword.get(options(conn), :allow_private_emails, false) - fetch_email!(conn.private.patreon_user.user, allow_private_emails) - end + # defp fetch_uid("email", conn) do + # Logger.debug("patreon fetch_uid with email") + # # private email will not be available as :email and must be fetched + # allow_private_emails = Keyword.get(options(conn), :allow_private_emails, false) + # fetch_email!(conn.private.patreon_user.user, allow_private_emails) + # end defp fetch_uid(conn) do get_in(conn.private.patreon_user, ["data", "id"]) @@ -242,19 +243,20 @@ defmodule Ueberauth.Strategy.Patreon do # conn.private.patreon_user[field] # end + # defp fetch_email!(user, allow_private_emails) do + # Logger.debug("patreon fetch_email!") - defp fetch_email!(user, allow_private_emails) do - Logger.debug("patreon fetch_email!") - maybe_fetch_email(user, allow_private_emails) || - raise "Unable to access the user's email address" - end + # maybe_fetch_email(user, allow_private_emails) || + # raise "Unable to access the user's email address" + # end - defp maybe_fetch_email(user, allow_private_emails) do - Logger.debug("patreon maybe_fetch_email") - user["email"] || - maybe_get_primary_email(user) || - maybe_get_private_email(user, allow_private_emails) - end + # defp maybe_fetch_email(user, allow_private_emails) do + # Logger.debug("patreon maybe_fetch_email") + + # user["email"] || + # maybe_get_primary_email(user) || + # maybe_get_private_email(user, allow_private_emails) + # end # defp fetch_currently_entitled_tiers(user) do # user @@ -263,31 +265,36 @@ defmodule Ueberauth.Strategy.Patreon do # |> Enum.map(&Map.get(&1, "id")) # end - defp maybe_get_primary_email(user) do - Logger.debug("patreon maybe_get_primary_email") - if user["emails"] && Enum.count(user["emails"]) > 0 do - Enum.find(user["emails"], & &1["primary"])["email"] - end - end + # defp maybe_get_primary_email(user) do + # Logger.debug("patreon maybe_get_primary_email") - defp maybe_get_private_email(user, allow_private_emails) do - Logger.debug("patreon maybe_get_private_email") - if allow_private_emails do - "#{user["id"]}+#{user["login"]}@users.noreply.patreon.com" - end - end + # if user["emails"] && Enum.count(user["emails"]) > 0 do + # Enum.find(user["emails"], & &1["primary"])["email"] + # end + # end + + # defp maybe_get_private_email(user, allow_private_emails) do + # Logger.debug("patreon maybe_get_private_email") + + # if allow_private_emails do + # "#{user["id"]}+#{user["login"]}@users.noreply.patreon.com" + # end + # end defp fetch_user(conn, token) do Logger.debug("patreon fetch_user()") conn = put_private(conn, :patreon_token, token) # https://www.patreon.com/api/oauth2/v2/identity?fields%5Buser%5D=about,created,email,first_name,full_name,image_url,last_name,thumb_url,url,vanity&include=memberships,memberships.currently_entitled_tiers,memberships.currently_entitled_tiers.benefits - case Ueberauth.Strategy.Patreon.OAuth.get(token, "/api/oauth2/v2/identity?include=memberships,memberships.currently_entitled_tiers,memberships.currently_entitled_tiers.benefits") do + case Ueberauth.Strategy.Patreon.OAuth.get( + token, + "/api/oauth2/v2/identity?include=memberships,memberships.currently_entitled_tiers,memberships.currently_entitled_tiers.benefits" + ) do {:ok, %OAuth2.Response{status_code: 401, body: _body}} -> set_errors!(conn, [error("token", "unauthorized")]) {:ok, %OAuth2.Response{status_code: status_code, body: user}} - when status_code in 200..399 -> + when status_code in 200..399 -> # %{"data" => user} = body # ## we get the Futureporn patron tier from the user's Patreon tier. @@ -299,18 +306,18 @@ defmodule Ueberauth.Strategy.Patreon do # user = Map.put(user, "patron_tier", patron_tier) put_private(conn, :patreon_user, user) - ## the following is for if we were saving e-mails, which we aren't - ## and even if we did, we could get the e-mail in the same fetch as above - # case Ueberauth.Strategy.Patreon.OAuth.get(token, "/user/emails") do - # {:ok, %OAuth2.Response{status_code: status_code, body: emails}} - # when status_code in 200..399 -> - # user = Map.put(user, "emails", emails) - # put_private(conn, :patreon_user, user) + ## the following is for if we were saving e-mails, which we aren't + ## and even if we did, we could get the e-mail in the same fetch as above + # case Ueberauth.Strategy.Patreon.OAuth.get(token, "/user/emails") do + # {:ok, %OAuth2.Response{status_code: status_code, body: emails}} + # when status_code in 200..399 -> + # user = Map.put(user, "emails", emails) + # put_private(conn, :patreon_user, user) - # # Continue on as before - # {:error, _} -> - # put_private(conn, :patreon_user, user) - # end + # # Continue on as before + # {:error, _} -> + # put_private(conn, :patreon_user, user) + # end {:error, %OAuth2.Error{reason: reason}} -> set_errors!(conn, [error("OAuth2", reason)]) @@ -336,7 +343,10 @@ defmodule Ueberauth.Strategy.Patreon do end defp with_redirect_uri(opts, conn) do - Logger.debug("patreon with_redirect_uri send_redirect_uri=#{inspect(option(conn, :send_redirect_uri))} ") + Logger.debug( + "patreon with_redirect_uri send_redirect_uri=#{inspect(option(conn, :send_redirect_uri))} " + ) + if option(conn, :send_redirect_uri) do opts |> Keyword.put(:redirect_uri, callback_url(conn)) else diff --git a/services/bright/lib/bright/ueberauth/strategy/patreon/oauth.ex b/apps/bright/lib/bright/ueberauth/strategy/patreon/oauth.ex similarity index 90% rename from services/bright/lib/bright/ueberauth/strategy/patreon/oauth.ex rename to apps/bright/lib/bright/ueberauth/strategy/patreon/oauth.ex index 7561548..d5b1ee7 100644 --- a/services/bright/lib/bright/ueberauth/strategy/patreon/oauth.ex +++ b/apps/bright/lib/bright/ueberauth/strategy/patreon/oauth.ex @@ -19,7 +19,7 @@ defmodule Ueberauth.Strategy.Patreon.OAuth do site: "https://www.patreon.com", authorize_url: "https://www.patreon.com/oauth2/authorize", token_url: "https://www.patreon.com/api/oauth2/token", - headers: [{"user-agent", "ueberauth-patreon"}], + headers: [{"user-agent", "ueberauth-patreon"}] # authorize_url: "http://localhost:8000/oauth2/authorize", # token_url: "http://locahost:8000/api/oauth2/token", ] @@ -65,6 +65,7 @@ defmodule Ueberauth.Strategy.Patreon.OAuth do """ def authorize_url!(params \\ [], opts \\ []) do Logger.debug("authorize_url! with params=#{inspect(params)}") + opts |> client |> OAuth2.Client.authorize_url!(params) @@ -81,9 +82,13 @@ defmodule Ueberauth.Strategy.Patreon.OAuth do headers = Keyword.get(options, :headers, []) options = Keyword.get(options, :options, []) client_options = Keyword.get(options, :client_options, []) - IO.puts "HELLO this is get_token!/2 Ueberauth patreon strategy get_token!/2 got the following params=#{inspect(params)} headers=#{inspect(headers)}, options=#{inspect(options)} client_options=#{inspect(client_options)}" + + Logger.debug( + "HELLO this is get_token!/2 Ueberauth patreon strategy get_token!/2 got the following params=#{inspect(params)} headers=#{inspect(headers)}, options=#{inspect(options)} client_options=#{inspect(client_options)}" + ) + client = OAuth2.Client.get_token!(client(client_options), params, headers, options) - IO.puts "we got a client from OAuth2.Client.get_token! as follows. #{inspect(client)}" + Logger.debug("we got a client from OAuth2.Client.get_token! as follows. #{inspect(client)}") client.token end @@ -121,6 +126,7 @@ defmodule Ueberauth.Strategy.Patreon.OAuth do unless Keyword.has_key?(config, key) do raise "#{inspect(key)} missing from config :ueberauth, Ueberauth.Strategy.Patreon" end + config end diff --git a/services/bright/lib/bright/uploads.ex b/apps/bright/lib/bright/uploads.ex similarity index 82% rename from services/bright/lib/bright/uploads.ex rename to apps/bright/lib/bright/uploads.ex index 6bd8f69..6f211eb 100644 --- a/services/bright/lib/bright/uploads.ex +++ b/apps/bright/lib/bright/uploads.ex @@ -23,7 +23,7 @@ defmodule Bright.Uploads do def download_file(url, destination_path) do case HTTPoison.get(url) do {:ok, %HTTPoison.Response{status_code: 200, body: body}} -> - # IO.puts "WE GOT A GOOD RESPONSE SO LETS WRITE" + # Logger.debug "WE GOT A GOOD RESPONSE SO LETS WRITE" case File.write(destination_path, body) do :ok -> {:ok, "File downloaded successfully"} {:error, reason} -> {:error, reason} @@ -32,9 +32,6 @@ defmodule Bright.Uploads do {:ok, %HTTPoison.Response{status_code: status_code}} -> {:error, "Failed to download file. Status code: #{status_code}"} - {:error, :timeout} -> - {:error, "Timeout!?"} - {:error, %HTTPoison.Error{reason: reason}} -> {:error, reason} end @@ -56,8 +53,8 @@ defmodule Bright.Uploads do """ def upload_file_to_s3(file_path, bucket, key) do - # IO.puts "upload_file_to_s3 with \nfile_path=#{file_path} \naws_ex region=#{Application.get_env(:bright, :aws_region)} \nbucket=#{bucket} \nkey=#{key} \naws_access_key_id=#{Application.get_env(:bright, :aws_access_key_id)} aws_secret_access_key=#{Application.get_env(:bright, :aws_secret_access_key)}" - # IO.puts "#{inspect(Application.get_all_env(:ex_aws))}" + # Logger.debug "upload_file_to_s3 with \nfile_path=#{file_path} \naws_ex region=#{Application.get_env(:bright, :aws_region)} \nbucket=#{bucket} \nkey=#{key} \naws_access_key_id=#{Application.get_env(:bright, :aws_access_key_id)} aws_secret_access_key=#{Application.get_env(:bright, :aws_secret_access_key)}" + # Logger.debug "#{inspect(Application.get_all_env(:ex_aws))}" # Throw if any S3 env vars are missing # Application.get_env(:bright, :aws_bucket) || raise("aws_bucket is missing.") @@ -66,8 +63,6 @@ defmodule Bright.Uploads do # Application.get_env(:bright, :aws_secret_access_key) || raise("aws_secret_access_key is missing.") # Application.get_env(:bright, :aws_region) || raise("aws_region is missing.") - - case File.read(file_path) do {:ok, file_content} -> S3.put_object(bucket, key, file_content) @@ -77,5 +72,4 @@ defmodule Bright.Uploads do {:error, reason} end end - end diff --git a/services/bright/lib/bright/urls.ex b/apps/bright/lib/bright/urls.ex similarity index 100% rename from services/bright/lib/bright/urls.ex rename to apps/bright/lib/bright/urls.ex diff --git a/services/bright/lib/bright/urls/url.ex b/apps/bright/lib/bright/urls/url.ex similarity index 100% rename from services/bright/lib/bright/urls/url.ex rename to apps/bright/lib/bright/urls/url.ex diff --git a/services/bright/lib/bright/users.ex b/apps/bright/lib/bright/users.ex similarity index 87% rename from services/bright/lib/bright/users.ex rename to apps/bright/lib/bright/users.ex index 6ac072a..8a1d192 100644 --- a/services/bright/lib/bright/users.ex +++ b/apps/bright/lib/bright/users.ex @@ -6,23 +6,21 @@ defmodule Bright.Users do import Ecto.Query, warn: false alias Bright.Repo - alias Bright.Users.{User, UserToken} + alias Bright.Users.User ## Database getters - - @doc """ Get a user using ueberauth data """ def get_by_ueberauth(%{provider: :github, uid: uid}) do Repo.get_by(User, github_id: uid) end + def get_by_ueberauth(%{provider: :patreon, uid: uid}) do Repo.get_by(User, patreon_id: uid) end - @doc """ Updates a user. @@ -41,8 +39,6 @@ defmodule Bright.Users do |> Repo.update() end - - @doc """ Gets a single user. @@ -61,6 +57,10 @@ defmodule Bright.Users do ## User registration + @spec register_user( + :invalid + | %{optional(:__struct__) => none(), optional(atom() | binary()) => any()} + ) :: any() @doc """ Registers a user. @@ -92,15 +92,10 @@ defmodule Bright.Users do User.registration_changeset(user, attrs) end - ## Settings - - ## Session - - def decoded_data(encoded) do case Base.decode16(encoded) do {:ok, decoded} -> {:ok, String.split(decoded, "|")} @@ -108,5 +103,6 @@ defmodule Bright.Users do end end - + def admin?(%User{id: id}) when id in [1], do: true + def admin?(_), do: false end diff --git a/services/bright/lib/bright/users/user.ex b/apps/bright/lib/bright/users/user.ex similarity index 64% rename from services/bright/lib/bright/users/user.ex rename to apps/bright/lib/bright/users/user.ex index ab7216a..e833806 100644 --- a/services/bright/lib/bright/users/user.ex +++ b/apps/bright/lib/bright/users/user.ex @@ -1,6 +1,7 @@ defmodule Bright.Users.User do use Ecto.Schema import Ecto.Changeset + alias Bright.Repo schema "users" do field :patreon_id, :integer @@ -9,6 +10,7 @@ defmodule Bright.Users.User do field :auth_token_expires_at, :utc_datetime field :identicon_seed, :string field :patron_tier, :integer + field :role, :string timestamps(type: :utc_datetime) end @@ -16,35 +18,37 @@ defmodule Bright.Users.User do @doc false def changeset(user, attrs) do user - |> cast(attrs, [:patreon_id, :github_id, :auth_token, :auth_token_expires_at, :identicon_seed, :patron_tier]) + |> cast(attrs, [ + :patreon_id, + :github_id, + :auth_token, + :auth_token_expires_at, + :identicon_seed, + :patron_tier, + :role + ]) |> validate_required([]) end - @doc """ A user changeset for registration. """ def registration_changeset(user, attrs, _opts \\ []) do user - |> cast(attrs, [:patreon_id, :github_id]) + |> cast(attrs, [:patreon_id, :github_id, :role]) |> validate_provider_id() end - - defp validate_provider_id(changeset) do case {get_change(changeset, :patreon_id), get_change(changeset, :github_id)} do {nil, nil} -> add_error(changeset, :base, "Either patreon_id or github_id must be provided.") + _ -> changeset end end - - - - defp now_in_seconds, do: Timex.now() |> DateTime.truncate(:second) def sign_in_changes(user) do @@ -53,21 +57,17 @@ defmodule Bright.Users.User do }) end - def auth_changeset(user, attrs \\ %{}), do: cast(user, attrs, ~w(auth_token auth_token_expires_at)a) + def refresh_auth_token(user, expires_in \\ 60 * 24) do + auth_token = Base.encode16(:crypto.strong_rand_bytes(8)) + expires_at = Timex.add(Timex.now(), Timex.Duration.from_minutes(expires_in)) - def refresh_auth_token(user, expires_in \\ 60 * 24) do - auth_token = Base.encode16(:crypto.strong_rand_bytes(8)) - expires_at = Timex.add(Timex.now(), Timex.Duration.from_minutes(expires_in)) - - changeset = - auth_changeset(user, %{auth_token: auth_token, auth_token_expires_at: expires_at}) - - {:ok, user} = Repo.update(changeset) - user - end - + changeset = + auth_changeset(user, %{auth_token: auth_token, auth_token_expires_at: expires_at}) + {:ok, user} = Repo.update(changeset) + user + end end diff --git a/services/bright/lib/bright/vtubers.ex b/apps/bright/lib/bright/vtubers.ex similarity index 99% rename from services/bright/lib/bright/vtubers.ex rename to apps/bright/lib/bright/vtubers.ex index 7461ed6..acc8ae7 100644 --- a/services/bright/lib/bright/vtubers.ex +++ b/apps/bright/lib/bright/vtubers.ex @@ -106,5 +106,4 @@ defmodule Bright.Vtubers do # def to_string(%Bright.Auth.User{name: name}) when not is_nil(name), do: name # def to_string(%Bright.Auth.User{}), do: "Anonymous" # end - end diff --git a/services/bright/lib/bright/vtubers/vtuber.ex b/apps/bright/lib/bright/vtubers/vtuber.ex similarity index 68% rename from services/bright/lib/bright/vtubers/vtuber.ex rename to apps/bright/lib/bright/vtubers/vtuber.ex index 644b853..f1c2729 100644 --- a/services/bright/lib/bright/vtubers/vtuber.ex +++ b/apps/bright/lib/bright/vtubers/vtuber.ex @@ -36,7 +36,34 @@ defmodule Bright.Vtubers.Vtuber do @doc false def changeset(vtuber, attrs) do vtuber - |> cast(attrs, [:slug, :display_name, :chaturbate, :twitter, :patreon, :twitch, :tiktok, :onlyfans, :youtube, :linktree, :carrd, :fansly, :pornhub, :discord, :reddit, :throne, :instagram, :facebook, :merch, :description_1, :description_2, :image, :theme_color, :fansly_id, :chaturbate_id, :twitter_id]) + |> cast(attrs, [ + :slug, + :display_name, + :chaturbate, + :twitter, + :patreon, + :twitch, + :tiktok, + :onlyfans, + :youtube, + :linktree, + :carrd, + :fansly, + :pornhub, + :discord, + :reddit, + :throne, + :instagram, + :facebook, + :merch, + :description_1, + :description_2, + :image, + :theme_color, + :fansly_id, + :chaturbate_id, + :twitter_id + ]) |> validate_required([:slug, :display_name, :image, :theme_color]) end end diff --git a/services/bright/lib/bright_web.ex b/apps/bright/lib/bright_web.ex similarity index 98% rename from services/bright/lib/bright_web.ex rename to apps/bright/lib/bright_web.ex index 91eafc2..32794bb 100644 --- a/services/bright/lib/bright_web.ex +++ b/apps/bright/lib/bright_web.ex @@ -21,7 +21,7 @@ defmodule BrightWeb do def router do quote do - use Phoenix.Router, helpers: true + use Phoenix.Router # Import common connection and controller functions to use in pipelines import Plug.Conn diff --git a/services/bright/lib/bright_web/components/core_components.ex b/apps/bright/lib/bright_web/components/core_components.ex similarity index 87% rename from services/bright/lib/bright_web/components/core_components.ex rename to apps/bright/lib/bright_web/components/core_components.ex index 135d381..5fd536e 100644 --- a/services/bright/lib/bright_web/components/core_components.ex +++ b/apps/bright/lib/bright_web/components/core_components.ex @@ -75,12 +75,11 @@ defmodule BrightWeb.CoreComponents do class="-m-3 flex-none p-3 opacity-20 hover:opacity-40" aria-label={gettext("close")} > - <.icon name={:home} class="h-5 w-5" /> - + <.icon name="home" class="h-5 w-5" />
- <%= render_slot(@inner_block) %> + {render_slot(@inner_block)}
@@ -126,16 +125,16 @@ defmodule BrightWeb.CoreComponents do class="delete" aria-label={gettext("close")} phx-click={JS.push("lv:clear-flash", value: %{key: @kind}) |> hide("##{@id}")} - > + > +

- <%= @title %> + {@title}

-

<%= msg %>

+

{msg}

""" end - @doc """ Shows the flash group with standard titles and content. @@ -159,7 +158,7 @@ defmodule BrightWeb.CoreComponents do phx-connected={hide("#client-error")} hidden > - <%= gettext("Attempting to reconnect") %> + {gettext("Attempting to reconnect")} <.icon name="academic_cap" class="h-4 w-4" /> @@ -172,7 +171,7 @@ defmodule BrightWeb.CoreComponents do phx-connected={hide("#server-error")} hidden > - <%= gettext("Hang in there while we get back on track") %> + {gettext("Hang in there while we get back on track")} @@ -206,44 +205,43 @@ defmodule BrightWeb.CoreComponents do ~H""" <.form :let={f} for={@for} as={@as} {@rest}>
- <%= render_slot(@inner_block, f) %> + {render_slot(@inner_block, f)}
- <%= render_slot(action, f) %> + {render_slot(action, f)}
""" end -@doc """ -Renders a button. + @doc """ + Renders a button. -## Examples + ## Examples - <.button>Send! - <.button phx-click="go" class="ml-2">Send! -""" -attr :type, :string, default: nil -attr :class, :string, default: nil -attr :rest, :global, include: ~w(disabled form name value) - -slot :inner_block, required: true - -def button(assigns) do - ~H""" - + <.button>Send! + <.button phx-click="go" class="ml-2">Send! """ -end + attr :type, :string, default: nil + attr :class, :string, default: nil + attr :rest, :global, include: ~w(disabled form name value) + slot :inner_block, required: true + + def button(assigns) do + ~H""" + + """ + end @doc """ Renders an input with label and error messages. @@ -316,17 +314,10 @@ end
- <.error :for={msg <- @errors}><%= msg %> + <.error :for={msg <- @errors}>{msg}
""" end @@ -340,16 +331,11 @@ end "select", @multiple && "is-multiple" ]}> - - <%= Phoenix.HTML.Form.options_for_select(@options, @value) %> + {Phoenix.HTML.Form.options_for_select(@options, @value)} - <.error :for={msg <- @errors}><%= msg %> + <.error :for={msg <- @errors}>{msg} @@ -359,7 +345,7 @@ end def input(%{type: "textarea"} = assigns) do ~H"""
- <.label for={@id}><%= @label %> + <.label for={@id}>{@label} - <.error :for={msg <- @errors}><%= msg %> + <.error :for={msg <- @errors}>{msg}
""" end @@ -379,7 +365,7 @@ end def input(assigns) do ~H"""
- <.label for={@id}><%= @label %> + <.label for={@id}>{@label} - <.help for={@id}><%= @help %> - <.error :for={msg <- @errors}><%= msg %> + <.help for={@id}>{@help} + <.error :for={msg <- @errors}>{msg}
""" end @@ -407,7 +393,7 @@ end def label(assigns) do ~H""" """ end @@ -417,10 +403,11 @@ end """ attr :for, :string, default: nil slot :inner_block, required: true + def help(assigns) do ~H"""

- <%= render_slot(@inner_block) %> + {render_slot(@inner_block)}

""" end @@ -434,7 +421,7 @@ end ~H"""

<.icon name="circle-exclamation" /> - <%= render_slot(@inner_block) %> + {render_slot(@inner_block)}

""" end @@ -453,20 +440,19 @@ end

- <%= render_slot(@inner_block) %> + {render_slot(@inner_block)}

- <%= render_slot(@subtitle) %> + {render_slot(@subtitle)}

- <%= render_slot(@actions) %> + {render_slot(@actions)}
""" end - @doc ~S""" Renders a table with generic styling. @@ -503,9 +489,9 @@ end - + @@ -523,18 +509,15 @@ end
- <%= render_slot(col, @row_item.(row)) %> + {render_slot(col, @row_item.(row))}
@@ -564,15 +547,14 @@ end
-
<%= item.title %>
-
<%= render_slot(item) %>
+
{item.title}
+
{render_slot(item)}
""" end - @doc """ Renders a back navigation link. @@ -592,11 +574,10 @@ end > <.icon name="arrow-left" class="icon" /> - <%= render_slot(@inner_block) %> + {render_slot(@inner_block)} - """ end @@ -612,31 +593,29 @@ end <.icon name="home" style="solid" /> <.icon name="spinner" class="ml-1 w-3 h-3 animate-spin" /> """ + # attr :name, :string, required: true # attr :class, :string, default: nil - attr :rest, :global, - doc: "the arbitrary HTML attributes for the svg container", - include: ~w(fill stroke stroke-width) + doc: "the arbitrary HTML attributes for the svg container", + include: ~w(fill stroke stroke-width) attr :name, :string, required: true - attr :style, :string, default: "solid" # can be "solid", "brands" + # can be "solid", "brands" + attr :style, :string, default: "solid" attr :class, :string, default: "" - def icon(assigns) do ~H""" """ end + defp style_prefix("solid"), do: "s" defp style_prefix("brands"), do: "b" defp style_prefix(_), do: "s" - - - ## JS Commands def show(js \\ %JS{}, selector) do diff --git a/services/bright/lib/bright_web/components/layouts.ex b/apps/bright/lib/bright_web/components/layouts.ex similarity index 100% rename from services/bright/lib/bright_web/components/layouts.ex rename to apps/bright/lib/bright_web/components/layouts.ex diff --git a/apps/bright/lib/bright_web/components/layouts/app.html.heex b/apps/bright/lib/bright_web/components/layouts/app.html.heex new file mode 100644 index 0000000..7a4ed6b --- /dev/null +++ b/apps/bright/lib/bright_web/components/layouts/app.html.heex @@ -0,0 +1,4 @@ +
+ <.flash_group flash={@flash} /> + {@inner_content} +
diff --git a/services/bright/lib/bright_web/components/layouts/root.html.heex b/apps/bright/lib/bright_web/components/layouts/root.html.heex similarity index 53% rename from services/bright/lib/bright_web/components/layouts/root.html.heex rename to apps/bright/lib/bright_web/components/layouts/root.html.heex index 79c3de9..f961913 100644 --- a/services/bright/lib/bright_web/components/layouts/root.html.heex +++ b/apps/bright/lib/bright_web/components/layouts/root.html.heex @@ -13,27 +13,34 @@ <.live_title suffix=" · Futureporn"> - <%= assigns[:page_title] || "Bright" %> + {assigns[:page_title] || "Bright"} - - - - + +
+
diff --git a/services/bright/lib/bright_web/controllers/page_html/profile.html.heex b/apps/bright/lib/bright_web/controllers/page_html/profile.html.heex similarity index 82% rename from services/bright/lib/bright_web/controllers/page_html/profile.html.heex rename to apps/bright/lib/bright_web/controllers/page_html/profile.html.heex index 46fe69d..09261b2 100644 --- a/services/bright/lib/bright_web/controllers/page_html/profile.html.heex +++ b/apps/bright/lib/bright_web/controllers/page_html/profile.html.heex @@ -1,24 +1,24 @@ <.flash_group flash={@flash} /> <%= if @current_user do %> -
+

Profile

{@current_user.identicon_seed}

- - -
+

@deprecated

-
- <%= raw(IdenticonSvg.generate(@current_user.identicon_seed, 5, :basic, 0.8, 2, squircle_curvature: 0.8)) %> + {raw( + IdenticonSvg.generate(@current_user.identicon_seed, 5, :basic, 0.8, 2, + squircle_curvature: 0.8 + ) + )}
-

{@current_user.identicon_seed}

@@ -37,13 +37,12 @@
-
<% else %> -<.flash_group flash={@flash} /> + <.flash_group flash={@flash} />

User not found in session.

Please <.link href={~p"/auth/patreon"}>sign in

-<% end %> \ No newline at end of file +<% end %> diff --git a/services/bright/lib/bright_web/controllers/page_json.ex b/apps/bright/lib/bright_web/controllers/page_json.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/page_json.ex rename to apps/bright/lib/bright_web/controllers/page_json.ex diff --git a/services/bright/lib/bright_web/controllers/patron_controller.ex b/apps/bright/lib/bright_web/controllers/patron_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/patron_controller.ex rename to apps/bright/lib/bright_web/controllers/patron_controller.ex diff --git a/services/bright/lib/bright_web/controllers/patron_html.ex b/apps/bright/lib/bright_web/controllers/patron_html.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/patron_html.ex rename to apps/bright/lib/bright_web/controllers/patron_html.ex diff --git a/services/bright/lib/bright_web/controllers/patron_html/index.html.heex b/apps/bright/lib/bright_web/controllers/patron_html/index.html.heex similarity index 61% rename from services/bright/lib/bright_web/controllers/patron_html/index.html.heex rename to apps/bright/lib/bright_web/controllers/patron_html/index.html.heex index 635927d..206f0ab 100644 --- a/services/bright/lib/bright_web/controllers/patron_html/index.html.heex +++ b/apps/bright/lib/bright_web/controllers/patron_html/index.html.heex @@ -2,15 +2,8 @@ Listing Patrons -

@todo

+

@todo

<.table id="patrons" rows={@patrons}> <:col :let={patron} label="Name">{patron.name} - -<%# -<% for patron <- @patrons do -
- -
-end %> diff --git a/services/bright/lib/bright_web/controllers/platform_controller.ex b/apps/bright/lib/bright_web/controllers/platform_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/platform_controller.ex rename to apps/bright/lib/bright_web/controllers/platform_controller.ex diff --git a/services/bright/lib/bright_web/controllers/platform_html.ex b/apps/bright/lib/bright_web/controllers/platform_html.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/platform_html.ex rename to apps/bright/lib/bright_web/controllers/platform_html.ex diff --git a/services/bright/lib/bright_web/controllers/platform_html/edit.html.heex b/apps/bright/lib/bright_web/controllers/platform_html/edit.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/platform_html/edit.html.heex rename to apps/bright/lib/bright_web/controllers/platform_html/edit.html.heex diff --git a/services/bright/lib/bright_web/controllers/platform_html/index.html.heex b/apps/bright/lib/bright_web/controllers/platform_html/index.html.heex similarity index 91% rename from services/bright/lib/bright_web/controllers/platform_html/index.html.heex rename to apps/bright/lib/bright_web/controllers/platform_html/index.html.heex index 790c6dc..3d643c4 100644 --- a/services/bright/lib/bright_web/controllers/platform_html/index.html.heex +++ b/apps/bright/lib/bright_web/controllers/platform_html/index.html.heex @@ -10,7 +10,7 @@ <.table id="platforms" rows={@platforms} row_click={&JS.navigate(~p"/platforms/#{&1}")}> <:col :let={platform} label="Name">{platform.name} <:col :let={platform} label="Url">{platform.url} - <:col :let={platform} label="Icon">{raw platform.icon} + <:col :let={platform} label="Icon">{raw(platform.icon)} <:action :let={platform}>
<.link navigate={~p"/platforms/#{platform}"}>Show diff --git a/services/bright/lib/bright_web/controllers/platform_html/new.html.heex b/apps/bright/lib/bright_web/controllers/platform_html/new.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/platform_html/new.html.heex rename to apps/bright/lib/bright_web/controllers/platform_html/new.html.heex diff --git a/services/bright/lib/bright_web/controllers/platform_html/platform_form.html.heex b/apps/bright/lib/bright_web/controllers/platform_html/platform_form.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/platform_html/platform_form.html.heex rename to apps/bright/lib/bright_web/controllers/platform_html/platform_form.html.heex diff --git a/services/bright/lib/bright_web/controllers/platform_html/show.html.heex b/apps/bright/lib/bright_web/controllers/platform_html/show.html.heex similarity index 88% rename from services/bright/lib/bright_web/controllers/platform_html/show.html.heex rename to apps/bright/lib/bright_web/controllers/platform_html/show.html.heex index 4066f62..c94efa7 100644 --- a/services/bright/lib/bright_web/controllers/platform_html/show.html.heex +++ b/apps/bright/lib/bright_web/controllers/platform_html/show.html.heex @@ -11,7 +11,7 @@ <.list> <:item title="Name">{@platform.name} <:item title="Url">{@platform.url} - <:item title="Icon">{raw @platform.icon} + <:item title="Icon">{raw(@platform.icon)} <.back navigate={~p"/platforms"}>Back to platforms diff --git a/services/bright/lib/bright_web/controllers/rss_controller.ex b/apps/bright/lib/bright_web/controllers/rss_controller.ex similarity index 99% rename from services/bright/lib/bright_web/controllers/rss_controller.ex rename to apps/bright/lib/bright_web/controllers/rss_controller.ex index 474a656..5039caa 100644 --- a/services/bright/lib/bright_web/controllers/rss_controller.ex +++ b/apps/bright/lib/bright_web/controllers/rss_controller.ex @@ -14,7 +14,6 @@ # end # end - defmodule BrightWeb.RssController do use BrightWeb, :controller diff --git a/services/bright/lib/bright_web/controllers/rss_xml/index.xml.eex b/apps/bright/lib/bright_web/controllers/rss_xml/index.xml.eex similarity index 100% rename from services/bright/lib/bright_web/controllers/rss_xml/index.xml.eex rename to apps/bright/lib/bright_web/controllers/rss_xml/index.xml.eex diff --git a/services/bright/lib/bright_web/controllers/stream_controller.ex b/apps/bright/lib/bright_web/controllers/stream_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/stream_controller.ex rename to apps/bright/lib/bright_web/controllers/stream_controller.ex diff --git a/services/bright/lib/bright_web/controllers/stream_html.ex b/apps/bright/lib/bright_web/controllers/stream_html.ex similarity index 76% rename from services/bright/lib/bright_web/controllers/stream_html.ex rename to apps/bright/lib/bright_web/controllers/stream_html.ex index cec2066..6ad4ef3 100644 --- a/services/bright/lib/bright_web/controllers/stream_html.ex +++ b/apps/bright/lib/bright_web/controllers/stream_html.ex @@ -18,7 +18,7 @@ defmodule BrightWeb.StreamHTML do |> Enum.map(& &1.data.id) for tag <- Bright.Tags.list_tags(), - do: [key: tag.name, value: tag.id, selected: tag.id in existing_ids] + do: [key: tag.name, value: tag.id, selected: tag.id in existing_ids] end def vod_opts(changeset) do @@ -28,10 +28,9 @@ defmodule BrightWeb.StreamHTML do |> Enum.map(& &1.data.id) for vod <- Bright.Streams.list_vods(), - do: [key: vod.id, value: vod.id, selected: vod.id in existing_ids] + do: [key: vod.id, value: vod.id, selected: vod.id in existing_ids] end - def vtuber_opts(changeset) do existing_ids = changeset @@ -39,10 +38,9 @@ defmodule BrightWeb.StreamHTML do |> Enum.map(& &1.data.id) for vtuber <- Bright.Vtubers.list_vtubers(), - do: [key: vtuber.display_name, value: vtuber.id, selected: vtuber.id in existing_ids] + do: [key: vtuber.display_name, value: vtuber.id, selected: vtuber.id in existing_ids] end - def platform_opts(changeset) do existing_ids = changeset @@ -50,9 +48,6 @@ defmodule BrightWeb.StreamHTML do |> Enum.map(& &1.data.id) for platform <- Bright.Platforms.list_platforms(), - do: [key: platform.name, value: platform.id, selected: platform.id in existing_ids] + do: [key: platform.name, value: platform.id, selected: platform.id in existing_ids] end - - - end diff --git a/services/bright/lib/bright_web/controllers/stream_html/edit.html.heex b/apps/bright/lib/bright_web/controllers/stream_html/edit.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/stream_html/edit.html.heex rename to apps/bright/lib/bright_web/controllers/stream_html/edit.html.heex diff --git a/services/bright/lib/bright_web/controllers/stream_html/index.html.heex b/apps/bright/lib/bright_web/controllers/stream_html/index.html.heex similarity index 60% rename from services/bright/lib/bright_web/controllers/stream_html/index.html.heex rename to apps/bright/lib/bright_web/controllers/stream_html/index.html.heex index 64bea2a..59143ed 100644 --- a/services/bright/lib/bright_web/controllers/stream_html/index.html.heex +++ b/apps/bright/lib/bright_web/controllers/stream_html/index.html.heex @@ -13,33 +13,33 @@ <:col :let={stream} label="Date">{stream.date} <:col :let={stream} label="Platforms">
- <%= for platform <- stream.platforms do %> -
- {raw(platform.icon)} -
- <% end %> + <%= for platform <- stream.platforms do %> +
+ {raw(platform.icon)} +
+ <% end %>
<:col :let={stream} label="Vtubers">
- <%= for vtuber <- stream.vtubers do %> -
- <.link href={~p"/vtubers/#{vtuber.id}"}> -
- {vtuber.display_name} -
- -
- <% end %> + <%= for vtuber <- stream.vtubers do %> +
+ <.link href={~p"/vtubers/#{vtuber.id}"}> +
+ {vtuber.display_name} +
+ +
+ <% end %>
<:col :let={stream} label="VODs">
- <%= for vod <- stream.vods do %> -
- <.link href={~p"/vods/#{vod.id}"}>#{vod.id} -
- <% end %> + <%= for vod <- stream.vods do %> +
+ <.link href={~p"/vods/#{vod.id}"}>#{vod.id} +
+ <% end %>
<:action :let={stream}> diff --git a/services/bright/lib/bright_web/controllers/stream_html/new.html.heex b/apps/bright/lib/bright_web/controllers/stream_html/new.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/stream_html/new.html.heex rename to apps/bright/lib/bright_web/controllers/stream_html/new.html.heex diff --git a/services/bright/lib/bright_web/controllers/stream_html/show.html.heex b/apps/bright/lib/bright_web/controllers/stream_html/show.html.heex similarity index 99% rename from services/bright/lib/bright_web/controllers/stream_html/show.html.heex rename to apps/bright/lib/bright_web/controllers/stream_html/show.html.heex index 3d5bf3b..5ed6e97 100644 --- a/services/bright/lib/bright_web/controllers/stream_html/show.html.heex +++ b/apps/bright/lib/bright_web/controllers/stream_html/show.html.heex @@ -28,8 +28,6 @@
  • {vtuber.display_name}
  • - - <.back navigate={~p"/streams"}>Back to streams diff --git a/apps/bright/lib/bright_web/controllers/stream_html/stream_form.html.heex b/apps/bright/lib/bright_web/controllers/stream_html/stream_form.html.heex new file mode 100644 index 0000000..e410a0b --- /dev/null +++ b/apps/bright/lib/bright_web/controllers/stream_html/stream_form.html.heex @@ -0,0 +1,41 @@ +<.simple_form :let={f} for={@changeset} action={@action}> + <.error :if={@changeset.action}> + Oops, something went wrong! Please check the errors below. + + <.input field={f[:title]} type="text" label="Title" /> + <.input field={f[:notes]} type="text" label="Notes" /> + <.input field={f[:date]} type="datetime-local" label="Date" /> + + <.input + field={f[:tag_ids]} + label="Tags" + type="select" + multiple={true} + options={tag_opts(@changeset)} + /> + <.input + field={f[:vod_ids]} + label="Vods" + type="select" + multiple={true} + options={vod_opts(@changeset)} + /> + <.input + field={f[:platform_ids]} + label="Platforms" + type="select" + multiple={true} + options={platform_opts(@changeset)} + /> + <.input + field={f[:vtuber_ids]} + label="Vtubers" + type="select" + multiple={true} + options={vtuber_opts(@changeset)} + /> + + <:actions> + <.button>Save Stream + + diff --git a/services/bright/lib/bright_web/controllers/tag_controller.ex b/apps/bright/lib/bright_web/controllers/tag_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/tag_controller.ex rename to apps/bright/lib/bright_web/controllers/tag_controller.ex diff --git a/services/bright/lib/bright_web/controllers/tag_html.ex b/apps/bright/lib/bright_web/controllers/tag_html.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/tag_html.ex rename to apps/bright/lib/bright_web/controllers/tag_html.ex diff --git a/services/bright/lib/bright_web/controllers/tag_html/edit.html.heex b/apps/bright/lib/bright_web/controllers/tag_html/edit.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/tag_html/edit.html.heex rename to apps/bright/lib/bright_web/controllers/tag_html/edit.html.heex diff --git a/services/bright/lib/bright_web/controllers/tag_html/index.html.heex b/apps/bright/lib/bright_web/controllers/tag_html/index.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/tag_html/index.html.heex rename to apps/bright/lib/bright_web/controllers/tag_html/index.html.heex diff --git a/services/bright/lib/bright_web/controllers/tag_html/new.html.heex b/apps/bright/lib/bright_web/controllers/tag_html/new.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/tag_html/new.html.heex rename to apps/bright/lib/bright_web/controllers/tag_html/new.html.heex diff --git a/services/bright/lib/bright_web/controllers/tag_html/show.html.heex b/apps/bright/lib/bright_web/controllers/tag_html/show.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/tag_html/show.html.heex rename to apps/bright/lib/bright_web/controllers/tag_html/show.html.heex diff --git a/services/bright/lib/bright_web/controllers/tag_html/tag_form.html.heex b/apps/bright/lib/bright_web/controllers/tag_html/tag_form.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/tag_html/tag_form.html.heex rename to apps/bright/lib/bright_web/controllers/tag_html/tag_form.html.heex diff --git a/services/bright/lib/bright_web/controllers/torrent_controller.ex b/apps/bright/lib/bright_web/controllers/torrent_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/torrent_controller.ex rename to apps/bright/lib/bright_web/controllers/torrent_controller.ex diff --git a/services/bright/lib/bright_web/controllers/torrent_html.ex b/apps/bright/lib/bright_web/controllers/torrent_html.ex similarity index 99% rename from services/bright/lib/bright_web/controllers/torrent_html.ex rename to apps/bright/lib/bright_web/controllers/torrent_html.ex index 07e0ac2..815f92c 100644 --- a/services/bright/lib/bright_web/controllers/torrent_html.ex +++ b/apps/bright/lib/bright_web/controllers/torrent_html.ex @@ -10,6 +10,4 @@ defmodule BrightWeb.TorrentHTML do attr :action, :string, required: true def torrent_form(assigns) - - end diff --git a/services/bright/lib/bright_web/controllers/torrent_html/edit.html.heex b/apps/bright/lib/bright_web/controllers/torrent_html/edit.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/torrent_html/edit.html.heex rename to apps/bright/lib/bright_web/controllers/torrent_html/edit.html.heex diff --git a/services/bright/lib/bright_web/controllers/torrent_html/index.html.heex b/apps/bright/lib/bright_web/controllers/torrent_html/index.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/torrent_html/index.html.heex rename to apps/bright/lib/bright_web/controllers/torrent_html/index.html.heex diff --git a/services/bright/lib/bright_web/controllers/torrent_html/new.html.heex b/apps/bright/lib/bright_web/controllers/torrent_html/new.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/torrent_html/new.html.heex rename to apps/bright/lib/bright_web/controllers/torrent_html/new.html.heex diff --git a/services/bright/lib/bright_web/controllers/torrent_html/show.html.heex b/apps/bright/lib/bright_web/controllers/torrent_html/show.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/torrent_html/show.html.heex rename to apps/bright/lib/bright_web/controllers/torrent_html/show.html.heex diff --git a/apps/bright/lib/bright_web/controllers/torrent_html/summary.html.heex b/apps/bright/lib/bright_web/controllers/torrent_html/summary.html.heex new file mode 100644 index 0000000..d978269 --- /dev/null +++ b/apps/bright/lib/bright_web/controllers/torrent_html/summary.html.heex @@ -0,0 +1,28 @@ +
    +
    +
    + <%= if @torrent && @torrent.magnet do %> + <.icon name="magnet" class="icon" /> + <% end %> +
    +
    + <%= if @torrent && @torrent.cdn_url do %> + + + + <.icon name="download" /> + + Download + + + <% end %> +
    +
    + <%= if @torrent && @torrent.info_hash_v1 do %> + + {@torrent.info_hash_v1} + + <% end %> +
    +
    +
    diff --git a/services/bright/lib/bright_web/controllers/torrent_html/torrent_form.html.heex b/apps/bright/lib/bright_web/controllers/torrent_html/torrent_form.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/torrent_html/torrent_form.html.heex rename to apps/bright/lib/bright_web/controllers/torrent_html/torrent_form.html.heex diff --git a/services/bright/lib/bright_web/controllers/torrent_json.ex b/apps/bright/lib/bright_web/controllers/torrent_json.ex similarity index 99% rename from services/bright/lib/bright_web/controllers/torrent_json.ex rename to apps/bright/lib/bright_web/controllers/torrent_json.ex index bb8d378..5b31407 100644 --- a/services/bright/lib/bright_web/controllers/torrent_json.ex +++ b/apps/bright/lib/bright_web/controllers/torrent_json.ex @@ -1,5 +1,6 @@ defmodule BrightWeb.TorrentJSON do alias Bright.Torrents.Torrent + @doc """ Renders a list of torrents. """ diff --git a/services/bright/lib/bright_web/controllers/torrent_txt.ex b/apps/bright/lib/bright_web/controllers/torrent_txt.ex similarity index 99% rename from services/bright/lib/bright_web/controllers/torrent_txt.ex rename to apps/bright/lib/bright_web/controllers/torrent_txt.ex index 7dd9fef..e15d970 100644 --- a/services/bright/lib/bright_web/controllers/torrent_txt.ex +++ b/apps/bright/lib/bright_web/controllers/torrent_txt.ex @@ -1,5 +1,6 @@ defmodule BrightWeb.TorrentTXT do alias Bright.Torrents.Torrent + @doc """ Renders a list of torrent info hashes. Meant to be used as opentracker whitelist. """ diff --git a/services/bright/lib/bright_web/controllers/url_controller.ex b/apps/bright/lib/bright_web/controllers/url_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/url_controller.ex rename to apps/bright/lib/bright_web/controllers/url_controller.ex diff --git a/services/bright/lib/bright_web/controllers/url_json.ex b/apps/bright/lib/bright_web/controllers/url_json.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/url_json.ex rename to apps/bright/lib/bright_web/controllers/url_json.ex diff --git a/services/bright/lib/bright_web/controllers/vod_controller.ex b/apps/bright/lib/bright_web/controllers/vod_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/vod_controller.ex rename to apps/bright/lib/bright_web/controllers/vod_controller.ex diff --git a/services/bright/lib/bright_web/controllers/vod_html.ex b/apps/bright/lib/bright_web/controllers/vod_html.ex similarity index 67% rename from services/bright/lib/bright_web/controllers/vod_html.ex rename to apps/bright/lib/bright_web/controllers/vod_html.ex index 3645fcd..7dec214 100644 --- a/services/bright/lib/bright_web/controllers/vod_html.ex +++ b/apps/bright/lib/bright_web/controllers/vod_html.ex @@ -19,6 +19,11 @@ defmodule BrightWeb.VodHTML do |> Enum.map(& &1.data.id) for stream <- Bright.Streams.list_streams(), - do: [key: "#{stream.id} | #{stream.date} | #{stream.vtubers |> Enum.map(& &1.display_name) |> Enum.join(", ")}", value: stream.id, selected: stream.id in existing_ids] + do: [ + key: + "#{stream.id} | #{stream.date} | #{stream.vtubers |> Enum.map(& &1.display_name) |> Enum.join(", ")}", + value: stream.id, + selected: stream.id in existing_ids + ] end end diff --git a/services/bright/lib/bright_web/controllers/vod_html/edit.html.heex b/apps/bright/lib/bright_web/controllers/vod_html/edit.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/vod_html/edit.html.heex rename to apps/bright/lib/bright_web/controllers/vod_html/edit.html.heex diff --git a/services/bright/lib/bright_web/controllers/vod_html/index.html.heex b/apps/bright/lib/bright_web/controllers/vod_html/index.html.heex similarity index 91% rename from services/bright/lib/bright_web/controllers/vod_html/index.html.heex rename to apps/bright/lib/bright_web/controllers/vod_html/index.html.heex index 94d8b9b..1953186 100644 --- a/services/bright/lib/bright_web/controllers/vod_html/index.html.heex +++ b/apps/bright/lib/bright_web/controllers/vod_html/index.html.heex @@ -8,7 +8,6 @@ <.table id="vods" rows={@vods} row_click={&JS.navigate(~p"/vods/#{&1}")}> - <%# <:col :let={vod} label="Uploader">{vod.uploaded_by_id} %> <:col :let={vod} label="ID">{vod.id} <:col :let={vod} label="S3 CDN URL">{vod.s3_cdn_url} <:col :let={vod} label="Torrent">{vod.torrent} diff --git a/services/bright/lib/bright_web/controllers/vod_html/new.html.heex b/apps/bright/lib/bright_web/controllers/vod_html/new.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/vod_html/new.html.heex rename to apps/bright/lib/bright_web/controllers/vod_html/new.html.heex diff --git a/services/bright/lib/bright_web/controllers/vod_html/show.html.heex b/apps/bright/lib/bright_web/controllers/vod_html/show.html.heex similarity index 63% rename from services/bright/lib/bright_web/controllers/vod_html/show.html.heex rename to apps/bright/lib/bright_web/controllers/vod_html/show.html.heex index a5b68a3..5eee13e 100644 --- a/services/bright/lib/bright_web/controllers/vod_html/show.html.heex +++ b/apps/bright/lib/bright_web/controllers/vod_html/show.html.heex @@ -1,14 +1,28 @@ - - - - - - - + + + + + <%= if @vod.playlist_url do %> -
    <% end %> - <.header class="mt-3"> Vod {@vod.id} <:actions> @@ -31,44 +44,39 @@ <.list> - <%# <:item title="Uploader"> %> <:item title="Thumbnail"> - <:item title="Torrent"> + <:item title="Torrent"> <:item title="Source VOD File"> <%= if @vod.s3_cdn_url do %> - - - + - <.icon name={:download}/> + <.icon name="download" /> Download - <% end %> <:item title="HLS Playlist URL">{@vod.playlist_url} - <%# <:item title="Origin Temporary Input URL">{@vod.origin_temp_input_url} %> - <.back navigate={~p"/vods"}>Back to vods diff --git a/services/bright/lib/bright_web/controllers/vod_html/vod_form.html.heex b/apps/bright/lib/bright_web/controllers/vod_html/vod_form.html.heex similarity index 79% rename from services/bright/lib/bright_web/controllers/vod_html/vod_form.html.heex rename to apps/bright/lib/bright_web/controllers/vod_html/vod_form.html.heex index e780a7a..d2a6a8f 100644 --- a/services/bright/lib/bright_web/controllers/vod_html/vod_form.html.heex +++ b/apps/bright/lib/bright_web/controllers/vod_html/vod_form.html.heex @@ -1,5 +1,4 @@ <.simple_form :let={f} for={@changeset} action={@action}> - <.error :if={@changeset.action}> Oops, something went wrong! Please check the errors below. @@ -7,10 +6,14 @@ <.input field={f[:playlist_url]} type="text" label="HLS Playlist URL" /> <.input field={f[:s3_cdn_url]} type="text" label="S3 cdn url" /> <.input field={f[:notes]} type="textarea" label="Notes" /> - <.input field={f[:stream_id]} type="select" label="Stream" multiple={false} options={stream_opts(@changeset)}/> + <.input + field={f[:stream_id]} + type="select" + label="Stream" + multiple={false} + options={stream_opts(@changeset)} + /> - - <:actions> <.button>Save Vod diff --git a/services/bright/lib/bright_web/controllers/vtuber_controller.ex b/apps/bright/lib/bright_web/controllers/vtuber_controller.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/vtuber_controller.ex rename to apps/bright/lib/bright_web/controllers/vtuber_controller.ex diff --git a/services/bright/lib/bright_web/controllers/vtuber_html.ex b/apps/bright/lib/bright_web/controllers/vtuber_html.ex similarity index 100% rename from services/bright/lib/bright_web/controllers/vtuber_html.ex rename to apps/bright/lib/bright_web/controllers/vtuber_html.ex diff --git a/services/bright/lib/bright_web/controllers/vtuber_html/edit.html.heex b/apps/bright/lib/bright_web/controllers/vtuber_html/edit.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/vtuber_html/edit.html.heex rename to apps/bright/lib/bright_web/controllers/vtuber_html/edit.html.heex diff --git a/services/bright/lib/bright_web/controllers/vtuber_html/index.html.heex b/apps/bright/lib/bright_web/controllers/vtuber_html/index.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/vtuber_html/index.html.heex rename to apps/bright/lib/bright_web/controllers/vtuber_html/index.html.heex diff --git a/services/bright/lib/bright_web/controllers/vtuber_html/new.html.heex b/apps/bright/lib/bright_web/controllers/vtuber_html/new.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/vtuber_html/new.html.heex rename to apps/bright/lib/bright_web/controllers/vtuber_html/new.html.heex diff --git a/services/bright/lib/bright_web/controllers/vtuber_html/show.html.heex b/apps/bright/lib/bright_web/controllers/vtuber_html/show.html.heex similarity index 99% rename from services/bright/lib/bright_web/controllers/vtuber_html/show.html.heex rename to apps/bright/lib/bright_web/controllers/vtuber_html/show.html.heex index 4c41e45..df31a2a 100644 --- a/services/bright/lib/bright_web/controllers/vtuber_html/show.html.heex +++ b/apps/bright/lib/bright_web/controllers/vtuber_html/show.html.heex @@ -16,6 +16,4 @@ <:item title="Theme Color">{@vtuber.theme_color} - - <.back navigate={~p"/vtubers"}>Back to vtubers diff --git a/services/bright/lib/bright_web/controllers/vtuber_html/vtuber_form.html.heex b/apps/bright/lib/bright_web/controllers/vtuber_html/vtuber_form.html.heex similarity index 100% rename from services/bright/lib/bright_web/controllers/vtuber_html/vtuber_form.html.heex rename to apps/bright/lib/bright_web/controllers/vtuber_html/vtuber_form.html.heex diff --git a/services/bright/lib/bright_web/endpoint.ex b/apps/bright/lib/bright_web/endpoint.ex similarity index 99% rename from services/bright/lib/bright_web/endpoint.ex rename to apps/bright/lib/bright_web/endpoint.ex index 4b04a9e..a239fb1 100644 --- a/services/bright/lib/bright_web/endpoint.ex +++ b/apps/bright/lib/bright_web/endpoint.ex @@ -1,8 +1,6 @@ defmodule BrightWeb.Endpoint do use Phoenix.Endpoint, otp_app: :bright - - # The session will be stored in the cookie and signed, # this means its contents can be read but not tampered with. # Set :encryption_salt if you would also like to encrypt it. @@ -52,8 +50,4 @@ defmodule BrightWeb.Endpoint do plug Plug.Head plug Plug.Session, @session_options plug BrightWeb.Router - - - - end diff --git a/services/bright/lib/bright_web/gettext.ex b/apps/bright/lib/bright_web/gettext.ex similarity index 100% rename from services/bright/lib/bright_web/gettext.ex rename to apps/bright/lib/bright_web/gettext.ex diff --git a/services/bright/lib/bright_web/live/profile/identicon_live.ex b/apps/bright/lib/bright_web/live/profile/identicon_live.ex similarity index 55% rename from services/bright/lib/bright_web/live/profile/identicon_live.ex rename to apps/bright/lib/bright_web/live/profile/identicon_live.ex index c3c3d93..cbe847c 100644 --- a/services/bright/lib/bright_web/live/profile/identicon_live.ex +++ b/apps/bright/lib/bright_web/live/profile/identicon_live.ex @@ -1,5 +1,4 @@ defmodule BrightWeb.IdenticonLive do - require Logger use BrightWeb, :live_component @@ -9,11 +8,19 @@ defmodule BrightWeb.IdenticonLive do
    - <%= raw(IdenticonSvg.generate(assigns.identicon_seed, 5, :basic, 0.8, 2, squircle_curvature: 0.8)) %> + {raw( + IdenticonSvg.generate(assigns.identicon_seed, 5, :basic, 0.8, 2, + squircle_curvature: 0.8 + ) + )}
    - @@ -27,19 +34,16 @@ defmodule BrightWeb.IdenticonLive do {:ok, socket} end - defp random_seed do - :crypto.strong_rand_bytes(12) # 12 bytes -> 16 chars in Base64 (after stripping padding) + # 12 bytes -> 16 chars in Base64 (after stripping padding) + :crypto.strong_rand_bytes(12) |> Base.url_encode64() - |> binary_part(0, 16) # Ensure exactly 16 characters + # Ensure exactly 16 characters + |> binary_part(0, 16) end - def handle_event("randomize", _, socket) do - send self(), {:updated_identicon_seed, %{identicon_seed: random_seed()}} + send(self(), {:updated_identicon_seed, %{identicon_seed: random_seed()}}) {:noreply, socket} end - - - end diff --git a/services/bright/lib/bright_web/live/profile/profile_live.ex b/apps/bright/lib/bright_web/live/profile/profile_live.ex similarity index 83% rename from services/bright/lib/bright_web/live/profile/profile_live.ex rename to apps/bright/lib/bright_web/live/profile/profile_live.ex index c84cad8..a4b368f 100644 --- a/services/bright/lib/bright_web/live/profile/profile_live.ex +++ b/apps/bright/lib/bright_web/live/profile/profile_live.ex @@ -1,27 +1,20 @@ defmodule BrightWeb.ProfileLive do - require Logger use BrightWeb, :live_view alias Bright.Users - alias Bright.Users.User - def render(assigns) do ~H"""
    -
    - <.live_component module={BrightWeb.IdenticonLive} id={"user-#{@current_user.id}-identicon"} identicon_seed={@current_user.identicon_seed} /> - -
    @@ -30,25 +23,28 @@ defmodule BrightWeb.ProfileLive do

    Patron Tier

    {@current_user.patron_tier}

    -

    Change your patron tier at patreon.com/CJ_Clippy

    - +

    + Change your patron tier at + patreon.com/CJ_Clippy +

    - - """ end def mount(_params, _session, socket), do: {:ok, socket} def handle_info({:updated_identicon_seed, %{identicon_seed: identicon_seed}}, socket) do - Logger.debug("handle_info with new identicon_seed=#{identicon_seed}. user_id=#{socket.assigns.current_user.id}") + Logger.debug( + "handle_info with new identicon_seed=#{identicon_seed}. user_id=#{socket.assigns.current_user.id}" + ) # {:noreply, assign(socket, :identicon_seed, identicon_seed)} user = Users.get_user!(socket.assigns.current_user.id) + case Users.update_user(user, %{identicon_seed: identicon_seed}) do {:ok, updated_user} -> # Update @current_user, which automatically updates IdenticonLive @@ -58,9 +54,5 @@ defmodule BrightWeb.ProfileLive do Logger.error("failed to update identicon_seed. reason=#{inspect(reason)}") {:noreply, socket} end - end - - - end diff --git a/services/bright/lib/bright_web/plugs/assign_current_user.ex b/apps/bright/lib/bright_web/plugs/assign_current_user.ex similarity index 100% rename from services/bright/lib/bright_web/plugs/assign_current_user.ex rename to apps/bright/lib/bright_web/plugs/assign_current_user.ex diff --git a/services/bright/lib/bright_web/plugs/locale.ex b/apps/bright/lib/bright_web/plugs/locale.ex similarity index 100% rename from services/bright/lib/bright_web/plugs/locale.ex rename to apps/bright/lib/bright_web/plugs/locale.ex diff --git a/apps/bright/lib/bright_web/router.ex b/apps/bright/lib/bright_web/router.ex new file mode 100644 index 0000000..b8843b6 --- /dev/null +++ b/apps/bright/lib/bright_web/router.ex @@ -0,0 +1,148 @@ +defmodule BrightWeb.Router do + use BrightWeb, :router + + import Oban.Web.Router + + import BrightWeb.AuthController, + only: [ + fetch_current_user: 2, + require_admin_user: 2 + ] + + pipeline :browser do + plug(:accepts, ["html", "json", "txt"]) + plug(:fetch_session) + plug(:fetch_live_flash) + plug(:fetch_current_user) + plug(:put_root_layout, html: {BrightWeb.Layouts, :root}) + plug(:protect_from_forgery) + plug(:put_secure_browser_headers) + end + + pipeline :api do + plug(:accepts, ["json"]) + end + + scope "/auth", BrightWeb do + pipe_through(:browser) + + live_session :auth_login, on_mount: {BrightWeb.AuthController, :current_user} do + live("/login", SignInLive, :index) + end + + get("/logout", AuthController, :delete) + get("/:provider", AuthController, :request) + get("/:provider/callback", AuthController, :callback) + post("/:provider/callback", AuthController, :callback) + end + + ## protected routes + ## this section needs to be above the unprotected routes, + ## so routes like "/streams/new" take precedence. + scope "/", BrightWeb do + pipe_through [:browser, :require_admin_user] + # pipe_through [:browser] + + resources("/streams", StreamController, only: [:new, :create, :edit, :update, :delete]) + + # I think there is something faulty with how I'm calling these nested routes + # # get "/vods/new", VodController, :new + # # post "/vods", VodController, :create + # # delete "/vods/:id", VodController, :delete + # # get "/vods/:id/edit", VodController, :edit + # resources "/vods", StreamController, only: [:new, :create, :edit, :update, :delete] + + # resources "/vt", VtuberController do + # get "/vods/new", VodController, :new + # post "/vods", VodController, :create + # get "/vtubers/:id/edit", VtuberController, :edit + # end + + # resources "/vtubers", VtuberController do + # get "/new", VtuberController, :new + # post "/", VtuberController, :create + # get "/vods/new", VodController, :new + # post "/vods", VodController, :create + # get "/vtubers/:id/edit", VtuberController, :edit + # end + + resources("/vods", VodController, only: [:create, :new, :edit, :update, :delete]) + resources("/vtubers", VtuberController, only: [:create, :new, :edit, :update, :delete]) + + get("/tags/new", TagController, :new) + post("/tags", TagController, :create) + get("/tags/:id/edit", TagController, :edit) + + resources("/torrents", TorrentController, only: [:create, :new, :edit, :update, :delete]) + + ## !!! DANGER, platforms must only be writable by admins, (unless we implement SVG sanitizing) + ## @todo remove SVGs from the database and instead put them in assets + resources("/platforms", PlatformController, only: [:new, :create, :edit, :update, :delete]) + + oban_dashboard("/oban") + + live_session :authenticated, + on_mount: [{BrightWeb.AuthController, :ensure_authenticated}] do + live("/profile", ProfileLive) + end + end + + scope "/", BrightWeb do + pipe_through(:browser) + + get("/", PageController, :home) + + get("/patrons", PatronController, :index) + get("/about", PageController, :about) + get("/goals", PageController, :about) + get("/api", PageController, :api) + + resources("/torrents", TorrentController, only: [:index, :show]) + + get("/streams", StreamController, :index) + get("/streams/:id", StreamController, :show) + + get("/vods/:id", VodController, :show) + get("/vods", VodController, :index) + + get("/tags", TagController, :index) + get("/tags/:id", TagController, :show) + + get("/platforms", PlatformController, :index) + get("/platforms/:id", PlatformController, :show) + + resources("/vtubers", VtuberController, only: [:index, :show]) + + resources "/vt", VtuberController do + get("/vods", VodController, :index) + get("/vods/:id", VodController, :show) + end + end + + scope "/feeds", BrightWeb do + get("/vods.xml", RssController, :vods) + end + + # Other scopes may use custom stacks. + scope "/api", BrightWeb do + pipe_through(:api) + resources("/urls", UrlController, except: [:new, :edit]) + get("/health", PageController, :health) + end + + # Enable LiveDashboard and Swoosh mailbox preview in development + if Application.compile_env(:bright, :dev_routes) do + # If you want to use the LiveDashboard in production, you should put + # it behind authentication and allow only admins to access it. + # If your application does not have an admins-only section yet, + # you can use Plug.BasicAuth to set up some basic authentication + # as long as you are also using SSL (which you should anyway). + import Phoenix.LiveDashboard.Router + + scope "/dev" do + pipe_through(:browser) + + live_dashboard("/dashboard", metrics: BrightWeb.Telemetry) + end + end +end diff --git a/services/bright/lib/bright_web/telemetry.ex b/apps/bright/lib/bright_web/telemetry.ex similarity index 100% rename from services/bright/lib/bright_web/telemetry.ex rename to apps/bright/lib/bright_web/telemetry.ex diff --git a/services/bright/mix.exs b/apps/bright/mix.exs similarity index 93% rename from services/bright/mix.exs rename to apps/bright/mix.exs index 072f05d..805bed2 100644 --- a/services/bright/mix.exs +++ b/apps/bright/mix.exs @@ -1,5 +1,4 @@ defmodule Bright.MixProject do - use Mix.Project def project do @@ -10,7 +9,12 @@ defmodule Bright.MixProject do elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, aliases: aliases(), - deps: deps() + deps: deps(), + test_coverage: [tool: ExCoveralls], + preferred_cli_env: [ + coveralls: :test, + "coveralls.detail": :test + ] ] end @@ -69,6 +73,7 @@ defmodule Bright.MixProject do {:atomex, "~> 0.3.0"}, {:bento, "~> 1.0"}, {:identicon_svg, "~> 0.9"}, + {:excoveralls, "~> 0.18", only: :test} # {:membrane_core, "~> 1.0"}, # {:membrane_mpeg_ts_plugin, "~> 1.0.3"}, # {:membrane_file_plugin, "~> 0.17.2"}, @@ -99,7 +104,7 @@ defmodule Bright.MixProject do "assets.deploy": [ "sass bright --no-source-map --style=compressed", "esbuild bright --minify", - "phx.digest", + "phx.digest" ] ] end diff --git a/services/bright/mix.lock b/apps/bright/mix.lock similarity index 99% rename from services/bright/mix.lock rename to apps/bright/mix.lock index 560051c..2d3aa1b 100644 --- a/services/bright/mix.lock +++ b/apps/bright/mix.lock @@ -29,6 +29,7 @@ "ex_aws": {:hex, :ex_aws, "2.5.8", "0393cfbc5e4a9e7017845451a015d836a670397100aa4c86901980e2a2c5f7d4", [:mix], [{:configparser_ex, "~> 4.0", [hex: :configparser_ex, repo: "hexpm", optional: true]}, {:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:jsx, "~> 2.8 or ~> 3.0", [hex: :jsx, repo: "hexpm", optional: true]}, {:mime, "~> 1.2 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:req, "~> 0.3", [hex: :req, repo: "hexpm", optional: true]}, {:sweet_xml, "~> 0.7", [hex: :sweet_xml, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "8f79777b7932168956c8cc3a6db41f5783aa816eb50de356aed3165a71e5f8c3"}, "ex_aws_s3": {:hex, :ex_aws_s3, "2.5.6", "d135983bbd8b6df6350dfd83999437725527c1bea151e5055760bfc9b2d17c20", [:mix], [{:ex_aws, "~> 2.0", [hex: :ex_aws, repo: "hexpm", optional: false]}, {:sweet_xml, ">= 0.0.0", [hex: :sweet_xml, repo: "hexpm", optional: true]}], "hexpm", "9874e12847e469ca2f13a5689be04e546c16f63caf6380870b7f25bf7cb98875"}, "ex_m3u8": {:hex, :ex_m3u8, "0.14.2", "3eb17f936e2ca2fdcde11664f3a543e75a94814d928098e050bda5b1e149c021", [:mix], [{:nimble_parsec, "~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:typed_struct, "~> 0.3.0", [hex: :typed_struct, repo: "hexpm", optional: false]}], "hexpm", "d2a1fb4382a521cce7f966502ecce6187f286ca2852dbb0dcc25dea72f8ba039"}, + "excoveralls": {:hex, :excoveralls, "0.18.5", "e229d0a65982613332ec30f07940038fe451a2e5b29bce2a5022165f0c9b157e", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "523fe8a15603f86d64852aab2abe8ddbd78e68579c8525ae765facc5eae01562"}, "expo": {:hex, :expo, "1.1.0", "f7b9ed7fb5745ebe1eeedf3d6f29226c5dd52897ac67c0f8af62a07e661e5c75", [:mix], [], "hexpm", "fbadf93f4700fb44c331362177bdca9eeb8097e8b0ef525c9cc501cb9917c960"}, "ffmpex": {:hex, :ffmpex, "0.11.0", "70d2e211a70e1d8cc1a81d73208d5efedda59d82db4c91160c79e5461529d291", [:mix], [{:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}, {:rambo, "~> 0.3.0", [hex: :rambo, repo: "hexpm", optional: false]}], "hexpm", "2429d67badc91957ace572b9169615619740904a58791289ba54d99e57a164eb"}, "file_system": {:hex, :file_system, "1.1.0", "08d232062284546c6c34426997dd7ef6ec9f8bbd090eb91780283c9016840e8f", [:mix], [], "hexpm", "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"}, diff --git a/services/bright/priv/gettext/en/LC_MESSAGES/errors.po b/apps/bright/priv/gettext/en/LC_MESSAGES/errors.po similarity index 100% rename from services/bright/priv/gettext/en/LC_MESSAGES/errors.po rename to apps/bright/priv/gettext/en/LC_MESSAGES/errors.po diff --git a/services/bright/priv/gettext/errors.pot b/apps/bright/priv/gettext/errors.pot similarity index 100% rename from services/bright/priv/gettext/errors.pot rename to apps/bright/priv/gettext/errors.pot diff --git a/services/bright/priv/repo/migrations/.formatter.exs b/apps/bright/priv/repo/migrations/.formatter.exs similarity index 100% rename from services/bright/priv/repo/migrations/.formatter.exs rename to apps/bright/priv/repo/migrations/.formatter.exs diff --git a/services/bright/priv/repo/migrations/20241227185046_create_posts.exs b/apps/bright/priv/repo/migrations/20241227185046_create_posts.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241227185046_create_posts.exs rename to apps/bright/priv/repo/migrations/20241227185046_create_posts.exs diff --git a/services/bright/priv/repo/migrations/20241229023428_create_users.exs b/apps/bright/priv/repo/migrations/20241229023428_create_users.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229023428_create_users.exs rename to apps/bright/priv/repo/migrations/20241229023428_create_users.exs diff --git a/services/bright/priv/repo/migrations/20241229033144_create_streams.exs b/apps/bright/priv/repo/migrations/20241229033144_create_streams.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229033144_create_streams.exs rename to apps/bright/priv/repo/migrations/20241229033144_create_streams.exs diff --git a/services/bright/priv/repo/migrations/20241229033908_make_notes_nullable.exs b/apps/bright/priv/repo/migrations/20241229033908_make_notes_nullable.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229033908_make_notes_nullable.exs rename to apps/bright/priv/repo/migrations/20241229033908_make_notes_nullable.exs diff --git a/services/bright/priv/repo/migrations/20241229042113_add_views_col_to_streams.exs b/apps/bright/priv/repo/migrations/20241229042113_add_views_col_to_streams.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229042113_add_views_col_to_streams.exs rename to apps/bright/priv/repo/migrations/20241229042113_add_views_col_to_streams.exs diff --git a/services/bright/priv/repo/migrations/20241229044635_create_vods.exs b/apps/bright/priv/repo/migrations/20241229044635_create_vods.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229044635_create_vods.exs rename to apps/bright/priv/repo/migrations/20241229044635_create_vods.exs diff --git a/services/bright/priv/repo/migrations/20241229052718_create_tags.exs b/apps/bright/priv/repo/migrations/20241229052718_create_tags.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229052718_create_tags.exs rename to apps/bright/priv/repo/migrations/20241229052718_create_tags.exs diff --git a/services/bright/priv/repo/migrations/20241229053017_create_streams_tags.exs b/apps/bright/priv/repo/migrations/20241229053017_create_streams_tags.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229053017_create_streams_tags.exs rename to apps/bright/priv/repo/migrations/20241229053017_create_streams_tags.exs diff --git a/services/bright/priv/repo/migrations/20241229055702_create_vtubers.exs b/apps/bright/priv/repo/migrations/20241229055702_create_vtubers.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229055702_create_vtubers.exs rename to apps/bright/priv/repo/migrations/20241229055702_create_vtubers.exs diff --git a/services/bright/priv/repo/migrations/20241229213446_create_products.exs b/apps/bright/priv/repo/migrations/20241229213446_create_products.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229213446_create_products.exs rename to apps/bright/priv/repo/migrations/20241229213446_create_products.exs diff --git a/services/bright/priv/repo/migrations/20241229214700_create_categories.exs b/apps/bright/priv/repo/migrations/20241229214700_create_categories.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241229214700_create_categories.exs rename to apps/bright/priv/repo/migrations/20241229214700_create_categories.exs diff --git a/services/bright/priv/repo/migrations/20241229214737_create_product_categories.exs b/apps/bright/priv/repo/migrations/20241229214737_create_product_categories.exs similarity index 99% rename from services/bright/priv/repo/migrations/20241229214737_create_product_categories.exs rename to apps/bright/priv/repo/migrations/20241229214737_create_product_categories.exs index b952fcc..83c6042 100644 --- a/services/bright/priv/repo/migrations/20241229214737_create_product_categories.exs +++ b/apps/bright/priv/repo/migrations/20241229214737_create_product_categories.exs @@ -6,6 +6,7 @@ defmodule Bright.Repo.Migrations.CreateProductCategories do add :product_id, references(:products, on_delete: :delete_all) add :category_id, references(:categories, on_delete: :delete_all) end + create index(:product_categories, [:product_id]) create unique_index(:product_categories, [:category_id, :product_id]) end diff --git a/services/bright/priv/repo/migrations/20241230002702_create_carts.exs b/apps/bright/priv/repo/migrations/20241230002702_create_carts.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241230002702_create_carts.exs rename to apps/bright/priv/repo/migrations/20241230002702_create_carts.exs diff --git a/services/bright/priv/repo/migrations/20241230003000_create_cart_items.exs b/apps/bright/priv/repo/migrations/20241230003000_create_cart_items.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241230003000_create_cart_items.exs rename to apps/bright/priv/repo/migrations/20241230003000_create_cart_items.exs diff --git a/services/bright/priv/repo/migrations/20241230044441_create_orders.exs b/apps/bright/priv/repo/migrations/20241230044441_create_orders.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241230044441_create_orders.exs rename to apps/bright/priv/repo/migrations/20241230044441_create_orders.exs diff --git a/services/bright/priv/repo/migrations/20241230044633_create_order_line_items.exs b/apps/bright/priv/repo/migrations/20241230044633_create_order_line_items.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241230044633_create_order_line_items.exs rename to apps/bright/priv/repo/migrations/20241230044633_create_order_line_items.exs diff --git a/services/bright/priv/repo/migrations/20241230055033_create_urls.exs b/apps/bright/priv/repo/migrations/20241230055033_create_urls.exs similarity index 100% rename from services/bright/priv/repo/migrations/20241230055033_create_urls.exs rename to apps/bright/priv/repo/migrations/20241230055033_create_urls.exs diff --git a/services/bright/priv/repo/migrations/20250102231141_remove_blur_from_vtubers.exs b/apps/bright/priv/repo/migrations/20250102231141_remove_blur_from_vtubers.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250102231141_remove_blur_from_vtubers.exs rename to apps/bright/priv/repo/migrations/20250102231141_remove_blur_from_vtubers.exs diff --git a/services/bright/priv/repo/migrations/20250102234644_create_streams_vtubers.exs b/apps/bright/priv/repo/migrations/20250102234644_create_streams_vtubers.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250102234644_create_streams_vtubers.exs rename to apps/bright/priv/repo/migrations/20250102234644_create_streams_vtubers.exs diff --git a/services/bright/priv/repo/migrations/20250103001216_add_stream_id_column_to_vods.exs b/apps/bright/priv/repo/migrations/20250103001216_add_stream_id_column_to_vods.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250103001216_add_stream_id_column_to_vods.exs rename to apps/bright/priv/repo/migrations/20250103001216_add_stream_id_column_to_vods.exs diff --git a/services/bright/priv/repo/migrations/20250103030423_create_patrons.exs b/apps/bright/priv/repo/migrations/20250103030423_create_patrons.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250103030423_create_patrons.exs rename to apps/bright/priv/repo/migrations/20250103030423_create_patrons.exs diff --git a/services/bright/priv/repo/migrations/20250103070833_add_platforms.exs b/apps/bright/priv/repo/migrations/20250103070833_add_platforms.exs similarity index 99% rename from services/bright/priv/repo/migrations/20250103070833_add_platforms.exs rename to apps/bright/priv/repo/migrations/20250103070833_add_platforms.exs index 37cd047..769ca84 100644 --- a/services/bright/priv/repo/migrations/20250103070833_add_platforms.exs +++ b/apps/bright/priv/repo/migrations/20250103070833_add_platforms.exs @@ -2,7 +2,6 @@ defmodule Bright.Repo.Migrations.AddPlatforms do use Ecto.Migration def change do - create table(:platforms) do add :name, :string, null: false add :url, :string @@ -12,6 +11,5 @@ defmodule Bright.Repo.Migrations.AddPlatforms do end create unique_index(:platforms, [:name]) - end end diff --git a/services/bright/priv/repo/migrations/20250103071310_add_platform_to_stream.exs b/apps/bright/priv/repo/migrations/20250103071310_add_platform_to_stream.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250103071310_add_platform_to_stream.exs rename to apps/bright/priv/repo/migrations/20250103071310_add_platform_to_stream.exs diff --git a/services/bright/priv/repo/migrations/20250103071506_add_vod_notes.exs b/apps/bright/priv/repo/migrations/20250103071506_add_vod_notes.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250103071506_add_vod_notes.exs rename to apps/bright/priv/repo/migrations/20250103071506_add_vod_notes.exs diff --git a/services/bright/priv/repo/migrations/20250103072941_add_platform_id_default_to_stream.exs b/apps/bright/priv/repo/migrations/20250103072941_add_platform_id_default_to_stream.exs similarity index 98% rename from services/bright/priv/repo/migrations/20250103072941_add_platform_id_default_to_stream.exs rename to apps/bright/priv/repo/migrations/20250103072941_add_platform_id_default_to_stream.exs index a3ab444..37dd90c 100644 --- a/services/bright/priv/repo/migrations/20250103072941_add_platform_id_default_to_stream.exs +++ b/apps/bright/priv/repo/migrations/20250103072941_add_platform_id_default_to_stream.exs @@ -1,9 +1,6 @@ defmodule Bright.Repo.Migrations.AddPlatformIdToStream do use Ecto.Migration - - - def up do # Insert a default platform execute(""" @@ -14,7 +11,4 @@ defmodule Bright.Repo.Migrations.AddPlatformIdToStream do execute("UPDATE streams SET platform_id = 1 WHERE platform_id IS NULL") end - - - end diff --git a/services/bright/priv/repo/migrations/20250103085138_change_icon_to_text.exs b/apps/bright/priv/repo/migrations/20250103085138_change_icon_to_text.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250103085138_change_icon_to_text.exs rename to apps/bright/priv/repo/migrations/20250103085138_change_icon_to_text.exs diff --git a/services/bright/priv/repo/migrations/20250103102125_add_streams_platforms_join_table.exs b/apps/bright/priv/repo/migrations/20250103102125_add_streams_platforms_join_table.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250103102125_add_streams_platforms_join_table.exs rename to apps/bright/priv/repo/migrations/20250103102125_add_streams_platforms_join_table.exs diff --git a/services/bright/priv/repo/migrations/20250103112029_remove_timestamps_from_streams_platforms.exs b/apps/bright/priv/repo/migrations/20250103112029_remove_timestamps_from_streams_platforms.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250103112029_remove_timestamps_from_streams_platforms.exs rename to apps/bright/priv/repo/migrations/20250103112029_remove_timestamps_from_streams_platforms.exs diff --git a/services/bright/priv/repo/migrations/20250106055153_add_source_url.exs b/apps/bright/priv/repo/migrations/20250106055153_add_source_url.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250106055153_add_source_url.exs rename to apps/bright/priv/repo/migrations/20250106055153_add_source_url.exs diff --git a/services/bright/priv/repo/migrations/20250106085942_add_oban_jobs_table.exs b/apps/bright/priv/repo/migrations/20250106085942_add_oban_jobs_table.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250106085942_add_oban_jobs_table.exs rename to apps/bright/priv/repo/migrations/20250106085942_add_oban_jobs_table.exs diff --git a/services/bright/priv/repo/migrations/20250113171439_update_users_to_auth_schema.exs b/apps/bright/priv/repo/migrations/20250113171439_update_users_to_auth_schema.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250113171439_update_users_to_auth_schema.exs rename to apps/bright/priv/repo/migrations/20250113171439_update_users_to_auth_schema.exs diff --git a/services/bright/priv/repo/migrations/20250115053147_add_provider_to_user.exs b/apps/bright/priv/repo/migrations/20250115053147_add_provider_to_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250115053147_add_provider_to_user.exs rename to apps/bright/priv/repo/migrations/20250115053147_add_provider_to_user.exs diff --git a/services/bright/priv/repo/migrations/20250116134417_add_is_admin_to_user.exs b/apps/bright/priv/repo/migrations/20250116134417_add_is_admin_to_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250116134417_add_is_admin_to_user.exs rename to apps/bright/priv/repo/migrations/20250116134417_add_is_admin_to_user.exs diff --git a/services/bright/priv/repo/migrations/20250116154212_add_auth_token_to_user.exs b/apps/bright/priv/repo/migrations/20250116154212_add_auth_token_to_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250116154212_add_auth_token_to_user.exs rename to apps/bright/priv/repo/migrations/20250116154212_add_auth_token_to_user.exs diff --git a/services/bright/priv/repo/migrations/20250116155928_add_provider_handles_to_user.exs b/apps/bright/priv/repo/migrations/20250116155928_add_provider_handles_to_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250116155928_add_provider_handles_to_user.exs rename to apps/bright/priv/repo/migrations/20250116155928_add_provider_handles_to_user.exs diff --git a/services/bright/priv/repo/migrations/20250116200213_add_name_to_user.exs b/apps/bright/priv/repo/migrations/20250116200213_add_name_to_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250116200213_add_name_to_user.exs rename to apps/bright/priv/repo/migrations/20250116200213_add_name_to_user.exs diff --git a/services/bright/priv/repo/migrations/20250117132027_remove_email_from_user.exs b/apps/bright/priv/repo/migrations/20250117132027_remove_email_from_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250117132027_remove_email_from_user.exs rename to apps/bright/priv/repo/migrations/20250117132027_remove_email_from_user.exs diff --git a/services/bright/priv/repo/migrations/20250117132125_remove_password_from_user.exs b/apps/bright/priv/repo/migrations/20250117132125_remove_password_from_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250117132125_remove_password_from_user.exs rename to apps/bright/priv/repo/migrations/20250117132125_remove_password_from_user.exs diff --git a/services/bright/priv/repo/migrations/20250117132320_remove_platform_from_user.exs b/apps/bright/priv/repo/migrations/20250117132320_remove_platform_from_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250117132320_remove_platform_from_user.exs rename to apps/bright/priv/repo/migrations/20250117132320_remove_platform_from_user.exs diff --git a/services/bright/priv/repo/migrations/20250120050410_add_thumbnail_url.exs b/apps/bright/priv/repo/migrations/20250120050410_add_thumbnail_url.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250120050410_add_thumbnail_url.exs rename to apps/bright/priv/repo/migrations/20250120050410_add_thumbnail_url.exs diff --git a/services/bright/priv/repo/migrations/20250121125008_remove_views_from_streams.exs b/apps/bright/priv/repo/migrations/20250121125008_remove_views_from_streams.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250121125008_remove_views_from_streams.exs rename to apps/bright/priv/repo/migrations/20250121125008_remove_views_from_streams.exs diff --git a/services/bright/priv/repo/migrations/20250122181020_remove_redundant_s3_from_vod.exs b/apps/bright/priv/repo/migrations/20250122181020_remove_redundant_s3_from_vod.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250122181020_remove_redundant_s3_from_vod.exs rename to apps/bright/priv/repo/migrations/20250122181020_remove_redundant_s3_from_vod.exs diff --git a/services/bright/priv/repo/migrations/20250126020211_remove_auth_and_users.exs b/apps/bright/priv/repo/migrations/20250126020211_remove_auth_and_users.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250126020211_remove_auth_and_users.exs rename to apps/bright/priv/repo/migrations/20250126020211_remove_auth_and_users.exs diff --git a/services/bright/priv/repo/migrations/20250126022331_create_users_auth_tables.exs b/apps/bright/priv/repo/migrations/20250126022331_create_users_auth_tables.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250126022331_create_users_auth_tables.exs rename to apps/bright/priv/repo/migrations/20250126022331_create_users_auth_tables.exs diff --git a/services/bright/priv/repo/migrations/20250126200332_add_uploaded_by_to_vods.exs b/apps/bright/priv/repo/migrations/20250126200332_add_uploaded_by_to_vods.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250126200332_add_uploaded_by_to_vods.exs rename to apps/bright/priv/repo/migrations/20250126200332_add_uploaded_by_to_vods.exs diff --git a/services/bright/priv/repo/migrations/20250127063219_add_github_id.exs b/apps/bright/priv/repo/migrations/20250127063219_add_github_id.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250127063219_add_github_id.exs rename to apps/bright/priv/repo/migrations/20250127063219_add_github_id.exs diff --git a/services/bright/priv/repo/migrations/20250127072102_add_user_avatar_name.exs b/apps/bright/priv/repo/migrations/20250127072102_add_user_avatar_name.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250127072102_add_user_avatar_name.exs rename to apps/bright/priv/repo/migrations/20250127072102_add_user_avatar_name.exs diff --git a/services/bright/priv/repo/migrations/20250127073215_remove_email_and_password.exs b/apps/bright/priv/repo/migrations/20250127073215_remove_email_and_password.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250127073215_remove_email_and_password.exs rename to apps/bright/priv/repo/migrations/20250127073215_remove_email_and_password.exs diff --git a/services/bright/priv/repo/migrations/20250128040801_add_local_path.exs b/apps/bright/priv/repo/migrations/20250128040801_add_local_path.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250128040801_add_local_path.exs rename to apps/bright/priv/repo/migrations/20250128040801_add_local_path.exs diff --git a/services/bright/priv/repo/migrations/20250128043513_add_duration.exs b/apps/bright/priv/repo/migrations/20250128043513_add_duration.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250128043513_add_duration.exs rename to apps/bright/priv/repo/migrations/20250128043513_add_duration.exs diff --git a/services/bright/priv/repo/migrations/20250130015306_add_magnet_link.exs b/apps/bright/priv/repo/migrations/20250130015306_add_magnet_link.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250130015306_add_magnet_link.exs rename to apps/bright/priv/repo/migrations/20250130015306_add_magnet_link.exs diff --git a/services/bright/priv/repo/migrations/20250131034913_add_info_hash_v2.exs b/apps/bright/priv/repo/migrations/20250131034913_add_info_hash_v2.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250131034913_add_info_hash_v2.exs rename to apps/bright/priv/repo/migrations/20250131034913_add_info_hash_v2.exs diff --git a/services/bright/priv/repo/migrations/20250131091405_create_torrent.exs b/apps/bright/priv/repo/migrations/20250131091405_create_torrent.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250131091405_create_torrent.exs rename to apps/bright/priv/repo/migrations/20250131091405_create_torrent.exs diff --git a/services/bright/priv/repo/migrations/20250202043610_remove_torrent_col_from_vod.exs b/apps/bright/priv/repo/migrations/20250202043610_remove_torrent_col_from_vod.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250202043610_remove_torrent_col_from_vod.exs rename to apps/bright/priv/repo/migrations/20250202043610_remove_torrent_col_from_vod.exs diff --git a/services/bright/priv/repo/migrations/20250202043822_remove_torrent.exs b/apps/bright/priv/repo/migrations/20250202043822_remove_torrent.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250202043822_remove_torrent.exs rename to apps/bright/priv/repo/migrations/20250202043822_remove_torrent.exs diff --git a/services/bright/priv/repo/migrations/20250202044125_create_torrents.exs b/apps/bright/priv/repo/migrations/20250202044125_create_torrents.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250202044125_create_torrents.exs rename to apps/bright/priv/repo/migrations/20250202044125_create_torrents.exs diff --git a/services/bright/priv/repo/migrations/20250202045456_relate_torrents_to_vod.exs b/apps/bright/priv/repo/migrations/20250202045456_relate_torrents_to_vod.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250202045456_relate_torrents_to_vod.exs rename to apps/bright/priv/repo/migrations/20250202045456_relate_torrents_to_vod.exs diff --git a/services/bright/priv/repo/migrations/20250203035003_drop_users.exs b/apps/bright/priv/repo/migrations/20250203035003_drop_users.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250203035003_drop_users.exs rename to apps/bright/priv/repo/migrations/20250203035003_drop_users.exs diff --git a/services/bright/priv/repo/migrations/20250203040420_create_users_auth_tables_2.exs b/apps/bright/priv/repo/migrations/20250203040420_create_users_auth_tables_2.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250203040420_create_users_auth_tables_2.exs rename to apps/bright/priv/repo/migrations/20250203040420_create_users_auth_tables_2.exs diff --git a/services/bright/priv/repo/migrations/20250204023200_add_patreon_id_to_user.exs b/apps/bright/priv/repo/migrations/20250204023200_add_patreon_id_to_user.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250204023200_add_patreon_id_to_user.exs rename to apps/bright/priv/repo/migrations/20250204023200_add_patreon_id_to_user.exs diff --git a/services/bright/priv/repo/migrations/20250204025441_remove_patreon_id.exs b/apps/bright/priv/repo/migrations/20250204025441_remove_patreon_id.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250204025441_remove_patreon_id.exs rename to apps/bright/priv/repo/migrations/20250204025441_remove_patreon_id.exs diff --git a/services/bright/priv/repo/migrations/20250204030943_add_patreon_id_int.exs b/apps/bright/priv/repo/migrations/20250204030943_add_patreon_id_int.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250204030943_add_patreon_id_int.exs rename to apps/bright/priv/repo/migrations/20250204030943_add_patreon_id_int.exs diff --git a/services/bright/priv/repo/migrations/20250204091304_remove_email_and_password_2.exs b/apps/bright/priv/repo/migrations/20250204091304_remove_email_and_password_2.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250204091304_remove_email_and_password_2.exs rename to apps/bright/priv/repo/migrations/20250204091304_remove_email_and_password_2.exs diff --git a/services/bright/priv/repo/migrations/20250204222437_add_user_token.exs b/apps/bright/priv/repo/migrations/20250204222437_add_user_token.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250204222437_add_user_token.exs rename to apps/bright/priv/repo/migrations/20250204222437_add_user_token.exs diff --git a/services/bright/priv/repo/migrations/20250204231147_add_identicon.exs b/apps/bright/priv/repo/migrations/20250204231147_add_identicon.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250204231147_add_identicon.exs rename to apps/bright/priv/repo/migrations/20250204231147_add_identicon.exs diff --git a/services/bright/priv/repo/migrations/20250206144702_add_patron_tier.exs b/apps/bright/priv/repo/migrations/20250206144702_add_patron_tier.exs similarity index 100% rename from services/bright/priv/repo/migrations/20250206144702_add_patron_tier.exs rename to apps/bright/priv/repo/migrations/20250206144702_add_patron_tier.exs diff --git a/apps/bright/priv/repo/migrations/20250210150213_add_roles_to_users.exs b/apps/bright/priv/repo/migrations/20250210150213_add_roles_to_users.exs new file mode 100644 index 0000000..fa1946c --- /dev/null +++ b/apps/bright/priv/repo/migrations/20250210150213_add_roles_to_users.exs @@ -0,0 +1,9 @@ +defmodule Bright.Repo.Migrations.AddRolesToUsers do + use Ecto.Migration + + def change do + alter table(:users) do + add :role, :string, null: false, default: "user" + end + end +end diff --git a/services/bright/priv/repo/seeds.exs b/apps/bright/priv/repo/seeds.exs similarity index 99% rename from services/bright/priv/repo/seeds.exs rename to apps/bright/priv/repo/seeds.exs index ee0830d..e9cc31b 100644 --- a/services/bright/priv/repo/seeds.exs +++ b/apps/bright/priv/repo/seeds.exs @@ -10,8 +10,6 @@ # We recommend using the bang functions (`insert!`, `update!` # and so on) as they will fail if something goes wrong. - - # for title <- ["Home Improvement", "Power Tools", "Gardening", "Books", "Education"] do # {:ok, _} = Bright.Catalog.create_category(%{title: title}) # end diff --git a/services/bright/priv/static/favicon.ico b/apps/bright/priv/static/favicon.ico similarity index 100% rename from services/bright/priv/static/favicon.ico rename to apps/bright/priv/static/favicon.ico diff --git a/services/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt b/apps/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt similarity index 100% rename from services/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt rename to apps/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt diff --git a/services/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt.gz b/apps/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt.gz similarity index 100% rename from services/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt.gz rename to apps/bright/priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt.gz diff --git a/services/bright/priv/static/robots.txt b/apps/bright/priv/static/robots.txt similarity index 100% rename from services/bright/priv/static/robots.txt rename to apps/bright/priv/static/robots.txt diff --git a/services/bright/priv/static/robots.txt.gz b/apps/bright/priv/static/robots.txt.gz similarity index 100% rename from services/bright/priv/static/robots.txt.gz rename to apps/bright/priv/static/robots.txt.gz diff --git a/services/bright/rel/overlays/bin/migrate b/apps/bright/rel/overlays/bin/migrate similarity index 100% rename from services/bright/rel/overlays/bin/migrate rename to apps/bright/rel/overlays/bin/migrate diff --git a/services/bright/rel/overlays/bin/migrate.bat b/apps/bright/rel/overlays/bin/migrate.bat similarity index 100% rename from services/bright/rel/overlays/bin/migrate.bat rename to apps/bright/rel/overlays/bin/migrate.bat diff --git a/services/bright/rel/overlays/bin/server b/apps/bright/rel/overlays/bin/server similarity index 100% rename from services/bright/rel/overlays/bin/server rename to apps/bright/rel/overlays/bin/server diff --git a/services/bright/rel/overlays/bin/server.bat b/apps/bright/rel/overlays/bin/server.bat similarity index 100% rename from services/bright/rel/overlays/bin/server.bat rename to apps/bright/rel/overlays/bin/server.bat diff --git a/services/bright/test/bright/b2_test.exs b/apps/bright/test/bright/b2_test.exs similarity index 83% rename from services/bright/test/bright/b2_test.exs rename to apps/bright/test/bright/b2_test.exs index 8592bd7..dbc06c6 100644 --- a/services/bright/test/bright/b2_test.exs +++ b/apps/bright/test/bright/b2_test.exs @@ -1,12 +1,9 @@ defmodule Bright.B2Test do use Bright.DataCase - - @cdn_url Application.get_env(:bright, :public_s3_endpoint) describe "B2" do - alias Bright.B2 alias Bright.Cache import Bright.StreamsFixtures @@ -27,17 +24,21 @@ defmodule Bright.B2Test do assert Regex.match?(~r/SampleVideo/, key) end - @tag :integration test "get/1 with %Vod{}" do stream = stream_fixture() - vod = vod_fixture(%{stream_id: stream.id, s3_cdn_url: "https://futureporn-b2.b-cdn.net/test-fixture.ts"}) + + vod = + vod_fixture(%{ + stream_id: stream.id, + s3_cdn_url: "https://futureporn-b2.b-cdn.net/test-fixture.ts" + }) + {:ok, filename} = B2.get(vod) assert :ok assert Regex.match?(~r/\.cache\/futureporn.*\.ts/, filename) end - @tag :acceptance test "get/2" do local_file = "/tmp/SampleVideo_1280x720_1mb.mp4" @@ -53,15 +54,14 @@ defmodule Bright.B2Test do File.rm!(local_file) end - @tag :integration test "generate_cdn_url/1" do - assert Regex.match?(~r"https:\/\/", @cdn_url), ":public_s3_endpoint was missing from `:bright` app config, which is a requirement for this test." + assert Regex.match?(~r"https:\/\/", @cdn_url), + ":public_s3_endpoint was missing from `:bright` app config, which is a requirement for this test." + object_key = "test/SampleVideo_1280x720_1mb.mp4" cdn_url = B2.generate_cdn_url(object_key) assert cdn_url === "#{@cdn_url}/#{object_key}" end - end - end diff --git a/services/bright/test/bright/bittorrent_url_encoder_test.ex b/apps/bright/test/bright/bittorrent_url_encoder_test.exs similarity index 99% rename from services/bright/test/bright/bittorrent_url_encoder_test.ex rename to apps/bright/test/bright/bittorrent_url_encoder_test.exs index 0af2f3b..e6c1922 100644 --- a/services/bright/test/bright/bittorrent_url_encoder_test.ex +++ b/apps/bright/test/bright/bittorrent_url_encoder_test.exs @@ -50,6 +50,4 @@ defmodule Bright.BittorrentUrlEncoderTest do expected = "%7b%14%90GNQSn%1az%c0%df%ec%24g%e8m%a22%a4" assert actual === expected end - - end diff --git a/services/bright/test/bright/cache_test.ex b/apps/bright/test/bright/cache_test.exs similarity index 99% rename from services/bright/test/bright/cache_test.ex rename to apps/bright/test/bright/cache_test.exs index e170b32..de78155 100644 --- a/services/bright/test/bright/cache_test.ex +++ b/apps/bright/test/bright/cache_test.exs @@ -5,7 +5,6 @@ defmodule Bright.CacheTest do @sample_url "https://example.com/my_video.mp4" - ## IDK what I'm doing here. Ideally I want a redis-like k/v store where I can temporarily put VODs and they expire after 12 hours or so. ## this would potentially speed up vod processing because it would prevent having to download the VOD from S3 during every Oban worker performance. ## BUT I don't want to implement it myself because of the idiom, "There are only two unsolved problems in CS. Naming things and cache invalidation" @@ -18,11 +17,9 @@ defmodule Bright.CacheTest do # end - # end describe "cache" do - @tag :unit test "get_cache_dir/0" do assert Regex.match?(~r/.cache\/futureporn/, Cache.get_cache_dir()) @@ -63,7 +60,5 @@ defmodule Bright.CacheTest do filename = Cache.generate_filename(@sample_url, "png") assert Regex.match?(~r/.cache\/futureporn\/.+-my_video\.png/, filename) end - - end end diff --git a/services/bright/test/bright/downloader_test.exs b/apps/bright/test/bright/downloader_test.exs similarity index 78% rename from services/bright/test/bright/downloader_test.exs rename to apps/bright/test/bright/downloader_test.exs index c83b4c6..7549fb1 100644 --- a/services/bright/test/bright/downloader_test.exs +++ b/apps/bright/test/bright/downloader_test.exs @@ -1,5 +1,3 @@ - - defmodule Bright.DownloaderTest do use Bright.DataCase @@ -9,19 +7,15 @@ defmodule Bright.DownloaderTest do @test_fixture "https://futureporn-b2.b-cdn.net/projekt-melody.jpg" describe "downloader" do - @tag :integration test "get/1" do - {:ok, local_file} = Downloader.get(@test_fixture) assert File.exists?(local_file) {:ok, stat} = File.stat(local_file) assert stat.size > 0, "File is empty" assert Regex.match?(~r/.cache\/futureporn\/.+-projekt-melody\.jpg/, local_file) - end - @tag :integration test "cache directory creation" do cache_dir = Cache.get_cache_dir() @@ -29,7 +23,9 @@ defmodule Bright.DownloaderTest do @tag :integration test "downloading 1MB file" do - {:ok, local_file} = Downloader.get("https://futureporn-b2.b-cdn.net/SampleVideo_1280x720_1mb.mp4") + {:ok, local_file} = + Downloader.get("https://futureporn-b2.b-cdn.net/SampleVideo_1280x720_1mb.mp4") + assert File.exists?(local_file) {:ok, stat} = File.stat(local_file) assert stat.size > 0, "File is empty" @@ -37,7 +33,9 @@ defmodule Bright.DownloaderTest do @tag :integration test "downloading 10MB file" do - {:ok, local_file} = Downloader.get("https://futureporn-b2.b-cdn.net/SampleVideo_1280x720_10mb.mp4") + {:ok, local_file} = + Downloader.get("https://futureporn-b2.b-cdn.net/SampleVideo_1280x720_10mb.mp4") + assert File.exists?(local_file) {:ok, stat} = File.stat(local_file) assert stat.size > 0, "File is empty" @@ -45,14 +43,12 @@ defmodule Bright.DownloaderTest do @tag :integration test "downloading 20MB file" do - {:ok, local_file} = Downloader.get("https://futureporn-b2.b-cdn.net/SampleVideo_1280x720_20mb.mp4") + {:ok, local_file} = + Downloader.get("https://futureporn-b2.b-cdn.net/SampleVideo_1280x720_20mb.mp4") + assert File.exists?(local_file) {:ok, stat} = File.stat(local_file) assert stat.size > 0, "File is empty" end - - - end - end diff --git a/services/bright/test/bright/images_test.exs b/apps/bright/test/bright/images_test.exs similarity index 81% rename from services/bright/test/bright/images_test.exs rename to apps/bright/test/bright/images_test.exs index 509a8c0..0c3c92a 100644 --- a/services/bright/test/bright/images_test.exs +++ b/apps/bright/test/bright/images_test.exs @@ -1,19 +1,18 @@ defmodule Bright.ImagesTest do use Bright.DataCase + require Logger alias Bright.Images @test_mp4_fixture "./test/fixtures/SampleVideo_1280x720_1mb.mp4" @test_ts_fixture "./test/fixtures/test-fixture.ts" describe "thumbnails" do - - - @tag :unit test "create_thumbnail/1" do - {:ok, %{:output => output, :filename => filename}} = Images.create_thumbnail(@test_mp4_fixture) - assert output === "" + {:ok, filename} = + Images.create_thumbnail(@test_mp4_fixture) + assert Regex.match?(~r/[a-zA-Z0-9]+-.*\.png$/, filename) assert File.exists?(filename) assert File.stat!(filename).size > 0, "thumbnail file is empty" @@ -24,15 +23,25 @@ defmodule Bright.ImagesTest do # ffmpeg -y -i ~/Videos/moose-encounter_75.mp4 -frames:v 1 -vf 'select=not(mod(n\,257)),scale=160:-1,tile=5x5' -update 1 -fps_mode passthrough ~/Videos/thumb.jpg basename = "thumb.jpg" - random_string = for _ <- 1..12, into: "", do: <> - output_file = "/tmp/#{random_string}-#{basename}" - IO.puts "output_file=#{inspect(output_file)} @test_mp4_fixture=#{inspect(@test_mp4_fixture)}" - {:ok, output } = Images.create_thumbnail(@test_mp4_fixture, output_file) + random_string = + for _ <- 1..12, + into: "", + do: + <> + + output_file = "/tmp/#{random_string}-#{basename}" + + Logger.debug( + "output_file=#{inspect(output_file)} @test_mp4_fixture=#{inspect(@test_mp4_fixture)}" + ) + + {:ok, output} = Images.create_thumbnail(@test_mp4_fixture, output_file) assert File.exists?(output_file) {:ok, stat} = File.stat(output_file) assert stat.size > 0, "File is empty" + assert output === output_file end # Feature creep! Download the image for now. Make it work, first. THen make it right. THEN make it fast. @@ -44,15 +53,8 @@ defmodule Bright.ImagesTest do # {:ok, output} = Images.create_thumbnail(input_url, output_file) # assert Regex.match?("/tmp", output) # end - - - - - end - - describe "get_video_duration" do @tag :integration test "should get video stream duration" do @@ -74,9 +76,4 @@ defmodule Bright.ImagesTest do assert nb_read_frames === 99 end end - - - - - end diff --git a/services/bright/test/bright/oban_workers/create_hls_playlist_test.exs b/apps/bright/test/bright/oban_workers/create_hls_playlist_test.exs similarity index 68% rename from services/bright/test/bright/oban_workers/create_hls_playlist_test.exs rename to apps/bright/test/bright/oban_workers/create_hls_playlist_test.exs index 040e53f..c43ae19 100644 --- a/services/bright/test/bright/oban_workers/create_hls_playlist_test.exs +++ b/apps/bright/test/bright/oban_workers/create_hls_playlist_test.exs @@ -1,50 +1,39 @@ - defmodule Bright.CreateHlsPlaylistTest do use Bright.DataCase use Oban.Testing, repo: Bright.Repo require Logger - alias Bright.ObanWorkers.{ProcessVod, CreateHlsPlaylist} alias Bright.Streams alias Bright.Streams.Stream - describe "CreateHlsPlaylist" do - import Bright.StreamsFixtures @tag :integration test "sheduling upon vod creation" do - example_video = "http://example.com/video.ts" stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) - {:ok, _vod} = Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: example_video}) + {:ok, _vod} = + Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: example_video}) - assert_enqueued worker: ProcessVod, queue: :default - assert %{success: 1} = Oban.drain_queue(queue: :default) # ProcessVod is what queues CreateThumbnail so we need to make it run - - assert_enqueued [worker: CreateHlsPlaylist, queue: :default], 1000 - + assert_enqueued(worker: ProcessVod, queue: :default) + # ProcessVod is what queues CreateThumbnail so we need to make it run + assert %{success: 1} = Oban.drain_queue(queue: :default) + assert_enqueued([worker: CreateHlsPlaylist, queue: :default], 1000) end - @tag :integration test "not scheduled when origin_temp_input_url is missing" do - stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) {:ok, _vod} = Streams.create_vod(%{stream_id: stream.id}) - refute_enqueued worker: CreateHlsPlaylist + refute_enqueued(worker: CreateHlsPlaylist) end - - end - - end diff --git a/apps/bright/test/bright/oban_workers/create_ipfs_cid_test.exs b/apps/bright/test/bright/oban_workers/create_ipfs_cid_test.exs new file mode 100644 index 0000000..e69de29 diff --git a/services/bright/test/bright/oban_workers/create_s3_asset_test.exs b/apps/bright/test/bright/oban_workers/create_s3_asset_test.exs similarity index 82% rename from services/bright/test/bright/oban_workers/create_s3_asset_test.exs rename to apps/bright/test/bright/oban_workers/create_s3_asset_test.exs index 40151e6..f996bdc 100644 --- a/services/bright/test/bright/oban_workers/create_s3_asset_test.exs +++ b/apps/bright/test/bright/oban_workers/create_s3_asset_test.exs @@ -1,13 +1,16 @@ defmodule Bright.ObanWorkers.CreateS3AssetTest do use Bright.DataCase use Oban.Testing, repo: Bright.Repo + alias Bright.ObanWorkers.{ CreateS3Asset, ProcessVod, CreateThumbnail } + alias Bright.Cache alias Bright.Streams + alias Bright.Streams.{ Stream, Vod @@ -16,7 +19,6 @@ defmodule Bright.ObanWorkers.CreateS3AssetTest do # @tag :unit # test "creating a new s3 asset (unit test)" do - # example_video = "http://example.com/video.ts" # stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} # {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) @@ -31,46 +33,46 @@ defmodule Bright.ObanWorkers.CreateS3AssetTest do import Bright.StreamsFixtures @example_url "https://futureporn-b2.b-cdn.net/big_buck_bunny_720p_1mb.mp4" - - @tag :integration test "s3 asset creation" do stream = stream_fixture() - vod = vod_fixture(%{s3_cdn_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) + + vod = + vod_fixture(%{s3_cdn_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) + {:ok, %Vod{} = vod} = perform_job(CreateS3Asset, %{vod_id: vod.id}) - IO.puts "s3_cdn_url=#{vod.s3_cdn_url}" + IO.puts("s3_cdn_url=#{vod.s3_cdn_url}") assert Regex.match?(~r/^https:\/\/.*big_buck_bunny_720p_1mb\.mp4$/, vod.s3_cdn_url) end - @tag :integration test "sheduling upon vod creation" do example_video = "http://example.com/video.ts" stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) - {:ok, _vod} = Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: example_video}) - assert_enqueued worker: ProcessVod, queue: :default - Oban.drain_queue(queue: :default) # ProcessVod is what queues CreateS3Asset so we need to make it run - assert_enqueued worker: CreateS3Asset, queue: :default - end + {:ok, _vod} = + Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: example_video}) + + assert_enqueued(worker: ProcessVod, queue: :default) + # ProcessVod is what queues CreateS3Asset so we need to make it run + Oban.drain_queue(queue: :default) + assert_enqueued(worker: CreateS3Asset, queue: :default) + end @tag :integration test "not scheduled when origin_temp_input_url is missing" do - stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) {:ok, _vod} = Streams.create_vod(%{stream_id: stream.id}) - refute_enqueued worker: CreateS3Asset + refute_enqueued(worker: CreateS3Asset) end - end # @tag :acceptance # test "creating a new s3 asset (acceptance test)" do - # url = "http://38.242.193.246:8081/fixtures/2024-12-19T03-10-30Z.ts" # key = Cache.generate_filename(url) @@ -79,7 +81,6 @@ defmodule Bright.ObanWorkers.CreateS3AssetTest do # {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) # {:ok, vod} = Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: example_video}) - # perform_job(CreateS3Asset, %{input_url: example_video, vod_id: vod.id}) # {:ok, asset} = Oban.drain_queue(queue: :default) diff --git a/services/bright/test/bright/oban_workers/create_thumbnail_test.exs b/apps/bright/test/bright/oban_workers/create_thumbnail_test.exs similarity index 68% rename from services/bright/test/bright/oban_workers/create_thumbnail_test.exs rename to apps/bright/test/bright/oban_workers/create_thumbnail_test.exs index 05796c7..63b66ce 100644 --- a/services/bright/test/bright/oban_workers/create_thumbnail_test.exs +++ b/apps/bright/test/bright/oban_workers/create_thumbnail_test.exs @@ -4,54 +4,60 @@ defmodule Bright.ObanWorkers.CreateThumbnailTest do alias Bright.ObanWorkers.CreateThumbnail alias Bright.ObanWorkers.ProcessVod alias Bright.Streams + alias Bright.Streams.{ Stream, Vod } - - describe "CreateThumbnail" do - import Bright.StreamsFixtures @example_url "https://futureporn-b2.b-cdn.net/big_buck_bunny_720p_1mb.mp4" @tag :integration test "thumbnail creation" do stream = stream_fixture() - vod = vod_fixture(%{thumbnail_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) - {:ok, %Vod{thumbnail_url: thumbnail_url}} = perform_job(Bright.ObanWorkers.CreateThumbnail, %{vod_id: vod.id}) + + vod = + vod_fixture(%{ + thumbnail_url: nil, + stream_id: stream.id, + origin_temp_input_url: @example_url + }) + + {:ok, %Vod{thumbnail_url: thumbnail_url}} = + perform_job(Bright.ObanWorkers.CreateThumbnail, %{vod_id: vod.id}) + assert Regex.match?(~r/^https:\/\/.*\.png$/, thumbnail_url) end - - @tag :integration test "sheduling upon vod creation" do - example_video = "http://example.com/video.ts" stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) - {:ok, vod} = Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: example_video}) - assert stream.notes === "some notes" # sanity check, making sure the stream gets created + + {:ok, vod} = + Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: example_video}) + + # sanity check, making sure the stream gets created + assert stream.notes === "some notes" assert vod.origin_temp_input_url === example_video - assert_enqueued worker: ProcessVod, queue: :default - Oban.drain_queue(queue: :default) # We need to run ProcessVod Job because that is what queues CreateThumbnail - - assert_enqueued worker: CreateThumbnail, queue: :default + assert_enqueued(worker: ProcessVod, queue: :default) + # We need to run ProcessVod Job because that is what queues CreateThumbnail + Oban.drain_queue(queue: :default) + assert_enqueued(worker: CreateThumbnail, queue: :default) end - @tag :integration test "not scheduled when origin_temp_input_url is missing" do - stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) {:ok, _vod} = Streams.create_vod(%{stream_id: stream.id}) - refute_enqueued worker: CreateThumbnail + refute_enqueued(worker: CreateThumbnail) end @tag :integration @@ -63,11 +69,7 @@ defmodule Bright.ObanWorkers.CreateThumbnailTest do {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) {:ok, _vod} = Streams.create_vod(%{stream_id: stream.id}) - refute_enqueued worker: CreateThumbnail + refute_enqueued(worker: CreateThumbnail) end - - - - end end diff --git a/services/bright/test/bright/oban_workers/create_torrent_test.exs b/apps/bright/test/bright/oban_workers/create_torrent_test.exs similarity index 52% rename from services/bright/test/bright/oban_workers/create_torrent_test.exs rename to apps/bright/test/bright/oban_workers/create_torrent_test.exs index 0f6a265..0e9679a 100644 --- a/services/bright/test/bright/oban_workers/create_torrent_test.exs +++ b/apps/bright/test/bright/oban_workers/create_torrent_test.exs @@ -1,19 +1,14 @@ - defmodule Bright.CreateTorrentTest do + alias Bright.ObanWorkers.CreateS3Asset use Bright.DataCase use Oban.Testing, repo: Bright.Repo - require Logger - - alias Bright.ObanWorkers.{ProcessVod, CreateTorrent} alias Bright.Streams - alias Bright.Streams.{Stream,Vod} + alias Bright.Streams.{Stream, Vod} alias Bright.Torrents.Torrent - describe "CreateTorrent" do - import Bright.StreamsFixtures @test_video_url "https://futureporn-b2.b-cdn.net/test-fixture.ts" @@ -22,27 +17,33 @@ defmodule Bright.CreateTorrentTest do test "torrent creation" do stream = stream_fixture() vod = vod_fixture(%{torrent: nil, stream_id: stream.id, s3_cdn_url: @test_video_url}) - {:ok, %Torrent{} = torrent} = perform_job(Bright.ObanWorkers.CreateTorrent, %{vod_id: vod.id}) + + {:ok, %Torrent{} = torrent} = + perform_job(Bright.ObanWorkers.CreateTorrent, %{vod_id: vod.id}) + assert is_number(torrent.id) assert Regex.match?(~r/^magnet:/, torrent.magnet) assert Regex.match?(~r/([A-F\d]+)\b/i, torrent.info_hash_v1) assert Regex.match?(~r/([A-F\d]+)\b/i, torrent.info_hash_v2) end - @tag :integration - test "sheduling upon vod creation" do - stream_attrs = %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} - {:ok, %Stream{} = stream} = Streams.create_stream(stream_attrs) - {:ok, _vod} = Streams.create_vod(%{stream_id: stream.id, origin_temp_input_url: @test_video_url}) - assert_enqueued worker: ProcessVod, queue: :default - assert %{success: 1} = Oban.drain_queue(queue: :default) # ProcessVod is what queues CreateTorrent so we need to make it run - assert_enqueued [worker: CreateTorrent, queue: :default], 1000 + test "sheduling upon CreateS3Asset completion" do + stream = stream_fixture() + + vod = + vod_fixture(%{ + torrent: nil, + stream_id: stream.id, + s3_cdn_url: @test_video_url, + origin_temp_input_url: @test_video_url + }) + + # # CreateS3Asset is what queues CreateTorrent so we need to make it run + {:ok, _} = + perform_job(Bright.ObanWorkers.CreateS3Asset, %{vod_id: vod.id}) + + assert_enqueued(worker: CreateTorrent, queue: :default) end - - - end - - end diff --git a/services/bright/test/bright/oban_workers/process_vod_test.exs b/apps/bright/test/bright/oban_workers/process_vod_test.exs similarity index 64% rename from services/bright/test/bright/oban_workers/process_vod_test.exs rename to apps/bright/test/bright/oban_workers/process_vod_test.exs index 456cf41..0d7aad4 100644 --- a/services/bright/test/bright/oban_workers/process_vod_test.exs +++ b/apps/bright/test/bright/oban_workers/process_vod_test.exs @@ -1,25 +1,33 @@ defmodule Bright.ObanWorkers.ProcessVodTest do use Bright.DataCase use Oban.Testing, repo: Bright.Repo + alias Bright.ObanWorkers.{ CreateThumbnail, ProcessVod, CreateS3Asset, CreateHlsPlaylist } + alias Bright.Streams - alias Bright.Streams.{Stream,Vod} + alias Bright.Streams.{Stream, Vod} @example_url "https://example.com/my-video.mp4" describe "ProcessVod" do - import Bright.StreamsFixtures @tag :unit test "processing a new vod" do stream = stream_fixture() - vod = vod_fixture(%{thumbnail_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) + + vod = + vod_fixture(%{ + thumbnail_url: nil, + stream_id: stream.id, + origin_temp_input_url: @example_url + }) + :ok = perform_job(Bright.ObanWorkers.ProcessVod, %{vod_id: vod.id}) assert :ok end @@ -27,26 +35,32 @@ defmodule Bright.ObanWorkers.ProcessVodTest do @tag :integration test "schedule ProcessVod when a new vod is created" do stream = stream_fixture() + vod_fixture(%{thumbnail_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) - assert_enqueued worker: ProcessVod, queue: :default + + assert_enqueued(worker: ProcessVod, queue: :default) end @tag :integration test "schedule CreateThumbnail when thumbnail_url is nil" do stream = stream_fixture() + vod_fixture(%{thumbnail_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) - assert_enqueued worker: ProcessVod, queue: :default - assert %{success: 1} = Oban.drain_queue(queue: :default, with_safety: false) # ProcessVod is what queues CreateThumbnail so we need to make it run - assert_enqueued worker: CreateThumbnail, queue: :default + + assert_enqueued(worker: ProcessVod, queue: :default) + # ProcessVod is what queues CreateThumbnail so we need to make it run + assert %{success: 1} = Oban.drain_queue(queue: :default, with_safety: false) + assert_enqueued(worker: CreateThumbnail, queue: :default) end @tag :integration test "schedule CreateS3Asset when s3_cdn_url is nil" do stream = stream_fixture() vod_fixture(%{s3_cdn_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) - assert_enqueued worker: ProcessVod, queue: :default - assert %{success: 1} = Oban.drain_queue(queue: :default, with_safety: false) # ProcessVod is what queues CreateS3Asset so we need to make it run - assert_enqueued worker: CreateS3Asset, queue: :default + assert_enqueued(worker: ProcessVod, queue: :default) + # ProcessVod is what queues CreateS3Asset so we need to make it run + assert %{success: 1} = Oban.drain_queue(queue: :default, with_safety: false) + assert_enqueued(worker: CreateS3Asset, queue: :default) end @tag :integration @@ -54,10 +68,10 @@ defmodule Bright.ObanWorkers.ProcessVodTest do stream = stream_fixture() vod_fixture(%{playlist_url: nil, stream_id: stream.id, origin_temp_input_url: @example_url}) - assert_enqueued worker: ProcessVod, queue: :default - assert %{success: 1} = Oban.drain_queue(queue: :default, with_safety: false) # ProcessVod is what queues CreateHlsPlaylist so we need to make it run - assert_enqueued worker: CreateHlsPlaylist, queue: :default + assert_enqueued(worker: ProcessVod, queue: :default) + # ProcessVod is what queues CreateHlsPlaylist so we need to make it run + assert %{success: 1} = Oban.drain_queue(queue: :default, with_safety: false) + assert_enqueued(worker: CreateHlsPlaylist, queue: :default) end - end end diff --git a/services/bright/test/bright/patreon_entitlements_test.exs b/apps/bright/test/bright/patreon_entitlements_test.exs similarity index 93% rename from services/bright/test/bright/patreon_entitlements_test.exs rename to apps/bright/test/bright/patreon_entitlements_test.exs index 8a30d9c..e7d61fa 100644 --- a/services/bright/test/bright/patreon_entitlements_test.exs +++ b/apps/bright/test/bright/patreon_entitlements_test.exs @@ -8,7 +8,8 @@ defmodule Bright.PatreonEntitlementsTest do "included" => [ %{"type" => "tier", "id" => "8154170"}, %{"type" => "tier", "id" => "22529959"}, - %{"type" => "user", "id" => "12345"} # This should be ignored + # This should be ignored + %{"type" => "user", "id" => "12345"} ] } diff --git a/services/bright/test/bright/patrons_test.exs b/apps/bright/test/bright/patrons_test.exs similarity index 100% rename from services/bright/test/bright/patrons_test.exs rename to apps/bright/test/bright/patrons_test.exs diff --git a/services/bright/test/bright/platforms_test.exs b/apps/bright/test/bright/platforms_test.exs similarity index 94% rename from services/bright/test/bright/platforms_test.exs rename to apps/bright/test/bright/platforms_test.exs index 3db4a16..24c0b2f 100644 --- a/services/bright/test/bright/platforms_test.exs +++ b/apps/bright/test/bright/platforms_test.exs @@ -35,7 +35,12 @@ defmodule Bright.PlatformsTest do test "update_platform/2 with valid data updates the platform" do platform = platform_fixture() - update_attrs = %{name: "some updated name", url: "https://example.com", icon: "blah"} + + update_attrs = %{ + name: "some updated name", + url: "https://example.com", + icon: "blah" + } assert {:ok, %Platform{} = platform} = Platforms.update_platform(platform, update_attrs) assert platform.name == "some updated name" diff --git a/services/bright/test/bright/streams_test.exs b/apps/bright/test/bright/streams_test.exs similarity index 80% rename from services/bright/test/bright/streams_test.exs rename to apps/bright/test/bright/streams_test.exs index 88a5991..3215035 100644 --- a/services/bright/test/bright/streams_test.exs +++ b/apps/bright/test/bright/streams_test.exs @@ -35,7 +35,12 @@ defmodule Bright.StreamsTest do test "update_stream/2 with valid data updates the stream" do stream = stream_fixture() - update_attrs = %{date: ~U[2024-12-29 03:31:00Z], title: "some updated title", notes: "some updated notes"} + + update_attrs = %{ + date: ~U[2024-12-29 03:31:00Z], + title: "some updated title", + notes: "some updated notes" + } assert {:ok, %Stream{} = stream} = Streams.update_stream(stream, update_attrs) assert stream.date == ~U[2024-12-29 03:31:00Z] @@ -66,7 +71,13 @@ defmodule Bright.StreamsTest do import Bright.StreamsFixtures - @invalid_attrs %{stream_id: nil, s3_cdn_url: nil, s3_key: nil, s3_bucket: nil, mux_asset_id: nil, mux_playback_id: nil, ipfs_cid: nil, torrent: nil} + @invalid_attrs %{ + stream_id: nil, + s3_cdn_url: nil, + s3_key: nil, + s3_bucket: nil, + torrent: nil + } test "list_vods/0 returns all vods" do stream = stream_fixture() @@ -82,11 +93,17 @@ defmodule Bright.StreamsTest do test "create_vod/1 with valid data creates a vod" do stream = stream_fixture() - valid_attrs = %{stream_id: stream.id, s3_cdn_url: "some s3_cdn_url", s3_key: "some s3_key", s3_bucket: "some s3_bucket", mux_asset_id: "some mux_asset_id", mux_playback_id: "some mux_playback_id", ipfs_cid: "some ipfs_cid", torrent: "some torrent"} + + valid_attrs = %{ + stream_id: stream.id, + s3_cdn_url: "some s3_cdn_url", + s3_key: "some s3_key", + s3_bucket: "some s3_bucket", + torrent: "some torrent" + } assert {:ok, %Vod{} = vod} = Streams.create_vod(valid_attrs) assert vod.s3_cdn_url == "some s3_cdn_url" - assert vod.ipfs_cid == "some ipfs_cid" assert vod.torrent == "some torrent" end @@ -97,13 +114,17 @@ defmodule Bright.StreamsTest do test "update_vod/2 with valid data updates the vod" do stream = stream_fixture() vod = vod_fixture(%{stream_id: stream.id}) - update_attrs = %{s3_cdn_url: "some updated s3_cdn_url", s3_upload_id: "some updated s3_upload_id", s3_key: "some updated s3_key", s3_bucket: "some updated s3_bucket", mux_asset_id: "some updated mux_asset_id", mux_playback_id: "some updated mux_playback_id", ipfs_cid: "some updated ipfs_cid", torrent: "some updated torrent"} + + update_attrs = %{ + s3_cdn_url: "some updated s3_cdn_url", + s3_upload_id: "some updated s3_upload_id", + s3_key: "some updated s3_key", + s3_bucket: "some updated s3_bucket", + torrent: "some updated torrent" + } assert {:ok, %Vod{} = vod} = Streams.update_vod(vod, update_attrs) assert vod.s3_cdn_url == "some updated s3_cdn_url" - assert vod.mux_asset_id == "some updated mux_asset_id" - assert vod.mux_playback_id == "some updated mux_playback_id" - assert vod.ipfs_cid == "some updated ipfs_cid" assert vod.torrent == "some updated torrent" end @@ -125,13 +146,10 @@ defmodule Bright.StreamsTest do stream = stream_fixture() vod = vod_fixture(%{stream_id: stream.id}) assert %Ecto.Changeset{} = Streams.change_vod(vod) - - end end describe "processing" do - alias Bright.Streams import Bright.StreamsFixtures @@ -145,9 +163,17 @@ defmodule Bright.StreamsTest do # assert duration == 3 # end + @tag :integration + @tag :slow test "transmux_to_hls/2" do stream = stream_fixture() - vod = vod_fixture(%{stream_id: stream.id, playlist_url: nil, origin_temp_input_url: "https://futureporn-b2.b-cdn.net/test-fixture.ts"}) + + vod = + vod_fixture(%{ + stream_id: stream.id, + playlist_url: nil, + origin_temp_input_url: "https://futureporn-b2.b-cdn.net/test-fixture.ts" + }) callback = fn progress -> send(self(), {:progress, progress}) end {:ok, updated_vod} = Streams.transmux_to_hls(vod, callback) @@ -158,6 +184,5 @@ defmodule Bright.StreamsTest do assert_received {:progress, %{stage: :persisting, done: 1, total: _}} # assert_received {:progress, %{stage: :generating_thumbnail, done: 1, total: 1}} end - end end diff --git a/services/bright/test/bright/tags_test.exs b/apps/bright/test/bright/tags_test.exs similarity index 100% rename from services/bright/test/bright/tags_test.exs rename to apps/bright/test/bright/tags_test.exs diff --git a/services/bright/test/bright/tier_mapper_test.exs b/apps/bright/test/bright/tier_mapper_test.exs similarity index 99% rename from services/bright/test/bright/tier_mapper_test.exs rename to apps/bright/test/bright/tier_mapper_test.exs index 21d5824..ba99377 100644 --- a/services/bright/test/bright/tier_mapper_test.exs +++ b/apps/bright/test/bright/tier_mapper_test.exs @@ -9,7 +9,6 @@ defmodule Bright.TierMapperTest do end describe "get_tier_number/2" do - test "maps Patreon 'everyone' tier to 0" do assert TierMapper.get_tier_number("patreon", "-1") == 0 end @@ -62,5 +61,4 @@ defmodule Bright.TierMapperTest do assert TierMapper.get_tier_number("someotherplatform", "10620388") == 0 end end - end diff --git a/services/bright/test/bright/torrentfile_test.exs b/apps/bright/test/bright/torrentfile_test.exs similarity index 66% rename from services/bright/test/bright/torrentfile_test.exs rename to apps/bright/test/bright/torrentfile_test.exs index e4029b0..87a7baf 100644 --- a/services/bright/test/bright/torrentfile_test.exs +++ b/apps/bright/test/bright/torrentfile_test.exs @@ -11,6 +11,7 @@ defmodule Bright.TorrentfileTest do @test_comment "https://futureporn.net" describe "torrentfile" do + import Bright.StreamsFixtures test "version/0" do {:ok, ver_num} = Torrentfile.version() @@ -24,6 +25,10 @@ defmodule Bright.TorrentfileTest do end test "create/2" do + input_path = @test_ts_fixture + output_path = Cache.generate_filename("test", "torrent") + stream = stream_fixture() + vod = vod_fixture(%{stream_id: stream.id}) {:ok, output} = Torrentfile.create(vod, input_path) assert :ok assert is_binary(output.save_path) @@ -41,7 +46,17 @@ defmodule Bright.TorrentfileTest do source_url = @test_source_url web_seed_url = @test_web_seed_url meta_version = 3 - {:ok, output} = Torrentfile.create(input_path, output_path, tracker_url, comment, source_url, web_seed_url, meta_version) + + {:ok, output} = + Torrentfile.create( + input_path, + output_path, + tracker_url, + comment, + source_url, + web_seed_url, + meta_version + ) assert :ok assert is_binary(output.save_path) @@ -49,7 +64,6 @@ defmodule Bright.TorrentfileTest do assert is_binary(output.btih) assert is_binary(output.btmh) assert File.exists?(output_path) - end @tag :unit @@ -61,7 +75,8 @@ defmodule Bright.TorrentfileTest do """ expected = %{ - magnet: "magnet:?xt=urn:btih:157835a64d398fd63d83b5fd6dac5612bd60b6c6&xt=urn:btmh:12201bf9590518d84900ca3e4a88a7fe5f6a246deff2cf37d3acc24b7f64a8b0b572&dn=test-fixture.ts&tr=https%3A%2F%2Ftracker.futureporn.net%2Fannounce", + magnet: + "magnet:?xt=urn:btih:157835a64d398fd63d83b5fd6dac5612bd60b6c6&xt=urn:btmh:12201bf9590518d84900ca3e4a88a7fe5f6a246deff2cf37d3acc24b7f64a8b0b572&dn=test-fixture.ts&tr=https%3A%2F%2Ftracker.futureporn.net%2Fannounce", save_path: "/home/cj/Downloads/test-fixture.torrent", btih: "157835a64d398fd63d83b5fd6dac5612bd60b6c6", btmh: "12201bf9590518d84900ca3e4a88a7fe5f6a246deff2cf37d3acc24b7f64a8b0b572" @@ -70,7 +85,6 @@ defmodule Bright.TorrentfileTest do assert Torrentfile.parse_output(output) == expected end - @tag :unit test "returns nil values when output is empty" do assert Torrentfile.parse_output("") == %{magnet: nil, save_path: nil, btih: nil, btmh: nil} @@ -79,26 +93,49 @@ defmodule Bright.TorrentfileTest do @tag :unit test "handles missing save path" do output = "magnet:?xt=urn:btih:12345" - assert Torrentfile.parse_output(output) == %{magnet: "magnet:?xt=urn:btih:12345", save_path: nil, btih: "12345", btmh: nil} + + assert Torrentfile.parse_output(output) == %{ + magnet: "magnet:?xt=urn:btih:12345", + save_path: nil, + btih: "12345", + btmh: nil + } end @tag :unit test "handles missing magnet link" do output = "Torrent Save Path: /downloads/test.torrent" - assert Torrentfile.parse_output(output) == %{magnet: nil, save_path: "/downloads/test.torrent", btih: nil, btmh: nil} + + assert Torrentfile.parse_output(output) == %{ + magnet: nil, + save_path: "/downloads/test.torrent", + btih: nil, + btmh: nil + } end @tag :unit test "handles missing btih" do output = "Torrent Save Path: /downloads/test.torrent" - assert Torrentfile.parse_output(output) == %{btih: nil, magnet: nil, btmh: nil, save_path: "/downloads/test.torrent"} + + assert Torrentfile.parse_output(output) == %{ + btih: nil, + magnet: nil, + btmh: nil, + save_path: "/downloads/test.torrent" + } end @tag :unit test "handles missing btmh" do output = "Torrent Save Path: /downloads/test.torrent" - assert Torrentfile.parse_output(output) == %{btmh: nil, magnet: nil, btih: nil, save_path: "/downloads/test.torrent"} - end + assert Torrentfile.parse_output(output) == %{ + btmh: nil, + magnet: nil, + btih: nil, + save_path: "/downloads/test.torrent" + } + end end end diff --git a/services/bright/test/bright/torrents_test.exs b/apps/bright/test/bright/torrents_test.exs similarity index 53% rename from services/bright/test/bright/torrents_test.exs rename to apps/bright/test/bright/torrents_test.exs index 4d62ea5..6ac54d5 100644 --- a/services/bright/test/bright/torrents_test.exs +++ b/apps/bright/test/bright/torrents_test.exs @@ -2,15 +2,15 @@ defmodule Bright.TorrentsTest do use Bright.DataCase alias Bright.Torrents - alias Bright.{Downloader,Cache} + alias Bright.{Downloader, Cache} @test_fixture "https://futureporn-b2.b-cdn.net/test-fixture.ts" - describe "torrents" do alias Bright.Torrents.Torrent import Bright.TorrentsFixtures + import Bright.StreamsFixtures @invalid_attrs %{info_hash_v1: nil, info_hash_v2: nil, cdn_url: nil, magnet: nil} @@ -25,7 +25,12 @@ defmodule Bright.TorrentsTest do end test "create_torrent/1 with valid data creates a torrent" do - valid_attrs = %{info_hash_v1: "some info_hash_v1", info_hash_v2: "some info_hash_v2", cdn_url: "some cdn_url", magnet: "some magnet"} + valid_attrs = %{ + info_hash_v1: "some info_hash_v1", + info_hash_v2: "some info_hash_v2", + cdn_url: "some cdn_url", + magnet: "some magnet" + } assert {:ok, %Torrent{} = torrent} = Torrents.create_torrent(valid_attrs) assert torrent.info_hash_v1 == "some info_hash_v1" @@ -40,7 +45,13 @@ defmodule Bright.TorrentsTest do test "update_torrent/2 with valid data updates the torrent" do torrent = torrent_fixture() - update_attrs = %{info_hash_v1: "some updated info_hash_v1", info_hash_v2: "some updated info_hash_v2", cdn_url: "some updated cdn_url", magnet: "some updated magnet"} + + update_attrs = %{ + info_hash_v1: "some updated info_hash_v1", + info_hash_v2: "some updated info_hash_v2", + cdn_url: "some updated cdn_url", + magnet: "some updated magnet" + } assert {:ok, %Torrent{} = torrent} = Torrents.update_torrent(torrent, update_attrs) assert torrent.info_hash_v1 == "some updated info_hash_v1" @@ -66,31 +77,46 @@ defmodule Bright.TorrentsTest do assert %Ecto.Changeset{} = Torrents.change_torrent(torrent) end + # I think this is redundant. The torrentfile generation happens in torrentfile.ex, not torrents.ex + # @tag :integration + # test "generate_torrent_file/7" do + # stream = stream_fixture() + # vod = + # vod_fixture(%{ + # stream_id: stream.id, + # s3_cdn_url: "https://futureporn-b2.b-cdn.net/test-fixture.ts" + # }) - @tag :integration - test "generate_torrent_file/7" do - stream = stream_fixture() - vod = vod_fixture(%{stream_id: stream.id, s3_cdn_url: "https://futureporn-b2.b-cdn.net/test-fixture.ts"}) - input_path = Path.absname("./test/fixtures/test-fixture.ts") - output_path = Cache.generate_filename("test", "torrent") - tracker_url = "https://tracker.futureporn.net/announce" - source_url = "https://futureporn.net/vods/69" - comment = "https://futureporn.net" - web_seed_url = @test_fixture - meta_version = 3 - IO.puts "input_path=#{input_path} output_path=#{output_path} tracker_url=#{tracker_url} source_url=#{source_url}" - {:ok, %{local_path: local_path, magnet_link: magnet_link, basename: basename, info_hash_v1: info_hash_v1, info_hash_v2: info_hash_v2}} - = Torrent.create_torrent(input_path, output_path, web_seed_url, vod.id) - assert :ok - assert local_path === output_path - assert File.exists?(output_path) - assert String.starts_with?(magnet_link, "magnet:") - assert String.ends_with?(basename, ".torrent") - assert is_binary(info_hash_v1) - assert is_binary(info_hash_v2) - end + # input_path = Path.absname("./test/fixtures/test-fixture.ts") + # output_path = Cache.generate_filename("test", "torrent") + # tracker_url = "https://tracker.futureporn.net/announce" + # source_url = "https://futureporn.net/vods/69" + # comment = "https://futureporn.net" + # web_seed_url = @test_fixture + # meta_version = 3 + # Logger.debug( + # "input_path=#{input_path} output_path=#{output_path} tracker_url=#{tracker_url} source_url=#{source_url}" + # ) + # {:ok, + # %{ + # local_path: local_path, + # magnet_link: magnet_link, + # basename: basename, + # info_hash_v1: info_hash_v1, + # info_hash_v2: info_hash_v2 + # }} = + # Torrents.create_torrent(%{input_path, output_path, web_seed_url, vod.id}) + + # assert :ok + # assert local_path === output_path + # assert File.exists?(output_path) + # assert String.starts_with?(magnet_link, "magnet:") + # assert String.ends_with?(basename, ".torrent") + # assert is_binary(info_hash_v1) + # assert is_binary(info_hash_v2) + # end end end diff --git a/apps/bright/test/bright/tracker_test.exs b/apps/bright/test/bright/tracker_test.exs new file mode 100644 index 0000000..90529b4 --- /dev/null +++ b/apps/bright/test/bright/tracker_test.exs @@ -0,0 +1,36 @@ +defmodule Bright.TrackerTest do + use Bright.DataCase + + alias Bright.Tracker + alias Bright.URLEncoder + + describe "tracker" do + use ExUnit.Case, async: false + import Bright.StreamsFixtures + + # tails-amd64-6.10-img (BT info_hash v1) + @info_hash_v1_fixture "07b4516336e4afe9232c73bc312642590a7d7e95" + + @tag :integration + test "whitelist_info_hash/1 using a string info_hash" do + {:ok, result} = Tracker.whitelist_info_hash(@info_hash_v1_fixture) + assert :ok + assert result === "Successfully added to whitelist" + end + + @tag :integration + test "announce_torrent/1 using a string info_hash" do + case Tracker.announce_torrent(@info_hash_v1_fixture) do + {:ok, body} -> + # Adjust based on expected structure + assert is_map(body) or is_list(body) + + {:error, "Requested download is not authorized for use with this tracker."} -> + assert true + + other -> + flunk("Unexpected result: #{inspect(other)}") + end + end + end +end diff --git a/services/bright/test/bright/uploads_test.exs b/apps/bright/test/bright/uploads_test.exs similarity index 76% rename from services/bright/test/bright/uploads_test.exs rename to apps/bright/test/bright/uploads_test.exs index f202a25..fd4a497 100644 --- a/services/bright/test/bright/uploads_test.exs +++ b/apps/bright/test/bright/uploads_test.exs @@ -5,7 +5,6 @@ defmodule Bright.UploadsTest do @test_file_path "./test_download.txt" @s3_bucket Application.compile_env(:ex_aws, [:s3, :bucket]) - describe "download_file/2" do @tag :acceptance @tag timeout: :infinity @@ -14,7 +13,6 @@ defmodule Bright.UploadsTest do assert {:ok, _res} = Bright.Uploads.download_file(@test_url, @test_file_path) assert File.exists?(@test_file_path) - {:ok, stat} = File.stat(@test_file_path) assert stat.size > 0, "File is empty" @@ -38,11 +36,17 @@ defmodule Bright.UploadsTest do @tag :acceptance test "uploads a file to S3 successfully" do basename = "random.txt" - random_string = for _ <- 1..12, into: "", do: <> + + random_string = + for _ <- 1..12, + into: "", + do: + <> + unique_filename = "#{random_string}-#{basename}" - - assert {:ok, %{status_code: 200}} = Bright.Uploads.upload_file_to_s3(@test_file_path, @s3_bucket, unique_filename) + assert {:ok, %{status_code: 200}} = + Bright.Uploads.upload_file_to_s3(@test_file_path, @s3_bucket, unique_filename) # Optionally verify the file exists in S3 (requires an S3 client) {:ok, %{status_code: 200}} = @@ -56,7 +60,12 @@ defmodule Bright.UploadsTest do @tag :acceptance test "returns an error for a nonexistent file" do - assert {:error, :enoent} = Bright.Uploads.upload_file_to_s3("nonexistent.txt", @s3_bucket, "test/nonexistant.txt") + assert {:error, :enoent} = + Bright.Uploads.upload_file_to_s3( + "nonexistent.txt", + @s3_bucket, + "test/nonexistant.txt" + ) end end end diff --git a/apps/bright/test/bright/users_test.exs b/apps/bright/test/bright/users_test.exs new file mode 100644 index 0000000..42005a4 --- /dev/null +++ b/apps/bright/test/bright/users_test.exs @@ -0,0 +1,8 @@ +defmodule Bright.UsersTest do + use Bright.DataCase + + alias Bright.Users + + import Bright.UsersFixtures + alias Bright.Users.{User, UserToken} +end diff --git a/services/bright/test/bright/vtubers_test.exs b/apps/bright/test/bright/vtubers_test.exs similarity index 61% rename from services/bright/test/bright/vtubers_test.exs rename to apps/bright/test/bright/vtubers_test.exs index abc3f5d..1eb5c5a 100644 --- a/services/bright/test/bright/vtubers_test.exs +++ b/apps/bright/test/bright/vtubers_test.exs @@ -8,7 +8,34 @@ defmodule Bright.VtubersTest do import Bright.VtubersFixtures - @invalid_attrs %{image: nil, slug: nil, display_name: nil, chaturbate: nil, twitter: nil, patreon: nil, twitch: nil, tiktok: nil, onlyfans: nil, youtube: nil, linktree: nil, carrd: nil, fansly: nil, pornhub: nil, discord: nil, reddit: nil, throne: nil, instagram: nil, facebook: nil, merch: nil, description_1: nil, description_2: nil, theme_color: nil, fansly_id: nil, chaturbate_id: nil, twitter_id: nil} + @invalid_attrs %{ + image: nil, + slug: nil, + display_name: nil, + chaturbate: nil, + twitter: nil, + patreon: nil, + twitch: nil, + tiktok: nil, + onlyfans: nil, + youtube: nil, + linktree: nil, + carrd: nil, + fansly: nil, + pornhub: nil, + discord: nil, + reddit: nil, + throne: nil, + instagram: nil, + facebook: nil, + merch: nil, + description_1: nil, + description_2: nil, + theme_color: nil, + fansly_id: nil, + chaturbate_id: nil, + twitter_id: nil + } test "list_vtubers/0 returns all vtubers" do vtuber = vtuber_fixture() @@ -21,7 +48,34 @@ defmodule Bright.VtubersTest do end test "create_vtuber/1 with valid data creates a vtuber" do - valid_attrs = %{image: "some image", slug: "some slug", display_name: "some display_name", chaturbate: "some chaturbate", twitter: "some twitter", patreon: "some patreon", twitch: "some twitch", tiktok: "some tiktok", onlyfans: "some onlyfans", youtube: "some youtube", linktree: "some linktree", carrd: "some carrd", fansly: "some fansly", pornhub: "some pornhub", discord: "some discord", reddit: "some reddit", throne: "some throne", instagram: "some instagram", facebook: "some facebook", merch: "some merch", description_1: "some description_1", description_2: "some description_2", theme_color: "some theme_color", fansly_id: "some fansly_id", chaturbate_id: "some chaturbate_id", twitter_id: "some twitter_id"} + valid_attrs = %{ + image: "some image", + slug: "some slug", + display_name: "some display_name", + chaturbate: "some chaturbate", + twitter: "some twitter", + patreon: "some patreon", + twitch: "some twitch", + tiktok: "some tiktok", + onlyfans: "some onlyfans", + youtube: "some youtube", + linktree: "some linktree", + carrd: "some carrd", + fansly: "some fansly", + pornhub: "some pornhub", + discord: "some discord", + reddit: "some reddit", + throne: "some throne", + instagram: "some instagram", + facebook: "some facebook", + merch: "some merch", + description_1: "some description_1", + description_2: "some description_2", + theme_color: "some theme_color", + fansly_id: "some fansly_id", + chaturbate_id: "some chaturbate_id", + twitter_id: "some twitter_id" + } assert {:ok, %Vtuber{} = vtuber} = Vtubers.create_vtuber(valid_attrs) assert vtuber.image == "some image" @@ -52,10 +106,37 @@ defmodule Bright.VtubersTest do assert vtuber.twitter_id == "some twitter_id" end - test "update_vtuber/2 with valid data updates the vtuber" do vtuber = vtuber_fixture() - update_attrs = %{image: "some updated image", slug: "some updated slug", display_name: "some updated display_name", chaturbate: "some updated chaturbate", twitter: "some updated twitter", patreon: "some updated patreon", twitch: "some updated twitch", tiktok: "some updated tiktok", onlyfans: "some updated onlyfans", youtube: "some updated youtube", linktree: "some updated linktree", carrd: "some updated carrd", fansly: "some updated fansly", pornhub: "some updated pornhub", discord: "some updated discord", reddit: "some updated reddit", throne: "some updated throne", instagram: "some updated instagram", facebook: "some updated facebook", merch: "some updated merch", description_1: "some updated description_1", description_2: "some updated description_2", theme_color: "some updated theme_color", fansly_id: "some updated fansly_id", chaturbate_id: "some updated chaturbate_id", twitter_id: "some updated twitter_id"} + + update_attrs = %{ + image: "some updated image", + slug: "some updated slug", + display_name: "some updated display_name", + chaturbate: "some updated chaturbate", + twitter: "some updated twitter", + patreon: "some updated patreon", + twitch: "some updated twitch", + tiktok: "some updated tiktok", + onlyfans: "some updated onlyfans", + youtube: "some updated youtube", + linktree: "some updated linktree", + carrd: "some updated carrd", + fansly: "some updated fansly", + pornhub: "some updated pornhub", + discord: "some updated discord", + reddit: "some updated reddit", + throne: "some updated throne", + instagram: "some updated instagram", + facebook: "some updated facebook", + merch: "some updated merch", + description_1: "some updated description_1", + description_2: "some updated description_2", + theme_color: "some updated theme_color", + fansly_id: "some updated fansly_id", + chaturbate_id: "some updated chaturbate_id", + twitter_id: "some updated twitter_id" + } assert {:ok, %Vtuber{} = vtuber} = Vtubers.update_vtuber(vtuber, update_attrs) assert vtuber.image == "some updated image" @@ -103,11 +184,8 @@ defmodule Bright.VtubersTest do assert %Ecto.Changeset{} = Vtubers.change_vtuber(vtuber) end - - test "create_vtuber/1 with invalid data returns error changeset" do assert {:error, %Ecto.Changeset{}} = Vtubers.create_vtuber(@invalid_attrs) end - end end diff --git a/services/bright/test/bright_web/controllers/auth_controller_test.exs b/apps/bright/test/bright_web/controllers/auth_controller_test.exs similarity index 58% rename from services/bright/test/bright_web/controllers/auth_controller_test.exs rename to apps/bright/test/bright_web/controllers/auth_controller_test.exs index a4c1977..b5f2242 100644 --- a/services/bright/test/bright_web/controllers/auth_controller_test.exs +++ b/apps/bright/test/bright_web/controllers/auth_controller_test.exs @@ -1,11 +1,10 @@ defmodule BrightWeb.AuthControllerTest do - use BrightWeb.ConnCase - alias Bright.User + alias Bright.Users describe "patreon auth" do - test "successful auth on existing person signs you in", %{conn: conn} do - person = insert(:person, patreon_handle: "joeblow") + test "successful auth on existing user signs you in", %{conn: conn} do + user = Bright.Repo.insert!(%Bright.Users.User{patreon_id: 1234}) conn = conn @@ -13,24 +12,25 @@ defmodule BrightWeb.AuthControllerTest do |> get("/auth/patreon/callback") assert redirected_to(conn) == Routes.home_path(conn, :show) - assert get_session(conn, "id") == person.id + assert get_session(conn, "id") == user.id end - test "successful auth on new person sends you to join", %{conn: conn} do + test "successful auth on new user sends you to profile", %{conn: conn} do conn = conn |> assign(:ueberauth_auth, %{ provider: :patreon, - info: %{name: "Joe Blow", nickname: "joeblow"} + info: %{name: "Joe Blow", handle: "joeblow"}, + uid: 1234 }) |> get("/auth/patreon/callback") assert redirected_to(conn) == - Routes.person_path(conn, :join, %{ - name: "Joe Blow", - handle: "joeblow", - patreon_handle: "joeblow" - }) + Routes.user_path(conn, :profile, %{ + name: "Joe Blow", + handle: "joeblow", + patreon_handle: "joeblow" + }) end test "failed auth doesn't sign you in", %{conn: conn} do diff --git a/services/bright/test/bright_web/controllers/error_html_test.exs b/apps/bright/test/bright_web/controllers/error_html_test.exs similarity index 100% rename from services/bright/test/bright_web/controllers/error_html_test.exs rename to apps/bright/test/bright_web/controllers/error_html_test.exs diff --git a/services/bright/test/bright_web/controllers/error_json_test.exs b/apps/bright/test/bright_web/controllers/error_json_test.exs similarity index 100% rename from services/bright/test/bright_web/controllers/error_json_test.exs rename to apps/bright/test/bright_web/controllers/error_json_test.exs diff --git a/services/bright/test/bright_web/controllers/page_controller_test.exs b/apps/bright/test/bright_web/controllers/page_controller_test.exs similarity index 62% rename from services/bright/test/bright_web/controllers/page_controller_test.exs rename to apps/bright/test/bright_web/controllers/page_controller_test.exs index 3943091..49c3a1d 100644 --- a/services/bright/test/bright_web/controllers/page_controller_test.exs +++ b/apps/bright/test/bright_web/controllers/page_controller_test.exs @@ -3,6 +3,6 @@ defmodule BrightWeb.PageControllerTest do test "GET /", %{conn: conn} do conn = get(conn, ~p"/") - assert html_response(conn, 200) =~ "Peace of mind from prototype to production" + assert html_response(conn, 200) =~ "Futureporn.net" end end diff --git a/services/bright/test/bright_web/controllers/platform_controller_test.exs b/apps/bright/test/bright_web/controllers/platform_controller_test.exs similarity index 100% rename from services/bright/test/bright_web/controllers/platform_controller_test.exs rename to apps/bright/test/bright_web/controllers/platform_controller_test.exs diff --git a/services/bright/test/bright_web/controllers/stream_controller_test.exs b/apps/bright/test/bright_web/controllers/stream_controller_test.exs similarity index 95% rename from services/bright/test/bright_web/controllers/stream_controller_test.exs rename to apps/bright/test/bright_web/controllers/stream_controller_test.exs index a6e3855..63859cc 100644 --- a/services/bright/test/bright_web/controllers/stream_controller_test.exs +++ b/apps/bright/test/bright_web/controllers/stream_controller_test.exs @@ -4,7 +4,11 @@ defmodule BrightWeb.StreamControllerTest do import Bright.StreamsFixtures @create_attrs %{date: ~U[2024-12-28 03:31:00Z], title: "some title", notes: "some notes"} - @update_attrs %{date: ~U[2024-12-29 03:31:00Z], title: "some updated title", notes: "some updated notes"} + @update_attrs %{ + date: ~U[2024-12-29 03:31:00Z], + title: "some updated title", + notes: "some updated notes" + } @invalid_attrs %{date: nil, title: nil, notes: nil} describe "index" do diff --git a/services/bright/test/bright_web/controllers/tag_controller_test.exs b/apps/bright/test/bright_web/controllers/tag_controller_test.exs similarity index 100% rename from services/bright/test/bright_web/controllers/tag_controller_test.exs rename to apps/bright/test/bright_web/controllers/tag_controller_test.exs diff --git a/services/bright/test/bright_web/controllers/torrent_controller_test.exs b/apps/bright/test/bright_web/controllers/torrent_controller_test.exs similarity index 87% rename from services/bright/test/bright_web/controllers/torrent_controller_test.exs rename to apps/bright/test/bright_web/controllers/torrent_controller_test.exs index 2f9cc0e..a0bdf7e 100644 --- a/services/bright/test/bright_web/controllers/torrent_controller_test.exs +++ b/apps/bright/test/bright_web/controllers/torrent_controller_test.exs @@ -3,8 +3,18 @@ defmodule BrightWeb.TorrentControllerTest do import Bright.TorrentsFixtures - @create_attrs %{info_hash_v1: "some info_hash_v1", info_hash_v2: "some info_hash_v2", cdn_url: "some cdn_url", magnet: "some magnet"} - @update_attrs %{info_hash_v1: "some updated info_hash_v1", info_hash_v2: "some updated info_hash_v2", cdn_url: "some updated cdn_url", magnet: "some updated magnet"} + @create_attrs %{ + info_hash_v1: "some info_hash_v1", + info_hash_v2: "some info_hash_v2", + cdn_url: "some cdn_url", + magnet: "some magnet" + } + @update_attrs %{ + info_hash_v1: "some updated info_hash_v1", + info_hash_v2: "some updated info_hash_v2", + cdn_url: "some updated cdn_url", + magnet: "some updated magnet" + } @invalid_attrs %{info_hash_v1: nil, info_hash_v2: nil, cdn_url: nil, magnet: nil} describe "index" do diff --git a/services/bright/test/bright_web/controllers/url_controller_test.exs b/apps/bright/test/bright_web/controllers/url_controller_test.exs similarity index 100% rename from services/bright/test/bright_web/controllers/url_controller_test.exs rename to apps/bright/test/bright_web/controllers/url_controller_test.exs diff --git a/services/bright/test/bright_web/controllers/vod_controller_test.exs b/apps/bright/test/bright_web/controllers/vod_controller_test.exs similarity index 73% rename from services/bright/test/bright_web/controllers/vod_controller_test.exs rename to apps/bright/test/bright_web/controllers/vod_controller_test.exs index f788cc3..297bb11 100644 --- a/services/bright/test/bright_web/controllers/vod_controller_test.exs +++ b/apps/bright/test/bright_web/controllers/vod_controller_test.exs @@ -3,9 +3,33 @@ defmodule BrightWeb.VodControllerTest do import Bright.StreamsFixtures - @create_attrs %{s3_cdn_url: "some s3_cdn_url", s3_upload_id: "some s3_upload_id", s3_key: "some s3_key", s3_bucket: "some s3_bucket", mux_asset_id: "some mux_asset_id", mux_playback_id: "some mux_playback_id", ipfs_cid: "some ipfs_cid", torrent: "some torrent"} - @update_attrs %{s3_cdn_url: "some updated s3_cdn_url", s3_upload_id: "some updated s3_upload_id", s3_key: "some updated s3_key", s3_bucket: "some updated s3_bucket", mux_asset_id: "some updated mux_asset_id", mux_playback_id: "some updated mux_playback_id", ipfs_cid: "some updated ipfs_cid", torrent: "some updated torrent"} - @invalid_attrs %{s3_cdn_url: nil, s3_upload_id: nil, s3_key: nil, s3_bucket: nil, mux_asset_id: nil, mux_playback_id: nil, ipfs_cid: nil, torrent: nil} + @create_attrs %{ + s3_cdn_url: "some s3_cdn_url", + s3_upload_id: "some s3_upload_id", + s3_key: "some s3_key", + s3_bucket: "some s3_bucket", + mux_asset_id: "some mux_asset_id", + mux_playback_id: "some mux_playback_id", + torrent: "some torrent" + } + @update_attrs %{ + s3_cdn_url: "some updated s3_cdn_url", + s3_upload_id: "some updated s3_upload_id", + s3_key: "some updated s3_key", + s3_bucket: "some updated s3_bucket", + mux_asset_id: "some updated mux_asset_id", + mux_playback_id: "some updated mux_playback_id", + torrent: "some updated torrent" + } + @invalid_attrs %{ + s3_cdn_url: nil, + s3_upload_id: nil, + s3_key: nil, + s3_bucket: nil, + mux_asset_id: nil, + mux_playback_id: nil, + torrent: nil + } describe "index" do test "lists all vods", %{conn: conn} do diff --git a/services/bright/test/bright_web/controllers/vtuber_controller_test.exs b/apps/bright/test/bright_web/controllers/vtuber_controller_test.exs similarity index 50% rename from services/bright/test/bright_web/controllers/vtuber_controller_test.exs rename to apps/bright/test/bright_web/controllers/vtuber_controller_test.exs index 0a895a3..50efb86 100644 --- a/services/bright/test/bright_web/controllers/vtuber_controller_test.exs +++ b/apps/bright/test/bright_web/controllers/vtuber_controller_test.exs @@ -1,11 +1,16 @@ defmodule BrightWeb.VtuberControllerTest do + alias Bright.Users.User + alias BrightWeb.AuthController + use BrightWeb.ConnCase import Bright.VtubersFixtures + require Logger @create_attrs %{} @update_attrs %{} @invalid_attrs %{} + @only_admins_error "Only admins can do that." describe "index" do test "lists all vtubers", %{conn: conn} do @@ -14,15 +19,32 @@ defmodule BrightWeb.VtuberControllerTest do end end - describe "new vtuber" do + describe "new vtuber as admin" do + setup [:create_admin] + test "renders form", %{conn: conn} do conn = get(conn, ~p"/vtubers/new") assert html_response(conn, 200) =~ "New Vtuber" end end + describe "new vtuber as user" do + setup [:create_user] + + test "redirects to /vtubers", %{conn: conn} do + conn = get(conn, ~p"/vtubers/new") + assert html_response(conn, 302) =~ "" + assert Phoenix.Flash.get(conn.assigns.flash, :error) == @only_admins_error + assert redirected_to(conn) == ~p"/vtubers" + end + end + describe "create vtuber" do - test "redirects to show when data is valid", %{conn: conn} do + setup [:create_admin] + + test "redirects to :show when data is valid", %{conn: conn} do + Logger.debug("create vtuber conn=#{inspect(conn)}") + conn = post(conn, ~p"/vtubers", vtuber: @create_attrs) assert %{id: id} = redirected_params(conn) @@ -32,25 +54,38 @@ defmodule BrightWeb.VtuberControllerTest do assert html_response(conn, 200) =~ "Vtuber #{id}" end - test "renders errors when data is invalid", %{conn: conn} do + test "renders errors when data is invalid", %{conn: conn, user: user} do conn = post(conn, ~p"/vtubers", vtuber: @invalid_attrs) assert html_response(conn, 200) =~ "New Vtuber" end end - describe "edit vtuber" do - setup [:create_vtuber] + describe "edit vtuber as admin" do + setup [:create_vtuber, :create_admin] test "renders form for editing chosen vtuber", %{conn: conn, vtuber: vtuber} do + Logger.debug(inspect(conn)) + conn = get(conn, ~p"/vtubers/#{vtuber}/edit") assert html_response(conn, 200) =~ "Edit Vtuber" end end - describe "update vtuber" do - setup [:create_vtuber] + describe "edit vtuber as user" do + setup [:create_vtuber, :create_user] - test "redirects when data is valid", %{conn: conn, vtuber: vtuber} do + test "redirects to login", %{conn: conn, vtuber: vtuber} do + conn = get(conn, ~p"/vtubers/#{vtuber}/edit") + assert html_response(conn, 302) + assert conn.halted + end + end + + describe "update vtuber as admin" do + setup [:create_vtuber, :create_admin] + + test "redirects when data is valid", %{conn: conn, user: user, vtuber: vtuber} do + Logger.debug(">>. redirect conn=#{inspect(conn)}, user=#{inspect(user)}") conn = put(conn, ~p"/vtubers/#{vtuber}", vtuber: @update_attrs) assert redirected_to(conn) == ~p"/vtubers/#{vtuber}" @@ -64,8 +99,23 @@ defmodule BrightWeb.VtuberControllerTest do end end + describe "update vtuber as user" do + setup [:create_vtuber, :create_user] + + test "redirects when user is not an admin", %{conn: conn, user: user, vtuber: vtuber} do + Logger.debug("hello here is user=#{inspect(user)}") + + conn = get(conn, ~p"/vtubers/#{vtuber}") + assert conn.halted + + assert redirected_to(conn) == ~p"/vtubers/#{vtuber}" + + assert Phoenix.Flash.get(conn.assigns.flash, :error) == @only_admins_error + end + end + describe "delete vtuber" do - setup [:create_vtuber] + setup [:create_vtuber, :create_admin] test "deletes chosen vtuber", %{conn: conn, vtuber: vtuber} do conn = delete(conn, ~p"/vtubers/#{vtuber}") diff --git a/services/bright/test/fixtures/123-test-fixture.ts b/apps/bright/test/fixtures/123-test-fixture.ts similarity index 100% rename from services/bright/test/fixtures/123-test-fixture.ts rename to apps/bright/test/fixtures/123-test-fixture.ts diff --git a/services/bright/test/fixtures/SampleVideo_1280x720_1mb.mp4 b/apps/bright/test/fixtures/SampleVideo_1280x720_1mb.mp4 similarity index 100% rename from services/bright/test/fixtures/SampleVideo_1280x720_1mb.mp4 rename to apps/bright/test/fixtures/SampleVideo_1280x720_1mb.mp4 diff --git a/services/bright/test/fixtures/test-fixture.ts b/apps/bright/test/fixtures/test-fixture.ts similarity index 100% rename from services/bright/test/fixtures/test-fixture.ts rename to apps/bright/test/fixtures/test-fixture.ts diff --git a/services/bright/test/fixtures/thumb.jpg b/apps/bright/test/fixtures/thumb.jpg similarity index 100% rename from services/bright/test/fixtures/thumb.jpg rename to apps/bright/test/fixtures/thumb.jpg diff --git a/services/bright/test/fixtures/thumb2.jpg b/apps/bright/test/fixtures/thumb2.jpg similarity index 100% rename from services/bright/test/fixtures/thumb2.jpg rename to apps/bright/test/fixtures/thumb2.jpg diff --git a/apps/bright/test/support/conn_case.ex b/apps/bright/test/support/conn_case.ex new file mode 100644 index 0000000..7f5ca5d --- /dev/null +++ b/apps/bright/test/support/conn_case.ex @@ -0,0 +1,58 @@ +defmodule BrightWeb.ConnCase do + @moduledoc """ + This module defines the test case to be used by + tests that require setting up a connection. + + Such tests rely on `Phoenix.ConnTest` and also + import other functionality to make it easier + to build common data structures and query the data layer. + + Finally, if the test case interacts with the database, + we enable the SQL sandbox, so changes done to the database + are reverted at the end of every test. If you are using + PostgreSQL, you can even run database tests asynchronously + by setting `use BrightWeb.ConnCase, async: true`, although + this option is not recommended for other databases. + """ + + import Bright.UsersFixtures + + use ExUnit.CaseTemplate + + using do + quote do + # The default endpoint for testing + @endpoint BrightWeb.Endpoint + + use BrightWeb, :verified_routes + + # Import conveniences for testing with connections + import Plug.Conn + import Phoenix.ConnTest + import BrightWeb.ConnCase + end + end + + setup tags do + Bright.DataCase.setup_sandbox(tags) + {:ok, conn: Phoenix.ConnTest.build_conn()} + end + + def login_user(conn, user) do + conn + |> Plug.Test.init_test_session(%{id: user.id}) + |> Plug.Conn.assign(:current_user, user) + end + + def create_admin(%{conn: conn}) do + user = user_fixture(%{role: "admin", patreon_id: 1234}) + conn = login_user(conn, user) + {:ok, user: user, conn: conn} + end + + def create_user(%{conn: conn}) do + user = user_fixture(%{role: "user", patreon_id: 4321}) + conn = login_user(conn, user) + {:ok, user: user, conn: conn} + end +end diff --git a/services/bright/test/support/data_case.ex b/apps/bright/test/support/data_case.ex similarity index 100% rename from services/bright/test/support/data_case.ex rename to apps/bright/test/support/data_case.ex diff --git a/services/bright/test/support/fixtures/accounts_fixtures.ex b/apps/bright/test/support/fixtures/accounts_fixtures.ex similarity index 79% rename from services/bright/test/support/fixtures/accounts_fixtures.ex rename to apps/bright/test/support/fixtures/accounts_fixtures.ex index 487cb72..c3bb54b 100644 --- a/services/bright/test/support/fixtures/accounts_fixtures.ex +++ b/apps/bright/test/support/fixtures/accounts_fixtures.ex @@ -14,15 +14,6 @@ defmodule Bright.AccountsFixtures do }) end - def user_fixture(attrs \\ %{}) do - {:ok, user} = - attrs - |> valid_user_attributes() - |> Bright.Accounts.register_user() - - user - end - def extract_user_token(fun) do {:ok, captured_email} = fun.(&"[TOKEN]#{&1}[TOKEN]") [_, token | _] = String.split(captured_email.text_body, "[TOKEN]") diff --git a/services/bright/test/support/fixtures/patrons_fixtures.ex b/apps/bright/test/support/fixtures/patrons_fixtures.ex similarity index 100% rename from services/bright/test/support/fixtures/patrons_fixtures.ex rename to apps/bright/test/support/fixtures/patrons_fixtures.ex diff --git a/apps/bright/test/support/fixtures/platforms_fixtures.ex b/apps/bright/test/support/fixtures/platforms_fixtures.ex new file mode 100644 index 0000000..1d991cf --- /dev/null +++ b/apps/bright/test/support/fixtures/platforms_fixtures.ex @@ -0,0 +1,24 @@ +defmodule Bright.PlatformsFixtures do + @moduledoc """ + This module defines test helpers for creating + entities via the `Bright.Platforms` context. + """ + + def platform_fixture(attrs \\ %{}) + + @doc """ + Generate a platform. + """ + def platform_fixture(attrs) do + {:ok, platform} = + attrs + |> Enum.into(%{ + icon: "some icon", + name: "some name", + url: "some url" + }) + |> Bright.Platforms.create_platform() + + platform + end +end diff --git a/services/bright/test/support/fixtures/streams_fixtures.ex b/apps/bright/test/support/fixtures/streams_fixtures.ex similarity index 95% rename from services/bright/test/support/fixtures/streams_fixtures.ex rename to apps/bright/test/support/fixtures/streams_fixtures.ex index 1b6fe86..89a5a08 100644 --- a/services/bright/test/support/fixtures/streams_fixtures.ex +++ b/apps/bright/test/support/fixtures/streams_fixtures.ex @@ -27,16 +27,13 @@ defmodule Bright.StreamsFixtures do {:ok, vod} = attrs |> Enum.into(%{ - ipfs_cid: "some ipfs_cid", s3_cdn_url: "some s3_cdn_url", torrent: "some torrent", playlist_url: "some playlist_url", thumbnail_url: "some thumbnail_url" }) |> Bright.Streams.create_vod() + vod end - - - end diff --git a/services/bright/test/support/fixtures/tags_fixtures.ex b/apps/bright/test/support/fixtures/tags_fixtures.ex similarity index 99% rename from services/bright/test/support/fixtures/tags_fixtures.ex rename to apps/bright/test/support/fixtures/tags_fixtures.ex index c942580..46df979 100644 --- a/services/bright/test/support/fixtures/tags_fixtures.ex +++ b/apps/bright/test/support/fixtures/tags_fixtures.ex @@ -4,7 +4,6 @@ defmodule Bright.TagsFixtures do entities via the `Bright.Tags` context. """ - @doc """ Generate a unique tag name. """ diff --git a/services/bright/test/support/fixtures/torrents_fixtures.ex b/apps/bright/test/support/fixtures/torrents_fixtures.ex similarity index 100% rename from services/bright/test/support/fixtures/torrents_fixtures.ex rename to apps/bright/test/support/fixtures/torrents_fixtures.ex diff --git a/services/bright/test/support/fixtures/urls_fixtures.ex b/apps/bright/test/support/fixtures/urls_fixtures.ex similarity index 100% rename from services/bright/test/support/fixtures/urls_fixtures.ex rename to apps/bright/test/support/fixtures/urls_fixtures.ex diff --git a/services/bright/test/support/fixtures/users_fixtures.ex b/apps/bright/test/support/fixtures/users_fixtures.ex similarity index 100% rename from services/bright/test/support/fixtures/users_fixtures.ex rename to apps/bright/test/support/fixtures/users_fixtures.ex diff --git a/services/bright/test/support/fixtures/vtubers_fixtures.ex b/apps/bright/test/support/fixtures/vtubers_fixtures.ex similarity index 99% rename from services/bright/test/support/fixtures/vtubers_fixtures.ex rename to apps/bright/test/support/fixtures/vtubers_fixtures.ex index 4caed1f..a0d4c00 100644 --- a/services/bright/test/support/fixtures/vtubers_fixtures.ex +++ b/apps/bright/test/support/fixtures/vtubers_fixtures.ex @@ -42,5 +42,4 @@ defmodule Bright.VtubersFixtures do vtuber end - end diff --git a/services/bright/test/test_helper.exs b/apps/bright/test/test_helper.exs similarity index 68% rename from services/bright/test/test_helper.exs rename to apps/bright/test/test_helper.exs index ab163d0..f56983f 100644 --- a/services/bright/test/test_helper.exs +++ b/apps/bright/test/test_helper.exs @@ -1,2 +1,3 @@ ExUnit.start() +Logger.configure(level: :debug) Ecto.Adapters.SQL.Sandbox.mode(Bright.Repo, :manual) diff --git a/config/deploy.yml b/config/deploy.yml index c32c6c3..ac1aea6 100644 --- a/config/deploy.yml +++ b/config/deploy.yml @@ -97,6 +97,7 @@ accessories: opentracker: image: gitea.futureporn.net/futureporn/opentracker:latest host: 45.76.57.101 + port: "127.0.0.1:8666:8666" env: clear: WHITELIST_FEED_URL: https://bright.futureporn.net/torrents @@ -109,8 +110,7 @@ accessories: app_port: 8666 host: tracker.futureporn.net healthcheck: - path: / - port: "127.0.0.1:8666:8666" + path: /stats volumes: - opentracker-etc:/etc/opentracker - opentracker-var:/var/run/opentracker diff --git a/devbox.json b/devbox.json index 6de0252..8bd1a46 100644 --- a/devbox.json +++ b/devbox.json @@ -12,13 +12,14 @@ "chisel@latest", "bento4@latest", "shaka-packager@latest", - "mktorrent@latest" + "mktorrent@latest", + "entr@latest" ], "env": { "DEVBOX_COREPACK_ENABLED": "true", - "ENV": "development", - "KUBECONFIG": "$HOME/.kube/futureporn.yaml", - "VENV_DIR": ".venv" + "ENV": "development", + "KUBECONFIG": "$HOME/.kube/futureporn.yaml", + "VENV_DIR": ".venv" }, "shell": { "init_hook": [ @@ -32,7 +33,12 @@ ], "tunnel": "dotenvx run -f ./.kamal/secrets.development -- chisel client bright.fp.sbtp.xyz:9090 R:4000", "backup": "docker exec -t postgres_db pg_dumpall -c -U postgres > ./backups/dev_`date +%Y-%m-%d_%H_%M_%S`.sql", - "act": "act -W ./.gitea/workflows --secret-file .kamal/secrets.development" + "act": "act -W ./.gitea/workflows --secret-file .kamal/secrets.development", + "bright:compile:watch": "cd ./apps/bright && find . -type f -name \"*.ex\" -o -name \"*.exs\" | entr -r mix compile --warnings-as-errors", + "bright:compile:watch2": "cd ./apps/bright && pnpx chokidar-cli \"**/*\" -i \"deps/**\" -i \"_build/**\" -c \"mix compile --warnings-as-errors\"", + "bright:dev": "cd ./apps/bright && dotenvx run -f ../../.kamal/secrets.development -e MIX_ENV=dev -- mix phx.server", + "bright:test:unit:watch": "cd ./apps/bright && pnpx chokidar-cli '**/*' -i \"deps/**\" -i '_build/**' -c 'mix test --only=unit'", + "bright:act": "cd ./apps/bright && act --env MIX_ENV=test -W ./.gitea/workflows/tests.yaml --secret-file .kamal/secrets.development" } } -} +} \ No newline at end of file diff --git a/devbox.lock b/devbox.lock index 7e19039..773455a 100644 --- a/devbox.lock +++ b/devbox.lock @@ -97,6 +97,54 @@ } } }, + "entr@latest": { + "last_modified": "2025-01-19T08:16:51Z", + "resolved": "github:NixOS/nixpkgs/50165c4f7eb48ce82bd063e1fb8047a0f515f8ce#entr", + "source": "devbox-search", + "version": "5.6", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/2qbvxdg5asmjs0fjcf84mssrv5pw7apa-entr-5.6", + "default": true + } + ], + "store_path": "/nix/store/2qbvxdg5asmjs0fjcf84mssrv5pw7apa-entr-5.6" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/xnhjmgv6svqp793vxhpfcvxig5yi9s60-entr-5.6", + "default": true + } + ], + "store_path": "/nix/store/xnhjmgv6svqp793vxhpfcvxig5yi9s60-entr-5.6" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/fknw34xxmp239x81r201drmlm3g9p1bb-entr-5.6", + "default": true + } + ], + "store_path": "/nix/store/fknw34xxmp239x81r201drmlm3g9p1bb-entr-5.6" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/yy1d68xcy847axfmb5xws2271xkf61xk-entr-5.6", + "default": true + } + ], + "store_path": "/nix/store/yy1d68xcy847axfmb5xws2271xkf61xk-entr-5.6" + } + } + }, "ffmpeg@latest": { "last_modified": "2025-01-07T09:15:50Z", "resolved": "github:NixOS/nixpkgs/8c9fd3e564728e90829ee7dbac6edc972971cd0f#ffmpeg", diff --git a/docker-compose.yml b/docker-compose.yml index 526d431..753fac8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,8 +10,8 @@ services: env_file: - .kamal/secrets.development ports: - - "8666:80/tcp" - - "8666:80/udp" + - "8666:8666/tcp" + - "8666:8666/udp" # - "6969:6969/tcp" # accessed via caddy at port 80 # - "6969:6969/udp" # accessed via caddy at port 80 # - "8666:8666/tcp" # accessed via caddy at port 80 @@ -52,60 +52,60 @@ services: # - opentracker - bright: - container_name: bright - build: - context: . - dockerfile: dockerfiles/bright.dockerfile - target: dev - args: - - MIX_ENV=dev - environment: - MIX_ENV: dev - PORT: "4000" - DATABASE_HOSTNAME: db - SUPERSTREAMER_URL: http://superstreamer-api:52001 - PUBLIC_S3_ENDPOINT: https://fp-dev.b-cdn.net - BT_TRACKER_URL: https://tracker.futureporn.net/announce - BT_TRACKER_ACCESSLIST_URL: http://opentracker:8666 - SITE_URL: https://futureporn.net - env_file: - - .kamal/secrets.development - ports: - - '4000:4000' - depends_on: - - db - # volumes: - # - cache:/root/.cache/futureporn - # - ./services/bright/lib:/app/lib - # - /home/cj/Documents/ueberauth_patreon:/app/contrib/ueberauth_patreon - develop: - watch: - - path: ./services/bright/ - target: /app/ - action: sync - - path: ./services/bright/application.ex - target: /app/lib/bright/application.ex - action: sync+restart - - path: ./services/bright/config/config.exs - target: /app/lib/bright/config/config.exs - action: sync+restart - - path: ./services/bright/config/runtime.exs - target: /app/lib/bright/config/runtime.exs - action: sync+restart - # @todo we need "docker@27.5.0" in devbox.json because we need docker compose >= `v2.32.0` for `sync+exec` feature. - # For now, we don't have `sync+exec` support which means docker image rebuilds are required when updating mix.exs - # - path: ./services/bright/mix.exs - # action: sync+exec - # target: /app/mix.exs - # exec: - # command: mix deps.get - - path: ./services/bright/mix.exs - target: /app/mix.exs - action: sync+restart - # - path: /home/cj/Documents/ueberauth_patreon - # action: sync - # target: /app/contrib/ueberauth_patreon + # bright: + # container_name: bright + # build: + # context: . + # dockerfile: dockerfiles/bright.dockerfile + # target: dev + # args: + # - MIX_ENV=dev + # environment: + # MIX_ENV: dev + # PORT: "4000" + # DATABASE_HOSTNAME: db + # SUPERSTREAMER_URL: http://superstreamer-api:52001 + # PUBLIC_S3_ENDPOINT: https://fp-dev.b-cdn.net + # BT_TRACKER_URL: https://tracker.futureporn.net/announce + # BT_TRACKER_ACCESSLIST_URL: http://opentracker:8666 + # SITE_URL: https://futureporn.net + # env_file: + # - .kamal/secrets.development + # ports: + # - '4000:4000' + # depends_on: + # - db + # # volumes: + # # - cache:/root/.cache/futureporn + # # - ./services/bright/lib:/app/lib + # # - /home/cj/Documents/ueberauth_patreon:/app/contrib/ueberauth_patreon + # develop: + # watch: + # - path: ./services/bright/ + # target: /app/ + # action: sync + # - path: ./services/bright/application.ex + # target: /app/lib/bright/application.ex + # action: sync+restart + # - path: ./services/bright/config/config.exs + # target: /app/lib/bright/config/config.exs + # action: sync+restart + # - path: ./services/bright/config/runtime.exs + # target: /app/lib/bright/config/runtime.exs + # action: sync+restart + # # @todo we need "docker@27.5.0" in devbox.json because we need docker compose >= `v2.32.0` for `sync+exec` feature. + # # For now, we don't have `sync+exec` support which means docker image rebuilds are required when updating mix.exs + # # - path: ./services/bright/mix.exs + # # action: sync+exec + # # target: /app/mix.exs + # # exec: + # # command: mix deps.get + # - path: ./services/bright/mix.exs + # target: /app/mix.exs + # action: sync+restart + # # - path: /home/cj/Documents/ueberauth_patreon + # # action: sync + # # target: /app/contrib/ueberauth_patreon db: diff --git a/dockerfiles/bright.dockerfile b/dockerfiles/bright.dockerfile index 435782e..4d424be 100644 --- a/dockerfiles/bright.dockerfile +++ b/dockerfiles/bright.dockerfile @@ -34,13 +34,16 @@ WORKDIR /app RUN mix local.hex --force && \ mix local.rebar --force -# set build ENV -ARG MIX_ENV -ENV MIX_ENV $MIX_ENV -RUN echo MIX_ENV=$MIX_ENV + +# Set build argument with a default value +ARG MIX_ENV=test + +# Set it as an environment variable +ENV MIX_ENV=${MIX_ENV} + # install mix dependencies -COPY ./services/bright/mix.exs ./services/bright/mix.lock ./ +COPY ./apps/bright/mix.exs /apps/bright/mix.lock ./ RUN mix deps.get --only $MIX_ENV RUN mkdir config RUN mkdir contrib @@ -49,20 +52,20 @@ RUN mkdir contrib # copy compile-time config files before we compile dependencies # to ensure any relevant config change will trigger the dependencies # to be re-compiled. -COPY ./services/bright/config/config.exs ./services/bright/config/${MIX_ENV}.exs config/ +COPY ./apps/bright/config/config.exs ./apps/bright/config/${MIX_ENV}.exs config/ # COPY ./packages/ueberauth_patreon /app/contrib/ueberauth_patreon # COPY ./packages/ueberauth_github /app/contrib/ueberauth_github RUN ls -la /app/contrib/ RUN mix deps.compile -COPY ./services/bright/priv priv +COPY ./apps/bright/priv priv -COPY ./services/bright/lib lib +COPY ./apps/bright/lib lib -COPY ./services/bright/assets assets +COPY ./apps/bright/assets assets -COPY ./services/bright/test test +COPY ./apps/bright/test test # compile assets @@ -72,15 +75,15 @@ RUN mix assets.deploy RUN mix compile # Changes to config/runtime.exs don't require recompiling the code -COPY ./services/bright/config/runtime.exs config/ +COPY ./apps/bright/config/runtime.exs config/ -COPY ./services/bright/rel rel +COPY ./apps/bright/rel rel RUN mix release ## dev target FROM builder AS dev -COPY ./services/bright/config/test.exs config/test.exs +COPY ./apps/bright/config/test.exs config/test.exs RUN ls -la ./contrib/ RUN mkdir -p ~/.cache/futureporn CMD [ "mix", "phx.server" ] @@ -97,16 +100,14 @@ RUN apt-get update -y && \ # Set the locale RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 +ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 WORKDIR "/app" RUN chown nobody /app # set runner ENV ARG MIX_ENV -ENV MIX_ENV $MIX_ENV +ENV MIX_ENV=$MIX_ENV RUN echo MIX_ENV=$MIX_ENV # Only copy the final release from the build stage diff --git a/dockerfiles/opentracker.dockerfile b/dockerfiles/opentracker.dockerfile index 3c9d42b..6f0a023 100644 --- a/dockerfiles/opentracker.dockerfile +++ b/dockerfiles/opentracker.dockerfile @@ -67,8 +67,8 @@ COPY --from=caddy:alpine /usr/bin/caddy /usr/bin/caddy # EXPOSE 6969/udp # EXPOSE 6969/tcp -EXPOSE 80/udp -EXPOSE 80/tcp +EXPOSE 8666/udp +EXPOSE 8666/tcp ## use s6-overlay ADD https://github.com/just-containers/s6-overlay/releases/download/${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp diff --git a/package.json b/package.json index a9138c4..a0cd88b 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "license": "Unlicense", "packageManager": "pnpm@9.6.0", "dependencies": { + "chokidar-cli": "^3.0.0", "types": "^0.1.1" }, "devDependencies": { diff --git a/packages/opentracker/root/etc/caddy/Caddyfile b/packages/opentracker/root/etc/caddy/Caddyfile index d786bcc..67094f4 100644 --- a/packages/opentracker/root/etc/caddy/Caddyfile +++ b/packages/opentracker/root/etc/caddy/Caddyfile @@ -9,7 +9,7 @@ route /whitelist* { basic_auth /whitelist { - {$WHITELIST_USERNAME} {$WHITELIST_PASSWORD} + {$WHITELIST_USERNAME} {$WHITELIST_PASSWORD_CADDY} } reverse_proxy 127.0.0.1:3001 } diff --git a/packages/opentracker/root/etc/s6-overlay/s6-rc.d/init-opentracker/script b/packages/opentracker/root/etc/s6-overlay/s6-rc.d/init-opentracker/script index e41364c..53c2689 100755 --- a/packages/opentracker/root/etc/s6-overlay/s6-rc.d/init-opentracker/script +++ b/packages/opentracker/root/etc/s6-overlay/s6-rc.d/init-opentracker/script @@ -1,9 +1,5 @@ #!/command/with-contenv sh -if [ -z "$WHITELIST_FEED_URL" ]; then - echo "Error: WHITELIST_FEED_URL is not set" >&2 - exit 1 -fi mkdir -p /var/run/opentracker @@ -11,8 +7,3 @@ mkdir -p /var/run/opentracker if [ ! -p /var/run/opentracker/adder.fifo ]; then mkfifo -m a+rw /var/run/opentracker/adder.fifo fi - -## Download torrent whitelist from BrightWeb.Torrents -curl -sS --request GET --header "accept: text/plain" --url "$WHITELIST_FEED_URL" -o /etc/opentracker/whitelist - - diff --git a/packages/opentracker/root/etc/s6-overlay/s6-rc.d/svc-opentracker/run b/packages/opentracker/root/etc/s6-overlay/s6-rc.d/svc-opentracker/run index f136f15..343e24b 100644 --- a/packages/opentracker/root/etc/s6-overlay/s6-rc.d/svc-opentracker/run +++ b/packages/opentracker/root/etc/s6-overlay/s6-rc.d/svc-opentracker/run @@ -1,9 +1,15 @@ #!/command/with-contenv sh -echo "Loading whitelist from ${WHITELIST_FEED_URL}" -curl -sS --request GET --url "${WHITELIST_FEED_URL}" --header 'accept: text/plain' -o /etc/opentracker/whitelist +if [ -z "$WHITELIST_FEED_URL" ]; then + echo "Error: WHITELIST_FEED_URL is not set" >&2 + exit 1 +fi + + +echo "Loading whitelist from ${WHITELIST_FEED_URL}" +curl -sS --request GET --header "accept: text/plain" --url "$WHITELIST_FEED_URL" -o /etc/opentracker/whitelist || echo "Warning: Failed to fetch whitelist, using existing whitelist file." + + +s6-setuidgid farmhand /bin/opentracker -f /etc/opentracker/opentracker.conf -exec 2>&1 -exec s6-setuidgid farmhand \ - exec /bin/opentracker -f /etc/opentracker/opentracker.conf \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a31805..d62f8bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + chokidar-cli: + specifier: ^3.0.0 + version: 3.0.0 types: specifier: ^0.1.1 version: 0.1.1 @@ -22,26 +25,68 @@ packages: resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chokidar-cli@3.0.0: + resolution: {integrity: sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ==} + engines: {node: '>= 8.10.0'} + hasBin: true + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + cliui@5.0.0: + resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -54,6 +99,13 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -61,21 +113,96 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -83,19 +210,33 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -108,6 +249,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -119,18 +264,34 @@ packages: resolution: {integrity: sha512-JuntZtJj4MKLE9x/XBs7IjsznYhzETwr34pw3XJTKvgYtAMdeMG+o8x8U85E5Lm6eCPa1DdOdGVsHMwq4ZnZAg==} engines: {node: '>= 0.6.0'} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + wrap-ansi@5.1.0: + resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} + engines: {node: '>=6'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yargs-parser@13.1.2: + resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@13.3.2: + resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -141,27 +302,77 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + ansi-regex@4.1.1: {} + ansi-regex@5.0.1: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + binary-extensions@2.3.0: {} + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + camelcase@5.3.1: {} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + chokidar-cli@3.0.0: + dependencies: + chokidar: 3.6.0 + lodash.debounce: 4.0.8 + lodash.throttle: 4.1.1 + yargs: 13.3.2 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cliui@5.0.0: + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} concurrently@8.2.2: @@ -180,36 +391,112 @@ snapshots: dependencies: '@babel/runtime': 7.25.6 + decamelize@1.2.0: {} + + emoji-regex@7.0.3: {} + emoji-regex@8.0.0: {} escalade@3.2.0: {} + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@3.0.0: + dependencies: + locate-path: 3.0.0 + + fsevents@2.3.3: + optional: true + get-caller-file@2.0.5: {} + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + has-flag@4.0.0: {} + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@2.0.0: {} + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + locate-path@3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + + lodash.debounce@4.0.8: {} + + lodash.throttle@4.1.1: {} + lodash@4.17.21: {} + normalize-path@3.0.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@3.0.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + + path-exists@3.0.0: {} + + picomatch@2.3.1: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + regenerator-runtime@0.14.1: {} require-directory@2.1.1: {} + require-main-filename@2.0.0: {} + rxjs@7.8.1: dependencies: tslib: 2.7.0 + set-blocking@2.0.0: {} + shell-quote@1.8.1: {} spawn-command@0.0.2: {} + string-width@3.1.0: + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -222,22 +509,54 @@ snapshots: dependencies: has-flag: 4.0.0 + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + tree-kill@1.2.2: {} tslib@2.7.0: {} types@0.1.1: {} + which-module@2.0.1: {} + + wrap-ansi@5.1.0: + dependencies: + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + y18n@4.0.3: {} + y18n@5.0.8: {} + yargs-parser@13.1.2: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} + yargs@13.3.2: + dependencies: + cliui: 5.0.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 13.1.2 + yargs@17.7.2: dependencies: cliui: 8.0.1 diff --git a/services/bright/lib/bright/oban_workers/create_torrent.ex b/services/bright/lib/bright/oban_workers/create_torrent.ex deleted file mode 100644 index d31af72..0000000 --- a/services/bright/lib/bright/oban_workers/create_torrent.ex +++ /dev/null @@ -1,32 +0,0 @@ -defmodule Bright.ObanWorkers.CreateTorrent do - use Oban.Worker, queue: :default, max_attempts: 3 - - alias Bright.Streams - alias Bright.{ - B2, - Torrents, - Tracker, - Torrentfile - } - require Logger - import Ecto.Query, warn: false - - - - def perform(%Oban.Job{args: %{"vod_id" => vod_id}}) do - IO.puts "hello this is Oban.Job and we are testing to see if we can get env vars here. Application.fetch_env!(:bright, :bt_tracker_accesslist_url)=#{Application.fetch_env!(:bright, :bt_tracker_accesslist_url)} System.get_env('BT_TRACKER_ACCESSLIST_URL')=#{System.get_env("BT_TRACKER_ACCESSLIST_URL")}" - vod = Streams.get_vod!(vod_id) - with {:ok, filename} <- B2.get(vod), - {:ok, tf} <- Torrentfile.create(vod, filename), - {:ok, %{cdn_url: cdn_url}} <- B2.put(tf.save_path, Path.basename(tf.save_path)), - {:ok, torrent} <- Torrents.create_torrent(%{vod_id: vod.id, info_hash_v1: tf.btih, info_hash_v2: tf.btmh, cdn_url: cdn_url, magnet: tf.magnet}), - :ok <- Tracker.whitelist_info_hash(torrent.info_hash_v1), - {:ok, _} <- Tracker.announce_torrent(torrent.info_hash_v1) do - # {:ok, updated_vod} <- Streams.update_vod(vod, %{}) do - {:ok, torrent} - end - end - - - -end diff --git a/services/bright/lib/bright/tier_mapper.ex b/services/bright/lib/bright/tier_mapper.ex deleted file mode 100644 index 5d31360..0000000 --- a/services/bright/lib/bright/tier_mapper.ex +++ /dev/null @@ -1,43 +0,0 @@ -defmodule Bright.TierMapper do - @patreon_tiers %{ - "everyone" => 0, - "free" => 0, - "archiveSupporter" => 1, - "stealthSupporter" => 1, - "tuneItUp" => 2, - "maxQ" => 2, - "archiveCollector" => 3, - "advancedArchiveSupporter" => 3, - "quantumSupporter" => 4, - "sneakyQuantumSupporter" => 4, - "luberPlusPlus" => 5 - } - - @patreon_ids %{ - "everyone" => "-1", - "free" => "10620388", - "archiveSupporter" => "8154170", - "stealthSupporter" => "9561793", - "tuneItUp" => "9184994", - "maxQ" => "22529959", - "archiveCollector" => "8154171", - "advancedArchiveSupporter" => "8686045", - "quantumSupporter" => "8694826", - "sneakyQuantumSupporter" => "9560538", - "luberPlusPlus" => "8686022" - } - - def get_tier_number("patreon", tier_id) when is_binary(tier_id) do - @patreon_ids - |> Enum.find_value(0, fn {key, id} -> if id == tier_id, do: @patreon_tiers[key] end) - end - - def get_tier_number(_, _), do: 0 - - def largest_tier_for_platform(platform, tier_ids) when is_list(tier_ids) and is_binary(platform) do - tier_ids - |> Enum.map(&get_tier_number(platform, &1)) - |> Enum.max() - end - -end diff --git a/services/bright/lib/bright/tracker.ex b/services/bright/lib/bright/tracker.ex deleted file mode 100644 index 07c7175..0000000 --- a/services/bright/lib/bright/tracker.ex +++ /dev/null @@ -1,67 +0,0 @@ -defmodule Bright.Tracker do - - - alias Bright.BittorrentUrlEncoder - require Logger - - def bt_tracker_url do - Application.fetch_env!(:bright, :bt_tracker_url) - end - - def bt_tracker_accesslist_url do - Application.fetch_env!(:bright, :bt_tracker_accesslist_url) - end - - - - - - def announce_torrent(info_hash) do - IO.puts "announce_torrent with info_hash=#{info_hash}" - encoded_info_hash = BittorrentUrlEncoder.encode(info_hash) - url = bt_tracker_url() |> URI.parse() |> URI.append_query("info_hash=#{encoded_info_hash}") |> URI.to_string() - body = [] - headers = [] - - case HTTPoison.get(url, body, headers) do - {:ok, %HTTPoison.Response{status_code: 200, body: body}} -> - IO.puts inspect(Bento.decode(body)) - Bento.decode(body) - - {:ok, %HTTPoison.Response{status_code: status, body: body}} -> - {:error, %{status: status, body: body}} - - {:error, %HTTPoison.Error{reason: reason}} -> - {:error, reason} - - failed -> - Logger.error("Failed to POST. #{inspect(failed)}") - {:error, :failed} - end - - end - - - def whitelist_info_hash(info_hash) do - - IO.puts "whitelist_info_hash with info_hash=#{info_hash}, bt_tracker_accesslist_url=#{bt_tracker_accesslist_url()}" - {host, port} = case URI.parse(bt_tracker_accesslist_url()) do - %URI{host: host, port: port} when not is_nil(host) and not is_nil(port) -> - {host, port} - - _ -> - raise "Invalid bt_tracker_accesslist_url: #{bt_tracker_accesslist_url()}" - end - - host = String.to_charlist(host) - - ## here we open a TCP connection to socat running in the opentracker container. - ## socat's job is to pipe the request to /var/opentracker/adder.fifo which opentracker reads new whitelist entries from. - {:ok, socket} = :gen_tcp.connect(host, port, [:binary, packet: :raw, active: false]) - :gen_tcp.send(socket, "#{info_hash}\n") - :gen_tcp.close(socket) - - - end - -end diff --git a/services/bright/lib/bright_web/components/layouts/app.html.heex b/services/bright/lib/bright_web/components/layouts/app.html.heex deleted file mode 100644 index 5c0997d..0000000 --- a/services/bright/lib/bright_web/components/layouts/app.html.heex +++ /dev/null @@ -1,4 +0,0 @@ -
    - <.flash_group flash={@flash} /> - <%= @inner_content %> -
    diff --git a/services/bright/lib/bright_web/controllers/auth_html/create.html.heex b/services/bright/lib/bright_web/controllers/auth_html/create.html.heex deleted file mode 100644 index 1e07eff..0000000 --- a/services/bright/lib/bright_web/controllers/auth_html/create.html.heex +++ /dev/null @@ -1 +0,0 @@ -

    Create!

    \ No newline at end of file diff --git a/services/bright/lib/bright_web/controllers/page_html/about.html.heex b/services/bright/lib/bright_web/controllers/page_html/about.html.heex deleted file mode 100644 index ce3249b..0000000 --- a/services/bright/lib/bright_web/controllers/page_html/about.html.heex +++ /dev/null @@ -1,41 +0,0 @@ -<.flash_group flash={@flash} /> - - -
    - -
    -
    -

    Dedication to the preservation of Lewdtuber history

    -

    -
    -
    - -
    -

    A platform built by fans, for fans, dedicated to preserving the moments that matter in the world of R-18 VTuber live streaming. It all started with a simple need: capturing ProjektMelody's streams on Chaturbate. Chaturbate doesn’t save VODs, and sometimes we missed the magic. Other times, creators like ProjektMelody faced unnecessary de-platforming for simply being unique. We wanted to create a space where this content could endure, unshaken by the tides of censorship or fleeting platforms.

    -
    - -
    -

    Our Mission

    -

    Futureporn is more than an archive; it's a movement. We aim to document who streamed, when they streamed, and celebrate the creativity and passion of our favorite H-streamers. We're building a community-driven platform to ensure that these moments withstand the test of time.

    -
    - -
    -

    Our Vision

    -

    Imagine a world where you can revisit your favorite streams, sync interactive toys with VOD playback, and relive the excitement as it happened. Futureporn isn’t just about preserving memories; it’s about innovating how we connect with the content and creators we love.

    -

    Join us as we redefine archiving and fandom, ensuring that no stream is ever lost again. Together, we can create a platform that stands as a testament to creativity, individuality, and the fans who make it all possible.

    -
    - -
    -

    Goals

    -
      -
    • Preserve lewdtuber history
    • -
    • Grow the lewdtuber fanbase
    • -
    • Introduce groundbreaking interactivity features
    • -
    • Beam VODs to LEO, the Moon & Mars base (literally)
    • -
    -
    - - - - -
    diff --git a/services/bright/lib/bright_web/controllers/page_html/home.html.heex b/services/bright/lib/bright_web/controllers/page_html/home.html.heex deleted file mode 100644 index 1cd3426..0000000 --- a/services/bright/lib/bright_web/controllers/page_html/home.html.heex +++ /dev/null @@ -1,38 +0,0 @@ - - -
    - <.flash_group flash={@flash} /> -
    - - - - -

    - The Galaxy's Best VTuber Hentai Site -

    -

    - For adults only (NSFW) -

    - - -
    -
    -

    Behold: the pre-alpha preview, pre-flight, pre-production, preposterously experimental pre-release teaser demo of Futureporn 2.0.

    - - -

    <.icon name="circle-exclamation" class="icon h-4 w-4" /> (Yeah, we’re still testing.) check back each week for updates.

    -
    - - - - Streams Archive -
    -
    - - - - - - -
    -
    diff --git a/services/bright/lib/bright_web/controllers/stream_html/stream_form.html.heex b/services/bright/lib/bright_web/controllers/stream_html/stream_form.html.heex deleted file mode 100644 index 7719dc3..0000000 --- a/services/bright/lib/bright_web/controllers/stream_html/stream_form.html.heex +++ /dev/null @@ -1,17 +0,0 @@ -<.simple_form :let={f} for={@changeset} action={@action}> - <.error :if={@changeset.action}> - Oops, something went wrong! Please check the errors below. - - <.input field={f[:title]} type="text" label="Title" /> - <.input field={f[:notes]} type="text" label="Notes" /> - <.input field={f[:date]} type="datetime-local" label="Date" /> - - <.input field={f[:tag_ids]} label="Tags" type="select" multiple={true} options={tag_opts(@changeset)} /> - <.input field={f[:vod_ids]} label="Vods" type="select" multiple={true} options={vod_opts(@changeset)} /> - <.input field={f[:platform_ids]} label="Platforms" type="select" multiple={true} options={platform_opts(@changeset)} /> - <.input field={f[:vtuber_ids]} label="Vtubers" type="select" multiple={true} options={vtuber_opts(@changeset)} /> - - <:actions> - <.button>Save Stream - - diff --git a/services/bright/lib/bright_web/controllers/torrent_html/summary.html.heex b/services/bright/lib/bright_web/controllers/torrent_html/summary.html.heex deleted file mode 100644 index 84268d4..0000000 --- a/services/bright/lib/bright_web/controllers/torrent_html/summary.html.heex +++ /dev/null @@ -1,36 +0,0 @@ - -
    -
    -
    - <%= if @torrent && @torrent.magnet do %> - <.icon name={:magnet} class="icon"/> - <% end %> -
    -
    - <%= if @torrent && @torrent.cdn_url do %> - - - - <.icon name={:download}/> - - Download - - - <% end %> -
    -
    - <%= if @torrent && @torrent.info_hash_v1 do %> - - {@torrent.info_hash_v1} - - <% end %> -
    -
    -
    - - -<%# - <:item title="Info hash v1">{@torrent.info_hash_v1} - <:item title="Info hash v2">{@torrent.info_hash_v2} - <:item title="Cdn url">{@torrent.cdn_url} - <:item title="Magnet">{@torrent.magnet} %> \ No newline at end of file diff --git a/services/bright/lib/bright_web/router.ex b/services/bright/lib/bright_web/router.ex deleted file mode 100644 index f5082bc..0000000 --- a/services/bright/lib/bright_web/router.ex +++ /dev/null @@ -1,189 +0,0 @@ -defmodule BrightWeb.Router do - use BrightWeb, :router - - import Oban.Web.Router - alias BrightWeb.Plug - alias Bright.Repo - - import BrightWeb.AuthController, only: [ - fetch_current_user: 2, - require_admin_user: 2 - ] - - - pipeline :browser do - plug :accepts, ["html", "json", "txt"] - plug :fetch_session - plug :fetch_live_flash - plug :fetch_current_user - plug :put_root_layout, html: {BrightWeb.Layouts, :root} - plug :protect_from_forgery - plug :put_secure_browser_headers - end - - - - pipeline :api do - plug(:accepts, ["json"]) - end - - - - scope "/auth", BrightWeb do - pipe_through :browser - - live_session :auth_login, on_mount: {BrightWeb.AuthController, :current_user} do - live "/login", SignInLive, :index - end - - get "/logout", AuthController, :delete - get "/:provider", AuthController, :request - get "/:provider/callback", AuthController, :callback - post "/:provider/callback", AuthController, :callback - end - - - - ## protected routes - ## this section needs to be above the unprotected routes, - ## so routes like "/streams/new" take precedence. - scope "/", BrightWeb do - pipe_through [:browser, :require_admin_user] - - get "/streams/new", StreamController, :new - post "/streams", StreamController, :create - get "/streams/:id/edit", StreamController, :edit - put "/streams/:id", StreamController, :update - - - get "/vods/new", VodController, :new - post "/vods", VodController, :create - delete "/vods/:id", VodController, :delete - get "/vods/:id/edit", VodController, :edit - - resources "/vt", VtuberController do - get "/vods/new", VodController, :new - post "/vods", VodController, :create - get "/vtubers/:id/edit", VtuberController, :edit - end - - resources "/vtubers", VtuberController do - get "/new", VtuberController, :new - post "/", VtuberController, :create - get "/vods/new", VodController, :new - post "/vods", VodController, :create - get "/vtubers/:id/edit", VtuberController, :edit - end - - get "/tags/new", TagController, :new - post "/tags", TagController, :create - - resources "/torrents", TorrentController, only: [:create, :new, :edit, :update] - - ## !!! DANGER, platforms must only be writable by admins, (unless we implement SVG sanitizing) - ## @todo remove SVGs from the database and instead put them in assets - get "/platforms/new", PlatformController, :new - post "/platforms", PlatformController, :create - get "/platforms/:id/edit", PlatformController, :edit - patch "/platforms/:id", PlatformController, :update - delete "/platforms/:id", PlatformController, :delete - put "/platforms/:id", PlatformController, :update - - oban_dashboard "/oban" - - end - - scope "/", BrightWeb do - pipe_through :browser - - get "/", PageController, :home - - get "/patrons", PatronController, :index - get "/about", PageController, :about - get "/goals", PageController, :about - get "/api", PageController, :api - - get "/join", AuthController, :new - post "/join", AuthController, :new - post "/join", AuthController, :new - - resources "/torrents", TorrentController, only: [:index, :show] - - get "/streams", StreamController, :index - get "/streams/:id", StreamController, :show - - get "/vods/:id", VodController, :show - get "/vods", VodController, :index - - get "/tags", TagController, :index - get "/tags/:id", TagController, :show - - get "/platforms", PlatformController, :index - get "/platforms/:id", PlatformController, :show - - get "/vtubers", VtuberController, :index - get "/vtubers/:id", VtuberController, :show - - resources "/vt", VtuberController do - get "/vods", VodController, :index - get "/vods/:id", VodController, :show - end - - - end - - - - - - - scope "/feeds", BrightWeb do - get "/vods.xml", RssController, :vods - end - - # Other scopes may use custom stacks. - scope "/api", BrightWeb do - pipe_through(:api) - resources("/urls", UrlController, except: [:new, :edit]) - get("/health", PageController, :health) - end - - # Enable LiveDashboard and Swoosh mailbox preview in development - if Application.compile_env(:bright, :dev_routes) do - # If you want to use the LiveDashboard in production, you should put - # it behind authentication and allow only admins to access it. - # If your application does not have an admins-only section yet, - # you can use Plug.BasicAuth to set up some basic authentication - # as long as you are also using SSL (which you should anyway). - import Phoenix.LiveDashboard.Router - - scope "/dev" do - pipe_through(:browser) - - live_dashboard("/dashboard", metrics: BrightWeb.Telemetry) - forward("/mailbox", Plug.Swoosh.MailboxPreview) - end - end - - - - - - - ## Authentication routes - scope "/", BrightWeb do - pipe_through [:browser] - - - - live_session :authenticated, - on_mount: [{BrightWeb.AuthController, :ensure_authenticated}] do - live "/profile", ProfileLive - end - - end - - - - -end diff --git a/services/bright/lib/bright_web/user_auth.ex.old b/services/bright/lib/bright_web/user_auth.ex.old deleted file mode 100644 index 567007b..0000000 --- a/services/bright/lib/bright_web/user_auth.ex.old +++ /dev/null @@ -1,181 +0,0 @@ -defmodule BrightWeb.UserAuth do - use BrightWeb, :verified_routes - - import Plug.Conn - import Phoenix.Controller - - alias Bright.Users - - # Make the remember me cookie valid for 60 days. - # If you want bump or reduce this value, also change - # the token expiry itself in UserToken. - @max_age 60 * 60 * 24 * 60 - @remember_me_cookie "_bright_web_user_remember_me" - @remember_me_options [sign: true, max_age: @max_age, same_site: "Lax"] - - @doc """ - Logs the user in. - - It renews the session ID and clears the whole session - to avoid fixation attacks. See the renew_session - function to customize this behaviour. - - It also sets a `:live_socket_id` key in the session, - so LiveView sessions are identified and automatically - disconnected on log out. The line can be safely removed - if you are not using LiveView. - """ - def log_in_user(conn, user, params \\ %{}) do - token = Users.generate_user_session_token(user) - user_return_to = get_session(conn, :user_return_to) - - conn - |> renew_session() - |> put_token_in_session(token) - |> maybe_write_remember_me_cookie(token, params) - |> redirect(to: user_return_to || signed_in_path(conn)) - end - - defp maybe_write_remember_me_cookie(conn, token, %{"remember_me" => "true"}) do - put_resp_cookie(conn, @remember_me_cookie, token, @remember_me_options) - end - - defp maybe_write_remember_me_cookie(conn, _token, _params) do - conn - end - - # This function renews the session ID and erases the whole - # session to avoid fixation attacks. If there is any data - # in the session you may want to preserve after log in/log out, - # you must explicitly fetch the session data before clearing - # and then immediately set it after clearing, for example: - # - # defp renew_session(conn) do - # preferred_locale = get_session(conn, :preferred_locale) - # - # conn - # |> configure_session(renew: true) - # |> clear_session() - # |> put_session(:preferred_locale, preferred_locale) - # end - # - defp renew_session(conn) do - delete_csrf_token() - - conn - |> configure_session(renew: true) - |> clear_session() - end - - @doc """ - Logs the user out. - - It clears all session data for safety. See renew_session. - """ - def log_out_user(conn) do - user_token = get_session(conn, :user_token) - user_token && Users.delete_user_session_token(user_token) - - if live_socket_id = get_session(conn, :live_socket_id) do - BrightWeb.Endpoint.broadcast(live_socket_id, "disconnect", %{}) - end - - conn - |> renew_session() - |> delete_resp_cookie(@remember_me_cookie) - |> redirect(to: ~p"/") - end - - - - @doc """ - Handles mounting and authenticating the current_user in LiveViews. - - ## `on_mount` arguments - - * `:mount_current_user` - Assigns current_user - to socket assigns based on user_token, or nil if - there's no user_token or no matching user. - - * `:ensure_authenticated` - Authenticates the user from the session, - and assigns the current_user to socket assigns based - on user_token. - Redirects to login page if there's no logged user. - - * `:redirect_if_user_is_authenticated` - Authenticates the user from the session. - Redirects to signed_in_path if there's a logged user. - - ## Examples - - Use the `on_mount` lifecycle macro in LiveViews to mount or authenticate - the current_user: - - defmodule BrightWeb.PageLive do - use BrightWeb, :live_view - - on_mount {BrightWeb.UserAuth, :mount_current_user} - ... - end - - Or use the `live_session` of your router to invoke the on_mount callback: - - live_session :authenticated, on_mount: [{BrightWeb.UserAuth, :ensure_authenticated}] do - live "/profile", ProfileLive, :index - end - """ - def on_mount(:mount_current_user, _params, session, socket) do - {:cont, mount_current_user(socket, session)} - end - - def on_mount(:ensure_authenticated, _params, session, socket) do - socket = mount_current_user(socket, session) - - if socket.assigns.current_user do - {:cont, socket} - else - socket = - socket - |> Phoenix.LiveView.put_flash(:error, "You must log in to access this page.") - |> Phoenix.LiveView.redirect(to: ~p"/users/log_in") - - {:halt, socket} - end - end - - def on_mount(:redirect_if_user_is_authenticated, _params, session, socket) do - socket = mount_current_user(socket, session) - - if socket.assigns.current_user do - {:halt, Phoenix.LiveView.redirect(socket, to: signed_in_path(socket))} - else - {:cont, socket} - end - end - - defp mount_current_user(socket, session) do - Phoenix.Component.assign_new(socket, :current_user, fn -> - if user_token = session["user_token"] do - Users.get_user_by_session_token(user_token) - end - end) - end - - @doc """ - Used for routes that require the user to not be authenticated. - """ - def redirect_if_user_is_authenticated(conn, _opts) do - if conn.assigns[:current_user] do - conn - |> redirect(to: signed_in_path(conn)) - |> halt() - else - conn - end - end - - - - - - defp signed_in_path(_conn), do: ~p"/" -end diff --git a/services/bright/test/bright/tracker_test.exs b/services/bright/test/bright/tracker_test.exs deleted file mode 100644 index 21724f7..0000000 --- a/services/bright/test/bright/tracker_test.exs +++ /dev/null @@ -1,34 +0,0 @@ -defmodule Bright.TrackerTest do - use Bright.DataCase - - alias Bright.Tracker - alias Bright.URLEncoder - - describe "tracker" do - - import Bright.StreamsFixtures - - @info_hash_v2_fixture "723886c0b0d9d41bfaa5276a9b2552d84ba09dd8a77d9ddcab5c9fa16cdb9770" # test-fixture.ts (BT info_hash v2) - @info_hash_v1_fixture "07b4516336e4afe9232c73bc312642590a7d7e95" # tails-amd64-6.10-img (BT info_hash v1) - - - @tag :integration - test "whitelist_info_hash/1 using a string info_hash" do - :ok = Tracker.whitelist_info_hash(@info_hash_v2_fixture) - assert :ok - end - - @tag :integration - test "announce_torrent/1 using a string info_hash" do - {:ok, body} = Tracker.announce_torrent(@info_hash_v1_fixture) - assert :ok - end - - - end - - - - - -end diff --git a/services/bright/test/bright/urls_test.exs b/services/bright/test/bright/urls_test.exs deleted file mode 100644 index bf306c6..0000000 --- a/services/bright/test/bright/urls_test.exs +++ /dev/null @@ -1,61 +0,0 @@ -defmodule Bright.UrlsTest do - use Bright.DataCase - - alias Bright.Urls - - describe "urls" do - alias Bright.Urls.Url - - import Bright.UrlsFixtures - - @invalid_attrs %{link: nil, title: nil} - - test "list_urls/0 returns all urls" do - url = url_fixture() - assert Urls.list_urls() == [url] - end - - test "get_url!/1 returns the url with given id" do - url = url_fixture() - assert Urls.get_url!(url.id) == url - end - - test "create_url/1 with valid data creates a url" do - valid_attrs = %{link: "some link", title: "some title"} - - assert {:ok, %Url{} = url} = Urls.create_url(valid_attrs) - assert url.link == "some link" - assert url.title == "some title" - end - - test "create_url/1 with invalid data returns error changeset" do - assert {:error, %Ecto.Changeset{}} = Urls.create_url(@invalid_attrs) - end - - test "update_url/2 with valid data updates the url" do - url = url_fixture() - update_attrs = %{link: "some updated link", title: "some updated title"} - - assert {:ok, %Url{} = url} = Urls.update_url(url, update_attrs) - assert url.link == "some updated link" - assert url.title == "some updated title" - end - - test "update_url/2 with invalid data returns error changeset" do - url = url_fixture() - assert {:error, %Ecto.Changeset{}} = Urls.update_url(url, @invalid_attrs) - assert url == Urls.get_url!(url.id) - end - - test "delete_url/1 deletes the url" do - url = url_fixture() - assert {:ok, %Url{}} = Urls.delete_url(url) - assert_raise Ecto.NoResultsError, fn -> Urls.get_url!(url.id) end - end - - test "change_url/1 returns a url changeset" do - url = url_fixture() - assert %Ecto.Changeset{} = Urls.change_url(url) - end - end -end diff --git a/services/bright/test/bright/users_test.exs b/services/bright/test/bright/users_test.exs deleted file mode 100644 index fc90aa7..0000000 --- a/services/bright/test/bright/users_test.exs +++ /dev/null @@ -1,508 +0,0 @@ -defmodule Bright.UsersTest do - use Bright.DataCase - - alias Bright.Users - - import Bright.UsersFixtures - alias Bright.Users.{User, UserToken} - - describe "get_user_by_email/1" do - test "does not return the user if the email does not exist" do - refute Users.get_user_by_email("unknown@example.com") - end - - test "returns the user if the email exists" do - %{id: id} = user = user_fixture() - assert %User{id: ^id} = Users.get_user_by_email(user.email) - end - end - - describe "get_user_by_email_and_password/2" do - test "does not return the user if the email does not exist" do - refute Users.get_user_by_email_and_password("unknown@example.com", "hello world!") - end - - test "does not return the user if the password is not valid" do - user = user_fixture() - refute Users.get_user_by_email_and_password(user.email, "invalid") - end - - test "returns the user if the email and password are valid" do - %{id: id} = user = user_fixture() - - assert %User{id: ^id} = - Users.get_user_by_email_and_password(user.email, valid_user_password()) - end - end - - describe "get_user!/1" do - test "raises if id is invalid" do - assert_raise Ecto.NoResultsError, fn -> - Users.get_user!(-1) - end - end - - test "returns the user with the given id" do - %{id: id} = user = user_fixture() - assert %User{id: ^id} = Users.get_user!(user.id) - end - end - - describe "register_user/1" do - test "requires email and password to be set" do - {:error, changeset} = Users.register_user(%{}) - - assert %{ - password: ["can't be blank"], - email: ["can't be blank"] - } = errors_on(changeset) - end - - test "validates email and password when given" do - {:error, changeset} = Users.register_user(%{email: "not valid", password: "not valid"}) - - assert %{ - email: ["must have the @ sign and no spaces"], - password: ["should be at least 12 character(s)"] - } = errors_on(changeset) - end - - test "validates maximum values for email and password for security" do - too_long = String.duplicate("db", 100) - {:error, changeset} = Users.register_user(%{email: too_long, password: too_long}) - assert "should be at most 160 character(s)" in errors_on(changeset).email - assert "should be at most 72 character(s)" in errors_on(changeset).password - end - - test "validates email uniqueness" do - %{email: email} = user_fixture() - {:error, changeset} = Users.register_user(%{email: email}) - assert "has already been taken" in errors_on(changeset).email - - # Now try with the upper cased email too, to check that email case is ignored. - {:error, changeset} = Users.register_user(%{email: String.upcase(email)}) - assert "has already been taken" in errors_on(changeset).email - end - - test "registers users with a hashed password" do - email = unique_user_email() - {:ok, user} = Users.register_user(valid_user_attributes(email: email)) - assert user.email == email - assert is_binary(user.hashed_password) - assert is_nil(user.confirmed_at) - assert is_nil(user.password) - end - end - - describe "change_user_registration/2" do - test "returns a changeset" do - assert %Ecto.Changeset{} = changeset = Users.change_user_registration(%User{}) - assert changeset.required == [:password, :email] - end - - test "allows fields to be set" do - email = unique_user_email() - password = valid_user_password() - - changeset = - Users.change_user_registration( - %User{}, - valid_user_attributes(email: email, password: password) - ) - - assert changeset.valid? - assert get_change(changeset, :email) == email - assert get_change(changeset, :password) == password - assert is_nil(get_change(changeset, :hashed_password)) - end - end - - describe "change_user_email/2" do - test "returns a user changeset" do - assert %Ecto.Changeset{} = changeset = Users.change_user_email(%User{}) - assert changeset.required == [:email] - end - end - - describe "apply_user_email/3" do - setup do - %{user: user_fixture()} - end - - test "requires email to change", %{user: user} do - {:error, changeset} = Users.apply_user_email(user, valid_user_password(), %{}) - assert %{email: ["did not change"]} = errors_on(changeset) - end - - test "validates email", %{user: user} do - {:error, changeset} = - Users.apply_user_email(user, valid_user_password(), %{email: "not valid"}) - - assert %{email: ["must have the @ sign and no spaces"]} = errors_on(changeset) - end - - test "validates maximum value for email for security", %{user: user} do - too_long = String.duplicate("db", 100) - - {:error, changeset} = - Users.apply_user_email(user, valid_user_password(), %{email: too_long}) - - assert "should be at most 160 character(s)" in errors_on(changeset).email - end - - test "validates email uniqueness", %{user: user} do - %{email: email} = user_fixture() - password = valid_user_password() - - {:error, changeset} = Users.apply_user_email(user, password, %{email: email}) - - assert "has already been taken" in errors_on(changeset).email - end - - test "validates current password", %{user: user} do - {:error, changeset} = - Users.apply_user_email(user, "invalid", %{email: unique_user_email()}) - - assert %{current_password: ["is not valid"]} = errors_on(changeset) - end - - test "applies the email without persisting it", %{user: user} do - email = unique_user_email() - {:ok, user} = Users.apply_user_email(user, valid_user_password(), %{email: email}) - assert user.email == email - assert Users.get_user!(user.id).email != email - end - end - - describe "deliver_user_update_email_instructions/3" do - setup do - %{user: user_fixture()} - end - - test "sends token through notification", %{user: user} do - token = - extract_user_token(fn url -> - Users.deliver_user_update_email_instructions(user, "current@example.com", url) - end) - - {:ok, token} = Base.url_decode64(token, padding: false) - assert user_token = Repo.get_by(UserToken, token: :crypto.hash(:sha256, token)) - assert user_token.user_id == user.id - assert user_token.sent_to == user.email - assert user_token.context == "change:current@example.com" - end - end - - describe "update_user_email/2" do - setup do - user = user_fixture() - email = unique_user_email() - - token = - extract_user_token(fn url -> - Users.deliver_user_update_email_instructions(%{user | email: email}, user.email, url) - end) - - %{user: user, token: token, email: email} - end - - test "updates the email with a valid token", %{user: user, token: token, email: email} do - assert Users.update_user_email(user, token) == :ok - changed_user = Repo.get!(User, user.id) - assert changed_user.email != user.email - assert changed_user.email == email - assert changed_user.confirmed_at - assert changed_user.confirmed_at != user.confirmed_at - refute Repo.get_by(UserToken, user_id: user.id) - end - - test "does not update email with invalid token", %{user: user} do - assert Users.update_user_email(user, "oops") == :error - assert Repo.get!(User, user.id).email == user.email - assert Repo.get_by(UserToken, user_id: user.id) - end - - test "does not update email if user email changed", %{user: user, token: token} do - assert Users.update_user_email(%{user | email: "current@example.com"}, token) == :error - assert Repo.get!(User, user.id).email == user.email - assert Repo.get_by(UserToken, user_id: user.id) - end - - test "does not update email if token expired", %{user: user, token: token} do - {1, nil} = Repo.update_all(UserToken, set: [inserted_at: ~N[2020-01-01 00:00:00]]) - assert Users.update_user_email(user, token) == :error - assert Repo.get!(User, user.id).email == user.email - assert Repo.get_by(UserToken, user_id: user.id) - end - end - - describe "change_user_password/2" do - test "returns a user changeset" do - assert %Ecto.Changeset{} = changeset = Users.change_user_password(%User{}) - assert changeset.required == [:password] - end - - test "allows fields to be set" do - changeset = - Users.change_user_password(%User{}, %{ - "password" => "new valid password" - }) - - assert changeset.valid? - assert get_change(changeset, :password) == "new valid password" - assert is_nil(get_change(changeset, :hashed_password)) - end - end - - describe "update_user_password/3" do - setup do - %{user: user_fixture()} - end - - test "validates password", %{user: user} do - {:error, changeset} = - Users.update_user_password(user, valid_user_password(), %{ - password: "not valid", - password_confirmation: "another" - }) - - assert %{ - password: ["should be at least 12 character(s)"], - password_confirmation: ["does not match password"] - } = errors_on(changeset) - end - - test "validates maximum values for password for security", %{user: user} do - too_long = String.duplicate("db", 100) - - {:error, changeset} = - Users.update_user_password(user, valid_user_password(), %{password: too_long}) - - assert "should be at most 72 character(s)" in errors_on(changeset).password - end - - test "validates current password", %{user: user} do - {:error, changeset} = - Users.update_user_password(user, "invalid", %{password: valid_user_password()}) - - assert %{current_password: ["is not valid"]} = errors_on(changeset) - end - - test "updates the password", %{user: user} do - {:ok, user} = - Users.update_user_password(user, valid_user_password(), %{ - password: "new valid password" - }) - - assert is_nil(user.password) - assert Users.get_user_by_email_and_password(user.email, "new valid password") - end - - test "deletes all tokens for the given user", %{user: user} do - _ = Users.generate_user_session_token(user) - - {:ok, _} = - Users.update_user_password(user, valid_user_password(), %{ - password: "new valid password" - }) - - refute Repo.get_by(UserToken, user_id: user.id) - end - end - - describe "generate_user_session_token/1" do - setup do - %{user: user_fixture()} - end - - test "generates a token", %{user: user} do - token = Users.generate_user_session_token(user) - assert user_token = Repo.get_by(UserToken, token: token) - assert user_token.context == "session" - - # Creating the same token for another user should fail - assert_raise Ecto.ConstraintError, fn -> - Repo.insert!(%UserToken{ - token: user_token.token, - user_id: user_fixture().id, - context: "session" - }) - end - end - end - - describe "get_user_by_session_token/1" do - setup do - user = user_fixture() - token = Users.generate_user_session_token(user) - %{user: user, token: token} - end - - test "returns user by token", %{user: user, token: token} do - assert session_user = Users.get_user_by_session_token(token) - assert session_user.id == user.id - end - - test "does not return user for invalid token" do - refute Users.get_user_by_session_token("oops") - end - - test "does not return user for expired token", %{token: token} do - {1, nil} = Repo.update_all(UserToken, set: [inserted_at: ~N[2020-01-01 00:00:00]]) - refute Users.get_user_by_session_token(token) - end - end - - describe "delete_user_session_token/1" do - test "deletes the token" do - user = user_fixture() - token = Users.generate_user_session_token(user) - assert Users.delete_user_session_token(token) == :ok - refute Users.get_user_by_session_token(token) - end - end - - describe "deliver_user_confirmation_instructions/2" do - setup do - %{user: user_fixture()} - end - - test "sends token through notification", %{user: user} do - token = - extract_user_token(fn url -> - Users.deliver_user_confirmation_instructions(user, url) - end) - - {:ok, token} = Base.url_decode64(token, padding: false) - assert user_token = Repo.get_by(UserToken, token: :crypto.hash(:sha256, token)) - assert user_token.user_id == user.id - assert user_token.sent_to == user.email - assert user_token.context == "confirm" - end - end - - describe "confirm_user/1" do - setup do - user = user_fixture() - - token = - extract_user_token(fn url -> - Users.deliver_user_confirmation_instructions(user, url) - end) - - %{user: user, token: token} - end - - test "confirms the email with a valid token", %{user: user, token: token} do - assert {:ok, confirmed_user} = Users.confirm_user(token) - assert confirmed_user.confirmed_at - assert confirmed_user.confirmed_at != user.confirmed_at - assert Repo.get!(User, user.id).confirmed_at - refute Repo.get_by(UserToken, user_id: user.id) - end - - test "does not confirm with invalid token", %{user: user} do - assert Users.confirm_user("oops") == :error - refute Repo.get!(User, user.id).confirmed_at - assert Repo.get_by(UserToken, user_id: user.id) - end - - test "does not confirm email if token expired", %{user: user, token: token} do - {1, nil} = Repo.update_all(UserToken, set: [inserted_at: ~N[2020-01-01 00:00:00]]) - assert Users.confirm_user(token) == :error - refute Repo.get!(User, user.id).confirmed_at - assert Repo.get_by(UserToken, user_id: user.id) - end - end - - describe "deliver_user_reset_password_instructions/2" do - setup do - %{user: user_fixture()} - end - - test "sends token through notification", %{user: user} do - token = - extract_user_token(fn url -> - Users.deliver_user_reset_password_instructions(user, url) - end) - - {:ok, token} = Base.url_decode64(token, padding: false) - assert user_token = Repo.get_by(UserToken, token: :crypto.hash(:sha256, token)) - assert user_token.user_id == user.id - assert user_token.sent_to == user.email - assert user_token.context == "reset_password" - end - end - - describe "get_user_by_reset_password_token/1" do - setup do - user = user_fixture() - - token = - extract_user_token(fn url -> - Users.deliver_user_reset_password_instructions(user, url) - end) - - %{user: user, token: token} - end - - test "returns the user with valid token", %{user: %{id: id}, token: token} do - assert %User{id: ^id} = Users.get_user_by_reset_password_token(token) - assert Repo.get_by(UserToken, user_id: id) - end - - test "does not return the user with invalid token", %{user: user} do - refute Users.get_user_by_reset_password_token("oops") - assert Repo.get_by(UserToken, user_id: user.id) - end - - test "does not return the user if token expired", %{user: user, token: token} do - {1, nil} = Repo.update_all(UserToken, set: [inserted_at: ~N[2020-01-01 00:00:00]]) - refute Users.get_user_by_reset_password_token(token) - assert Repo.get_by(UserToken, user_id: user.id) - end - end - - describe "reset_user_password/2" do - setup do - %{user: user_fixture()} - end - - test "validates password", %{user: user} do - {:error, changeset} = - Users.reset_user_password(user, %{ - password: "not valid", - password_confirmation: "another" - }) - - assert %{ - password: ["should be at least 12 character(s)"], - password_confirmation: ["does not match password"] - } = errors_on(changeset) - end - - test "validates maximum values for password for security", %{user: user} do - too_long = String.duplicate("db", 100) - {:error, changeset} = Users.reset_user_password(user, %{password: too_long}) - assert "should be at most 72 character(s)" in errors_on(changeset).password - end - - test "updates the password", %{user: user} do - {:ok, updated_user} = Users.reset_user_password(user, %{password: "new valid password"}) - assert is_nil(updated_user.password) - assert Users.get_user_by_email_and_password(user.email, "new valid password") - end - - test "deletes all tokens for the given user", %{user: user} do - _ = Users.generate_user_session_token(user) - {:ok, _} = Users.reset_user_password(user, %{password: "new valid password"}) - refute Repo.get_by(UserToken, user_id: user.id) - end - end - - describe "inspect/2 for the User module" do - test "does not include password" do - refute inspect(%User{password: "123456"}) =~ "password: \"123456\"" - end - end -end diff --git a/services/bright/test/bright_web/controllers/platform_session_controller_test.exs b/services/bright/test/bright_web/controllers/platform_session_controller_test.exs deleted file mode 100644 index 3df7ed5..0000000 --- a/services/bright/test/bright_web/controllers/platform_session_controller_test.exs +++ /dev/null @@ -1,113 +0,0 @@ -defmodule BrightWeb.PlatformSessionControllerTest do - use BrightWeb.ConnCase, async: true - - import Bright.PlatformsFixtures - - setup do - %{platform: platform_fixture()} - end - - describe "POST /platforms/log_in" do - test "logs the platform in", %{conn: conn, platform: platform} do - conn = - post(conn, ~p"/platforms/log_in", %{ - "platform" => %{"email" => platform.email, "password" => valid_platform_password()} - }) - - assert get_session(conn, :platform_token) - assert redirected_to(conn) == ~p"/" - - # Now do a logged in request and assert on the menu - conn = get(conn, ~p"/") - response = html_response(conn, 200) - assert response =~ platform.email - assert response =~ ~p"/platforms/settings" - assert response =~ ~p"/platforms/log_out" - end - - test "logs the platform in with remember me", %{conn: conn, platform: platform} do - conn = - post(conn, ~p"/platforms/log_in", %{ - "platform" => %{ - "email" => platform.email, - "password" => valid_platform_password(), - "remember_me" => "true" - } - }) - - assert conn.resp_cookies["_bright_web_platform_remember_me"] - assert redirected_to(conn) == ~p"/" - end - - test "logs the platform in with return to", %{conn: conn, platform: platform} do - conn = - conn - |> init_test_session(platform_return_to: "/foo/bar") - |> post(~p"/platforms/log_in", %{ - "platform" => %{ - "email" => platform.email, - "password" => valid_platform_password() - } - }) - - assert redirected_to(conn) == "/foo/bar" - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Welcome back!" - end - - test "login following registration", %{conn: conn, platform: platform} do - conn = - conn - |> post(~p"/platforms/log_in", %{ - "_action" => "registered", - "platform" => %{ - "email" => platform.email, - "password" => valid_platform_password() - } - }) - - assert redirected_to(conn) == ~p"/" - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Account created successfully" - end - - test "login following password update", %{conn: conn, platform: platform} do - conn = - conn - |> post(~p"/platforms/log_in", %{ - "_action" => "password_updated", - "platform" => %{ - "email" => platform.email, - "password" => valid_platform_password() - } - }) - - assert redirected_to(conn) == ~p"/platforms/settings" - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Password updated successfully" - end - - test "redirects to login page with invalid credentials", %{conn: conn} do - conn = - post(conn, ~p"/platforms/log_in", %{ - "platform" => %{"email" => "invalid@email.com", "password" => "invalid_password"} - }) - - assert Phoenix.Flash.get(conn.assigns.flash, :error) == "Invalid email or password" - assert redirected_to(conn) == ~p"/platforms/log_in" - end - end - - describe "DELETE /platforms/log_out" do - test "logs the platform out", %{conn: conn, platform: platform} do - conn = conn |> log_in_platform(platform) |> delete(~p"/platforms/log_out") - assert redirected_to(conn) == ~p"/" - refute get_session(conn, :platform_token) - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Logged out successfully" - end - - test "succeeds even if the platform is not logged in", %{conn: conn} do - conn = delete(conn, ~p"/platforms/log_out") - assert redirected_to(conn) == ~p"/" - refute get_session(conn, :platform_token) - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Logged out successfully" - end - end -end diff --git a/services/bright/test/bright_web/live/user_confirmation_instructions_live_test.exs b/services/bright/test/bright_web/live/user_confirmation_instructions_live_test.exs deleted file mode 100644 index f0f7ec2..0000000 --- a/services/bright/test/bright_web/live/user_confirmation_instructions_live_test.exs +++ /dev/null @@ -1,67 +0,0 @@ -defmodule BrightWeb.UserConfirmationInstructionsLiveTest do - use BrightWeb.ConnCase, async: true - - import Phoenix.LiveViewTest - import Bright.UsersFixtures - - alias Bright.Users - alias Bright.Repo - - setup do - %{user: user_fixture()} - end - - describe "Resend confirmation" do - test "renders the resend confirmation page", %{conn: conn} do - {:ok, _lv, html} = live(conn, ~p"/users/confirm") - assert html =~ "Resend confirmation instructions" - end - - test "sends a new confirmation token", %{conn: conn, user: user} do - {:ok, lv, _html} = live(conn, ~p"/users/confirm") - - {:ok, conn} = - lv - |> form("#resend_confirmation_form", user: %{email: user.email}) - |> render_submit() - |> follow_redirect(conn, ~p"/") - - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ - "If your email is in our system" - - assert Repo.get_by!(Users.UserToken, user_id: user.id).context == "confirm" - end - - test "does not send confirmation token if user is confirmed", %{conn: conn, user: user} do - Repo.update!(Users.User.confirm_changeset(user)) - - {:ok, lv, _html} = live(conn, ~p"/users/confirm") - - {:ok, conn} = - lv - |> form("#resend_confirmation_form", user: %{email: user.email}) - |> render_submit() - |> follow_redirect(conn, ~p"/") - - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ - "If your email is in our system" - - refute Repo.get_by(Users.UserToken, user_id: user.id) - end - - test "does not send confirmation token if email is invalid", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/confirm") - - {:ok, conn} = - lv - |> form("#resend_confirmation_form", user: %{email: "unknown@example.com"}) - |> render_submit() - |> follow_redirect(conn, ~p"/") - - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ - "If your email is in our system" - - assert Repo.all(Users.UserToken) == [] - end - end -end diff --git a/services/bright/test/bright_web/live/user_confirmation_live_test.exs b/services/bright/test/bright_web/live/user_confirmation_live_test.exs deleted file mode 100644 index 89923ba..0000000 --- a/services/bright/test/bright_web/live/user_confirmation_live_test.exs +++ /dev/null @@ -1,89 +0,0 @@ -defmodule BrightWeb.UserConfirmationLiveTest do - use BrightWeb.ConnCase, async: true - - import Phoenix.LiveViewTest - import Bright.UsersFixtures - - alias Bright.Users - alias Bright.Repo - - setup do - %{user: user_fixture()} - end - - describe "Confirm user" do - test "renders confirmation page", %{conn: conn} do - {:ok, _lv, html} = live(conn, ~p"/users/confirm/some-token") - assert html =~ "Confirm Account" - end - - test "confirms the given token once", %{conn: conn, user: user} do - token = - extract_user_token(fn url -> - Users.deliver_user_confirmation_instructions(user, url) - end) - - {:ok, lv, _html} = live(conn, ~p"/users/confirm/#{token}") - - result = - lv - |> form("#confirmation_form") - |> render_submit() - |> follow_redirect(conn, "/") - - assert {:ok, conn} = result - - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ - "User confirmed successfully" - - assert Users.get_user!(user.id).confirmed_at - refute get_session(conn, :user_token) - assert Repo.all(Users.UserToken) == [] - - # when not logged in - {:ok, lv, _html} = live(conn, ~p"/users/confirm/#{token}") - - result = - lv - |> form("#confirmation_form") - |> render_submit() - |> follow_redirect(conn, "/") - - assert {:ok, conn} = result - - assert Phoenix.Flash.get(conn.assigns.flash, :error) =~ - "User confirmation link is invalid or it has expired" - - # when logged in - conn = - build_conn() - |> log_in_user(user) - - {:ok, lv, _html} = live(conn, ~p"/users/confirm/#{token}") - - result = - lv - |> form("#confirmation_form") - |> render_submit() - |> follow_redirect(conn, "/") - - assert {:ok, conn} = result - refute Phoenix.Flash.get(conn.assigns.flash, :error) - end - - test "does not confirm email with invalid token", %{conn: conn, user: user} do - {:ok, lv, _html} = live(conn, ~p"/users/confirm/invalid-token") - - {:ok, conn} = - lv - |> form("#confirmation_form") - |> render_submit() - |> follow_redirect(conn, ~p"/") - - assert Phoenix.Flash.get(conn.assigns.flash, :error) =~ - "User confirmation link is invalid or it has expired" - - refute Users.get_user!(user.id).confirmed_at - end - end -end diff --git a/services/bright/test/bright_web/live/user_forgot_password_live_test.exs b/services/bright/test/bright_web/live/user_forgot_password_live_test.exs deleted file mode 100644 index 285aa97..0000000 --- a/services/bright/test/bright_web/live/user_forgot_password_live_test.exs +++ /dev/null @@ -1,63 +0,0 @@ -defmodule BrightWeb.UserForgotPasswordLiveTest do - use BrightWeb.ConnCase, async: true - - import Phoenix.LiveViewTest - import Bright.UsersFixtures - - alias Bright.Users - alias Bright.Repo - - describe "Forgot password page" do - test "renders email page", %{conn: conn} do - {:ok, lv, html} = live(conn, ~p"/users/reset_password") - - assert html =~ "Forgot your password?" - assert has_element?(lv, ~s|a[href="#{~p"/users/register"}"]|, "Register") - assert has_element?(lv, ~s|a[href="#{~p"/users/log_in"}"]|, "Log in") - end - - test "redirects if already logged in", %{conn: conn} do - result = - conn - |> log_in_user(user_fixture()) - |> live(~p"/users/reset_password") - |> follow_redirect(conn, ~p"/") - - assert {:ok, _conn} = result - end - end - - describe "Reset link" do - setup do - %{user: user_fixture()} - end - - test "sends a new reset password token", %{conn: conn, user: user} do - {:ok, lv, _html} = live(conn, ~p"/users/reset_password") - - {:ok, conn} = - lv - |> form("#reset_password_form", user: %{"email" => user.email}) - |> render_submit() - |> follow_redirect(conn, "/") - - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "If your email is in our system" - - assert Repo.get_by!(Users.UserToken, user_id: user.id).context == - "reset_password" - end - - test "does not send reset password token if email is invalid", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/reset_password") - - {:ok, conn} = - lv - |> form("#reset_password_form", user: %{"email" => "unknown@example.com"}) - |> render_submit() - |> follow_redirect(conn, "/") - - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "If your email is in our system" - assert Repo.all(Users.UserToken) == [] - end - end -end diff --git a/services/bright/test/bright_web/live/user_login_live_test.exs b/services/bright/test/bright_web/live/user_login_live_test.exs deleted file mode 100644 index e6d70ed..0000000 --- a/services/bright/test/bright_web/live/user_login_live_test.exs +++ /dev/null @@ -1,87 +0,0 @@ -defmodule BrightWeb.UserLoginLiveTest do - use BrightWeb.ConnCase, async: true - - import Phoenix.LiveViewTest - import Bright.UsersFixtures - - describe "Log in page" do - test "renders log in page", %{conn: conn} do - {:ok, _lv, html} = live(conn, ~p"/users/log_in") - - assert html =~ "Log in" - assert html =~ "Register" - assert html =~ "Forgot your password?" - end - - test "redirects if already logged in", %{conn: conn} do - result = - conn - |> log_in_user(user_fixture()) - |> live(~p"/users/log_in") - |> follow_redirect(conn, "/") - - assert {:ok, _conn} = result - end - end - - describe "user login" do - test "redirects if user login with valid credentials", %{conn: conn} do - password = "123456789abcd" - user = user_fixture(%{password: password}) - - {:ok, lv, _html} = live(conn, ~p"/users/log_in") - - form = - form(lv, "#login_form", user: %{email: user.email, password: password, remember_me: true}) - - conn = submit_form(form, conn) - - assert redirected_to(conn) == ~p"/" - end - - test "redirects to login page with a flash error if there are no valid credentials", %{ - conn: conn - } do - {:ok, lv, _html} = live(conn, ~p"/users/log_in") - - form = - form(lv, "#login_form", - user: %{email: "test@email.com", password: "123456", remember_me: true} - ) - - conn = submit_form(form, conn) - - assert Phoenix.Flash.get(conn.assigns.flash, :error) == "Invalid email or password" - - assert redirected_to(conn) == "/users/log_in" - end - end - - describe "login navigation" do - test "redirects to registration page when the Register button is clicked", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/log_in") - - {:ok, _login_live, login_html} = - lv - |> element(~s|main a:fl-contains("Sign up")|) - |> render_click() - |> follow_redirect(conn, ~p"/users/register") - - assert login_html =~ "Register" - end - - test "redirects to forgot password page when the Forgot Password button is clicked", %{ - conn: conn - } do - {:ok, lv, _html} = live(conn, ~p"/users/log_in") - - {:ok, conn} = - lv - |> element(~s|main a:fl-contains("Forgot your password?")|) - |> render_click() - |> follow_redirect(conn, ~p"/users/reset_password") - - assert conn.resp_body =~ "Forgot your password?" - end - end -end diff --git a/services/bright/test/bright_web/live/user_registration_live_test.exs b/services/bright/test/bright_web/live/user_registration_live_test.exs deleted file mode 100644 index fdf2431..0000000 --- a/services/bright/test/bright_web/live/user_registration_live_test.exs +++ /dev/null @@ -1,87 +0,0 @@ -defmodule BrightWeb.UserRegistrationLiveTest do - use BrightWeb.ConnCase, async: true - - import Phoenix.LiveViewTest - import Bright.UsersFixtures - - describe "Registration page" do - test "renders registration page", %{conn: conn} do - {:ok, _lv, html} = live(conn, ~p"/users/register") - - assert html =~ "Register" - assert html =~ "Log in" - end - - test "redirects if already logged in", %{conn: conn} do - result = - conn - |> log_in_user(user_fixture()) - |> live(~p"/users/register") - |> follow_redirect(conn, "/") - - assert {:ok, _conn} = result - end - - test "renders errors for invalid data", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/register") - - result = - lv - |> element("#registration_form") - |> render_change(user: %{"email" => "with spaces", "password" => "too short"}) - - assert result =~ "Register" - assert result =~ "must have the @ sign and no spaces" - assert result =~ "should be at least 12 character" - end - end - - describe "register user" do - test "creates account and logs the user in", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/register") - - email = unique_user_email() - form = form(lv, "#registration_form", user: valid_user_attributes(email: email)) - render_submit(form) - conn = follow_trigger_action(form, conn) - - assert redirected_to(conn) == ~p"/" - - # Now do a logged in request and assert on the menu - conn = get(conn, "/") - response = html_response(conn, 200) - assert response =~ email - assert response =~ "Settings" - assert response =~ "Log out" - end - - test "renders errors for duplicated email", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/register") - - user = user_fixture(%{email: "test@email.com"}) - - result = - lv - |> form("#registration_form", - user: %{"email" => user.email, "password" => "valid_password"} - ) - |> render_submit() - - assert result =~ "has already been taken" - end - end - - describe "registration navigation" do - test "redirects to login page when the Log in button is clicked", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/register") - - {:ok, _login_live, login_html} = - lv - |> element(~s|main a:fl-contains("Log in")|) - |> render_click() - |> follow_redirect(conn, ~p"/users/log_in") - - assert login_html =~ "Log in" - end - end -end diff --git a/services/bright/test/bright_web/live/user_reset_password_live_test.exs b/services/bright/test/bright_web/live/user_reset_password_live_test.exs deleted file mode 100644 index 7b8a30c..0000000 --- a/services/bright/test/bright_web/live/user_reset_password_live_test.exs +++ /dev/null @@ -1,118 +0,0 @@ -defmodule BrightWeb.UserResetPasswordLiveTest do - use BrightWeb.ConnCase, async: true - - import Phoenix.LiveViewTest - import Bright.UsersFixtures - - alias Bright.Users - - setup do - user = user_fixture() - - token = - extract_user_token(fn url -> - Users.deliver_user_reset_password_instructions(user, url) - end) - - %{token: token, user: user} - end - - describe "Reset password page" do - test "renders reset password with valid token", %{conn: conn, token: token} do - {:ok, _lv, html} = live(conn, ~p"/users/reset_password/#{token}") - - assert html =~ "Reset Password" - end - - test "does not render reset password with invalid token", %{conn: conn} do - {:error, {:redirect, to}} = live(conn, ~p"/users/reset_password/invalid") - - assert to == %{ - flash: %{"error" => "Reset password link is invalid or it has expired."}, - to: ~p"/" - } - end - - test "renders errors for invalid data", %{conn: conn, token: token} do - {:ok, lv, _html} = live(conn, ~p"/users/reset_password/#{token}") - - result = - lv - |> element("#reset_password_form") - |> render_change( - user: %{"password" => "secret12", "password_confirmation" => "secret123456"} - ) - - assert result =~ "should be at least 12 character" - assert result =~ "does not match password" - end - end - - describe "Reset Password" do - test "resets password once", %{conn: conn, token: token, user: user} do - {:ok, lv, _html} = live(conn, ~p"/users/reset_password/#{token}") - - {:ok, conn} = - lv - |> form("#reset_password_form", - user: %{ - "password" => "new valid password", - "password_confirmation" => "new valid password" - } - ) - |> render_submit() - |> follow_redirect(conn, ~p"/users/log_in") - - refute get_session(conn, :user_token) - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Password reset successfully" - assert Users.get_user_by_email_and_password(user.email, "new valid password") - end - - test "does not reset password on invalid data", %{conn: conn, token: token} do - {:ok, lv, _html} = live(conn, ~p"/users/reset_password/#{token}") - - result = - lv - |> form("#reset_password_form", - user: %{ - "password" => "too short", - "password_confirmation" => "does not match" - } - ) - |> render_submit() - - assert result =~ "Reset Password" - assert result =~ "should be at least 12 character(s)" - assert result =~ "does not match password" - end - end - - describe "Reset password navigation" do - test "redirects to login page when the Log in button is clicked", %{conn: conn, token: token} do - {:ok, lv, _html} = live(conn, ~p"/users/reset_password/#{token}") - - {:ok, conn} = - lv - |> element(~s|main a:fl-contains("Log in")|) - |> render_click() - |> follow_redirect(conn, ~p"/users/log_in") - - assert conn.resp_body =~ "Log in" - end - - test "redirects to registration page when the Register button is clicked", %{ - conn: conn, - token: token - } do - {:ok, lv, _html} = live(conn, ~p"/users/reset_password/#{token}") - - {:ok, conn} = - lv - |> element(~s|main a:fl-contains("Register")|) - |> render_click() - |> follow_redirect(conn, ~p"/users/register") - - assert conn.resp_body =~ "Register" - end - end -end diff --git a/services/bright/test/bright_web/live/user_settings_live_test.exs b/services/bright/test/bright_web/live/user_settings_live_test.exs deleted file mode 100644 index 8a8dbf4..0000000 --- a/services/bright/test/bright_web/live/user_settings_live_test.exs +++ /dev/null @@ -1,210 +0,0 @@ -defmodule BrightWeb.UserSettingsLiveTest do - use BrightWeb.ConnCase, async: true - - alias Bright.Users - import Phoenix.LiveViewTest - import Bright.UsersFixtures - - describe "Settings page" do - test "renders settings page", %{conn: conn} do - {:ok, _lv, html} = - conn - |> log_in_user(user_fixture()) - |> live(~p"/users/settings") - - assert html =~ "Change Email" - assert html =~ "Change Password" - end - - test "redirects if user is not logged in", %{conn: conn} do - assert {:error, redirect} = live(conn, ~p"/users/settings") - - assert {:redirect, %{to: path, flash: flash}} = redirect - assert path == ~p"/users/log_in" - assert %{"error" => "You must log in to access this page."} = flash - end - end - - describe "update email form" do - setup %{conn: conn} do - password = valid_user_password() - user = user_fixture(%{password: password}) - %{conn: log_in_user(conn, user), user: user, password: password} - end - - test "updates the user email", %{conn: conn, password: password, user: user} do - new_email = unique_user_email() - - {:ok, lv, _html} = live(conn, ~p"/users/settings") - - result = - lv - |> form("#email_form", %{ - "current_password" => password, - "user" => %{"email" => new_email} - }) - |> render_submit() - - assert result =~ "A link to confirm your email" - assert Users.get_user_by_email(user.email) - end - - test "renders errors with invalid data (phx-change)", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/settings") - - result = - lv - |> element("#email_form") - |> render_change(%{ - "action" => "update_email", - "current_password" => "invalid", - "user" => %{"email" => "with spaces"} - }) - - assert result =~ "Change Email" - assert result =~ "must have the @ sign and no spaces" - end - - test "renders errors with invalid data (phx-submit)", %{conn: conn, user: user} do - {:ok, lv, _html} = live(conn, ~p"/users/settings") - - result = - lv - |> form("#email_form", %{ - "current_password" => "invalid", - "user" => %{"email" => user.email} - }) - |> render_submit() - - assert result =~ "Change Email" - assert result =~ "did not change" - assert result =~ "is not valid" - end - end - - describe "update password form" do - setup %{conn: conn} do - password = valid_user_password() - user = user_fixture(%{password: password}) - %{conn: log_in_user(conn, user), user: user, password: password} - end - - test "updates the user password", %{conn: conn, user: user, password: password} do - new_password = valid_user_password() - - {:ok, lv, _html} = live(conn, ~p"/users/settings") - - form = - form(lv, "#password_form", %{ - "current_password" => password, - "user" => %{ - "email" => user.email, - "password" => new_password, - "password_confirmation" => new_password - } - }) - - render_submit(form) - - new_password_conn = follow_trigger_action(form, conn) - - assert redirected_to(new_password_conn) == ~p"/users/settings" - - assert get_session(new_password_conn, :user_token) != get_session(conn, :user_token) - - assert Phoenix.Flash.get(new_password_conn.assigns.flash, :info) =~ - "Password updated successfully" - - assert Users.get_user_by_email_and_password(user.email, new_password) - end - - test "renders errors with invalid data (phx-change)", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/settings") - - result = - lv - |> element("#password_form") - |> render_change(%{ - "current_password" => "invalid", - "user" => %{ - "password" => "too short", - "password_confirmation" => "does not match" - } - }) - - assert result =~ "Change Password" - assert result =~ "should be at least 12 character(s)" - assert result =~ "does not match password" - end - - test "renders errors with invalid data (phx-submit)", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/users/settings") - - result = - lv - |> form("#password_form", %{ - "current_password" => "invalid", - "user" => %{ - "password" => "too short", - "password_confirmation" => "does not match" - } - }) - |> render_submit() - - assert result =~ "Change Password" - assert result =~ "should be at least 12 character(s)" - assert result =~ "does not match password" - assert result =~ "is not valid" - end - end - - describe "confirm email" do - setup %{conn: conn} do - user = user_fixture() - email = unique_user_email() - - token = - extract_user_token(fn url -> - Users.deliver_user_update_email_instructions(%{user | email: email}, user.email, url) - end) - - %{conn: log_in_user(conn, user), token: token, email: email, user: user} - end - - test "updates the user email once", %{conn: conn, user: user, token: token, email: email} do - {:error, redirect} = live(conn, ~p"/users/settings/confirm_email/#{token}") - - assert {:live_redirect, %{to: path, flash: flash}} = redirect - assert path == ~p"/users/settings" - assert %{"info" => message} = flash - assert message == "Email changed successfully." - refute Users.get_user_by_email(user.email) - assert Users.get_user_by_email(email) - - # use confirm token again - {:error, redirect} = live(conn, ~p"/users/settings/confirm_email/#{token}") - assert {:live_redirect, %{to: path, flash: flash}} = redirect - assert path == ~p"/users/settings" - assert %{"error" => message} = flash - assert message == "Email change link is invalid or it has expired." - end - - test "does not update email with invalid token", %{conn: conn, user: user} do - {:error, redirect} = live(conn, ~p"/users/settings/confirm_email/oops") - assert {:live_redirect, %{to: path, flash: flash}} = redirect - assert path == ~p"/users/settings" - assert %{"error" => message} = flash - assert message == "Email change link is invalid or it has expired." - assert Users.get_user_by_email(user.email) - end - - test "redirects if user is not logged in", %{token: token} do - conn = build_conn() - {:error, redirect} = live(conn, ~p"/users/settings/confirm_email/#{token}") - assert {:redirect, %{to: path, flash: flash}} = redirect - assert path == ~p"/users/log_in" - assert %{"error" => message} = flash - assert message == "You must log in to access this page." - end - end -end diff --git a/services/bright/test/bright_web/user_auth_test.exs b/services/bright/test/bright_web/user_auth_test.exs deleted file mode 100644 index 071350a..0000000 --- a/services/bright/test/bright_web/user_auth_test.exs +++ /dev/null @@ -1,272 +0,0 @@ -defmodule BrightWeb.UserAuthTest do - use BrightWeb.ConnCase, async: true - - alias Phoenix.LiveView - alias Bright.Users - alias BrightWeb.UserAuth - import Bright.UsersFixtures - - @remember_me_cookie "_bright_web_user_remember_me" - - setup %{conn: conn} do - conn = - conn - |> Map.replace!(:secret_key_base, BrightWeb.Endpoint.config(:secret_key_base)) - |> init_test_session(%{}) - - %{user: user_fixture(), conn: conn} - end - - describe "log_in_user/3" do - test "stores the user token in the session", %{conn: conn, user: user} do - conn = UserAuth.log_in_user(conn, user) - assert token = get_session(conn, :user_token) - assert get_session(conn, :live_socket_id) == "users_sessions:#{Base.url_encode64(token)}" - assert redirected_to(conn) == ~p"/" - assert Users.get_user_by_session_token(token) - end - - test "clears everything previously stored in the session", %{conn: conn, user: user} do - conn = conn |> put_session(:to_be_removed, "value") |> UserAuth.log_in_user(user) - refute get_session(conn, :to_be_removed) - end - - test "redirects to the configured path", %{conn: conn, user: user} do - conn = conn |> put_session(:user_return_to, "/hello") |> UserAuth.log_in_user(user) - assert redirected_to(conn) == "/hello" - end - - test "writes a cookie if remember_me is configured", %{conn: conn, user: user} do - conn = conn |> fetch_cookies() |> UserAuth.log_in_user(user, %{"remember_me" => "true"}) - assert get_session(conn, :user_token) == conn.cookies[@remember_me_cookie] - - assert %{value: signed_token, max_age: max_age} = conn.resp_cookies[@remember_me_cookie] - assert signed_token != get_session(conn, :user_token) - assert max_age == 5_184_000 - end - end - - describe "logout_user/1" do - test "erases session and cookies", %{conn: conn, user: user} do - user_token = Users.generate_user_session_token(user) - - conn = - conn - |> put_session(:user_token, user_token) - |> put_req_cookie(@remember_me_cookie, user_token) - |> fetch_cookies() - |> UserAuth.log_out_user() - - refute get_session(conn, :user_token) - refute conn.cookies[@remember_me_cookie] - assert %{max_age: 0} = conn.resp_cookies[@remember_me_cookie] - assert redirected_to(conn) == ~p"/" - refute Users.get_user_by_session_token(user_token) - end - - test "broadcasts to the given live_socket_id", %{conn: conn} do - live_socket_id = "users_sessions:abcdef-token" - BrightWeb.Endpoint.subscribe(live_socket_id) - - conn - |> put_session(:live_socket_id, live_socket_id) - |> UserAuth.log_out_user() - - assert_receive %Phoenix.Socket.Broadcast{event: "disconnect", topic: ^live_socket_id} - end - - test "works even if user is already logged out", %{conn: conn} do - conn = conn |> fetch_cookies() |> UserAuth.log_out_user() - refute get_session(conn, :user_token) - assert %{max_age: 0} = conn.resp_cookies[@remember_me_cookie] - assert redirected_to(conn) == ~p"/" - end - end - - describe "fetch_current_user/2" do - test "authenticates user from session", %{conn: conn, user: user} do - user_token = Users.generate_user_session_token(user) - conn = conn |> put_session(:user_token, user_token) |> UserAuth.fetch_current_user([]) - assert conn.assigns.current_user.id == user.id - end - - test "authenticates user from cookies", %{conn: conn, user: user} do - logged_in_conn = - conn |> fetch_cookies() |> UserAuth.log_in_user(user, %{"remember_me" => "true"}) - - user_token = logged_in_conn.cookies[@remember_me_cookie] - %{value: signed_token} = logged_in_conn.resp_cookies[@remember_me_cookie] - - conn = - conn - |> put_req_cookie(@remember_me_cookie, signed_token) - |> UserAuth.fetch_current_user([]) - - assert conn.assigns.current_user.id == user.id - assert get_session(conn, :user_token) == user_token - - assert get_session(conn, :live_socket_id) == - "users_sessions:#{Base.url_encode64(user_token)}" - end - - test "does not authenticate if data is missing", %{conn: conn, user: user} do - _ = Users.generate_user_session_token(user) - conn = UserAuth.fetch_current_user(conn, []) - refute get_session(conn, :user_token) - refute conn.assigns.current_user - end - end - - describe "on_mount :mount_current_user" do - test "assigns current_user based on a valid user_token", %{conn: conn, user: user} do - user_token = Users.generate_user_session_token(user) - session = conn |> put_session(:user_token, user_token) |> get_session() - - {:cont, updated_socket} = - UserAuth.on_mount(:mount_current_user, %{}, session, %LiveView.Socket{}) - - assert updated_socket.assigns.current_user.id == user.id - end - - test "assigns nil to current_user assign if there isn't a valid user_token", %{conn: conn} do - user_token = "invalid_token" - session = conn |> put_session(:user_token, user_token) |> get_session() - - {:cont, updated_socket} = - UserAuth.on_mount(:mount_current_user, %{}, session, %LiveView.Socket{}) - - assert updated_socket.assigns.current_user == nil - end - - test "assigns nil to current_user assign if there isn't a user_token", %{conn: conn} do - session = conn |> get_session() - - {:cont, updated_socket} = - UserAuth.on_mount(:mount_current_user, %{}, session, %LiveView.Socket{}) - - assert updated_socket.assigns.current_user == nil - end - end - - describe "on_mount :ensure_authenticated" do - test "authenticates current_user based on a valid user_token", %{conn: conn, user: user} do - user_token = Users.generate_user_session_token(user) - session = conn |> put_session(:user_token, user_token) |> get_session() - - {:cont, updated_socket} = - UserAuth.on_mount(:ensure_authenticated, %{}, session, %LiveView.Socket{}) - - assert updated_socket.assigns.current_user.id == user.id - end - - test "redirects to login page if there isn't a valid user_token", %{conn: conn} do - user_token = "invalid_token" - session = conn |> put_session(:user_token, user_token) |> get_session() - - socket = %LiveView.Socket{ - endpoint: BrightWeb.Endpoint, - assigns: %{__changed__: %{}, flash: %{}} - } - - {:halt, updated_socket} = UserAuth.on_mount(:ensure_authenticated, %{}, session, socket) - assert updated_socket.assigns.current_user == nil - end - - test "redirects to login page if there isn't a user_token", %{conn: conn} do - session = conn |> get_session() - - socket = %LiveView.Socket{ - endpoint: BrightWeb.Endpoint, - assigns: %{__changed__: %{}, flash: %{}} - } - - {:halt, updated_socket} = UserAuth.on_mount(:ensure_authenticated, %{}, session, socket) - assert updated_socket.assigns.current_user == nil - end - end - - describe "on_mount :redirect_if_user_is_authenticated" do - test "redirects if there is an authenticated user ", %{conn: conn, user: user} do - user_token = Users.generate_user_session_token(user) - session = conn |> put_session(:user_token, user_token) |> get_session() - - assert {:halt, _updated_socket} = - UserAuth.on_mount( - :redirect_if_user_is_authenticated, - %{}, - session, - %LiveView.Socket{} - ) - end - - test "doesn't redirect if there is no authenticated user", %{conn: conn} do - session = conn |> get_session() - - assert {:cont, _updated_socket} = - UserAuth.on_mount( - :redirect_if_user_is_authenticated, - %{}, - session, - %LiveView.Socket{} - ) - end - end - - describe "redirect_if_user_is_authenticated/2" do - test "redirects if user is authenticated", %{conn: conn, user: user} do - conn = conn |> assign(:current_user, user) |> UserAuth.redirect_if_user_is_authenticated([]) - assert conn.halted - assert redirected_to(conn) == ~p"/" - end - - test "does not redirect if user is not authenticated", %{conn: conn} do - conn = UserAuth.redirect_if_user_is_authenticated(conn, []) - refute conn.halted - refute conn.status - end - end - - describe "require_authenticated_user/2" do - test "redirects if user is not authenticated", %{conn: conn} do - conn = conn |> fetch_flash() |> UserAuth.require_authenticated_user([]) - assert conn.halted - - assert redirected_to(conn) == ~p"/users/log_in" - - assert Phoenix.Flash.get(conn.assigns.flash, :error) == - "You must log in to access this page." - end - - test "stores the path to redirect to on GET", %{conn: conn} do - halted_conn = - %{conn | path_info: ["foo"], query_string: ""} - |> fetch_flash() - |> UserAuth.require_authenticated_user([]) - - assert halted_conn.halted - assert get_session(halted_conn, :user_return_to) == "/foo" - - halted_conn = - %{conn | path_info: ["foo"], query_string: "bar=baz"} - |> fetch_flash() - |> UserAuth.require_authenticated_user([]) - - assert halted_conn.halted - assert get_session(halted_conn, :user_return_to) == "/foo?bar=baz" - - halted_conn = - %{conn | path_info: ["foo"], query_string: "bar", method: "POST"} - |> fetch_flash() - |> UserAuth.require_authenticated_user([]) - - assert halted_conn.halted - refute get_session(halted_conn, :user_return_to) - end - - test "does not redirect if user is authenticated", %{conn: conn, user: user} do - conn = conn |> assign(:current_user, user) |> UserAuth.require_authenticated_user([]) - refute conn.halted - refute conn.status - end - end -end diff --git a/services/bright/test/support/conn_case.ex b/services/bright/test/support/conn_case.ex deleted file mode 100644 index 8f953b0..0000000 --- a/services/bright/test/support/conn_case.ex +++ /dev/null @@ -1,142 +0,0 @@ -defmodule BrightWeb.ConnCase do - @moduledoc """ - This module defines the test case to be used by - tests that require setting up a connection. - - Such tests rely on `Phoenix.ConnTest` and also - import other functionality to make it easier - to build common data structures and query the data layer. - - Finally, if the test case interacts with the database, - we enable the SQL sandbox, so changes done to the database - are reverted at the end of every test. If you are using - PostgreSQL, you can even run database tests asynchronously - by setting `use BrightWeb.ConnCase, async: true`, although - this option is not recommended for other databases. - """ - - use ExUnit.CaseTemplate - - using do - quote do - # The default endpoint for testing - @endpoint BrightWeb.Endpoint - - use BrightWeb, :verified_routes - - # Import conveniences for testing with connections - import Plug.Conn - import Phoenix.ConnTest - import BrightWeb.ConnCase - end - end - - setup tags do - Bright.DataCase.setup_sandbox(tags) - {:ok, conn: Phoenix.ConnTest.build_conn()} - end - - @doc """ - Setup helper that registers and logs in platforms. - - setup :register_and_log_in_platform - - It stores an updated connection and a registered platform in the - test context. - """ - def register_and_log_in_platform(%{conn: conn}) do - platform = Bright.PlatformsFixtures.platform_fixture() - %{conn: log_in_platform(conn, platform), platform: platform} - end - - @doc """ - Logs the given `platform` into the `conn`. - - It returns an updated `conn`. - """ - def log_in_platform(conn, platform) do - token = Bright.Platforms.generate_platform_session_token(platform) - - conn - |> Phoenix.ConnTest.init_test_session(%{}) - |> Plug.Conn.put_session(:platform_token, token) - end - - @doc """ - Setup helper that registers and logs in users. - - setup :register_and_log_in_user - - It stores an updated connection and a registered user in the - test context. - """ - def register_and_log_in_user(%{conn: conn}) do - user = Bright.AccountsFixtures.user_fixture() - %{conn: log_in_user(conn, user), user: user} - end - - @doc """ - Logs the given `user` into the `conn`. - - It returns an updated `conn`. - """ - def log_in_user(conn, user) do - token = Bright.Accounts.generate_user_session_token(user) - - conn - |> Phoenix.ConnTest.init_test_session(%{}) - |> Plug.Conn.put_session(:user_token, token) - end - - @doc """ - Setup helper that registers and logs in user. - - setup :register_and_log_in_user - - It stores an updated connection and a registered user in the - test context. - """ - def register_and_log_in_user(%{conn: conn}) do - user = Bright.UsersFixtures.user_fixture() - %{conn: log_in_user(conn, user), user: user} - end - - @doc """ - Logs the given `user` into the `conn`. - - It returns an updated `conn`. - """ - def log_in_user(conn, user) do - token = Bright.Users.generate_user_session_token(user) - - conn - |> Phoenix.ConnTest.init_test_session(%{}) - |> Plug.Conn.put_session(:user_token, token) - end - - @doc """ - Setup helper that registers and logs in users. - - setup :register_and_log_in_user - - It stores an updated connection and a registered user in the - test context. - """ - def register_and_log_in_user(%{conn: conn}) do - user = Bright.UsersFixtures.user_fixture() - %{conn: log_in_user(conn, user), user: user} - end - - @doc """ - Logs the given `user` into the `conn`. - - It returns an updated `conn`. - """ - def log_in_user(conn, user) do - token = Bright.Users.generate_user_session_token(user) - - conn - |> Phoenix.ConnTest.init_test_session(%{}) - |> Plug.Conn.put_session(:user_token, token) - end -end diff --git a/services/bright/test/support/fixtures/blog_fixtures.ex b/services/bright/test/support/fixtures/blog_fixtures.ex deleted file mode 100644 index 9e3b2f0..0000000 --- a/services/bright/test/support/fixtures/blog_fixtures.ex +++ /dev/null @@ -1,21 +0,0 @@ -defmodule Bright.BlogFixtures do - @moduledoc """ - This module defines test helpers for creating - entities via the `Bright.Blog` context. - """ - - @doc """ - Generate a post. - """ - def post_fixture(attrs \\ %{}) do - {:ok, post} = - attrs - |> Enum.into(%{ - body: "some body", - title: "some title" - }) - |> Bright.Blog.create_post() - - post - end -end diff --git a/services/bright/test/support/fixtures/platforms_fixtures.ex b/services/bright/test/support/fixtures/platforms_fixtures.ex deleted file mode 100644 index eaaa206..0000000 --- a/services/bright/test/support/fixtures/platforms_fixtures.ex +++ /dev/null @@ -1,51 +0,0 @@ -defmodule Bright.PlatformsFixtures do - @moduledoc """ - This module defines test helpers for creating - entities via the `Bright.Platforms` context. - """ - - def platform_fixture(attrs \\ %{}) - - @doc """ - Generate a platform. - """ - def platform_fixture(attrs) do - {:ok, platform} = - attrs - |> Enum.into(%{ - icon: "some icon", - name: "some name", - url: "some url" - }) - |> Bright.Platforms.create_platform() - - platform - end - - def platform_fixture(attrs) do - {:ok, platform} = - attrs - |> valid_platform_attributes() - |> Bright.Platforms.register_platform() - - platform - end - - def unique_platform_email, do: "platform#{System.unique_integer()}@example.com" - def valid_platform_password, do: "hello world!" - - def valid_platform_attributes(attrs \\ %{}) do - Enum.into(attrs, %{ - email: unique_platform_email(), - password: valid_platform_password() - }) - end - - - - def extract_platform_token(fun) do - {:ok, captured_email} = fun.(&"[TOKEN]#{&1}[TOKEN]") - [_, token | _] = String.split(captured_email.text_body, "[TOKEN]") - token - end -end
    <%= col[:label] %>{col[:label]} - <%= gettext("Actions") %> + {gettext("Actions")}
    - - <%= render_slot(action, @row_item.(row)) %> + + {render_slot(action, @row_item.(row))}