diff --git a/.github/workflows/api@production.yml b/.github/workflows/api@production.yml new file mode 100644 index 0000000..012fed4 --- /dev/null +++ b/.github/workflows/api@production.yml @@ -0,0 +1,48 @@ +name: api@production + +on: + push: + tags: + - "api@*" + +env: + pnpm-version: 9 + node-version: 20 + +jobs: + build: + name: Build + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + with: + version: ${{ env.pnpm-version }} + + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.node-version }} + cache: "pnpm" + + - run: pnpm install -P + + - run: pnpm build + working-directory: apps/cloudflare + + deploy: + needs: [build] + runs-on: ubuntu-latest + environment: + name: api:production + url: https://cloudflare.frontendista.cz + + steps: + - uses: actions/checkout@v4 + + - name: Deploy + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + workingDirectory: apps/cloudflare diff --git a/.github/workflows/web@production.yml b/.github/workflows/web@production.yml index 69d13f4..aa9e114 100644 --- a/.github/workflows/web@production.yml +++ b/.github/workflows/web@production.yml @@ -1,8 +1,9 @@ name: web@production on: - release: - types: [released] + push: + tags: + - "web@*" env: pnpm-version: 9 @@ -58,31 +59,31 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: ${{ env.pnpm-version }} + - uses: pnpm/action-setup@v4 + with: + version: ${{ env.pnpm-version }} - - uses: actions/setup-node@v4 - with: - node-version: ${{ env.node-version }} - cache: "pnpm" + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.node-version }} + cache: "pnpm" - - run: pnpm install + - run: pnpm install - - run: pnpm exec playwright install --with-deps chromium - working-directory: apps/web + - run: pnpm exec playwright install --with-deps chromium + working-directory: apps/web - - run: pnpm test - working-directory: apps/web + - run: pnpm test + working-directory: apps/web - - uses: actions/upload-artifact@v4 - if: always() - with: - name: playwright-report - path: apps/web/playwright-report/ - retention-days: 7 + - uses: actions/upload-artifact@v4 + if: always() + with: + name: playwright-report + path: apps/web/playwright-report/ + retention-days: 7 deploy: needs: [test] diff --git a/apps/cloudflare b/apps/cloudflare index d7be6d7..fce6dc2 160000 --- a/apps/cloudflare +++ b/apps/cloudflare @@ -1 +1 @@ -Subproject commit d7be6d7a964183f048e2a16fc1d426e102f68cfe +Subproject commit fce6dc2f5ff0864806b98095f757c9878994eabe diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3de2e54..0148a22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: version: 3.17.0 '@typescript-eslint/parser': specifier: ^8.5.0 - version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -29,7 +29,7 @@ importers: version: 9.10.0(jiti@1.21.6) eslint-plugin-astro: specifier: ^1.2.4 - version: 1.2.4(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + version: 1.2.4(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) eslint-plugin-jsx-a11y: specifier: ^6.10.0 version: 6.10.0(eslint@9.10.0(jiti@1.21.6)) @@ -44,7 +44,7 @@ importers: version: 4.1.5 typescript-eslint: specifier: ^8.5.0 - version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) apps/api: dependencies: @@ -72,7 +72,7 @@ importers: version: link:../../packages/validation '@upstash/lock': specifier: ^0.2.1 - version: 0.2.1(typescript@5.6.2) + version: 0.2.1(typescript@5.6.3) '@upstash/redis': specifier: ^1.34.0 version: 1.34.0 @@ -88,9 +88,15 @@ importers: satori: specifier: ^0.10.14 version: 0.10.14 + typescript: + specifier: ^5.6.3 + version: 5.6.3 valibot: specifier: ^0.41.0 - version: 0.41.0(typescript@5.6.2) + version: 0.41.0(typescript@5.6.3) + wrangler: + specifier: ^3.80.3 + version: 3.80.3(@cloudflare/workers-types@4.20240909.0) yoga-wasm-web: specifier: ^0.3.3 version: 0.3.3 @@ -107,15 +113,9 @@ importers: '@types/react': specifier: ^18.3.5 version: 18.3.5 - typescript: - specifier: ^5.6.2 - version: 5.6.2 vitest: specifier: 2.1.0 version: 2.1.0(@types/node@20.16.5)(lightningcss@1.27.0)(sass@1.78.0)(terser@5.32.0) - wrangler: - specifier: ^3.80.0 - version: 3.80.0(@cloudflare/workers-types@4.20240909.0) apps/web: dependencies: @@ -4831,8 +4831,8 @@ packages: engines: {node: '>=16.13'} hasBin: true - miniflare@3.20240925.0: - resolution: {integrity: sha512-2LmQbKHf0n6ertUKhT+Iltixi53giqDH7P71+wCir3OnGyXIODqYwOECx1mSDNhYThpxM2dav8UdPn6SQiMoXw==} + miniflare@3.20240925.1: + resolution: {integrity: sha512-odavnAwWLevMWOi/efIdAI9AVlg8C8NfXe2YLoAeG+Fj5BDHPDxCoY7AjZvBj3CJ7bszkoYyhoPEH60X+Vk+7g==} engines: {node: '>=16.13'} hasBin: true @@ -6226,6 +6226,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -6247,8 +6252,8 @@ packages: unenv-nightly@2.0.0-1724863496.70db6f1: resolution: {integrity: sha512-r+VIl1gnsI4WQxluruSQhy8alpAf1AsLRLm4sEKp3otCyTIVD6I6wHEYzeQnwsyWgaD4+3BD4A/eqrgOpdTzhw==} - unenv-nightly@2.0.0-20240919-125358-9a64854: - resolution: {integrity: sha512-XjsgUTrTHR7iw+k/SRTNjh6EQgwpC9voygnoCJo5kh4hKqsSDHUW84MhL9EsHTNfLctvVBHaSw8e2k3R2fKXsQ==} + unenv-nightly@2.0.0-20241009-125958-e8ea22f: + resolution: {integrity: sha512-hRxmKz1iSVRmuFx/vBdPsx7rX4o7Cas9vdjDNeUeWpQTK2LzU3Xy3Jz0zbo7MJX0bpqo/LEFCA+GPwsbl6zKEQ==} unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} @@ -6624,8 +6629,8 @@ packages: '@cloudflare/workers-types': optional: true - wrangler@3.80.0: - resolution: {integrity: sha512-c9aN7Buf7XgTPpQkw1d0VjNRI4qg3m35PTg70Tg4mOeHwHGjsd74PAsP1G8BjpdqDjfWtsua7tj1g4M3/5dYNQ==} + wrangler@3.80.3: + resolution: {integrity: sha512-Qe/7Sp8Vf7LYrdLPVsQFznac/1FweLI4aRgHmdCr6SCP5V81PP5ArogQX6BcuZ1tHvtNLNk4B4JC39awJdZvUg==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: @@ -9312,34 +9317,34 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.5.0 eslint: 9.10.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.5.0 '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.7 eslint: 9.10.0(jiti@1.21.6) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -9348,21 +9353,21 @@ snapshots: '@typescript-eslint/types': 8.5.0 '@typescript-eslint/visitor-keys': 8.5.0 - '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) debug: 4.3.7 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color '@typescript-eslint/types@8.5.0': {} - '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.5.0 '@typescript-eslint/visitor-keys': 8.5.0 @@ -9371,18 +9376,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.5.0 '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.3) eslint: 9.10.0(jiti@1.21.6) transitivePeerDependencies: - supports-color @@ -9395,9 +9400,9 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@upstash/lock@0.2.1(typescript@5.6.2)': + '@upstash/lock@0.2.1(typescript@5.6.3)': dependencies: - typescript: 5.6.2 + typescript: 5.6.3 '@upstash/redis@1.34.0': dependencies: @@ -9685,12 +9690,12 @@ snapshots: astring@1.9.0: {} - astro-eslint-parser@1.0.3(typescript@5.6.2): + astro-eslint-parser@1.0.3(typescript@5.6.3): dependencies: '@astrojs/compiler': 2.10.3 '@typescript-eslint/scope-manager': 8.5.0 '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.3) astrojs-compiler-sync: 1.0.0(@astrojs/compiler@2.10.3) debug: 4.3.7 entities: 4.5.0 @@ -10624,12 +10629,12 @@ snapshots: eslint: 9.10.0(jiti@1.21.6) semver: 7.6.3 - eslint-plugin-astro@1.2.4(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2): + eslint-plugin-astro@1.2.4(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@jridgewell/sourcemap-codec': 1.5.0 '@typescript-eslint/types': 8.5.0 - astro-eslint-parser: 1.0.3(typescript@5.6.2) + astro-eslint-parser: 1.0.3(typescript@5.6.3) eslint: 9.10.0(jiti@1.21.6) eslint-compat-utils: 0.5.1(eslint@9.10.0(jiti@1.21.6)) globals: 15.9.0 @@ -12238,7 +12243,7 @@ snapshots: - supports-color - utf-8-validate - miniflare@3.20240925.0: + miniflare@3.20240925.1: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.12.1 @@ -14076,9 +14081,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.6.2): + ts-api-utils@1.3.0(typescript@5.6.3): dependencies: - typescript: 5.6.2 + typescript: 5.6.3 ts-interface-checker@0.1.13: {} @@ -14142,19 +14147,21 @@ snapshots: dependencies: semver: 7.6.3 - typescript-eslint@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2): + typescript-eslint@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color typescript@5.6.2: {} + typescript@5.6.3: {} + ufo@1.5.4: {} uglify-js@3.19.3: {} @@ -14179,7 +14186,7 @@ snapshots: pathe: 1.1.2 ufo: 1.5.4 - unenv-nightly@2.0.0-20240919-125358-9a64854: + unenv-nightly@2.0.0-20241009-125958-e8ea22f: dependencies: defu: 6.1.4 ohash: 1.1.4 @@ -14294,6 +14301,10 @@ snapshots: optionalDependencies: typescript: 5.6.2 + valibot@0.41.0(typescript@5.6.3): + optionalDependencies: + typescript: 5.6.3 + valid-data-url@3.0.1: {} validate-npm-package-license@3.0.4: @@ -14637,7 +14648,7 @@ snapshots: - supports-color - utf-8-validate - wrangler@3.80.0(@cloudflare/workers-types@4.20240909.0): + wrangler@3.80.3(@cloudflare/workers-types@4.20240909.0): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@cloudflare/workers-shared': 0.5.4 @@ -14646,14 +14657,14 @@ snapshots: blake3-wasm: 2.1.5 chokidar: 3.6.0 esbuild: 0.17.19 - miniflare: 3.20240925.0 + miniflare: 3.20240925.1 nanoid: 3.3.7 path-to-regexp: 6.3.0 resolve: 1.22.8 resolve.exports: 2.0.2 selfsigned: 2.4.1 source-map: 0.6.1 - unenv: unenv-nightly@2.0.0-20240919-125358-9a64854 + unenv: unenv-nightly@2.0.0-20241009-125958-e8ea22f workerd: 1.20240925.0 xxhash-wasm: 1.0.2 optionalDependencies: