feat: add Gitea CI workflows, production compose, and update all deps
Some checks failed
Build and Push API / build-api (push) Has been cancelled
Build and Push Dashboard / build-dashboard (push) Has been cancelled
Build and Push Worker / build-worker (push) Has been cancelled

- Add .gitea/workflows for building and pushing api, dashboard, and worker images to git.zias.be registry
- Add docker-compose.prod.yml using pre-built registry images (no build-from-source on server)
- Update docker-compose.yml infra images to latest (postgres 18.3, redis 8.6.2, clickhouse 26.3.2.3)
- Update self-hosting/docker-compose.template.yml image versions to match
- Bump Node.js to 22.22.2 in all three Dockerfiles
- Update pnpm to 10.33.0 and upgrade all safe npm dependencies
- Add buffer-equal-constant-time patch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-31 09:18:55 +02:00
parent eefbeac7f8
commit 2d8bfd1da1
45 changed files with 13460 additions and 16295 deletions

View File

@@ -0,0 +1,55 @@
name: Build and Push API
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
branches: [main]
env:
REGISTRY: git.zias.be
OWNER: zias
jobs:
build-api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.OWNER }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.OWNER }}/openpanel-api
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=sha,prefix=sha-,format=short
type=semver,pattern={{version}}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: apps/api/Dockerfile
target: runner
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
provenance: false
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.OWNER }}/openpanel-api:buildcache
cache-to: ${{ github.event_name != 'pull_request' && format('type=registry,ref={0}/{1}/openpanel-api:buildcache,mode=max,image-manifest=true,oci-mediatypes=true', env.REGISTRY, env.OWNER) || '' }}
build-args: |
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres

View File

@@ -0,0 +1,53 @@
name: Build and Push Dashboard
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
branches: [main]
env:
REGISTRY: git.zias.be
OWNER: zias
jobs:
build-dashboard:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.OWNER }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.OWNER }}/openpanel-dashboard
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=sha,prefix=sha-,format=short
type=semver,pattern={{version}}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: apps/start/Dockerfile
target: runner
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
provenance: false
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.OWNER }}/openpanel-dashboard:buildcache
cache-to: ${{ github.event_name != 'pull_request' && format('type=registry,ref={0}/{1}/openpanel-dashboard:buildcache,mode=max,image-manifest=true,oci-mediatypes=true', env.REGISTRY, env.OWNER) || '' }}

View File

@@ -0,0 +1,55 @@
name: Build and Push Worker
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
branches: [main]
env:
REGISTRY: git.zias.be
OWNER: zias
jobs:
build-worker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.OWNER }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.OWNER }}/openpanel-worker
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=sha,prefix=sha-,format=short
type=semver,pattern={{version}}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: apps/worker/Dockerfile
target: runner
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
provenance: false
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.OWNER }}/openpanel-worker:buildcache
cache-to: ${{ github.event_name != 'pull_request' && format('type=registry,ref={0}/{1}/openpanel-worker:buildcache,mode=max,image-manifest=true,oci-mediatypes=true', env.REGISTRY, env.OWNER) || '' }}
build-args: |
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres

View File

@@ -10,14 +10,14 @@
"dependencies": {
"@openpanel/common": "workspace:*",
"@openpanel/db": "workspace:*",
"chalk": "^5.3.0",
"chalk": "^5.6.2",
"fuzzy": "^0.1.3",
"inquirer": "^9.3.5",
"inquirer": "^9.3.8",
"inquirer-autocomplete-prompt": "^3.0.1",
"jiti": "^2.4.2"
"jiti": "^2.6.1"
},
"devDependencies": {
"@types/inquirer": "^9.0.7",
"@types/inquirer": "^9.0.9",
"@types/inquirer-autocomplete-prompt": "^3.0.3",
"@types/node": "catalog:",
"typescript": "catalog:"

View File

@@ -1,4 +1,4 @@
ARG NODE_VERSION=22.20.0
ARG NODE_VERSION=22.22.2
FROM node:${NODE_VERSION}-slim AS base

View File

@@ -12,11 +12,11 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@ai-sdk/anthropic": "^1.2.10",
"@ai-sdk/openai": "^1.3.12",
"@fastify/compress": "^8.1.0",
"@ai-sdk/anthropic": "^1.2.12",
"@ai-sdk/openai": "^1.3.24",
"@fastify/compress": "^8.3.1",
"@fastify/cookie": "^11.0.2",
"@fastify/cors": "^11.1.0",
"@fastify/cors": "^11.2.0",
"@fastify/rate-limit": "^10.3.0",
"@fastify/websocket": "^11.2.0",
"@node-rs/argon2": "^2.0.2",
@@ -33,36 +33,36 @@
"@openpanel/redis": "workspace:*",
"@openpanel/trpc": "workspace:*",
"@openpanel/validation": "workspace:*",
"@trpc/server": "^11.6.0",
"ai": "^4.2.10",
"@trpc/server": "^11.16.0",
"ai": "^4.3.19",
"fast-json-stable-hash": "^1.0.3",
"fastify": "^5.6.1",
"fastify": "^5.8.4",
"fastify-metrics": "^12.1.0",
"fastify-raw-body": "^5.0.0",
"groupmq": "catalog:",
"jsonwebtoken": "^9.0.2",
"ramda": "^0.29.1",
"sharp": "^0.33.5",
"jsonwebtoken": "^9.0.3",
"ramda": "^0.32.0",
"sharp": "^0.34.5",
"source-map-support": "^0.5.21",
"sqlstring": "^2.3.3",
"superjson": "^1.13.3",
"svix": "^1.24.0",
"url-metadata": "^5.4.1",
"svix": "^1.89.0",
"url-metadata": "^5.4.3",
"uuid": "^9.0.1",
"zod": "catalog:"
},
"devDependencies": {
"@faker-js/faker": "^9.0.1",
"@faker-js/faker": "^9.9.0",
"@openpanel/tsconfig": "workspace:*",
"@types/js-yaml": "^4.0.9",
"@types/jsonwebtoken": "^9.0.9",
"@types/ramda": "^0.30.2",
"@types/jsonwebtoken": "^9.0.10",
"@types/ramda": "^0.31.1",
"@types/source-map-support": "^0.5.10",
"@types/sqlstring": "^2.3.2",
"@types/uuid": "^10.0.0",
"@types/ws": "^8.5.14",
"js-yaml": "^4.1.0",
"tsdown": "0.14.2",
"@types/uuid": "^11.0.0",
"@types/ws": "^8.18.1",
"js-yaml": "^4.1.1",
"tsdown": "0.21.7",
"typescript": "catalog:"
}
}

View File

@@ -16,11 +16,11 @@
},
"dependencies": {
"@nivo/funnel": "^0.99.0",
"@number-flow/react": "0.5.10",
"@opennextjs/cloudflare": "^1.17.1",
"@number-flow/react": "0.6.0",
"@opennextjs/cloudflare": "^1.18.0",
"@openpanel/common": "workspace:*",
"@openpanel/geo": "workspace:*",
"@openpanel/nextjs": "^1.2.0",
"@openpanel/nextjs": "^1.4.0",
"@openpanel/payments": "workspace:^",
"@openpanel/sdk-info": "workspace:^",
"@openstatus/react": "0.0.3",
@@ -28,37 +28,37 @@
"@radix-ui/react-slider": "1.3.6",
"@radix-ui/react-slot": "1.2.4",
"@radix-ui/react-tooltip": "1.2.8",
"cheerio": "^1.0.0",
"cheerio": "^1.2.0",
"class-variance-authority": "0.7.1",
"clsx": "2.1.1",
"dotted-map": "2.2.3",
"framer-motion": "12.23.25",
"fumadocs-core": "16.2.2",
"fumadocs-mdx": "14.0.4",
"fumadocs-ui": "16.2.2",
"geist": "1.5.1",
"dotted-map": "3.1.0",
"framer-motion": "12.38.0",
"fumadocs-core": "16.7.7",
"fumadocs-mdx": "14.2.11",
"fumadocs-ui": "16.7.7",
"geist": "1.7.0",
"lucide-react": "^0.555.0",
"next": "16.0.7",
"next": "16.2.1",
"next-themes": "^0.4.6",
"react": "catalog:",
"react-dom": "catalog:",
"react-markdown": "^10.1.0",
"recharts": "^2.15.0",
"recharts": "^2.15.4",
"rehype-external-links": "3.0.0",
"tailwind-merge": "3.4.0",
"tailwind-merge": "3.5.0",
"tailwindcss-animate": "1.0.7",
"zod": "catalog:"
},
"devDependencies": {
"@tailwindcss/postcss": "^4.1.17",
"@tailwindcss/postcss": "^4.2.2",
"@types/mdx": "^2.0.13",
"@types/node": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"autoprefixer": "^10.4.22",
"postcss": "^8.5.6",
"tailwindcss": "4.1.17",
"autoprefixer": "^10.4.27",
"postcss": "^8.5.8",
"tailwindcss": "4.2.2",
"typescript": "catalog:",
"wrangler": "^4.65.0"
"wrangler": "^4.78.0"
}
}

View File

@@ -1,4 +1,4 @@
ARG NODE_VERSION=22.20.0
ARG NODE_VERSION=22.22.2
FROM node:${NODE_VERSION}-slim AS base

View File

@@ -17,21 +17,21 @@
"with-env": "dotenv -e ../../.env -c --"
},
"dependencies": {
"@ai-sdk/react": "^1.2.5",
"@codemirror/commands": "^6.7.0",
"@codemirror/lang-javascript": "^6.2.0",
"@codemirror/lang-json": "^6.0.1",
"@codemirror/state": "^6.4.0",
"@ai-sdk/react": "^1.2.12",
"@codemirror/commands": "^6.10.3",
"@codemirror/lang-javascript": "^6.2.5",
"@codemirror/lang-json": "^6.0.2",
"@codemirror/state": "^6.6.0",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.35.0",
"@codemirror/view": "^6.40.0",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@faker-js/faker": "^9.6.0",
"@hookform/resolvers": "^3.3.4",
"@hyperdx/node-opentelemetry": "^0.8.1",
"@faker-js/faker": "^9.9.0",
"@hookform/resolvers": "^3.10.0",
"@hyperdx/node-opentelemetry": "^0.10.3",
"@nivo/sankey": "^0.99.0",
"@number-flow/react": "0.5.10",
"@number-flow/react": "0.6.0",
"@openpanel/common": "workspace:^",
"@openpanel/constants": "workspace:^",
"@openpanel/importer": "workspace:^",
@@ -40,100 +40,100 @@
"@openpanel/payments": "workspace:*",
"@openpanel/sdk-info": "workspace:^",
"@openpanel/validation": "workspace:^",
"@openpanel/web": "^1.0.1",
"@openpanel/web": "^1.3.0",
"@radix-ui/react-accordion": "^1.2.12",
"@radix-ui/react-alert-dialog": "^1.1.15",
"@radix-ui/react-aspect-ratio": "^1.1.7",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-aspect-ratio": "^1.1.8",
"@radix-ui/react-avatar": "^1.1.11",
"@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-label": "^2.1.7",
"@radix-ui/react-label": "^2.1.8",
"@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-portal": "^1.1.9",
"@radix-ui/react-progress": "^1.1.7",
"@radix-ui/react-portal": "^1.1.10",
"@radix-ui/react-progress": "^1.1.8",
"@radix-ui/react-radio-group": "^1.3.8",
"@radix-ui/react-scroll-area": "^1.2.10",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slider": "1.2.3",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-separator": "^1.1.8",
"@radix-ui/react-slider": "1.3.6",
"@radix-ui/react-slot": "^1.2.4",
"@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-toast": "^1.2.15",
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-toggle-group": "^1.1.11",
"@radix-ui/react-tooltip": "^1.2.8",
"@reduxjs/toolkit": "^2.8.2",
"@sentry/tanstackstart-react": "^9.12.0",
"@reduxjs/toolkit": "^2.11.2",
"@sentry/tanstackstart-react": "^10.46.0",
"@tailwindcss/container-queries": "^0.1.1",
"@tailwindcss/typography": "^0.5.15",
"@tailwindcss/vite": "^4.0.6",
"@tailwindcss/typography": "^0.5.19",
"@tailwindcss/vite": "^4.2.2",
"@tanstack/match-sorter-utils": "^8.19.4",
"@tanstack/nitro-v2-vite-plugin": "^1.133.19",
"@tanstack/react-devtools": "^0.7.6",
"@tanstack/react-query": "^5.90.2",
"@tanstack/react-query-devtools": "^5.90.2",
"@tanstack/react-router": "^1.132.47",
"@tanstack/react-router-devtools": "^1.132.51",
"@tanstack/react-router-ssr-query": "^1.132.47",
"@tanstack/react-start": "^1.132.56",
"@tanstack/react-store": "^0.8.0",
"@tanstack/nitro-v2-vite-plugin": "^1.154.9",
"@tanstack/react-devtools": "^0.10.0",
"@tanstack/react-query": "^5.95.2",
"@tanstack/react-query-devtools": "^5.95.2",
"@tanstack/react-router": "^1.168.10",
"@tanstack/react-router-devtools": "^1.166.11",
"@tanstack/react-router-ssr-query": "^1.166.10",
"@tanstack/react-start": "^1.167.16",
"@tanstack/react-store": "^0.9.3",
"@tanstack/react-table": "^8.21.3",
"@tanstack/react-virtual": "^3.13.12",
"@tanstack/router-plugin": "^1.132.56",
"@tanstack/store": "^0.8.0",
"@trpc/client": "^11.6.0",
"@trpc/react-query": "^11.6.0",
"@trpc/server": "^11.6.0",
"@trpc/tanstack-react-query": "^11.6.0",
"@tanstack/react-virtual": "^3.13.23",
"@tanstack/router-plugin": "^1.167.12",
"@tanstack/store": "^0.9.3",
"@trpc/client": "^11.16.0",
"@trpc/react-query": "^11.16.0",
"@trpc/server": "^11.16.0",
"@trpc/tanstack-react-query": "^11.16.0",
"@types/d3": "^7.4.3",
"ai": "^4.2.10",
"ai": "^4.3.19",
"bind-event-listener": "^3.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^0.2.1",
"codemirror": "^6.0.1",
"d3": "^7.8.5",
"date-fns": "^3.3.1",
"debounce": "^2.2.0",
"codemirror": "^6.0.2",
"d3": "^7.9.0",
"date-fns": "^3.6.0",
"debounce": "^3.0.0",
"embla-carousel-autoplay": "^8.6.0",
"embla-carousel-react": "8.0.0-rc22",
"flag-icons": "^7.1.0",
"framer-motion": "^11.0.28",
"hamburger-react": "^2.5.0",
"input-otp": "^1.2.4",
"javascript-time-ago": "^2.5.9",
"katex": "^0.16.21",
"embla-carousel-react": "8.6.0",
"flag-icons": "^7.5.0",
"framer-motion": "^12.38.0",
"hamburger-react": "^2.5.2",
"input-otp": "^1.4.2",
"javascript-time-ago": "^2.6.4",
"katex": "^0.16.44",
"lodash.debounce": "^4.0.8",
"lodash.isequal": "^4.5.0",
"lodash.throttle": "^4.1.1",
"lottie-react": "^2.4.0",
"lottie-react": "^2.4.1",
"lucide-react": "^0.476.0",
"mitt": "^3.0.1",
"nuqs": "^2.5.2",
"nuqs": "^2.8.9",
"prisma-error-enum": "^0.1.3",
"pushmodal": "^1.0.3",
"ramda": "^0.29.1",
"pushmodal": "^1.0.5",
"ramda": "^0.32.0",
"random-animal-name": "^0.1.1",
"rc-virtual-list": "^3.14.5",
"rc-virtual-list": "^3.19.2",
"react": "catalog:",
"react-animate-height": "^3.2.3",
"react-animated-numbers": "^1.1.1",
"react-day-picker": "^9.9.0",
"react-day-picker": "^9.14.0",
"react-dom": "catalog:",
"react-grid-layout": "^1.5.2",
"react-hook-form": "^7.50.1",
"react-in-viewport": "1.0.0-beta.8",
"react-grid-layout": "^1.5.3",
"react-hook-form": "^7.72.0",
"react-in-viewport": "1.0.0-beta.9",
"react-markdown": "^10.1.0",
"react-redux": "^8.1.3",
"react-resizable": "^3.0.5",
"react-responsive": "^9.0.2",
"react-resizable": "^3.1.3",
"react-responsive": "^10.0.1",
"react-simple-maps": "3.0.0",
"react-svg-worldmap": "2.0.0-alpha.16",
"react-syntax-highlighter": "^15.5.0",
"react-use-websocket": "^4.7.0",
"react-virtualized-auto-sizer": "^1.0.22",
"react-svg-worldmap": "2.0.1",
"react-syntax-highlighter": "^16.1.1",
"react-use-websocket": "^4.13.0",
"react-virtualized-auto-sizer": "^1.0.26",
"recharts": "^2.15.4",
"rehype-katex": "^7.0.1",
"remark-gfm": "^4.0.1",
@@ -142,42 +142,42 @@
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.2",
"rrweb-player": "2.0.0-alpha.20",
"short-unique-id": "^5.0.3",
"slugify": "^1.6.6",
"sonner": "^1.4.0",
"short-unique-id": "^5.3.2",
"slugify": "^1.6.8",
"sonner": "^1.7.4",
"sqlstring": "^2.3.3",
"superjson": "^2.2.2",
"tailwind-merge": "^3.0.2",
"tailwindcss": "^4.0.6",
"superjson": "^2.2.6",
"tailwind-merge": "^3.5.0",
"tailwindcss": "^4.2.2",
"tailwindcss-animate": "^1.0.7",
"tw-animate-css": "^1.3.6",
"usehooks-ts": "^2.14.0",
"vite-tsconfig-paths": "^5.1.4",
"tw-animate-css": "^1.4.0",
"usehooks-ts": "^2.16.0",
"vite-tsconfig-paths": "^6.1.1",
"zod": "catalog:"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@cloudflare/vite-plugin": "1.20.3",
"@biomejs/biome": "2.4.10",
"@cloudflare/vite-plugin": "1.30.2",
"@openpanel/db": "workspace:*",
"@openpanel/trpc": "workspace:*",
"@tanstack/devtools-event-client": "^0.3.3",
"@testing-library/dom": "^10.4.0",
"@testing-library/react": "^16.2.0",
"@tanstack/devtools-event-client": "^0.4.3",
"@testing-library/dom": "^10.4.1",
"@testing-library/react": "^16.3.2",
"@types/lodash.debounce": "^4.0.9",
"@types/lodash.isequal": "^4.5.8",
"@types/lodash.throttle": "^4.1.9",
"@types/ramda": "^0.31.0",
"@types/ramda": "^0.31.1",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"@types/react-grid-layout": "^1.3.5",
"@types/react-simple-maps": "^3.0.4",
"@types/react-syntax-highlighter": "^15.5.11",
"@vitejs/plugin-react": "^4.3.4",
"jsdom": "^26.0.0",
"@types/react-grid-layout": "^2.1.0",
"@types/react-simple-maps": "^3.0.6",
"@types/react-syntax-highlighter": "^15.5.13",
"@vitejs/plugin-react": "^4.7.0",
"jsdom": "^26.1.0",
"typescript": "catalog:",
"vite": "^6.3.5",
"vitest": "^3.0.5",
"web-vitals": "^4.2.4",
"wrangler": "4.59.1"
"vite": "^6.4.1",
"vitest": "^3.2.4",
"web-vitals": "^5.2.0",
"wrangler": "4.78.0"
}
}

View File

@@ -47,6 +47,7 @@ import { Route as AppOrganizationIdProjectIdReportsRouteImport } from './routes/
import { Route as AppOrganizationIdProjectIdReferencesRouteImport } from './routes/_app.$organizationId.$projectId.references'
import { Route as AppOrganizationIdProjectIdRealtimeRouteImport } from './routes/_app.$organizationId.$projectId.realtime'
import { Route as AppOrganizationIdProjectIdPagesRouteImport } from './routes/_app.$organizationId.$projectId.pages'
import { Route as AppOrganizationIdProjectIdLogsRouteImport } from './routes/_app.$organizationId.$projectId.logs'
import { Route as AppOrganizationIdProjectIdInsightsRouteImport } from './routes/_app.$organizationId.$projectId.insights'
import { Route as AppOrganizationIdProjectIdGroupsRouteImport } from './routes/_app.$organizationId.$projectId.groups'
import { Route as AppOrganizationIdProjectIdDashboardsRouteImport } from './routes/_app.$organizationId.$projectId.dashboards'
@@ -352,6 +353,12 @@ const AppOrganizationIdProjectIdPagesRoute =
path: '/pages',
getParentRoute: () => AppOrganizationIdProjectIdRoute,
} as any)
const AppOrganizationIdProjectIdLogsRoute =
AppOrganizationIdProjectIdLogsRouteImport.update({
id: '/logs',
path: '/logs',
getParentRoute: () => AppOrganizationIdProjectIdRoute,
} as any)
const AppOrganizationIdProjectIdInsightsRoute =
AppOrganizationIdProjectIdInsightsRouteImport.update({
id: '/insights',
@@ -660,6 +667,7 @@ export interface FileRoutesByFullPath {
'/$organizationId/$projectId/dashboards': typeof AppOrganizationIdProjectIdDashboardsRoute
'/$organizationId/$projectId/groups': typeof AppOrganizationIdProjectIdGroupsRoute
'/$organizationId/$projectId/insights': typeof AppOrganizationIdProjectIdInsightsRoute
'/$organizationId/$projectId/logs': typeof AppOrganizationIdProjectIdLogsRoute
'/$organizationId/$projectId/pages': typeof AppOrganizationIdProjectIdPagesRoute
'/$organizationId/$projectId/realtime': typeof AppOrganizationIdProjectIdRealtimeRoute
'/$organizationId/$projectId/references': typeof AppOrganizationIdProjectIdReferencesRoute
@@ -738,6 +746,7 @@ export interface FileRoutesByTo {
'/$organizationId/$projectId/dashboards': typeof AppOrganizationIdProjectIdDashboardsRoute
'/$organizationId/$projectId/groups': typeof AppOrganizationIdProjectIdGroupsRoute
'/$organizationId/$projectId/insights': typeof AppOrganizationIdProjectIdInsightsRoute
'/$organizationId/$projectId/logs': typeof AppOrganizationIdProjectIdLogsRoute
'/$organizationId/$projectId/pages': typeof AppOrganizationIdProjectIdPagesRoute
'/$organizationId/$projectId/realtime': typeof AppOrganizationIdProjectIdRealtimeRoute
'/$organizationId/$projectId/references': typeof AppOrganizationIdProjectIdReferencesRoute
@@ -814,6 +823,7 @@ export interface FileRoutesById {
'/_app/$organizationId/$projectId/dashboards': typeof AppOrganizationIdProjectIdDashboardsRoute
'/_app/$organizationId/$projectId/groups': typeof AppOrganizationIdProjectIdGroupsRoute
'/_app/$organizationId/$projectId/insights': typeof AppOrganizationIdProjectIdInsightsRoute
'/_app/$organizationId/$projectId/logs': typeof AppOrganizationIdProjectIdLogsRoute
'/_app/$organizationId/$projectId/pages': typeof AppOrganizationIdProjectIdPagesRoute
'/_app/$organizationId/$projectId/realtime': typeof AppOrganizationIdProjectIdRealtimeRoute
'/_app/$organizationId/$projectId/references': typeof AppOrganizationIdProjectIdReferencesRoute
@@ -905,6 +915,7 @@ export interface FileRouteTypes {
| '/$organizationId/$projectId/dashboards'
| '/$organizationId/$projectId/groups'
| '/$organizationId/$projectId/insights'
| '/$organizationId/$projectId/logs'
| '/$organizationId/$projectId/pages'
| '/$organizationId/$projectId/realtime'
| '/$organizationId/$projectId/references'
@@ -983,6 +994,7 @@ export interface FileRouteTypes {
| '/$organizationId/$projectId/dashboards'
| '/$organizationId/$projectId/groups'
| '/$organizationId/$projectId/insights'
| '/$organizationId/$projectId/logs'
| '/$organizationId/$projectId/pages'
| '/$organizationId/$projectId/realtime'
| '/$organizationId/$projectId/references'
@@ -1058,6 +1070,7 @@ export interface FileRouteTypes {
| '/_app/$organizationId/$projectId/dashboards'
| '/_app/$organizationId/$projectId/groups'
| '/_app/$organizationId/$projectId/insights'
| '/_app/$organizationId/$projectId/logs'
| '/_app/$organizationId/$projectId/pages'
| '/_app/$organizationId/$projectId/realtime'
| '/_app/$organizationId/$projectId/references'
@@ -1444,6 +1457,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof AppOrganizationIdProjectIdPagesRouteImport
parentRoute: typeof AppOrganizationIdProjectIdRoute
}
'/_app/$organizationId/$projectId/logs': {
id: '/_app/$organizationId/$projectId/logs'
path: '/logs'
fullPath: '/$organizationId/$projectId/logs'
preLoaderRoute: typeof AppOrganizationIdProjectIdLogsRouteImport
parentRoute: typeof AppOrganizationIdProjectIdRoute
}
'/_app/$organizationId/$projectId/insights': {
id: '/_app/$organizationId/$projectId/insights'
path: '/insights'
@@ -2028,6 +2048,7 @@ interface AppOrganizationIdProjectIdRouteChildren {
AppOrganizationIdProjectIdDashboardsRoute: typeof AppOrganizationIdProjectIdDashboardsRoute
AppOrganizationIdProjectIdGroupsRoute: typeof AppOrganizationIdProjectIdGroupsRoute
AppOrganizationIdProjectIdInsightsRoute: typeof AppOrganizationIdProjectIdInsightsRoute
AppOrganizationIdProjectIdLogsRoute: typeof AppOrganizationIdProjectIdLogsRoute
AppOrganizationIdProjectIdPagesRoute: typeof AppOrganizationIdProjectIdPagesRoute
AppOrganizationIdProjectIdRealtimeRoute: typeof AppOrganizationIdProjectIdRealtimeRoute
AppOrganizationIdProjectIdReferencesRoute: typeof AppOrganizationIdProjectIdReferencesRoute
@@ -2054,6 +2075,7 @@ const AppOrganizationIdProjectIdRouteChildren: AppOrganizationIdProjectIdRouteCh
AppOrganizationIdProjectIdGroupsRoute,
AppOrganizationIdProjectIdInsightsRoute:
AppOrganizationIdProjectIdInsightsRoute,
AppOrganizationIdProjectIdLogsRoute: AppOrganizationIdProjectIdLogsRoute,
AppOrganizationIdProjectIdPagesRoute: AppOrganizationIdProjectIdPagesRoute,
AppOrganizationIdProjectIdRealtimeRoute:
AppOrganizationIdProjectIdRealtimeRoute,

View File

@@ -10,15 +10,15 @@
},
"dependencies": {
"@openpanel/web": "workspace:*",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.13.1"
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react-router-dom": "^7.13.2"
},
"devDependencies": {
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"@vitejs/plugin-react": "^4.3.4",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^4.7.0",
"typescript": "catalog:",
"vite": "^6.0.0"
"vite": "^6.4.1"
}
}

View File

@@ -1,4 +1,4 @@
ARG NODE_VERSION=22.20.0
ARG NODE_VERSION=22.22.2
FROM node:${NODE_VERSION}-slim AS base

View File

@@ -11,8 +11,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@bull-board/api": "6.14.0",
"@bull-board/express": "6.14.0",
"@bull-board/api": "6.20.6",
"@bull-board/express": "6.20.6",
"@openpanel/common": "workspace:*",
"@openpanel/db": "workspace:*",
"@openpanel/email": "workspace:*",
@@ -24,24 +24,25 @@
"@openpanel/payments": "workspace:*",
"@openpanel/queue": "workspace:*",
"@openpanel/redis": "workspace:*",
"bullmq": "^5.63.0",
"date-fns": "^3.3.1",
"express": "^4.18.2",
"@openpanel/validation": "workspace:*",
"bullmq": "^5.71.1",
"date-fns": "^3.6.0",
"express": "^4.22.1",
"groupmq": "catalog:",
"prom-client": "^15.1.3",
"ramda": "^0.29.1",
"ramda": "^0.32.0",
"source-map-support": "^0.5.21",
"sqlstring": "^2.3.3",
"uuid": "^9.0.1"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/express": "^4.17.21",
"@types/ramda": "^0.29.6",
"@types/express": "^5.0.6",
"@types/ramda": "^0.31.1",
"@types/source-map-support": "^0.5.10",
"@types/sqlstring": "^2.3.2",
"@types/uuid": "^9.0.8",
"tsdown": "0.14.2",
"@types/uuid": "^11.0.0",
"tsdown": "0.21.7",
"typescript": "catalog:"
}
}

144
docker-compose.prod.yml Normal file
View File

@@ -0,0 +1,144 @@
services:
op-db:
image: postgres:18.3-alpine
restart: always
volumes:
- op-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
op-kv:
image: redis:8.6.2-alpine
restart: always
volumes:
- op-kv-data:/data
command: ["redis-server", "--maxmemory-policy", "noeviction"]
healthcheck:
test: ["CMD-SHELL", "redis-cli ping"]
interval: 10s
timeout: 5s
retries: 5
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
op-ch:
image: clickhouse/clickhouse-server:26.3.2.3
restart: always
environment:
- CLICKHOUSE_DEFAULT_PASSWORD=${CLICKHOUSE_PASSWORD:-clickhouse}
volumes:
- op-ch-data:/var/lib/clickhouse
- op-ch-logs:/var/log/clickhouse-server
- ./self-hosting/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/op-config.xml:ro
- ./self-hosting/clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/op-user-config.xml:ro
- ./self-hosting/clickhouse/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh:ro
healthcheck:
test: ["CMD-SHELL", "clickhouse-client --query 'SELECT 1'"]
interval: 10s
timeout: 5s
retries: 5
ulimits:
nofile:
soft: 262144
hard: 262144
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
op-api:
image: git.zias.be/zias/openpanel-api:latest
restart: always
ports:
- "3001:3000"
command: >
sh -c "
echo 'Running migrations...'
CI=true pnpm -r run migrate:deploy
pnpm start
"
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/healthcheck || exit 1"]
interval: 10s
timeout: 5s
retries: 5
depends_on:
op-db:
condition: service_healthy
op-ch:
condition: service_healthy
op-kv:
condition: service_healthy
env_file:
- .env.prod
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "3"
op-dashboard:
image: git.zias.be/zias/openpanel-dashboard:latest
restart: always
ports:
- "3000:3000"
depends_on:
op-api:
condition: service_healthy
env_file:
- .env.prod
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/api/healthcheck || exit 1"]
interval: 10s
timeout: 5s
retries: 5
logging:
driver: "json-file"
options:
max-size: "20m"
max-file: "3"
op-worker:
image: git.zias.be/zias/openpanel-worker:latest
restart: always
depends_on:
op-api:
condition: service_healthy
env_file:
- .env.prod
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/healthcheck || exit 1"]
interval: 10s
timeout: 5s
retries: 5
logging:
driver: "json-file"
options:
max-size: "30m"
max-file: "3"
volumes:
op-db-data:
driver: local
op-kv-data:
driver: local
op-ch-data:
driver: local
op-ch-logs:
driver: local

View File

@@ -2,7 +2,7 @@ version: "3"
services:
op-db:
image: postgres:14-alpine
image: postgres:18.3-alpine
restart: always
volumes:
- ./docker/data/op-db-data:/var/lib/postgresql/data
@@ -13,7 +13,7 @@ services:
- POSTGRES_PASSWORD=postgres
op-kv:
image: redis:7.2.5-alpine
image: redis:8.6.2-alpine
restart: always
volumes:
- ./docker/data/op-kv-data:/data
@@ -22,7 +22,7 @@ services:
- 6379:6379
op-ch:
image: clickhouse/clickhouse-server:26.1.3.52
image: clickhouse/clickhouse-server:26.3.2.3
restart: always
volumes:
- ./docker/data/op-ch-data:/var/lib/clickhouse

View File

@@ -5,7 +5,7 @@
"private": true,
"license": "MIT",
"author": "Carl-Gerhard Lindesvärd",
"packageManager": "pnpm@10.6.2",
"packageManager": "pnpm@10.33.0",
"scripts": {
"test": "vitest run",
"gen:bots": "pnpm -r --filter api gen:bots",
@@ -30,11 +30,11 @@
"pre-push": "[ -n \"$SKIP_HOOKS\" ] || (pnpm typecheck && pnpm test)"
},
"dependencies": {
"@hyperdx/node-opentelemetry": "^0.8.1",
"dotenv-cli": "^7.3.0",
"semver": "^7.5.4",
"@hyperdx/node-opentelemetry": "^0.10.3",
"dotenv-cli": "^7.4.4",
"semver": "^7.7.4",
"typescript": "catalog:",
"winston": "^3.14.2"
"winston": "^3.19.0"
},
"trustedDependencies": [
"@biomejs/biome",
@@ -49,18 +49,19 @@
"sharp"
],
"devDependencies": {
"@biomejs/biome": "2.3.15",
"@biomejs/biome": "2.4.10",
"depcheck": "^1.4.7",
"simple-git-hooks": "^2.12.1",
"ultracite": "7.2.0",
"vitest": "^3.0.4"
"simple-git-hooks": "^2.13.1",
"ultracite": "7.4.0",
"vitest": "^3.2.4"
},
"pnpm": {
"patchedDependencies": {
"nuqs": "patches/nuqs.patch"
"nuqs": "patches/nuqs.patch",
"buffer-equal-constant-time": "patches/buffer-equal-constant-time.patch"
},
"overrides": {
"rolldown": "1.0.0-beta.43",
"rolldown": "1.0.0-rc.12",
"esm-env": "npm:esm-env-runtime@^0.1.0"
}
}

View File

@@ -12,13 +12,13 @@
"@openpanel/validation": "workspace:^",
"@oslojs/crypto": "^1.0.1",
"@oslojs/encoding": "^1.1.0",
"arctic": "^2.3.0"
"arctic": "^2.3.4"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"@types/react": "catalog:",
"prisma": "^5.1.1",
"prisma": "^5.22.0",
"typescript": "catalog:"
},
"peerDependencies": {

View File

@@ -15,15 +15,15 @@
},
"dependencies": {
"@openpanel/constants": "workspace:*",
"date-fns": "^3.3.1",
"lru-cache": "^11.2.4",
"date-fns": "^3.6.0",
"lru-cache": "^11.2.7",
"luxon": "^3.7.2",
"mathjs": "^12.3.2",
"nanoid": "^5.1.6",
"ramda": "^0.29.1",
"slugify": "^1.6.6",
"mathjs": "^15.1.1",
"nanoid": "^5.1.7",
"ramda": "^0.32.0",
"slugify": "^1.6.8",
"superjson": "^1.13.3",
"ua-parser-js": "^2.0.6",
"ua-parser-js": "^2.0.9",
"unique-names-generator": "^4.7.1"
},
"devDependencies": {
@@ -31,9 +31,9 @@
"@openpanel/validation": "workspace:*",
"@types/luxon": "^3.7.1",
"@types/node": "catalog:",
"@types/ramda": "^0.29.6",
"@types/ramda": "^0.31.1",
"@types/ua-parser-js": "^0.7.39",
"prisma": "^5.1.1",
"prisma": "^5.22.0",
"typescript": "catalog:"
}
}

View File

@@ -8,7 +8,7 @@
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"date-fns": "^3.3.1",
"date-fns": "^3.6.0",
"typescript": "catalog:"
}
}

View File

@@ -13,7 +13,7 @@
"with-env": "dotenv -e ../../.env -c --"
},
"dependencies": {
"@clickhouse/client": "^1.12.1",
"@clickhouse/client": "^1.18.2",
"@openpanel/common": "workspace:*",
"@openpanel/constants": "workspace:*",
"@openpanel/json": "workspace:*",
@@ -21,13 +21,13 @@
"@openpanel/queue": "workspace:^",
"@openpanel/redis": "workspace:*",
"@openpanel/validation": "workspace:*",
"@prisma/client": "^6.14.0",
"@prisma/extension-read-replicas": "^0.4.1",
"@prisma/client": "^6.19.2",
"@prisma/extension-read-replicas": "^0.5.0",
"fast-deep-equal": "^3.1.3",
"jiti": "^2.4.1",
"mathjs": "^12.3.2",
"prisma-json-types-generator": "^3.1.1",
"ramda": "^0.29.1",
"jiti": "^2.6.1",
"mathjs": "^15.1.1",
"prisma-json-types-generator": "^3.6.2",
"ramda": "^0.32.0",
"sqlstring": "^2.3.3",
"superjson": "^1.13.3",
"uuid": "^9.0.1",
@@ -36,10 +36,10 @@
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"@types/ramda": "^0.29.6",
"@types/ramda": "^0.31.1",
"@types/sqlstring": "^2.3.2",
"@types/uuid": "^9.0.8",
"prisma": "^6.14.0",
"@types/uuid": "^11.0.0",
"prisma": "^6.19.2",
"typescript": "catalog:"
}
}

View File

@@ -9,10 +9,10 @@
},
"dependencies": {
"@openpanel/db": "workspace:*",
"@react-email/components": "^0.5.6",
"@react-email/components": "^1.0.10",
"react": "catalog:",
"react-dom": "catalog:",
"resend": "^4.0.1",
"resend": "^4.8.0",
"responsive-react-email": "^0.0.5",
"zod": "catalog:"
},

View File

@@ -7,15 +7,15 @@
"codegen": "jiti scripts/download.ts"
},
"dependencies": {
"@maxmind/geoip2-node": "^6.1.0",
"lru-cache": "^11.2.2"
"@maxmind/geoip2-node": "^6.3.4",
"lru-cache": "^11.2.7"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"fast-extract": "^1.4.3",
"jiti": "^2.4.1",
"tar": "^7.4.3",
"fast-extract": "^1.14.2",
"jiti": "^2.6.1",
"tar": "^7.5.13",
"typescript": "catalog:"
}
}

View File

@@ -18,18 +18,18 @@
"@openpanel/db": "workspace:*",
"@openpanel/queue": "workspace:*",
"@openpanel/validation": "workspace:*",
"csv-parse": "^6.1.0",
"ramda": "^0.29.1",
"csv-parse": "^6.2.1",
"ramda": "^0.32.0",
"uuid": "^9.0.1",
"zod": "catalog:"
},
"devDependencies": {
"@openpanel/logger": "workspace:*",
"@types/node": "^20.0.0",
"@types/node": "^20.19.37",
"@types/ramda": "^0.31.1",
"@types/uuid": "^9.0.7",
"bullmq": "^5.8.7",
"typescript": "^5.0.0",
"vitest": "^1.0.0"
"@types/uuid": "^11.0.0",
"bullmq": "^5.71.1",
"typescript": "^5.9.3",
"vitest": "^1.6.1"
}
}

View File

@@ -7,8 +7,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@slack/bolt": "^3.18.0",
"@slack/oauth": "^3.0.0"
"@slack/bolt": "^3.22.0",
"@slack/oauth": "^3.0.5"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",

View File

@@ -11,11 +11,11 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@babel/parser": "^7.26.0"
"@babel/parser": "^7.29.2"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"typescript": "catalog:",
"vitest": "^2.1.8"
"vitest": "^2.1.9"
}
}

View File

@@ -7,13 +7,13 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@hyperdx/node-opentelemetry": "^0.8.1",
"winston": "^3.14.2"
"@hyperdx/node-opentelemetry": "^0.10.3",
"winston": "^3.19.0"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"date-fns": "^3.3.1",
"prisma": "^5.1.1",
"date-fns": "^3.6.0",
"prisma": "^5.22.0",
"typescript": "catalog:"
}
}

View File

@@ -11,16 +11,16 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@polar-sh/sdk": "^0.35.4"
"@polar-sh/sdk": "^0.46.7"
},
"devDependencies": {
"@openpanel/db": "workspace:*",
"@openpanel/tsconfig": "workspace:*",
"@types/inquirer": "^9.0.7",
"@types/inquirer": "^9.0.9",
"@types/inquirer-autocomplete-prompt": "^3.0.3",
"@types/node": "catalog:",
"@types/react": "catalog:",
"inquirer": "^9.3.5",
"inquirer": "^9.3.8",
"inquirer-autocomplete-prompt": "^3.0.1",
"typescript": "catalog:"
}

View File

@@ -10,7 +10,7 @@
"@openpanel/db": "workspace:*",
"@openpanel/logger": "workspace:*",
"@openpanel/redis": "workspace:*",
"bullmq": "^5.63.0",
"bullmq": "^5.71.1",
"groupmq": "catalog:"
},
"devDependencies": {

View File

@@ -8,14 +8,14 @@
},
"dependencies": {
"@openpanel/json": "workspace:*",
"ioredis": "5.8.2",
"lru-cache": "^11.2.2"
"ioredis": "5.10.1",
"lru-cache": "^11.2.7"
},
"devDependencies": {
"@openpanel/db": "workspace:*",
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"prisma": "^5.1.1",
"prisma": "^5.22.0",
"typescript": "catalog:"
}
}

View File

@@ -9,9 +9,9 @@
"react": "catalog:"
},
"devDependencies": {
"@types/react": "catalog:",
"@openpanel/tsconfig": "workspace:*",
"prisma": "^5.1.1",
"@types/react": "catalog:",
"prisma": "^5.22.0",
"typescript": "catalog:"
}
}

View File

@@ -23,7 +23,7 @@
"@openpanel/web": "workspace:1.3.0-local"
},
"devDependencies": {
"astro": "^5.7.7"
"astro": "^5.18.1"
},
"peerDependencies": {
"astro": "^4.0.0 || ^5.0.0"

View File

@@ -10,17 +10,17 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@openpanel/sdk": "workspace:1.3.0-local",
"@openpanel/common": "workspace:*"
"@openpanel/common": "workspace:*",
"@openpanel/sdk": "workspace:1.3.0-local"
},
"peerDependencies": {
"express": "^4.17.0 || ^5.0.0"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/express": "^5.0.3",
"@types/express": "^5.0.6",
"@types/request-ip": "^0.0.41",
"tsup": "^7.2.0",
"tsup": "^8.5.1",
"typescript": "catalog:"
}
}

View File

@@ -20,7 +20,7 @@
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/react": "catalog:",
"tsup": "^7.2.0",
"tsup": "^8.5.1",
"typescript": "catalog:"
}
}

View File

@@ -31,12 +31,12 @@
"nuxt": "^3.0.0 || ^4.0.0"
},
"devDependencies": {
"@nuxt/kit": "^3.0.0",
"@nuxt/kit": "^3.21.2",
"@nuxt/module-builder": "^1.0.2",
"@nuxt/types": "^2.18.1",
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"@vue/runtime-core": "^3.5.25",
"@vue/runtime-core": "^3.5.31",
"typescript": "catalog:",
"unbuild": "^3.6.1"
}

View File

@@ -15,7 +15,7 @@
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"tsup": "^7.2.0",
"tsup": "^8.5.1",
"typescript": "catalog:"
},
"peerDependencies": {

View File

@@ -9,12 +9,11 @@
"build": "rm -rf dist && tsup",
"typecheck": "tsc --noEmit"
},
"dependencies": {},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@openpanel/validation": "workspace:*",
"@types/node": "catalog:",
"tsup": "^7.2.0",
"tsup": "^8.5.1",
"typescript": "catalog:"
}
}

View File

@@ -17,7 +17,7 @@
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"tsup": "^7.2.0",
"tsup": "^8.5.1",
"typescript": "catalog:"
}
}

View File

@@ -16,17 +16,17 @@
"@openpanel/integrations": "workspace:^",
"@openpanel/js-runtime": "workspace:*",
"@openpanel/payments": "workspace:^",
"@openpanel/queue": "workspace:*",
"@openpanel/redis": "workspace:*",
"@openpanel/validation": "workspace:*",
"@openpanel/queue": "workspace:*",
"@trpc-limiter/redis": "^0.0.2",
"@trpc/client": "^11.6.0",
"@trpc/server": "^11.6.0",
"date-fns": "^3.3.1",
"mathjs": "^12.3.2",
"@trpc/client": "^11.16.0",
"@trpc/server": "^11.16.0",
"date-fns": "^3.6.0",
"mathjs": "^15.1.1",
"prisma-error-enum": "^0.1.3",
"ramda": "^0.29.1",
"short-unique-id": "^5.0.3",
"ramda": "^0.32.0",
"short-unique-id": "^5.3.2",
"sqlstring": "^2.3.3",
"superjson": "^1.13.3",
"uuid": "^9.0.1",
@@ -35,9 +35,9 @@
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"@types/ramda": "^0.29.6",
"@types/ramda": "^0.31.1",
"@types/sqlstring": "^2.3.2",
"prisma": "^5.1.1",
"prisma": "^5.22.0",
"typescript": "catalog:"
}
}

View File

@@ -13,7 +13,7 @@
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"prisma": "^5.1.1",
"prisma": "^5.22.0",
"typescript": "catalog:"
}
}

View File

@@ -0,0 +1,42 @@
diff --git a/.npmignore b/.npmignore
deleted file mode 100644
index 34e4f5c298de294fa5c1c1769b6489eb047bde9a..0000000000000000000000000000000000000000
diff --git a/index.js b/index.js
index 5462c1f830bdbe79bf2b1fcfd811cd9799b4dd11..689421d49e83d168981a0c7d1fef59a0b0e56963 100644
--- a/index.js
+++ b/index.js
@@ -3,6 +3,9 @@
var Buffer = require('buffer').Buffer; // browserify
var SlowBuffer = require('buffer').SlowBuffer;
+// Handle Node.js v25+ where SlowBuffer was removed
+var hasSlowBuffer = !!SlowBuffer;
+
module.exports = bufferEq;
function bufferEq(a, b) {
@@ -28,14 +31,18 @@ function bufferEq(a, b) {
}
bufferEq.install = function() {
- Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {
- return bufferEq(this, that);
- };
+ Buffer.prototype.equal = function equal(that) {
+ return bufferEq(this, that);
+ };
+ if (hasSlowBuffer) {
+ SlowBuffer.prototype.equal = Buffer.prototype.equal;
+ }
};
var origBufEqual = Buffer.prototype.equal;
-var origSlowBufEqual = SlowBuffer.prototype.equal;
bufferEq.restore = function() {
- Buffer.prototype.equal = origBufEqual;
- SlowBuffer.prototype.equal = origSlowBufEqual;
+ Buffer.prototype.equal = origBufEqual;
+ if (hasSlowBuffer && SlowBuffer.prototype) {
+ delete SlowBuffer.prototype.equal;
+ }
};

28877
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -7,10 +7,10 @@ packages:
# Define a catalog of version ranges.
catalog:
zod: ^3.24.2
react: ^19.2.3
"@types/react": ^19.2.3
"react-dom": ^19.2.3
react: ^19.2.4
"@types/react": ^19.2.14
"react-dom": ^19.2.4
"@types/react-dom": ^19.2.3
"@types/node": ^24.7.1
"@types/node": ^25.5.0
typescript: ^5.9.3
groupmq: 2.0.0-next.1

View File

@@ -23,7 +23,7 @@ services:
max-file: "3"
op-db:
image: postgres:14-alpine
image: postgres:18.3-alpine
restart: always
volumes:
- op-db-data:/var/lib/postgresql/data
@@ -45,7 +45,7 @@ services:
# - 5432:5432
op-kv:
image: redis:7.2.5-alpine
image: redis:8.6.2-alpine
restart: always
volumes:
- op-kv-data:/data
@@ -65,7 +65,7 @@ services:
# - 6379:6379
op-ch:
image: clickhouse/clickhouse-server:25.10.2.65
image: clickhouse/clickhouse-server:26.3.2.3
restart: always
volumes:
- op-ch-data:/var/lib/clickhouse

View File

@@ -9,12 +9,12 @@
},
"dependencies": {
"arg": "^5.0.2",
"semver": "^7.5.4"
"semver": "^7.7.4"
},
"devDependencies": {
"@openpanel/tsconfig": "workspace:*",
"@types/node": "catalog:",
"@types/semver": "^7.5.4",
"@types/semver": "^7.7.1",
"typescript": "catalog:"
}
}

View File

@@ -3,8 +3,12 @@
"version": "0.1.0",
"type": "module",
"private": true,
"files": ["base.json", "sdk.json", "tsup.config.json"],
"files": [
"base.json",
"sdk.json",
"tsup.config.json"
],
"devDependencies": {
"tsup": "^7.2.0"
"tsup": "^8.5.1"
}
}