@shopbite-de/storefront 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +28 -0
- package/.env.example +11 -0
- package/.github/workflows/build.yaml +48 -0
- package/.github/workflows/ci.yaml +102 -0
- package/.prettierignore +6 -0
- package/.prettierrc +1 -0
- package/api-types/storeApiSchema.json +13863 -0
- package/api-types/storeApiTypes.d.ts +7010 -0
- package/app/app.config.ts +18 -0
- package/app/app.vue +99 -0
- package/app/assets/css/main.css +60 -0
- package/app/assets/fonts/Courier_Prime/CourierPrime-Bold.ttf +0 -0
- package/app/assets/fonts/Courier_Prime/CourierPrime-BoldItalic.ttf +0 -0
- package/app/assets/fonts/Courier_Prime/CourierPrime-Italic.ttf +0 -0
- package/app/assets/fonts/Courier_Prime/CourierPrime-Regular.ttf +0 -0
- package/app/assets/fonts/Courier_Prime/OFL.txt +93 -0
- package/app/assets/fonts/Kalam/Kalam-Bold.ttf +0 -0
- package/app/assets/fonts/Kalam/Kalam-Light.ttf +0 -0
- package/app/assets/fonts/Kalam/Kalam-Regular.ttf +0 -0
- package/app/assets/fonts/Kalam/OFL.txt +93 -0
- package/app/assets/fonts/Marcellus/Marcellus-Regular.ttf +0 -0
- package/app/assets/fonts/Marcellus/OFL.txt +93 -0
- package/app/assets/fonts/Sora/OFL.txt +93 -0
- package/app/assets/fonts/Sora/README.txt +70 -0
- package/app/assets/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-Bold.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-Light.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-Medium.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-Regular.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
- package/app/assets/fonts/Sora/static/Sora-Thin.ttf +0 -0
- package/app/components/AddToWishlist.vue +55 -0
- package/app/components/Address/Card.vue +32 -0
- package/app/components/Address/Detail.vue +22 -0
- package/app/components/Address/Form.vue +117 -0
- package/app/components/AnimatedSection.vue +77 -0
- package/app/components/BottomNavi.vue +63 -0
- package/app/components/Cart/Item.vue +112 -0
- package/app/components/Cart/QuickView.vue +55 -0
- package/app/components/Category/Header.vue +53 -0
- package/app/components/Category/Listing.vue +295 -0
- package/app/components/Checkout/DeliveryTimeSelect.vue +177 -0
- package/app/components/Checkout/LoginOrRegister.vue +43 -0
- package/app/components/Checkout/PaymentAndDelivery.vue +101 -0
- package/app/components/Checkout/PaymentMethod.vue +30 -0
- package/app/components/Checkout/ShippingMethod.vue +30 -0
- package/app/components/Checkout/Summary.vue +125 -0
- package/app/components/Cta.vue +34 -0
- package/app/components/Features.vue +36 -0
- package/app/components/Food/Marquee.vue +35 -0
- package/app/components/Food/MarqueeItem.vue +72 -0
- package/app/components/Footer.vue +51 -0
- package/app/components/Header.vue +160 -0
- package/app/components/Hero.vue +77 -0
- package/app/components/ImageGallery.vue +46 -0
- package/app/components/Loading.vue +29 -0
- package/app/components/Navigation/DesktopLeft.vue +51 -0
- package/app/components/Navigation/DesktopLeft2.vue +43 -0
- package/app/components/Navigation/MobileTop.vue +59 -0
- package/app/components/Navigation/MobileTop2.vue +42 -0
- package/app/components/Order/Detail.vue +84 -0
- package/app/components/Product/Card.vue +132 -0
- package/app/components/Product/Category.vue +153 -0
- package/app/components/Product/Configurator.vue +65 -0
- package/app/components/Product/CrossSelling.vue +95 -0
- package/app/components/Product/DeselectIngredient.vue +46 -0
- package/app/components/Product/Detail.vue +187 -0
- package/app/components/Product/SearchBar.vue +109 -0
- package/app/components/PublicAnnouncement.vue +17 -0
- package/app/components/Topseller.vue +43 -0
- package/app/components/User/Detail.vue +47 -0
- package/app/components/User/LoginForm.vue +105 -0
- package/app/components/User/RegistrationForm.vue +340 -0
- package/app/components/Wishlist.vue +102 -0
- package/app/composables/useDeliveryTime.ts +139 -0
- package/app/composables/useInterval.ts +15 -0
- package/app/composables/usePizzaToppings.ts +31 -0
- package/app/composables/useProductEvents.test.ts +111 -0
- package/app/composables/useProductEvents.ts +22 -0
- package/app/composables/useProductVariants.ts +61 -0
- package/app/composables/useScrollAnimation.ts +39 -0
- package/app/composables/useTopSellers.ts +34 -0
- package/app/error.vue +30 -0
- package/app/layouts/account.vue +74 -0
- package/app/layouts/default.vue +6 -0
- package/app/layouts/listing.vue +32 -0
- package/app/layouts/listing2.vue +8 -0
- package/app/middleware/trailing-slash.global.ts +19 -0
- package/app/pages/account/recover/password/index.vue +143 -0
- package/app/pages/anmelden.vue +32 -0
- package/app/pages/bestellung.vue +103 -0
- package/app/pages/c/[...all].vue +49 -0
- package/app/pages/index.vue +59 -0
- package/app/pages/konto/adressen.vue +135 -0
- package/app/pages/konto/bestellung/[id].vue +41 -0
- package/app/pages/konto/bestellungen.vue +53 -0
- package/app/pages/konto/index.vue +74 -0
- package/app/pages/konto/profil.vue +160 -0
- package/app/pages/merkliste.vue +11 -0
- package/app/pages/order/[id].vue +69 -0
- package/app/pages/passwort-vergessen.vue +103 -0
- package/app/pages/registrierung/bestaetigen.vue +44 -0
- package/app/pages/registrierung/index.vue +24 -0
- package/app/pages/speisekarte.vue +58 -0
- package/app/pages/unternehmen/[slug].vue +66 -0
- package/app/types/Association.d.ts +11 -0
- package/app/utils/businessHours.ts +119 -0
- package/app/utils/formatDate.ts +9 -0
- package/app/utils/holidays.ts +43 -0
- package/app/utils/storeHours.ts +8 -0
- package/app/utils/time.ts +20 -0
- package/app/validation/addressSchema.ts +34 -0
- package/app/validation/registrationSchema.ts +156 -0
- package/bun.dockerfile +60 -0
- package/compose.yml +17 -0
- package/container +7 -0
- package/content/index.yml +91 -0
- package/content/navigation.yml +67 -0
- package/content/unternehmen/agb.md +1 -0
- package/content/unternehmen/datenschutz.md +1 -0
- package/content/unternehmen/impressum.md +39 -0
- package/content.config.ts +134 -0
- package/eslint.config.mjs +8 -0
- package/node.dockerfile +33 -0
- package/nuxt.config.ts +153 -0
- package/package.json +70 -0
- package/public/dark/Logo.svg +32 -0
- package/public/favicon.ico +0 -0
- package/public/light/Logo.svg +32 -0
- package/renovate.json +4 -0
- package/server/tsconfig.json +3 -0
- package/shopware.d.ts +19 -0
- package/tsconfig.json +4 -0
- package/vitest.config.mts +26 -0
package/.dockerignore
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Nuxt dev/build outputs
|
|
2
|
+
.output
|
|
3
|
+
.data
|
|
4
|
+
.nuxt
|
|
5
|
+
.nitro
|
|
6
|
+
.cache
|
|
7
|
+
dist
|
|
8
|
+
|
|
9
|
+
# Node dependencies
|
|
10
|
+
node_modules
|
|
11
|
+
|
|
12
|
+
# Logs
|
|
13
|
+
logs
|
|
14
|
+
*.log
|
|
15
|
+
|
|
16
|
+
# Misc
|
|
17
|
+
.DS_Store
|
|
18
|
+
.fleet
|
|
19
|
+
.idea
|
|
20
|
+
|
|
21
|
+
# Local env files
|
|
22
|
+
.env
|
|
23
|
+
.env.*
|
|
24
|
+
!.env.example
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# Database
|
|
28
|
+
db.json
|
package/.env.example
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
NUXT_PUBLIC_APP_ENV="development"
|
|
2
|
+
|
|
3
|
+
NUXT_PUBLIC_SHOPWARE_DEV_STORE_FRONT_URL="http://localhost:3000"
|
|
4
|
+
NUXT_PUBLIC_STORE_URL="http://localhost:3000"
|
|
5
|
+
|
|
6
|
+
NUXT_PUBLIC_SHOPWARE_ENDPOINT="https://shopware.shopbite.de/store-api"
|
|
7
|
+
NUXT_PUBLIC_SHOPWARE_ACCESS_TOKEN="TOKEN"
|
|
8
|
+
NUXT_PUBLIC_SHOPWARE_COUNTRY_ID=019a17a0f67b706a8ec9ead3059e12ba
|
|
9
|
+
|
|
10
|
+
OPENAPI_ACCESS_KEY=key
|
|
11
|
+
OPENAPI_JSON_URL="https://shopware.shopbite.net"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Build and Push Docker Images
|
|
2
|
+
on:
|
|
3
|
+
release:
|
|
4
|
+
types: [published]
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
build-and-push:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
packages: write
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout repository
|
|
15
|
+
uses: actions/checkout@v5
|
|
16
|
+
|
|
17
|
+
- name: Log in to the Container registry
|
|
18
|
+
uses: docker/login-action@v3
|
|
19
|
+
with:
|
|
20
|
+
registry: ghcr.io
|
|
21
|
+
username: ${{ github.actor }}
|
|
22
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
23
|
+
|
|
24
|
+
- name: Extract metadata (tags, labels) for app image
|
|
25
|
+
id: meta-app
|
|
26
|
+
uses: docker/metadata-action@v5
|
|
27
|
+
with:
|
|
28
|
+
images: ghcr.io/${{ github.repository }}-app
|
|
29
|
+
tags: |
|
|
30
|
+
type=ref,event=branch
|
|
31
|
+
type=ref,event=pr
|
|
32
|
+
type=semver,pattern={{version}},event=release
|
|
33
|
+
type=semver,pattern={{major}}.{{minor}},event=release
|
|
34
|
+
type=sha
|
|
35
|
+
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
|
|
36
|
+
|
|
37
|
+
- name: Build and push Docker app image
|
|
38
|
+
uses: docker/build-push-action@v6
|
|
39
|
+
with:
|
|
40
|
+
context: .
|
|
41
|
+
file: ./node.dockerfile
|
|
42
|
+
build-args: |
|
|
43
|
+
NUXT_PUBLIC_SHOPWARE_ENDPOINT=${{ secrets.NUXT_PUBLIC_SHOPWARE_ENDPOINT }}
|
|
44
|
+
NUXT_PUBLIC_SHOPWARE_ACCESS_TOKEN=${{ secrets.NUXT_PUBLIC_SHOPWARE_ACCESS_TOKEN }}
|
|
45
|
+
NUXT_UI_PRO_LICENSE=${{ secrets.NUXT_UI_PRO_LICENSE }}
|
|
46
|
+
push: true
|
|
47
|
+
tags: ${{ steps.meta-app.outputs.tags }}
|
|
48
|
+
labels: ${{ steps.meta-app.outputs.labels }}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: ["main", "dev"]
|
|
5
|
+
pull_request:
|
|
6
|
+
types: [opened, synchronize]
|
|
7
|
+
jobs:
|
|
8
|
+
init:
|
|
9
|
+
name: Init dependecies
|
|
10
|
+
timeout-minutes: 15
|
|
11
|
+
env:
|
|
12
|
+
NUXT_PUBLIC_SHOPWARE_ENDPOINT: ${{ secrets.NUXT_PUBLIC_SHOPWARE_ENDPOINT }}
|
|
13
|
+
NUXT_PUBLIC_SHOPWARE_ACCESS_TOKEN: ${{ secrets.NUXT_PUBLIC_SHOPWARE_ACCESS_TOKEN }}
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- name: Check out code
|
|
17
|
+
uses: actions/checkout@v5
|
|
18
|
+
|
|
19
|
+
- name: Install Node.js
|
|
20
|
+
uses: actions/setup-node@v6
|
|
21
|
+
with:
|
|
22
|
+
node-version: '24'
|
|
23
|
+
|
|
24
|
+
- name: Install pnpm
|
|
25
|
+
uses: pnpm/action-setup@v4
|
|
26
|
+
|
|
27
|
+
- name: Get pnpm store directory
|
|
28
|
+
id: pnpm-cache
|
|
29
|
+
shell: bash
|
|
30
|
+
run: |
|
|
31
|
+
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
32
|
+
|
|
33
|
+
- name: Setup pnpm cache
|
|
34
|
+
uses: actions/cache@v4
|
|
35
|
+
with:
|
|
36
|
+
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
|
|
37
|
+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
38
|
+
restore-keys: |
|
|
39
|
+
${{ runner.os }}-pnpm-store-
|
|
40
|
+
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: pnpm install --frozen-lockfile
|
|
43
|
+
|
|
44
|
+
- name: Build
|
|
45
|
+
env:
|
|
46
|
+
NODE_OPTIONS: "--max_old_space_size=4096"
|
|
47
|
+
run: pnpm run build
|
|
48
|
+
test:
|
|
49
|
+
name: Run Unit tests
|
|
50
|
+
if: github.event.pull_request.draft == false
|
|
51
|
+
needs: init
|
|
52
|
+
timeout-minutes: 15
|
|
53
|
+
runs-on: ubuntu-latest
|
|
54
|
+
steps:
|
|
55
|
+
- name: Check out code
|
|
56
|
+
uses: actions/checkout@v5
|
|
57
|
+
|
|
58
|
+
- name: Fetch main
|
|
59
|
+
run: git fetch origin main
|
|
60
|
+
|
|
61
|
+
- name: Install Node.js
|
|
62
|
+
uses: actions/setup-node@v6
|
|
63
|
+
with:
|
|
64
|
+
node-version: '24'
|
|
65
|
+
|
|
66
|
+
- name: Enable corepack and pnpm
|
|
67
|
+
run: |
|
|
68
|
+
corepack enable
|
|
69
|
+
corepack prepare pnpm@10.20.0 --activate
|
|
70
|
+
|
|
71
|
+
- name: Install build dependencies
|
|
72
|
+
run: |
|
|
73
|
+
sudo apt-get update
|
|
74
|
+
sudo apt-get install -y build-essential python3
|
|
75
|
+
|
|
76
|
+
- name: Cache pnpm dependencies
|
|
77
|
+
uses: actions/cache@v4
|
|
78
|
+
with:
|
|
79
|
+
path: |
|
|
80
|
+
/home/runner/.local/share/pnpm/store/v3
|
|
81
|
+
./node_modules
|
|
82
|
+
key: ${{ runner.os }}-pnpm-${{ inputs.workdir }}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
83
|
+
restore-keys: |
|
|
84
|
+
${{ runner.os }}-pnpm-
|
|
85
|
+
|
|
86
|
+
- name: Install dependencies
|
|
87
|
+
run: pnpm install --frozen-lockfile --prefer-offline
|
|
88
|
+
working-directory: ${{ inputs.workdir }}
|
|
89
|
+
|
|
90
|
+
- name: Rebuild native modules
|
|
91
|
+
run: pnpm rebuild better-sqlite3
|
|
92
|
+
working-directory: ${{ inputs.workdir }}
|
|
93
|
+
|
|
94
|
+
- name: Unit test
|
|
95
|
+
env:
|
|
96
|
+
NUXT_PUBLIC_SHOPWARE_ENDPOINT: 'test'
|
|
97
|
+
NUXT_PUBLIC_SHOPWARE_ACCESS_TOKEN: 'test'
|
|
98
|
+
NUXT_PUBLIC_SHOPWARE_DEV_STOREFRONT_URL: 'test'
|
|
99
|
+
|
|
100
|
+
run: pnpm test
|
|
101
|
+
working-directory: ${{ inputs.workdir }}
|
|
102
|
+
|
package/.prettierignore
ADDED
package/.prettierrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|