@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.
Files changed (136) hide show
  1. package/.dockerignore +28 -0
  2. package/.env.example +11 -0
  3. package/.github/workflows/build.yaml +48 -0
  4. package/.github/workflows/ci.yaml +102 -0
  5. package/.prettierignore +6 -0
  6. package/.prettierrc +1 -0
  7. package/api-types/storeApiSchema.json +13863 -0
  8. package/api-types/storeApiTypes.d.ts +7010 -0
  9. package/app/app.config.ts +18 -0
  10. package/app/app.vue +99 -0
  11. package/app/assets/css/main.css +60 -0
  12. package/app/assets/fonts/Courier_Prime/CourierPrime-Bold.ttf +0 -0
  13. package/app/assets/fonts/Courier_Prime/CourierPrime-BoldItalic.ttf +0 -0
  14. package/app/assets/fonts/Courier_Prime/CourierPrime-Italic.ttf +0 -0
  15. package/app/assets/fonts/Courier_Prime/CourierPrime-Regular.ttf +0 -0
  16. package/app/assets/fonts/Courier_Prime/OFL.txt +93 -0
  17. package/app/assets/fonts/Kalam/Kalam-Bold.ttf +0 -0
  18. package/app/assets/fonts/Kalam/Kalam-Light.ttf +0 -0
  19. package/app/assets/fonts/Kalam/Kalam-Regular.ttf +0 -0
  20. package/app/assets/fonts/Kalam/OFL.txt +93 -0
  21. package/app/assets/fonts/Marcellus/Marcellus-Regular.ttf +0 -0
  22. package/app/assets/fonts/Marcellus/OFL.txt +93 -0
  23. package/app/assets/fonts/Sora/OFL.txt +93 -0
  24. package/app/assets/fonts/Sora/README.txt +70 -0
  25. package/app/assets/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
  26. package/app/assets/fonts/Sora/static/Sora-Bold.ttf +0 -0
  27. package/app/assets/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
  28. package/app/assets/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
  29. package/app/assets/fonts/Sora/static/Sora-Light.ttf +0 -0
  30. package/app/assets/fonts/Sora/static/Sora-Medium.ttf +0 -0
  31. package/app/assets/fonts/Sora/static/Sora-Regular.ttf +0 -0
  32. package/app/assets/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
  33. package/app/assets/fonts/Sora/static/Sora-Thin.ttf +0 -0
  34. package/app/components/AddToWishlist.vue +55 -0
  35. package/app/components/Address/Card.vue +32 -0
  36. package/app/components/Address/Detail.vue +22 -0
  37. package/app/components/Address/Form.vue +117 -0
  38. package/app/components/AnimatedSection.vue +77 -0
  39. package/app/components/BottomNavi.vue +63 -0
  40. package/app/components/Cart/Item.vue +112 -0
  41. package/app/components/Cart/QuickView.vue +55 -0
  42. package/app/components/Category/Header.vue +53 -0
  43. package/app/components/Category/Listing.vue +295 -0
  44. package/app/components/Checkout/DeliveryTimeSelect.vue +177 -0
  45. package/app/components/Checkout/LoginOrRegister.vue +43 -0
  46. package/app/components/Checkout/PaymentAndDelivery.vue +101 -0
  47. package/app/components/Checkout/PaymentMethod.vue +30 -0
  48. package/app/components/Checkout/ShippingMethod.vue +30 -0
  49. package/app/components/Checkout/Summary.vue +125 -0
  50. package/app/components/Cta.vue +34 -0
  51. package/app/components/Features.vue +36 -0
  52. package/app/components/Food/Marquee.vue +35 -0
  53. package/app/components/Food/MarqueeItem.vue +72 -0
  54. package/app/components/Footer.vue +51 -0
  55. package/app/components/Header.vue +160 -0
  56. package/app/components/Hero.vue +77 -0
  57. package/app/components/ImageGallery.vue +46 -0
  58. package/app/components/Loading.vue +29 -0
  59. package/app/components/Navigation/DesktopLeft.vue +51 -0
  60. package/app/components/Navigation/DesktopLeft2.vue +43 -0
  61. package/app/components/Navigation/MobileTop.vue +59 -0
  62. package/app/components/Navigation/MobileTop2.vue +42 -0
  63. package/app/components/Order/Detail.vue +84 -0
  64. package/app/components/Product/Card.vue +132 -0
  65. package/app/components/Product/Category.vue +153 -0
  66. package/app/components/Product/Configurator.vue +65 -0
  67. package/app/components/Product/CrossSelling.vue +95 -0
  68. package/app/components/Product/DeselectIngredient.vue +46 -0
  69. package/app/components/Product/Detail.vue +187 -0
  70. package/app/components/Product/SearchBar.vue +109 -0
  71. package/app/components/PublicAnnouncement.vue +17 -0
  72. package/app/components/Topseller.vue +43 -0
  73. package/app/components/User/Detail.vue +47 -0
  74. package/app/components/User/LoginForm.vue +105 -0
  75. package/app/components/User/RegistrationForm.vue +340 -0
  76. package/app/components/Wishlist.vue +102 -0
  77. package/app/composables/useDeliveryTime.ts +139 -0
  78. package/app/composables/useInterval.ts +15 -0
  79. package/app/composables/usePizzaToppings.ts +31 -0
  80. package/app/composables/useProductEvents.test.ts +111 -0
  81. package/app/composables/useProductEvents.ts +22 -0
  82. package/app/composables/useProductVariants.ts +61 -0
  83. package/app/composables/useScrollAnimation.ts +39 -0
  84. package/app/composables/useTopSellers.ts +34 -0
  85. package/app/error.vue +30 -0
  86. package/app/layouts/account.vue +74 -0
  87. package/app/layouts/default.vue +6 -0
  88. package/app/layouts/listing.vue +32 -0
  89. package/app/layouts/listing2.vue +8 -0
  90. package/app/middleware/trailing-slash.global.ts +19 -0
  91. package/app/pages/account/recover/password/index.vue +143 -0
  92. package/app/pages/anmelden.vue +32 -0
  93. package/app/pages/bestellung.vue +103 -0
  94. package/app/pages/c/[...all].vue +49 -0
  95. package/app/pages/index.vue +59 -0
  96. package/app/pages/konto/adressen.vue +135 -0
  97. package/app/pages/konto/bestellung/[id].vue +41 -0
  98. package/app/pages/konto/bestellungen.vue +53 -0
  99. package/app/pages/konto/index.vue +74 -0
  100. package/app/pages/konto/profil.vue +160 -0
  101. package/app/pages/merkliste.vue +11 -0
  102. package/app/pages/order/[id].vue +69 -0
  103. package/app/pages/passwort-vergessen.vue +103 -0
  104. package/app/pages/registrierung/bestaetigen.vue +44 -0
  105. package/app/pages/registrierung/index.vue +24 -0
  106. package/app/pages/speisekarte.vue +58 -0
  107. package/app/pages/unternehmen/[slug].vue +66 -0
  108. package/app/types/Association.d.ts +11 -0
  109. package/app/utils/businessHours.ts +119 -0
  110. package/app/utils/formatDate.ts +9 -0
  111. package/app/utils/holidays.ts +43 -0
  112. package/app/utils/storeHours.ts +8 -0
  113. package/app/utils/time.ts +20 -0
  114. package/app/validation/addressSchema.ts +34 -0
  115. package/app/validation/registrationSchema.ts +156 -0
  116. package/bun.dockerfile +60 -0
  117. package/compose.yml +17 -0
  118. package/container +7 -0
  119. package/content/index.yml +91 -0
  120. package/content/navigation.yml +67 -0
  121. package/content/unternehmen/agb.md +1 -0
  122. package/content/unternehmen/datenschutz.md +1 -0
  123. package/content/unternehmen/impressum.md +39 -0
  124. package/content.config.ts +134 -0
  125. package/eslint.config.mjs +8 -0
  126. package/node.dockerfile +33 -0
  127. package/nuxt.config.ts +153 -0
  128. package/package.json +70 -0
  129. package/public/dark/Logo.svg +32 -0
  130. package/public/favicon.ico +0 -0
  131. package/public/light/Logo.svg +32 -0
  132. package/renovate.json +4 -0
  133. package/server/tsconfig.json +3 -0
  134. package/shopware.d.ts +19 -0
  135. package/tsconfig.json +4 -0
  136. 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
+
@@ -0,0 +1,6 @@
1
+ # Ignore artifacts:
2
+ .nuxt
3
+ node_modules
4
+ bun.lockb
5
+ tsconfig.json
6
+ sw.*
package/.prettierrc ADDED
@@ -0,0 +1 @@
1
+ {}