This commit is contained in:
parent
5614ad39ca
commit
7a3321334e
12 changed files with 803 additions and 746 deletions
4
.dockerignore
Normal file
4
.dockerignore
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
node_modules
|
||||||
|
.astro
|
||||||
|
dist
|
||||||
|
.git
|
||||||
28
.forgejo/workflows/deploy.yml
Normal file
28
.forgejo/workflows/deploy.yml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
name: Build and Deploy Astro Landing
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest # Метка вашего Forgejo Runner
|
||||||
|
steps:
|
||||||
|
- name: Deploy to VPS via SSH
|
||||||
|
uses: appleboy/ssh-action@v1.0.3
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.VPS_HOST }}
|
||||||
|
username: ${{ secrets.VPS_USER }}
|
||||||
|
key: ${{ secrets.VPS_SSH_KEY }}
|
||||||
|
port: 22
|
||||||
|
script: |
|
||||||
|
# 1. Переходим в директорию лендинга
|
||||||
|
cd /var/www/Landing
|
||||||
|
|
||||||
|
# 2. Подтягиваем свежие коммиты из Git
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
# 3. Пересобираем Docker-образ и перезапускаем контейнер
|
||||||
|
docker compose up -d --build
|
||||||
|
|
@ -8,149 +8,18 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="01345e21-67ff-441a-b47b-439ace178327" name="Changes" comment="WIP: Cleaning">
|
<list default="true" id="01345e21-67ff-441a-b47b-439ace178327" name="Changes" comment="WIP: Cleaning">
|
||||||
<change afterPath="$PROJECT_DIR$/src/pages/api/subscribe.ts" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/.dockerignore" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/.forgejo/workflows/deploy.yml" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/docker-compose.local.yaml" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/docker-compose.yaml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/.gitignore" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/astro.config.mjs" beforeDir="false" afterPath="$PROJECT_DIR$/astro.config.mjs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/.vscode/extensions.json" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/pnpm-lock.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/pnpm-lock.yaml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/.vscode/launch.json" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/pnpm-workspace.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/pnpm-workspace.yaml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/AGENTS.md" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/components/ContactForm/ContactForm.astro" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/ContactForm/ContactForm.astro" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/CLAUDE.md" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/pages/api/subscribe.ts" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/README.md" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/styles/index.css" beforeDir="false" afterPath="$PROJECT_DIR$/src/styles/index.css" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/astro.config.mjs" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/package.json" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/pnpm-lock.yaml" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/pnpm-workspace.yaml" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/blog-placeholder-1.jpg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/blog-placeholder-2.jpg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/blog-placeholder-3.jpg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/blog-placeholder-4.jpg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/blog-placeholder-5.jpg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/blog-placeholder-about.jpg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/fonts/atkinson-bold.woff" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/fonts/atkinson-regular.woff" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/about-us/rocket.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/contact-form/Austronaut.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/contact-form/Mask Group.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/contact-form/Mask.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/contact-form/Planet Blue.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/contact-form/Planet Yellow.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/contact-form/dog-in-space.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/email.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/logo.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/phone.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/phone.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/telegram.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/top-line.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/top-line.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/footer/whatsapp.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/header/Menu.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/header/logo.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/header/menu-close.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/intro/astronaut.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/intro/spaceship.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/Inflid.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/browser-window.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/custom-pc4u.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/inflid_full_1.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/inflid_part_1.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/mockba-modular.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/projects-ui.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/pryatki.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/sizzapp.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/projects/trackpro.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/services/circle.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/services/mobile_app.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/services/ui_animations.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/assets/images/main/services/web_development.svg" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/BaseHead.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/ContactForm/ContactForm.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/ContactForm/contact-form.style.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/Contacts/Contacts.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/Contacts/contacts.style.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/Footer/Footer.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/Footer/footer.style.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/FormInput/FormInput.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/FormInput/form-input.style.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/FormattedDate.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/Header/Header.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/Header/header.style.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/HeaderLink.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/components/HomePage.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/consts.ts" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/content.config.ts" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/content/blog/first-post.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/content/blog/markdown-style-guide.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/content/blog/second-post.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/content/blog/third-post.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/content/blog/using-mdx.mdx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/i18n/ui.ts" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/i18n/utils.ts" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/layouts/BlogPost.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/pages/about.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/pages/blog/[...slug].astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/pages/blog/index.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/pages/en/index.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/pages/index.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/pages/lv/index.astro" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/pages/rss.xml.js" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/styles/global.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/styles/index.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/styles/reset.css" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/translations/en.json" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/src/translations/lv.json" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/AstroLanding/tsconfig.json" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/gatsby-config.js" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/abstracts/_functions.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/abstracts/_mixins.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/abstracts/_variables.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/base/_colors.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/base/_reset.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/base/_typography.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/layout/_grid.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/assets/stylesheets/style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/about/about.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/about/about.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/contact-form/contact-form.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/contact-form/contact-form.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/contacts/contacts.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/contacts/contacts.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/custom-button/custom-button.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/custom-button/custom-button.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/footer/footer.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/footer/footer.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/form-input/form-input.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/form-input/form-input.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/header/header.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/header/header.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/intro/intro.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/intro/intro.styles.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/language-switch/language-switch.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/language-switch/language-switch.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/projects/projects.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/projects/projects.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/section/section.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/section/section.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/seo.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/services-card/card.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/services-card/card.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/services/services.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/services/services.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/swiper/mid-swiper.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/swiper/swiper-test.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/components/swiper/swiper.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/hooks/use-site-metadata.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/i18n.js" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/images/icon.png" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/main.component.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/main.style.scss" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/pages/404.js" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/pages/index.jsx" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/translations/en.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/translations/en.json" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/translations/lv.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/translations/lv.json" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/yarn.lock" beforeDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|
@ -167,8 +36,9 @@
|
||||||
<list>
|
<list>
|
||||||
<option value="Astro Component" />
|
<option value="Astro Component" />
|
||||||
<option value="CSS File" />
|
<option value="CSS File" />
|
||||||
<option value="Docker Compose" />
|
|
||||||
<option value="TypeScript File" />
|
<option value="TypeScript File" />
|
||||||
|
<option value="Dockerfile" />
|
||||||
|
<option value="Docker Compose" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
|
@ -281,7 +151,7 @@
|
||||||
<workItem from="1784537953715" duration="6202000" />
|
<workItem from="1784537953715" duration="6202000" />
|
||||||
<workItem from="1784899208755" duration="13951000" />
|
<workItem from="1784899208755" duration="13951000" />
|
||||||
<workItem from="1785220782898" duration="240000" />
|
<workItem from="1785220782898" duration="240000" />
|
||||||
<workItem from="1785317634340" duration="6157000" />
|
<workItem from="1785317634340" duration="17052000" />
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00001" summary="Add captcha verification to contact form and improve error handling">
|
<task id="LOCAL-00001" summary="Add captcha verification to contact form and improve error handling">
|
||||||
<option name="closed" value="true" />
|
<option name="closed" value="true" />
|
||||||
|
|
@ -299,7 +169,23 @@
|
||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1785320748598</updated>
|
<updated>1785320748598</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="3" />
|
<task id="LOCAL-00003" summary="WIP: Cleaning">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1785324636646</created>
|
||||||
|
<option name="number" value="00003" />
|
||||||
|
<option name="presentableId" value="LOCAL-00003" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1785324636646</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00004" summary="WIP: Cleaning">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1785324665763</created>
|
||||||
|
<option name="number" value="00004" />
|
||||||
|
<option name="presentableId" value="LOCAL-00004" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1785324665763</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="5" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
|
|
||||||
26
Dockerfile
Normal file
26
Dockerfile
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
FROM node:24-alpine AS build
|
||||||
|
ENV PNPM_HOME="/pnpm"
|
||||||
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
|
ENV CI=true
|
||||||
|
RUN corepack enable
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
||||||
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN pnpm run build
|
||||||
|
|
||||||
|
FROM node:24-alpine AS runtime
|
||||||
|
WORKDIR /app
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
ENV HOST=0.0.0.0
|
||||||
|
ENV PORT=4321
|
||||||
|
|
||||||
|
RUN addgroup -S nodejs && adduser -S astro -G nodejs
|
||||||
|
COPY --from=build /app/dist ./dist
|
||||||
|
|
||||||
|
USER astro
|
||||||
|
EXPOSE 4321
|
||||||
|
CMD ["node", "dist/server/entry.mjs"]
|
||||||
|
|
@ -10,7 +10,6 @@ import node from "@astrojs/node";
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: "https://midcreative.eu",
|
site: "https://midcreative.eu",
|
||||||
integrations: [mdx(), sitemap()],
|
integrations: [mdx(), sitemap()],
|
||||||
output: "static",
|
|
||||||
|
|
||||||
fonts: [
|
fonts: [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
30
docker-compose.local.yaml
Normal file
30
docker-compose.local.yaml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
services:
|
||||||
|
midcreative:
|
||||||
|
image: midcreative:latest
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: midcreative
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
NODE_ENV: production
|
||||||
|
HOST: 0.0.0.0
|
||||||
|
PORT: 4321
|
||||||
|
# Добавьте эту секцию для локальной проверки:
|
||||||
|
ports:
|
||||||
|
- "4321:4321"
|
||||||
|
expose:
|
||||||
|
- "4321"
|
||||||
|
networks:
|
||||||
|
- traefik_proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.midcreative.rule=Host(`midcreative.eu`) || Host(`www.midcreative.eu`)"
|
||||||
|
- "traefik.http.routers.midcreative.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.midcreative.tls=true"
|
||||||
|
- "traefik.http.routers.midcreative.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.services.midcreative.loadbalancer.server.port=4321"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik_proxy:
|
||||||
|
external: true
|
||||||
28
docker-compose.yaml
Normal file
28
docker-compose.yaml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
services:
|
||||||
|
midcreative:
|
||||||
|
# Оставляем image, чтобы CI/CD мог за push/pull обновлять образ
|
||||||
|
image: midcreative:latest
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: midcreative
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
NODE_ENV: production
|
||||||
|
HOST: 0.0.0.0
|
||||||
|
PORT: 4321
|
||||||
|
expose:
|
||||||
|
- "4321"
|
||||||
|
networks:
|
||||||
|
- traefik_proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.midcreative.rule=Host(`midcreative.eu`) || Host(`www.midcreative.eu`)"
|
||||||
|
- "traefik.http.routers.midcreative.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.midcreative.tls=true"
|
||||||
|
- "traefik.http.routers.midcreative.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.services.midcreative.loadbalancer.server.port=4321"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik_proxy:
|
||||||
|
external: true
|
||||||
190
pnpm-lock.yaml
190
pnpm-lock.yaml
|
|
@ -10,10 +10,10 @@ importers:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/mdx':
|
'@astrojs/mdx':
|
||||||
specifier: ^7.0.3
|
specifier: ^7.0.3
|
||||||
version: 7.0.3(@astrojs/markdown-satteri@0.3.4)(astro@7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3))
|
version: 7.0.4(@astrojs/markdown-satteri@0.3.4)(astro@7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3))
|
||||||
'@astrojs/node':
|
'@astrojs/node':
|
||||||
specifier: ^11.0.3
|
specifier: ^11.0.3
|
||||||
version: 11.0.3(astro@7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3))
|
version: 11.0.3(astro@7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3))
|
||||||
'@astrojs/rss':
|
'@astrojs/rss':
|
||||||
specifier: ^4.0.19
|
specifier: ^4.0.19
|
||||||
version: 4.0.19
|
version: 4.0.19
|
||||||
|
|
@ -22,10 +22,10 @@ importers:
|
||||||
version: 3.7.3
|
version: 3.7.3
|
||||||
astro:
|
astro:
|
||||||
specifier: ^7.1.3
|
specifier: ^7.1.3
|
||||||
version: 7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3)
|
version: 7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3)
|
||||||
motion:
|
motion:
|
||||||
specifier: ^12.42.2
|
specifier: ^12.42.2
|
||||||
version: 12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
|
version: 12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
|
||||||
react:
|
react:
|
||||||
specifier: ^19.2.8
|
specifier: ^19.2.8
|
||||||
version: 19.2.8
|
version: 19.2.8
|
||||||
|
|
@ -125,8 +125,8 @@ packages:
|
||||||
'@astrojs/markdown-satteri@0.3.4':
|
'@astrojs/markdown-satteri@0.3.4':
|
||||||
resolution: {integrity: sha512-6Lvt/bQZEBW+zzdhPblvfZEy5PGEYJaUsUqaCgwHeRPxZJL1gc9I+DRLKWJjjYTWDzVUTzXlMq4WwSK+X34CVw==}
|
resolution: {integrity: sha512-6Lvt/bQZEBW+zzdhPblvfZEy5PGEYJaUsUqaCgwHeRPxZJL1gc9I+DRLKWJjjYTWDzVUTzXlMq4WwSK+X34CVw==}
|
||||||
|
|
||||||
'@astrojs/mdx@7.0.3':
|
'@astrojs/mdx@7.0.4':
|
||||||
resolution: {integrity: sha512-RxyIwU0uFam5ftwqKOjpIdhnFxZ/kEikeimLyQy3eGXbHT8WgRGzzesOIHVU8+m9TY8ag5WVOyvV24/GyqPdPQ==}
|
resolution: {integrity: sha512-fH4ouVZCgmLOH5z+GYnJMDOSUohn9U2W3p79Ck7PDK3EdGpe/crZAtT6Sp1ziEurj5NSQh7TxP8MSR4NOcC6fQ==}
|
||||||
engines: {node: '>=22.12.0'}
|
engines: {node: '>=22.12.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@astrojs/markdown-satteri': ^0.3.1
|
'@astrojs/markdown-satteri': ^0.3.1
|
||||||
|
|
@ -235,15 +235,24 @@ packages:
|
||||||
'@emnapi/core@1.11.1':
|
'@emnapi/core@1.11.1':
|
||||||
resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==}
|
resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==}
|
||||||
|
|
||||||
|
'@emnapi/core@2.0.0-alpha.3':
|
||||||
|
resolution: {integrity: sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==}
|
||||||
|
|
||||||
'@emnapi/runtime@1.11.1':
|
'@emnapi/runtime@1.11.1':
|
||||||
resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==}
|
resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==}
|
||||||
|
|
||||||
'@emnapi/runtime@1.11.2':
|
'@emnapi/runtime@1.11.3':
|
||||||
resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==}
|
resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
|
||||||
|
|
||||||
|
'@emnapi/runtime@2.0.0-alpha.3':
|
||||||
|
resolution: {integrity: sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==}
|
||||||
|
|
||||||
'@emnapi/wasi-threads@1.2.2':
|
'@emnapi/wasi-threads@1.2.2':
|
||||||
resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==}
|
resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==}
|
||||||
|
|
||||||
|
'@emnapi/wasi-threads@2.0.1':
|
||||||
|
resolution: {integrity: sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ==}
|
||||||
|
|
||||||
'@esbuild/aix-ppc64@0.28.1':
|
'@esbuild/aix-ppc64@0.28.1':
|
||||||
resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==}
|
resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
@ -568,11 +577,12 @@ packages:
|
||||||
'@mdx-js/mdx@3.1.1':
|
'@mdx-js/mdx@3.1.1':
|
||||||
resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
|
resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
|
||||||
|
|
||||||
'@napi-rs/wasm-runtime@1.1.6':
|
'@napi-rs/wasm-runtime@1.2.0':
|
||||||
resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==}
|
resolution: {integrity: sha512-kDoONqMa+VnZ4vvvu/ZUurpJ4gkZU57e7g69qpNgWhYcZFPUHZM2CEMKm+cG6ufDVALbjMvfmMjFVqaK7uEMnA==}
|
||||||
|
engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emnapi/core': ^1.7.1
|
'@emnapi/core': ^2.0.0-alpha.3
|
||||||
'@emnapi/runtime': ^1.7.1
|
'@emnapi/runtime': ^2.0.0-alpha.3
|
||||||
|
|
||||||
'@nodable/entities@3.0.0':
|
'@nodable/entities@3.0.0':
|
||||||
resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==}
|
resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==}
|
||||||
|
|
@ -768,8 +778,8 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||||
|
|
||||||
acorn@8.17.0:
|
acorn@8.18.0:
|
||||||
resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
|
resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
|
@ -801,8 +811,8 @@ packages:
|
||||||
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
|
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
astro@7.1.3:
|
astro@7.1.4:
|
||||||
resolution: {integrity: sha512-4dhPyAAXthf3xLEYnG8SeL7yr/nTPPABfY7e9YF0yuO+vK9Xp+8Q5j4xzsmL3GueukQv4oNwGNTBepLOiDGeJA==}
|
resolution: {integrity: sha512-e0gkBReJECAZuuTgpEB5JMUc6J4mM6boD6wuVE1pBf/fMywG47f8qm9XQoA6kZB1RWHiHmUlLuQ2jd9Q5+72HQ==}
|
||||||
engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'}
|
engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -1054,8 +1064,8 @@ packages:
|
||||||
resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==}
|
resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==}
|
||||||
engines: {node: '>=20'}
|
engines: {node: '>=20'}
|
||||||
|
|
||||||
framer-motion@12.42.2:
|
framer-motion@12.43.0:
|
||||||
resolution: {integrity: sha512-5XY9luDiu0oHfHBjpDthFMh0ES+122w6p/papSJBweMkO8Sn+PW2QaEgRblQBpWFnuvZS5qvarpt/hO2pjGmnw==}
|
resolution: {integrity: sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/is-prop-valid': '*'
|
'@emotion/is-prop-valid': '*'
|
||||||
react: ^18.0.0 || ^19.0.0
|
react: ^18.0.0 || ^19.0.0
|
||||||
|
|
@ -1257,8 +1267,8 @@ packages:
|
||||||
resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==}
|
resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==}
|
||||||
engines: {node: 20 || >=22}
|
engines: {node: 20 || >=22}
|
||||||
|
|
||||||
magic-string@0.30.21:
|
magic-string@1.1.0:
|
||||||
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
resolution: {integrity: sha512-kS3VHe0nEPST2saQV4Rbkchcd3UBRkVTQHo1D3h/ZTwFDhai/mfKkmtPAtD129EOI7K3HlHIsFOt0WrI2/oU9g==}
|
||||||
|
|
||||||
magicast@0.5.3:
|
magicast@0.5.3:
|
||||||
resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==}
|
resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==}
|
||||||
|
|
@ -1440,14 +1450,14 @@ packages:
|
||||||
resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
|
resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
motion-dom@12.42.2:
|
motion-dom@12.43.0:
|
||||||
resolution: {integrity: sha512-5gIMWLp/PycBtJRJWRgjxke5n8dlvkSn2DrYW+tr3XcqAZY1xZh6BJyooJXCM8wdfM7wfMjkBJNLge1CKPUIRA==}
|
resolution: {integrity: sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==}
|
||||||
|
|
||||||
motion-utils@12.39.0:
|
motion-utils@12.39.0:
|
||||||
resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==}
|
resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==}
|
||||||
|
|
||||||
motion@12.42.2:
|
motion@12.43.0:
|
||||||
resolution: {integrity: sha512-Atvv11yUKIid41cVrRBDVX5m8tF8kNpExRSlbpt6APClhDjtwQssgFHhQzejxw7/7YYbjHSPKBVbHo05BuJT5Q==}
|
resolution: {integrity: sha512-BQgQbSa9Hn3/mtbib0MK53y6JSANa+YKUKlaYnWzAVDH424RYQ5LVpV3pNiWH00BA2z4ojsSdMzqT7g2FQwjuQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/is-prop-valid': '*'
|
'@emotion/is-prop-valid': '*'
|
||||||
react: ^18.0.0 || ^19.0.0
|
react: ^18.0.0 || ^19.0.0
|
||||||
|
|
@ -1482,8 +1492,8 @@ packages:
|
||||||
node-fetch-native@1.6.7:
|
node-fetch-native@1.6.7:
|
||||||
resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
|
resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
|
||||||
|
|
||||||
node-mock-http@1.0.4:
|
node-mock-http@1.0.5:
|
||||||
resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==}
|
resolution: {integrity: sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==}
|
||||||
|
|
||||||
normalize-path@3.0.0:
|
normalize-path@3.0.0:
|
||||||
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||||
|
|
@ -1554,8 +1564,8 @@ packages:
|
||||||
resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
|
resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
postcss@8.5.22:
|
postcss@8.5.24:
|
||||||
resolution: {integrity: sha512-KBDEIpLrvpv16pp3K0Fw+UCoZfopFjjgeB+0tA/aaThfEE74kKDLrgg603YvOWJyg3+WYtyq3xYsQWsIyZlPqQ==}
|
resolution: {integrity: sha512-8RyVklq0owXUTa4xlpzu4l9AaVKIdQvAcOHZWaMh98HgySsUtxRVf/chRe3dsSLqb6i40BzGRzEUddRaI+9TSw==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
|
|
||||||
prettier-plugin-astro@0.14.1:
|
prettier-plugin-astro@0.14.1:
|
||||||
|
|
@ -1678,8 +1688,8 @@ packages:
|
||||||
satteri@0.9.5:
|
satteri@0.9.5:
|
||||||
resolution: {integrity: sha512-ZuWVl+vnM64y+/TtX8Kosv2c00W+hLQiiwnEL6H0UKVVrxFqMw4D2CJHHQaouVd89OAhtBBfjWLqhKi3TVUV4w==}
|
resolution: {integrity: sha512-ZuWVl+vnM64y+/TtX8Kosv2c00W+hLQiiwnEL6H0UKVVrxFqMw4D2CJHHQaouVd89OAhtBBfjWLqhKi3TVUV4w==}
|
||||||
|
|
||||||
sax@1.6.0:
|
sax@1.6.1:
|
||||||
resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==}
|
resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==}
|
||||||
engines: {node: '>=11.0.0'}
|
engines: {node: '>=11.0.0'}
|
||||||
|
|
||||||
scheduler@0.27.0:
|
scheduler@0.27.0:
|
||||||
|
|
@ -1721,8 +1731,8 @@ packages:
|
||||||
engines: {node: '>=20.19.5', npm: '>=10.8.2'}
|
engines: {node: '>=20.19.5', npm: '>=10.8.2'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
smol-toml@1.7.0:
|
smol-toml@1.7.1:
|
||||||
resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==}
|
resolution: {integrity: sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==}
|
||||||
engines: {node: '>= 18'}
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
source-map-js@1.2.1:
|
source-map-js@1.2.1:
|
||||||
|
|
@ -2005,9 +2015,9 @@ snapshots:
|
||||||
'@astrojs/compiler-binding-linux-x64-musl@0.3.1':
|
'@astrojs/compiler-binding-linux-x64-musl@0.3.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@astrojs/compiler-binding-wasm32-wasi@0.3.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)':
|
'@astrojs/compiler-binding-wasm32-wasi@0.3.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)
|
'@napi-rs/wasm-runtime': 1.2.0(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@emnapi/core'
|
- '@emnapi/core'
|
||||||
- '@emnapi/runtime'
|
- '@emnapi/runtime'
|
||||||
|
|
@ -2019,7 +2029,7 @@ snapshots:
|
||||||
'@astrojs/compiler-binding-win32-x64-msvc@0.3.1':
|
'@astrojs/compiler-binding-win32-x64-msvc@0.3.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@astrojs/compiler-binding@0.3.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)':
|
'@astrojs/compiler-binding@0.3.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)':
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@astrojs/compiler-binding-darwin-arm64': 0.3.1
|
'@astrojs/compiler-binding-darwin-arm64': 0.3.1
|
||||||
'@astrojs/compiler-binding-darwin-x64': 0.3.1
|
'@astrojs/compiler-binding-darwin-x64': 0.3.1
|
||||||
|
|
@ -2027,16 +2037,16 @@ snapshots:
|
||||||
'@astrojs/compiler-binding-linux-arm64-musl': 0.3.1
|
'@astrojs/compiler-binding-linux-arm64-musl': 0.3.1
|
||||||
'@astrojs/compiler-binding-linux-x64-gnu': 0.3.1
|
'@astrojs/compiler-binding-linux-x64-gnu': 0.3.1
|
||||||
'@astrojs/compiler-binding-linux-x64-musl': 0.3.1
|
'@astrojs/compiler-binding-linux-x64-musl': 0.3.1
|
||||||
'@astrojs/compiler-binding-wasm32-wasi': 0.3.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)
|
'@astrojs/compiler-binding-wasm32-wasi': 0.3.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)
|
||||||
'@astrojs/compiler-binding-win32-arm64-msvc': 0.3.1
|
'@astrojs/compiler-binding-win32-arm64-msvc': 0.3.1
|
||||||
'@astrojs/compiler-binding-win32-x64-msvc': 0.3.1
|
'@astrojs/compiler-binding-win32-x64-msvc': 0.3.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@emnapi/core'
|
- '@emnapi/core'
|
||||||
- '@emnapi/runtime'
|
- '@emnapi/runtime'
|
||||||
|
|
||||||
'@astrojs/compiler-rs@0.3.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)':
|
'@astrojs/compiler-rs@0.3.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/compiler-binding': 0.3.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)
|
'@astrojs/compiler-binding': 0.3.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@emnapi/core'
|
- '@emnapi/core'
|
||||||
- '@emnapi/runtime'
|
- '@emnapi/runtime'
|
||||||
|
|
@ -2051,7 +2061,7 @@ snapshots:
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.5
|
||||||
retext-smartypants: 6.2.0
|
retext-smartypants: 6.2.0
|
||||||
shiki: 4.3.1
|
shiki: 4.3.1
|
||||||
smol-toml: 1.7.0
|
smol-toml: 1.7.1
|
||||||
unified: 11.0.5
|
unified: 11.0.5
|
||||||
|
|
||||||
'@astrojs/internal-helpers@0.10.2':
|
'@astrojs/internal-helpers@0.10.2':
|
||||||
|
|
@ -2062,7 +2072,7 @@ snapshots:
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.5
|
||||||
retext-smartypants: 6.2.0
|
retext-smartypants: 6.2.0
|
||||||
shiki: 4.3.1
|
shiki: 4.3.1
|
||||||
smol-toml: 1.7.0
|
smol-toml: 1.7.1
|
||||||
unified: 11.0.5
|
unified: 11.0.5
|
||||||
|
|
||||||
'@astrojs/markdown-remark@7.2.1':
|
'@astrojs/markdown-remark@7.2.1':
|
||||||
|
|
@ -2095,13 +2105,13 @@ snapshots:
|
||||||
hast-util-from-html: 2.0.3
|
hast-util-from-html: 2.0.3
|
||||||
satteri: 0.9.5
|
satteri: 0.9.5
|
||||||
|
|
||||||
'@astrojs/mdx@7.0.3(@astrojs/markdown-satteri@0.3.4)(astro@7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3))':
|
'@astrojs/mdx@7.0.4(@astrojs/markdown-satteri@0.3.4)(astro@7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/internal-helpers': 0.10.1
|
'@astrojs/internal-helpers': 0.10.1
|
||||||
'@astrojs/markdown-remark': 7.2.1
|
'@astrojs/markdown-remark': 7.2.1
|
||||||
'@mdx-js/mdx': 3.1.1
|
'@mdx-js/mdx': 3.1.1
|
||||||
acorn: 8.17.0
|
acorn: 8.18.0
|
||||||
astro: 7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3)
|
astro: 7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3)
|
||||||
es-module-lexer: 2.3.1
|
es-module-lexer: 2.3.1
|
||||||
estree-util-visit: 2.0.0
|
estree-util-visit: 2.0.0
|
||||||
hast-util-to-html: 9.0.5
|
hast-util-to-html: 9.0.5
|
||||||
|
|
@ -2117,10 +2127,10 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@astrojs/node@11.0.3(astro@7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3))':
|
'@astrojs/node@11.0.3(astro@7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/internal-helpers': 0.10.2
|
'@astrojs/internal-helpers': 0.10.2
|
||||||
astro: 7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3)
|
astro: 7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3)
|
||||||
send: 1.2.1
|
send: 1.2.1
|
||||||
server-destroy: 1.0.1
|
server-destroy: 1.0.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -2184,7 +2194,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@emnapi/core': 1.11.1
|
'@emnapi/core': 1.11.1
|
||||||
'@emnapi/runtime': 1.11.1
|
'@emnapi/runtime': 1.11.1
|
||||||
'@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)
|
'@napi-rs/wasm-runtime': 1.2.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@bruits/satteri-win32-arm64-msvc@0.9.5':
|
'@bruits/satteri-win32-arm64-msvc@0.9.5':
|
||||||
|
|
@ -2215,12 +2225,23 @@ snapshots:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@emnapi/core@2.0.0-alpha.3':
|
||||||
|
dependencies:
|
||||||
|
'@emnapi/wasi-threads': 2.0.1
|
||||||
|
tslib: 2.8.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@emnapi/runtime@1.11.1':
|
'@emnapi/runtime@1.11.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@emnapi/runtime@1.11.2':
|
'@emnapi/runtime@1.11.3':
|
||||||
|
dependencies:
|
||||||
|
tslib: 2.8.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@emnapi/runtime@2.0.0-alpha.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optional: true
|
optional: true
|
||||||
|
|
@ -2230,6 +2251,11 @@ snapshots:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@emnapi/wasi-threads@2.0.1':
|
||||||
|
dependencies:
|
||||||
|
tslib: 2.8.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@esbuild/aix-ppc64@0.28.1':
|
'@esbuild/aix-ppc64@0.28.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
|
@ -2397,7 +2423,7 @@ snapshots:
|
||||||
|
|
||||||
'@img/sharp-wasm32@0.35.3':
|
'@img/sharp-wasm32@0.35.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@emnapi/runtime': 1.11.2
|
'@emnapi/runtime': 1.11.3
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@img/sharp-webcontainers-wasm32@0.35.3':
|
'@img/sharp-webcontainers-wasm32@0.35.3':
|
||||||
|
|
@ -2422,7 +2448,7 @@ snapshots:
|
||||||
'@types/estree-jsx': 1.0.5
|
'@types/estree-jsx': 1.0.5
|
||||||
'@types/hast': 3.0.5
|
'@types/hast': 3.0.5
|
||||||
'@types/mdx': 2.0.14
|
'@types/mdx': 2.0.14
|
||||||
acorn: 8.17.0
|
acorn: 8.18.0
|
||||||
collapse-white-space: 2.1.0
|
collapse-white-space: 2.1.0
|
||||||
devlop: 1.1.0
|
devlop: 1.1.0
|
||||||
estree-util-is-identifier-name: 3.0.0
|
estree-util-is-identifier-name: 3.0.0
|
||||||
|
|
@ -2431,7 +2457,7 @@ snapshots:
|
||||||
hast-util-to-jsx-runtime: 2.3.6
|
hast-util-to-jsx-runtime: 2.3.6
|
||||||
markdown-extensions: 2.0.0
|
markdown-extensions: 2.0.0
|
||||||
recma-build-jsx: 1.0.0
|
recma-build-jsx: 1.0.0
|
||||||
recma-jsx: 1.0.1(acorn@8.17.0)
|
recma-jsx: 1.0.1(acorn@8.18.0)
|
||||||
recma-stringify: 1.0.0
|
recma-stringify: 1.0.0
|
||||||
rehype-recma: 1.0.0
|
rehype-recma: 1.0.0
|
||||||
remark-mdx: 3.1.1
|
remark-mdx: 3.1.1
|
||||||
|
|
@ -2446,17 +2472,17 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)':
|
'@napi-rs/wasm-runtime@1.2.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@emnapi/core': 1.11.1
|
'@emnapi/core': 1.11.1
|
||||||
'@emnapi/runtime': 1.11.1
|
'@emnapi/runtime': 1.11.1
|
||||||
'@tybys/wasm-util': 0.10.3
|
'@tybys/wasm-util': 0.10.3
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)':
|
'@napi-rs/wasm-runtime@1.2.0(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@emnapi/core': 1.11.1
|
'@emnapi/core': 2.0.0-alpha.3
|
||||||
'@emnapi/runtime': 1.11.2
|
'@emnapi/runtime': 2.0.0-alpha.3
|
||||||
'@tybys/wasm-util': 0.10.3
|
'@tybys/wasm-util': 0.10.3
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
|
@ -2506,7 +2532,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@emnapi/core': 1.11.1
|
'@emnapi/core': 1.11.1
|
||||||
'@emnapi/runtime': 1.11.1
|
'@emnapi/runtime': 1.11.1
|
||||||
'@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)
|
'@napi-rs/wasm-runtime': 1.2.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rolldown/binding-win32-arm64-msvc@1.1.5':
|
'@rolldown/binding-win32-arm64-msvc@1.1.5':
|
||||||
|
|
@ -2608,11 +2634,11 @@ snapshots:
|
||||||
|
|
||||||
'@ungap/structured-clone@1.3.3': {}
|
'@ungap/structured-clone@1.3.3': {}
|
||||||
|
|
||||||
acorn-jsx@5.3.2(acorn@8.17.0):
|
acorn-jsx@5.3.2(acorn@8.18.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.17.0
|
acorn: 8.18.0
|
||||||
|
|
||||||
acorn@8.17.0: {}
|
acorn@8.18.0: {}
|
||||||
|
|
||||||
am-i-vibing@0.4.0:
|
am-i-vibing@0.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -2635,9 +2661,9 @@ snapshots:
|
||||||
|
|
||||||
astring@1.9.0: {}
|
astring@1.9.0: {}
|
||||||
|
|
||||||
astro@7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@24.13.3):
|
astro@7.1.4(@astrojs/markdown-remark@7.2.1)(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)(@types/node@24.13.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/compiler-rs': 0.3.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)
|
'@astrojs/compiler-rs': 0.3.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)
|
||||||
'@astrojs/internal-helpers': 0.10.1
|
'@astrojs/internal-helpers': 0.10.1
|
||||||
'@astrojs/markdown-satteri': 0.3.4
|
'@astrojs/markdown-satteri': 0.3.4
|
||||||
'@astrojs/telemetry': 3.3.3
|
'@astrojs/telemetry': 3.3.3
|
||||||
|
|
@ -2665,7 +2691,7 @@ snapshots:
|
||||||
http-cache-semantics: 4.2.0
|
http-cache-semantics: 4.2.0
|
||||||
js-yaml: 4.3.0
|
js-yaml: 4.3.0
|
||||||
jsonc-parser: 3.3.1
|
jsonc-parser: 3.3.1
|
||||||
magic-string: 0.30.21
|
magic-string: 1.1.0
|
||||||
magicast: 0.5.3
|
magicast: 0.5.3
|
||||||
mrmime: 2.0.1
|
mrmime: 2.0.1
|
||||||
neotraverse: 1.0.1
|
neotraverse: 1.0.1
|
||||||
|
|
@ -2677,7 +2703,7 @@ snapshots:
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.5
|
||||||
semver: 7.8.5
|
semver: 7.8.5
|
||||||
shiki: 4.3.1
|
shiki: 4.3.1
|
||||||
smol-toml: 1.7.0
|
smol-toml: 1.7.1
|
||||||
svgo: 4.0.2
|
svgo: 4.0.2
|
||||||
tinyclip: 0.1.15
|
tinyclip: 0.1.15
|
||||||
tinyexec: 1.2.4
|
tinyexec: 1.2.4
|
||||||
|
|
@ -2858,7 +2884,7 @@ snapshots:
|
||||||
esast-util-from-js@2.0.1:
|
esast-util-from-js@2.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree-jsx': 1.0.5
|
'@types/estree-jsx': 1.0.5
|
||||||
acorn: 8.17.0
|
acorn: 8.18.0
|
||||||
esast-util-from-estree: 2.0.0
|
esast-util-from-estree: 2.0.0
|
||||||
vfile-message: 4.0.3
|
vfile-message: 4.0.3
|
||||||
|
|
||||||
|
|
@ -2974,9 +3000,9 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
tiny-inflate: 1.0.3
|
tiny-inflate: 1.0.3
|
||||||
|
|
||||||
framer-motion@12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
|
framer-motion@12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
|
||||||
dependencies:
|
dependencies:
|
||||||
motion-dom: 12.42.2
|
motion-dom: 12.43.0
|
||||||
motion-utils: 12.39.0
|
motion-utils: 12.39.0
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
|
@ -3001,7 +3027,7 @@ snapshots:
|
||||||
defu: 6.1.7
|
defu: 6.1.7
|
||||||
destr: 2.0.5
|
destr: 2.0.5
|
||||||
iron-webcrypto: 1.2.1
|
iron-webcrypto: 1.2.1
|
||||||
node-mock-http: 1.0.4
|
node-mock-http: 1.0.5
|
||||||
radix3: 1.1.2
|
radix3: 1.1.2
|
||||||
ufo: 1.6.4
|
ufo: 1.6.4
|
||||||
uncrypto: 0.1.3
|
uncrypto: 0.1.3
|
||||||
|
|
@ -3230,7 +3256,7 @@ snapshots:
|
||||||
|
|
||||||
lru-cache@11.5.2: {}
|
lru-cache@11.5.2: {}
|
||||||
|
|
||||||
magic-string@0.30.21:
|
magic-string@1.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
'@jridgewell/sourcemap-codec': 1.5.5
|
||||||
|
|
||||||
|
|
@ -3536,8 +3562,8 @@ snapshots:
|
||||||
|
|
||||||
micromark-extension-mdxjs@3.0.0:
|
micromark-extension-mdxjs@3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.17.0
|
acorn: 8.18.0
|
||||||
acorn-jsx: 5.3.2(acorn@8.17.0)
|
acorn-jsx: 5.3.2(acorn@8.18.0)
|
||||||
micromark-extension-mdx-expression: 3.0.1
|
micromark-extension-mdx-expression: 3.0.1
|
||||||
micromark-extension-mdx-jsx: 3.0.2
|
micromark-extension-mdx-jsx: 3.0.2
|
||||||
micromark-extension-mdx-md: 2.0.0
|
micromark-extension-mdx-md: 2.0.0
|
||||||
|
|
@ -3687,15 +3713,15 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
mime-db: 1.54.0
|
mime-db: 1.54.0
|
||||||
|
|
||||||
motion-dom@12.42.2:
|
motion-dom@12.43.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
motion-utils: 12.39.0
|
motion-utils: 12.39.0
|
||||||
|
|
||||||
motion-utils@12.39.0: {}
|
motion-utils@12.39.0: {}
|
||||||
|
|
||||||
motion@12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
|
motion@12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
|
||||||
dependencies:
|
dependencies:
|
||||||
framer-motion: 12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
|
framer-motion: 12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
react: 19.2.8
|
react: 19.2.8
|
||||||
|
|
@ -3715,7 +3741,7 @@ snapshots:
|
||||||
|
|
||||||
node-fetch-native@1.6.7: {}
|
node-fetch-native@1.6.7: {}
|
||||||
|
|
||||||
node-mock-http@1.0.4: {}
|
node-mock-http@1.0.5: {}
|
||||||
|
|
||||||
normalize-path@3.0.0: {}
|
normalize-path@3.0.0: {}
|
||||||
|
|
||||||
|
|
@ -3791,7 +3817,7 @@ snapshots:
|
||||||
|
|
||||||
picomatch@4.0.5: {}
|
picomatch@4.0.5: {}
|
||||||
|
|
||||||
postcss@8.5.22:
|
postcss@8.5.24:
|
||||||
dependencies:
|
dependencies:
|
||||||
nanoid: 3.3.16
|
nanoid: 3.3.16
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
|
|
@ -3830,10 +3856,10 @@ snapshots:
|
||||||
estree-util-build-jsx: 3.0.1
|
estree-util-build-jsx: 3.0.1
|
||||||
vfile: 6.0.3
|
vfile: 6.0.3
|
||||||
|
|
||||||
recma-jsx@1.0.1(acorn@8.17.0):
|
recma-jsx@1.0.1(acorn@8.18.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.17.0
|
acorn: 8.18.0
|
||||||
acorn-jsx: 5.3.2(acorn@8.17.0)
|
acorn-jsx: 5.3.2(acorn@8.18.0)
|
||||||
estree-util-to-js: 2.0.0
|
estree-util-to-js: 2.0.0
|
||||||
recma-parse: 1.0.0
|
recma-parse: 1.0.0
|
||||||
recma-stringify: 1.0.0
|
recma-stringify: 1.0.0
|
||||||
|
|
@ -4002,7 +4028,7 @@ snapshots:
|
||||||
'@bruits/satteri-win32-arm64-msvc': 0.9.5
|
'@bruits/satteri-win32-arm64-msvc': 0.9.5
|
||||||
'@bruits/satteri-win32-x64-msvc': 0.9.5
|
'@bruits/satteri-win32-x64-msvc': 0.9.5
|
||||||
|
|
||||||
sax@1.6.0: {}
|
sax@1.6.1: {}
|
||||||
|
|
||||||
scheduler@0.27.0: {}
|
scheduler@0.27.0: {}
|
||||||
|
|
||||||
|
|
@ -4079,9 +4105,9 @@ snapshots:
|
||||||
'@types/node': 24.13.3
|
'@types/node': 24.13.3
|
||||||
'@types/sax': 1.2.7
|
'@types/sax': 1.2.7
|
||||||
arg: 5.0.2
|
arg: 5.0.2
|
||||||
sax: 1.6.0
|
sax: 1.6.1
|
||||||
|
|
||||||
smol-toml@1.7.0: {}
|
smol-toml@1.7.1: {}
|
||||||
|
|
||||||
source-map-js@1.2.1: {}
|
source-map-js@1.2.1: {}
|
||||||
|
|
||||||
|
|
@ -4122,7 +4148,7 @@ snapshots:
|
||||||
css-what: 6.2.2
|
css-what: 6.2.2
|
||||||
csso: 5.0.5
|
csso: 5.0.5
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
sax: 1.6.0
|
sax: 1.6.1
|
||||||
|
|
||||||
tiny-inflate@1.0.3: {}
|
tiny-inflate@1.0.3: {}
|
||||||
|
|
||||||
|
|
@ -4243,7 +4269,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
lightningcss: 1.33.0
|
lightningcss: 1.33.0
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.5
|
||||||
postcss: 8.5.22
|
postcss: 8.5.24
|
||||||
rolldown: 1.1.5
|
rolldown: 1.1.5
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
allowBuilds:
|
allowBuilds:
|
||||||
esbuild: true
|
esbuild: true
|
||||||
sharp: true
|
|
||||||
minimumReleaseAgeExclude:
|
minimumReleaseAgeExclude:
|
||||||
- '@astrojs/internal-helpers@0.10.2'
|
- '@astrojs/internal-helpers@0.10.2'
|
||||||
- '@astrojs/node@11.0.3'
|
- '@astrojs/node@11.0.3'
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ const t = useTranslations(lang);
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form class="container">
|
<form class="container" id="form">
|
||||||
<div id="success-message" class="success" style="display: none;"></div>
|
<div id="success-message" class="success" style="display: none;"></div>
|
||||||
<div id="error-message" class="error" style="display: none;"></div>
|
<div id="error-message" class="error" style="display: none;"></div>
|
||||||
|
|
||||||
|
|
@ -47,26 +47,44 @@ const t = useTranslations(lang);
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<cap-widget
|
<button class="btn" type="submit">{t("contacts.send")}</button>
|
||||||
data-cap-api-endpoint="https://cap.midcreative.eu/8e5272fb9c08/api/"
|
|
||||||
></cap-widget>
|
|
||||||
|
|
||||||
<div
|
|
||||||
id="captcha-error"
|
|
||||||
class="error"
|
|
||||||
style="display: none; margin-top: 10px;"
|
|
||||||
>
|
|
||||||
{t("contacts.captchaError") || "Please complete the captcha"}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="submit">{t("contacts.send")}</button>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
const form = document.querySelector(".contact-form form");
|
const form = document.getElementById("form");
|
||||||
form?.addEventListener("submit", (e) => {
|
const submitBtn = form.querySelector('button[type="submit"]');
|
||||||
|
|
||||||
|
form.addEventListener("submit", async (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
console.log("Form submitted - add your logic here");
|
|
||||||
|
const formData = new FormData(form);
|
||||||
|
formData.append("access_key", "045fb2da-314b-4d25-b127-b36c15d50031");
|
||||||
|
|
||||||
|
const originalText = submitBtn.textContent;
|
||||||
|
|
||||||
|
submitBtn.textContent = "Sending...";
|
||||||
|
submitBtn.disabled = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch("https://api.web3forms.com/submit", {
|
||||||
|
method: "POST",
|
||||||
|
body: formData,
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
alert("Success! Your message has been sent.");
|
||||||
|
form.reset();
|
||||||
|
} else {
|
||||||
|
alert("Error: " + data.message);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
alert("Something went wrong. Please try again.");
|
||||||
|
} finally {
|
||||||
|
submitBtn.textContent = originalText;
|
||||||
|
submitBtn.disabled = false;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
import type { APIRoute } from "astro";
|
|
||||||
|
|
||||||
// Говорим Astro, что этот эндпоинт НЕ должен пререндериться в статику
|
|
||||||
export const prerender = false;
|
|
||||||
|
|
||||||
export const POST: APIRoute = async ({ request }) => {
|
|
||||||
try {
|
|
||||||
const data = await request.json();
|
|
||||||
const { email, name, phone } = data;
|
|
||||||
|
|
||||||
if (!email) {
|
|
||||||
return new Response(JSON.stringify({ message: "Email required" }), {
|
|
||||||
status: 400,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const listmonkUrl = import.meta.env.LISTMONK_URL;
|
|
||||||
const username = import.meta.env.LISTMONK_USER;
|
|
||||||
const password = import.meta.env.LISTMONK_PASS;
|
|
||||||
|
|
||||||
const authHeader =
|
|
||||||
"Basic " + Buffer.from(`${username}:${password}`).toString("base64");
|
|
||||||
|
|
||||||
const response = await fetch(`${listmonkUrl}/api/subscribers`, {
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
Authorization: authHeader,
|
|
||||||
},
|
|
||||||
body: JSON.stringify({
|
|
||||||
email: email,
|
|
||||||
name: name || "",
|
|
||||||
status: "enabled",
|
|
||||||
lists: [6], // Ваш ID 6
|
|
||||||
attribs: {
|
|
||||||
phone: phone || "",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
|
|
||||||
const resData = await response.json();
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
return new Response(
|
|
||||||
JSON.stringify({ message: resData.message || "Error subscribing" }),
|
|
||||||
{
|
|
||||||
status: response.status,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Response(JSON.stringify({ success: true, data: resData }), {
|
|
||||||
status: 200,
|
|
||||||
});
|
|
||||||
} catch (error: any) {
|
|
||||||
return new Response(
|
|
||||||
JSON.stringify({ message: error.message || "Server error" }),
|
|
||||||
{ status: 500 },
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue