From a022cb4831cc1c029e5f9ab224c119b47aac01f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?=
Date: Wed, 13 Nov 2024 21:15:46 +0100
Subject: [PATCH] feature(public,docs): new public website and docs
---
.../[projectId]/connect/connect-app.tsx | 44 +-
.../[projectId]/connect/connect-backend.tsx | 44 +-
.../[projectId]/connect/connect-web.tsx | 44 +-
apps/dashboard/src/app/providers.tsx | 9 +-
.../components/report-chart/funnel/chart.tsx | 11 -
.../src/modals/FunnelStepDetails.tsx | 103 -
apps/dashboard/src/modals/Instructions.tsx | 354 +-
apps/dashboard/src/modals/index.tsx | 3 -
apps/docs/.gitignore | 39 -
apps/docs/.prettierignore | 1 -
apps/docs/Dockerfile | 59 -
apps/docs/README.md | 1 -
apps/docs/next.config.mjs | 33 -
apps/docs/package.json | 29 -
apps/docs/public/favicon.ico | Bin 15406 -> 0 bytes
apps/docs/public/ogimage.png | Bin 433788 -> 0 bytes
apps/docs/src/components/brand-logo.tsx | 15 -
apps/docs/src/globals.css | 7 -
apps/docs/src/pages/_app.tsx | 40 -
apps/docs/src/pages/_meta.json | 10 -
apps/docs/src/pages/docs/_meta.json | 6 -
apps/docs/src/pages/docs/index.mdx | 167 -
apps/docs/src/pages/docs/migration/_meta.json | 3 -
apps/docs/src/pages/docs/sdks/_meta.json | 19 -
apps/docs/src/pages/docs/sdks/astro.mdx | 5 -
apps/docs/src/pages/docs/sdks/node.mdx | 5 -
apps/docs/src/pages/docs/sdks/react.mdx | 5 -
apps/docs/src/pages/docs/sdks/remix.mdx | 5 -
apps/docs/src/pages/docs/sdks/vue.mdx | 5 -
.../src/pages/docs/self-hosting/_meta.json | 3 -
apps/docs/src/pages/index.mdx | 16 -
apps/docs/tailwind.config.js | 8 -
apps/docs/theme.config.jsx | 85 -
apps/docs/tsconfig.json | 18 -
apps/public/.gitignore | 39 +-
apps/public/Dockerfile | 86 -
apps/public/README.md | 38 +-
apps/public/app/(content)/[...pages]/page.tsx | 96 +
.../(content)/articles/[articleSlug]/page.tsx | 179 +
apps/public/app/(content)/articles/page.tsx | 72 +
apps/public/app/(content)/layout.tsx | 20 +
apps/public/app/api/search/route.ts | 4 +
apps/public/app/docs/[[...slug]]/page.tsx | 46 +
apps/public/app/docs/layout.tsx | 12 +
apps/public/app/global.css | 200 +
apps/public/app/layout.config.tsx | 55 +
apps/public/app/layout.tsx | 72 +
apps/public/{src => }/app/manifest.ts | 6 +-
apps/public/app/not-found.tsx | 28 +
apps/public/app/page.tsx | 28 +
apps/public/app/sitemap.ts | 40 +
apps/public/components.json | 18 +-
apps/public/components/Swirls.tsx | 152 +
.../components/common-sdk-config.mdx | 0
.../components/device-id-warning.tsx | 2 +-
apps/public/components/feature.tsx | 125 +
apps/public/components/figure.tsx | 22 +
apps/public/components/footer.tsx | 144 +
apps/public/components/github-button.tsx | 39 +
apps/public/components/hero-carousel.tsx | 156 +
apps/public/components/hero-map.tsx | 22 +
apps/public/components/hero.tsx | 66 +
apps/public/components/line.tsx | 34 +
apps/public/components/logo.tsx | 34 +
apps/public/components/navbar.tsx | 138 +
.../components/personal-data-warning.tsx | 4 +-
apps/public/components/pricing-slider.tsx | 59 +
apps/public/components/section.tsx | 31 +
apps/public/components/sections/faq.tsx | 136 +
apps/public/components/sections/features.tsx | 235 +
.../sections/features/events-feature.tsx | 271 +
.../features/product-analytics-feature.tsx | 208 +
.../sections/features/profiles-feature.tsx | 131 +
.../features/web-analytics-feature.tsx | 196 +
apps/public/components/sections/pricing.tsx | 77 +
apps/public/components/sections/sdks.tsx | 86 +
apps/public/components/sections/stats.tsx | 111 +
.../components/sections/testimonials.tsx | 119 +
apps/public/components/simple-chart.tsx | 70 +
apps/public/components/tag.tsx | 30 +
apps/public/components/toc.tsx | 34 +
apps/public/components/twitter-card.tsx | 88 +
apps/public/components/ui/accordion.tsx | 69 +
apps/public/components/ui/button.tsx | 65 +
apps/public/components/ui/slider.tsx | 46 +
apps/public/components/ui/tooltip.tsx | 34 +
.../components/web-sdk-config.mdx | 0
apps/public/components/world-map-string.ts | 8 +
apps/public/components/world-map.tsx | 138 +
apps/public/content/articles/.cursorrules | 51 +
.../articles/alternatives-to-mixpanel.mdx | 180 +
.../articles/introduction-to-openpanel.mdx | 43 +
.../top-7-open-source-web-analytics-tools.mdx | 106 +
apps/public/content/articles/vs-mixpanel.mdx | 103 +
.../content/docs/api}/export.mdx | 7 +-
apps/public/content/docs/api/meta.json | 4 +
.../content/docs/api/track.mdx} | 7 +-
apps/public/content/docs/index.mdx | 59 +
.../content}/docs/migration/beta-v1.mdx | 7 +-
apps/public/content/docs/sdks/astro.mdx | 5 +
.../content}/docs/sdks/express.mdx | 16 +-
.../content}/docs/sdks/javascript.mdx | 19 +-
apps/public/content/docs/sdks/meta.json | 5 +
.../content}/docs/sdks/nextjs.mdx | 16 +-
.../content}/docs/sdks/react-native.mdx | 26 +-
apps/public/content/docs/sdks/react.mdx | 5 +
apps/public/content/docs/sdks/remix.mdx | 5 +
.../content}/docs/sdks/script.mdx | 30 +-
apps/public/content/docs/sdks/vue.mdx | 5 +
.../content}/docs/sdks/web.mdx | 15 +-
.../docs/self-hosting/self-hosting.mdx} | 13 +-
apps/public/content/pages/about.mdx | 66 +
apps/public/content/pages/contact.mdx | 16 +
apps/public/content/pages/cookies.mdx | 24 +
apps/public/content/pages/pricing.mdx | 18 +
apps/public/content/pages/privacy.mdx | 212 +
apps/public/content/pages/terms.mdx | 192 +
apps/public/lib/dark-mode.ts | 37 +
apps/public/lib/github.ts | 6 +
apps/public/lib/source.ts | 25 +
apps/public/lib/utils.ts | 6 +
apps/public/next.config.mjs | 40 +-
apps/public/package.json | 72 +-
apps/public/postcss.config.cjs | 8 -
apps/{docs => public}/postcss.config.js | 0
apps/public/public/apple-touch-icon.png | Bin 0 -> 9766 bytes
apps/public/public/article-example.jpg | Bin 0 -> 92886 bytes
apps/public/public/avatar-2.jpg | Bin 0 -> 194678 bytes
apps/public/public/avatar-3.jpg | Bin 0 -> 169780 bytes
apps/public/public/avatar.jpg | Bin 0 -> 112223 bytes
.../public/content/cover-alternatives.jpg | Bin 0 -> 281365 bytes
.../content/cover-best-web-analytics.jpg | Bin 0 -> 271210 bytes
apps/public/public/content/cover-default.jpg | Bin 0 -> 246528 bytes
apps/public/public/content/cover-mixpanel.jpg | Bin 0 -> 283729 bytes
.../public/content/screenshot-realtime.png | Bin 0 -> 2219781 bytes
.../public/content/screenshot-report-bar.png | Bin 0 -> 839058 bytes
.../content/screenshot-report-funnel.png | Bin 0 -> 893900 bytes
.../public/content/screenshot-report-line.png | Bin 0 -> 970547 bytes
.../content/screenshot-web-analytics.png | Bin 0 -> 1485451 bytes
apps/public/public/dashboard-dark.png | Bin 0 -> 957770 bytes
apps/public/public/dashboard-light.png | Bin 0 -> 1011619 bytes
apps/public/public/demo-2/1.png | Bin 76063 -> 0 bytes
apps/public/public/demo-2/2.png | Bin 107270 -> 0 bytes
apps/public/public/demo-2/3.png | Bin 101256 -> 0 bytes
apps/public/public/demo-2/4.png | Bin 79346 -> 0 bytes
apps/public/public/demo-2/5.png | Bin 98003 -> 0 bytes
apps/public/public/demo-2/6.png | Bin 148406 -> 0 bytes
apps/public/public/demo-2/7.png | Bin 91931 -> 0 bytes
apps/public/public/demo-3/img-1.png | Bin 51813 -> 0 bytes
apps/public/public/demo-3/img-2.png | Bin 30902 -> 0 bytes
apps/public/public/demo-3/img-3.png | Bin 112267 -> 0 bytes
apps/public/public/demo-3/img-4.png | Bin 160793 -> 0 bytes
apps/public/public/demo-3/img-5.png | Bin 284376 -> 0 bytes
apps/public/public/demo/bar-min.png | Bin 40327 -> 0 bytes
apps/public/public/demo/events-min.png | Bin 56574 -> 0 bytes
apps/public/public/demo/histogram-min.png | Bin 68065 -> 0 bytes
apps/public/public/demo/line-min.png | Bin 56013 -> 0 bytes
apps/public/public/demo/metrics-min.png | Bin 42097 -> 0 bytes
apps/public/public/demo/overview-min.png | Bin 69990 -> 0 bytes
.../public/public/demo/overview-share-min.png | Bin 126676 -> 0 bytes
apps/public/public/demo/pie-min.png | Bin 49473 -> 0 bytes
apps/public/public/demo/worldmap-min.png | Bin 113209 -> 0 bytes
apps/public/public/dubble-swirl.svg | 32 +
apps/public/public/favicon-96x96.png | Bin 0 -> 4040 bytes
apps/public/public/favicon.svg | 3 +
apps/public/public/funnel-dark.png | Bin 0 -> 520510 bytes
apps/public/public/funnel-light.png | Bin 0 -> 541638 bytes
apps/public/public/logo.jpg | Bin 89092 -> 0 bytes
apps/public/public/logo.png | Bin 0 -> 1625674 bytes
apps/public/public/logo.svg | 6 -
apps/public/public/ogimage.jpg | Bin 0 -> 343702 bytes
apps/public/public/ogimage.png | Bin 438142 -> 0 bytes
.../public/public/product-analytics-light.png | Bin 0 -> 197288 bytes
apps/public/public/profile-dark.png | Bin 0 -> 731644 bytes
apps/public/public/profile-light.png | Bin 0 -> 770119 bytes
apps/public/public/react-native.svg | 2 -
apps/public/public/retention-dark.png | Bin 0 -> 1071654 bytes
apps/public/public/retention-light.png | Bin 0 -> 1151817 bytes
apps/public/public/single-swirl.svg | 26 +
apps/public/public/site.webmanifest | 21 +
.../public/web-app-manifest-192x192.png | Bin 0 -> 11306 bytes
.../public/web-app-manifest-512x512.png | Bin 0 -> 110089 bytes
apps/public/source.config.ts | 55 +
apps/public/src/app/(static)/layout.tsx | 20 -
apps/public/src/app/(static)/privacy/page.tsx | 525 --
apps/public/src/app/(static)/terms/page.tsx | 458 --
apps/public/src/app/animated-text.tsx | 45 -
apps/public/src/app/api/waitlist/route.ts | 26 -
apps/public/src/app/copy.tsx | 76 -
apps/public/src/app/favicon.ico | Bin 15406 -> 0 bytes
apps/public/src/app/features.tsx | 145 -
apps/public/src/app/footer.tsx | 70 -
apps/public/src/app/hero.tsx | 105 -
apps/public/src/app/join-waitlist-hero.tsx | 81 -
apps/public/src/app/join-waitlist.tsx | 81 -
apps/public/src/app/layout.tsx | 61 -
apps/public/src/app/meta.ts | 23 -
apps/public/src/app/navbar.tsx | 48 -
apps/public/src/app/page.tsx | 125 -
apps/public/src/app/pricing.tsx | 76 -
apps/public/src/app/punch-lines.tsx | 166 -
apps/public/src/app/social-proof/index.tsx | 17 -
.../src/app/social-proof/social-proof.tsx | 73 -
apps/public/src/components/Logo.tsx | 25 -
apps/public/src/components/ui/button.tsx | 104 -
apps/public/src/components/ui/carousel.tsx | 257 -
apps/public/src/components/ui/dialog.tsx | 121 -
apps/public/src/components/ui/input.tsx | 28 -
apps/public/src/components/ui/popover.tsx | 30 -
apps/public/src/components/ui/tooltip.tsx | 29 -
apps/public/src/env.mjs | 49 -
apps/public/src/styles/globals.css | 116 -
apps/public/src/utils/cn.ts | 7 -
apps/public/tailwind.config.js | 173 +-
apps/public/tsconfig.json | 25 +-
apps/worker/src/jobs/events.incoming-event.ts | 4 +-
packages/sdks/_info/frameworks.tsx | 164 +-
packages/sdks/_info/icons/astro-icon.tsx | 23 +
packages/sdks/_info/icons/express-icon.tsx | 28 +
packages/sdks/_info/icons/flutter-icon.tsx | 19 +
packages/sdks/_info/icons/html-icon.tsx | 21 +
packages/sdks/_info/icons/kotlin-icon.tsx | 26 +
packages/sdks/_info/icons/laravel-icon.tsx | 19 +
packages/sdks/_info/icons/nextjs-icon.tsx | 26 +
packages/sdks/_info/icons/node-icon.tsx | 19 +
packages/sdks/_info/icons/python-icon.tsx | 28 +
packages/sdks/_info/icons/react-icon.tsx | 19 +
packages/sdks/_info/icons/remix-icon.tsx | 32 +
packages/sdks/_info/icons/rest-icon.tsx | 27 +
packages/sdks/_info/icons/swift-icon.tsx | 21 +
packages/sdks/_info/icons/types.ts | 3 +
packages/sdks/_info/icons/vue-icon.tsx | 19 +
packages/sdks/_info/package.json | 4 +
pnpm-lock.yaml | 4799 +++++++++++------
234 files changed, 9341 insertions(+), 6154 deletions(-)
delete mode 100644 apps/dashboard/src/modals/FunnelStepDetails.tsx
delete mode 100644 apps/docs/.gitignore
delete mode 100644 apps/docs/.prettierignore
delete mode 100644 apps/docs/Dockerfile
delete mode 100644 apps/docs/README.md
delete mode 100644 apps/docs/next.config.mjs
delete mode 100644 apps/docs/package.json
delete mode 100644 apps/docs/public/favicon.ico
delete mode 100644 apps/docs/public/ogimage.png
delete mode 100644 apps/docs/src/components/brand-logo.tsx
delete mode 100644 apps/docs/src/globals.css
delete mode 100644 apps/docs/src/pages/_app.tsx
delete mode 100644 apps/docs/src/pages/_meta.json
delete mode 100644 apps/docs/src/pages/docs/_meta.json
delete mode 100644 apps/docs/src/pages/docs/index.mdx
delete mode 100644 apps/docs/src/pages/docs/migration/_meta.json
delete mode 100644 apps/docs/src/pages/docs/sdks/_meta.json
delete mode 100644 apps/docs/src/pages/docs/sdks/astro.mdx
delete mode 100644 apps/docs/src/pages/docs/sdks/node.mdx
delete mode 100644 apps/docs/src/pages/docs/sdks/react.mdx
delete mode 100644 apps/docs/src/pages/docs/sdks/remix.mdx
delete mode 100644 apps/docs/src/pages/docs/sdks/vue.mdx
delete mode 100644 apps/docs/src/pages/docs/self-hosting/_meta.json
delete mode 100644 apps/docs/src/pages/index.mdx
delete mode 100644 apps/docs/tailwind.config.js
delete mode 100644 apps/docs/theme.config.jsx
delete mode 100644 apps/docs/tsconfig.json
delete mode 100644 apps/public/Dockerfile
create mode 100644 apps/public/app/(content)/[...pages]/page.tsx
create mode 100644 apps/public/app/(content)/articles/[articleSlug]/page.tsx
create mode 100644 apps/public/app/(content)/articles/page.tsx
create mode 100644 apps/public/app/(content)/layout.tsx
create mode 100644 apps/public/app/api/search/route.ts
create mode 100644 apps/public/app/docs/[[...slug]]/page.tsx
create mode 100644 apps/public/app/docs/layout.tsx
create mode 100644 apps/public/app/global.css
create mode 100644 apps/public/app/layout.config.tsx
create mode 100644 apps/public/app/layout.tsx
rename apps/public/{src => }/app/manifest.ts (75%)
create mode 100644 apps/public/app/not-found.tsx
create mode 100644 apps/public/app/page.tsx
create mode 100644 apps/public/app/sitemap.ts
create mode 100644 apps/public/components/Swirls.tsx
rename apps/{docs/src => public}/components/common-sdk-config.mdx (100%)
rename apps/{docs/src => public}/components/device-id-warning.tsx (82%)
create mode 100644 apps/public/components/feature.tsx
create mode 100644 apps/public/components/figure.tsx
create mode 100644 apps/public/components/footer.tsx
create mode 100644 apps/public/components/github-button.tsx
create mode 100644 apps/public/components/hero-carousel.tsx
create mode 100644 apps/public/components/hero-map.tsx
create mode 100644 apps/public/components/hero.tsx
create mode 100644 apps/public/components/line.tsx
create mode 100644 apps/public/components/logo.tsx
create mode 100644 apps/public/components/navbar.tsx
rename apps/{docs/src => public}/components/personal-data-warning.tsx (72%)
create mode 100644 apps/public/components/pricing-slider.tsx
create mode 100644 apps/public/components/section.tsx
create mode 100644 apps/public/components/sections/faq.tsx
create mode 100644 apps/public/components/sections/features.tsx
create mode 100644 apps/public/components/sections/features/events-feature.tsx
create mode 100644 apps/public/components/sections/features/product-analytics-feature.tsx
create mode 100644 apps/public/components/sections/features/profiles-feature.tsx
create mode 100644 apps/public/components/sections/features/web-analytics-feature.tsx
create mode 100644 apps/public/components/sections/pricing.tsx
create mode 100644 apps/public/components/sections/sdks.tsx
create mode 100644 apps/public/components/sections/stats.tsx
create mode 100644 apps/public/components/sections/testimonials.tsx
create mode 100644 apps/public/components/simple-chart.tsx
create mode 100644 apps/public/components/tag.tsx
create mode 100644 apps/public/components/toc.tsx
create mode 100644 apps/public/components/twitter-card.tsx
create mode 100644 apps/public/components/ui/accordion.tsx
create mode 100644 apps/public/components/ui/button.tsx
create mode 100644 apps/public/components/ui/slider.tsx
create mode 100644 apps/public/components/ui/tooltip.tsx
rename apps/{docs/src => public}/components/web-sdk-config.mdx (100%)
create mode 100644 apps/public/components/world-map-string.ts
create mode 100644 apps/public/components/world-map.tsx
create mode 100644 apps/public/content/articles/.cursorrules
create mode 100644 apps/public/content/articles/alternatives-to-mixpanel.mdx
create mode 100644 apps/public/content/articles/introduction-to-openpanel.mdx
create mode 100644 apps/public/content/articles/top-7-open-source-web-analytics-tools.mdx
create mode 100644 apps/public/content/articles/vs-mixpanel.mdx
rename apps/{docs/src/pages/docs/sdks => public/content/docs/api}/export.mdx (97%)
create mode 100644 apps/public/content/docs/api/meta.json
rename apps/{docs/src/pages/docs/sdks/api.mdx => public/content/docs/api/track.mdx} (92%)
create mode 100644 apps/public/content/docs/index.mdx
rename apps/{docs/src/pages => public/content}/docs/migration/beta-v1.mdx (85%)
create mode 100644 apps/public/content/docs/sdks/astro.mdx
rename apps/{docs/src/pages => public/content}/docs/sdks/express.mdx (75%)
rename apps/{docs/src/pages => public/content}/docs/sdks/javascript.mdx (80%)
create mode 100644 apps/public/content/docs/sdks/meta.json
rename apps/{docs/src/pages => public/content}/docs/sdks/nextjs.mdx (95%)
rename apps/{docs/src/pages => public/content}/docs/sdks/react-native.mdx (83%)
create mode 100644 apps/public/content/docs/sdks/react.mdx
create mode 100644 apps/public/content/docs/sdks/remix.mdx
rename apps/{docs/src/pages => public/content}/docs/sdks/script.mdx (79%)
create mode 100644 apps/public/content/docs/sdks/vue.mdx
rename apps/{docs/src/pages => public/content}/docs/sdks/web.mdx (54%)
rename apps/{docs/src/pages/docs/self-hosting/index.mdx => public/content/docs/self-hosting/self-hosting.mdx} (92%)
create mode 100644 apps/public/content/pages/about.mdx
create mode 100644 apps/public/content/pages/contact.mdx
create mode 100644 apps/public/content/pages/cookies.mdx
create mode 100644 apps/public/content/pages/pricing.mdx
create mode 100644 apps/public/content/pages/privacy.mdx
create mode 100644 apps/public/content/pages/terms.mdx
create mode 100644 apps/public/lib/dark-mode.ts
create mode 100644 apps/public/lib/github.ts
create mode 100644 apps/public/lib/source.ts
create mode 100644 apps/public/lib/utils.ts
delete mode 100644 apps/public/postcss.config.cjs
rename apps/{docs => public}/postcss.config.js (100%)
create mode 100644 apps/public/public/apple-touch-icon.png
create mode 100644 apps/public/public/article-example.jpg
create mode 100644 apps/public/public/avatar-2.jpg
create mode 100644 apps/public/public/avatar-3.jpg
create mode 100644 apps/public/public/avatar.jpg
create mode 100644 apps/public/public/content/cover-alternatives.jpg
create mode 100644 apps/public/public/content/cover-best-web-analytics.jpg
create mode 100644 apps/public/public/content/cover-default.jpg
create mode 100644 apps/public/public/content/cover-mixpanel.jpg
create mode 100644 apps/public/public/content/screenshot-realtime.png
create mode 100644 apps/public/public/content/screenshot-report-bar.png
create mode 100644 apps/public/public/content/screenshot-report-funnel.png
create mode 100644 apps/public/public/content/screenshot-report-line.png
create mode 100644 apps/public/public/content/screenshot-web-analytics.png
create mode 100644 apps/public/public/dashboard-dark.png
create mode 100644 apps/public/public/dashboard-light.png
delete mode 100644 apps/public/public/demo-2/1.png
delete mode 100644 apps/public/public/demo-2/2.png
delete mode 100644 apps/public/public/demo-2/3.png
delete mode 100644 apps/public/public/demo-2/4.png
delete mode 100644 apps/public/public/demo-2/5.png
delete mode 100644 apps/public/public/demo-2/6.png
delete mode 100644 apps/public/public/demo-2/7.png
delete mode 100644 apps/public/public/demo-3/img-1.png
delete mode 100644 apps/public/public/demo-3/img-2.png
delete mode 100644 apps/public/public/demo-3/img-3.png
delete mode 100644 apps/public/public/demo-3/img-4.png
delete mode 100644 apps/public/public/demo-3/img-5.png
delete mode 100644 apps/public/public/demo/bar-min.png
delete mode 100644 apps/public/public/demo/events-min.png
delete mode 100644 apps/public/public/demo/histogram-min.png
delete mode 100644 apps/public/public/demo/line-min.png
delete mode 100644 apps/public/public/demo/metrics-min.png
delete mode 100644 apps/public/public/demo/overview-min.png
delete mode 100644 apps/public/public/demo/overview-share-min.png
delete mode 100644 apps/public/public/demo/pie-min.png
delete mode 100644 apps/public/public/demo/worldmap-min.png
create mode 100644 apps/public/public/dubble-swirl.svg
create mode 100644 apps/public/public/favicon-96x96.png
create mode 100644 apps/public/public/favicon.svg
create mode 100644 apps/public/public/funnel-dark.png
create mode 100644 apps/public/public/funnel-light.png
delete mode 100644 apps/public/public/logo.jpg
create mode 100644 apps/public/public/logo.png
delete mode 100644 apps/public/public/logo.svg
create mode 100644 apps/public/public/ogimage.jpg
delete mode 100644 apps/public/public/ogimage.png
create mode 100644 apps/public/public/product-analytics-light.png
create mode 100644 apps/public/public/profile-dark.png
create mode 100644 apps/public/public/profile-light.png
delete mode 100644 apps/public/public/react-native.svg
create mode 100644 apps/public/public/retention-dark.png
create mode 100644 apps/public/public/retention-light.png
create mode 100644 apps/public/public/single-swirl.svg
create mode 100644 apps/public/public/site.webmanifest
create mode 100644 apps/public/public/web-app-manifest-192x192.png
create mode 100644 apps/public/public/web-app-manifest-512x512.png
create mode 100644 apps/public/source.config.ts
delete mode 100644 apps/public/src/app/(static)/layout.tsx
delete mode 100644 apps/public/src/app/(static)/privacy/page.tsx
delete mode 100644 apps/public/src/app/(static)/terms/page.tsx
delete mode 100644 apps/public/src/app/animated-text.tsx
delete mode 100644 apps/public/src/app/api/waitlist/route.ts
delete mode 100644 apps/public/src/app/copy.tsx
delete mode 100644 apps/public/src/app/favicon.ico
delete mode 100644 apps/public/src/app/features.tsx
delete mode 100644 apps/public/src/app/footer.tsx
delete mode 100644 apps/public/src/app/hero.tsx
delete mode 100644 apps/public/src/app/join-waitlist-hero.tsx
delete mode 100644 apps/public/src/app/join-waitlist.tsx
delete mode 100644 apps/public/src/app/layout.tsx
delete mode 100644 apps/public/src/app/meta.ts
delete mode 100644 apps/public/src/app/navbar.tsx
delete mode 100644 apps/public/src/app/page.tsx
delete mode 100644 apps/public/src/app/pricing.tsx
delete mode 100644 apps/public/src/app/punch-lines.tsx
delete mode 100644 apps/public/src/app/social-proof/index.tsx
delete mode 100644 apps/public/src/app/social-proof/social-proof.tsx
delete mode 100644 apps/public/src/components/Logo.tsx
delete mode 100644 apps/public/src/components/ui/button.tsx
delete mode 100644 apps/public/src/components/ui/carousel.tsx
delete mode 100644 apps/public/src/components/ui/dialog.tsx
delete mode 100644 apps/public/src/components/ui/input.tsx
delete mode 100644 apps/public/src/components/ui/popover.tsx
delete mode 100644 apps/public/src/components/ui/tooltip.tsx
delete mode 100644 apps/public/src/env.mjs
delete mode 100644 apps/public/src/styles/globals.css
delete mode 100644 apps/public/src/utils/cn.ts
create mode 100644 packages/sdks/_info/icons/astro-icon.tsx
create mode 100644 packages/sdks/_info/icons/express-icon.tsx
create mode 100644 packages/sdks/_info/icons/flutter-icon.tsx
create mode 100644 packages/sdks/_info/icons/html-icon.tsx
create mode 100644 packages/sdks/_info/icons/kotlin-icon.tsx
create mode 100644 packages/sdks/_info/icons/laravel-icon.tsx
create mode 100644 packages/sdks/_info/icons/nextjs-icon.tsx
create mode 100644 packages/sdks/_info/icons/node-icon.tsx
create mode 100644 packages/sdks/_info/icons/python-icon.tsx
create mode 100644 packages/sdks/_info/icons/react-icon.tsx
create mode 100644 packages/sdks/_info/icons/remix-icon.tsx
create mode 100644 packages/sdks/_info/icons/rest-icon.tsx
create mode 100644 packages/sdks/_info/icons/swift-icon.tsx
create mode 100644 packages/sdks/_info/icons/types.ts
create mode 100644 packages/sdks/_info/icons/vue-icon.tsx
diff --git a/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-app.tsx b/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-app.tsx
index 4ccc802d..387e5f7a 100644
--- a/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-app.tsx
+++ b/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-app.tsx
@@ -19,30 +19,26 @@ const ConnectApp = ({ client }: Props) => {
Pick a framework below to get started.
- {frameworks.app.map((framework) => (
-
- ))}
+ {frameworks
+ .filter((framework) => framework.type.includes('app'))
+ .map((framework) => (
+
+ ))}
Missing a framework?{' '}
diff --git a/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-backend.tsx b/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-backend.tsx
index c42420ae..94fefa93 100644
--- a/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-backend.tsx
+++ b/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-backend.tsx
@@ -19,30 +19,26 @@ const ConnectBackend = ({ client }: Props) => {
Pick a framework below to get started.
- {frameworks.backend.map((framework) => (
-
- ))}
+ {frameworks
+ .filter((framework) => framework.type.includes('backend'))
+ .map((framework) => (
+
+ ))}
Missing a framework?{' '}
diff --git a/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-web.tsx b/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-web.tsx
index afe480a5..9ed59e1c 100644
--- a/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-web.tsx
+++ b/apps/dashboard/src/app/(onboarding)/onboarding/[projectId]/connect/connect-web.tsx
@@ -19,30 +19,26 @@ const ConnectWeb = ({ client }: Props) => {
Pick a framework below to get started.
- {frameworks.website.map((framework) => (
-
- ))}
+ {frameworks
+ .filter((framework) => framework.type.includes('website'))
+ .map((framework) => (
+
+ ))}
Missing a framework?{' '}
diff --git a/apps/dashboard/src/app/providers.tsx b/apps/dashboard/src/app/providers.tsx
index f4467c04..8ebb942d 100644
--- a/apps/dashboard/src/app/providers.tsx
+++ b/apps/dashboard/src/app/providers.tsx
@@ -18,8 +18,10 @@ import superjson from 'superjson';
import { NotificationProvider } from '@/components/notifications/notification-provider';
import { OpenPanelComponent } from '@openpanel/nextjs';
+import { useSearchParams } from 'next/navigation';
function AllProviders({ children }: { children: React.ReactNode }) {
+ const searchParams = useSearchParams();
const { getToken } = useAuth();
const [queryClient] = useState(
() =>
@@ -59,11 +61,16 @@ function AllProviders({ children }: { children: React.ReactNode }) {
storeRef.current = makeStore();
}
+ const forcedTheme = searchParams.get('colorScheme');
+
return (
{process.env.NEXT_PUBLIC_OP_CLIENT_ID && (
{step.count}
- {/* */}
diff --git a/apps/dashboard/src/modals/FunnelStepDetails.tsx b/apps/dashboard/src/modals/FunnelStepDetails.tsx
deleted file mode 100644
index efbcbe72..00000000
--- a/apps/dashboard/src/modals/FunnelStepDetails.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-'use client';
-
-import { ListPropertiesIcon } from '@/components/events/list-properties-icon';
-import { Pagination } from '@/components/pagination';
-import { ProfileAvatar } from '@/components/profiles/profile-avatar';
-import { DialogContent } from '@/components/ui/dialog';
-import { ScrollArea } from '@/components/ui/scroll-area';
-import { Tooltiper } from '@/components/ui/tooltip';
-import { WidgetTable } from '@/components/widget-table';
-import { useAppParams } from '@/hooks/useAppParams';
-import { api } from '@/trpc/client';
-import { getProfileName } from '@/utils/getters';
-import Link from 'next/link';
-import { usePathname } from 'next/navigation';
-import { useEffect, useRef, useState } from 'react';
-
-import type { IChartInput } from '@openpanel/validation';
-
-import { popModal } from '.';
-import { ModalHeader } from './Modal/Container';
-
-interface Props extends IChartInput {
- step: number;
-}
-
-function usePrevious(value: any) {
- const ref = useRef();
- useEffect(() => {
- ref.current = value;
- });
- return ref.current;
-}
-
-export default function FunnelStepDetails(props: Props) {
- const [data] = api.chart.funnelStep.useSuspenseQuery(props);
- const pathname = usePathname();
- const prev = usePrevious(pathname);
- const { organizationSlug, projectId } = useAppParams();
- const [page, setPage] = useState(0);
-
- useEffect(() => {
- if (prev && prev !== pathname) {
- popModal();
- }
- }, [pathname]);
-
- return (
-
-
-
- item.id}
- columns={[
- {
- name: 'Name',
- render(profile) {
- return (
-
-
- {getProfileName(profile)}
-
- );
- },
- },
- {
- name: '',
- render(profile) {
- return ;
- },
- },
- {
- name: 'Last seen',
- render(profile) {
- return (
-
-
- {profile.createdAt.toLocaleTimeString()}
-
-
- );
- },
- },
- ]}
- />
-
-
- );
-}
diff --git a/apps/dashboard/src/modals/Instructions.tsx b/apps/dashboard/src/modals/Instructions.tsx
index 5338e91d..ba183a09 100644
--- a/apps/dashboard/src/modals/Instructions.tsx
+++ b/apps/dashboard/src/modals/Instructions.tsx
@@ -16,10 +16,7 @@ import { popModal } from '.';
type Props = {
client: IServiceClient | null;
- framework:
- | (typeof frameworks.website)[number]
- | (typeof frameworks.app)[number]
- | (typeof frameworks.backend)[number];
+ framework: (typeof frameworks)[number];
};
const Header = ({ framework }: Pick) => (
@@ -29,7 +26,7 @@ const Header = ({ framework }: Pick) => (
);
const Footer = ({ framework }: Pick) => (
-
+
);
-const Instructions = ({ framework, client }: Props) => {
- const { name } = framework;
- const clientId = client?.id || 'REPLACE_WITH_YOUR_CLIENT';
- const clientSecret = client?.secret || 'REPLACE_WITH_YOUR_SECRET';
- if (
- name === 'HTML / Script' ||
- name === 'React' ||
- name === 'Astro' ||
- name === 'Remix' ||
- name === 'Vue'
- ) {
- return (
-
-
Copy the code below and insert it to you website
-
- window.op = window.op||function(...args){(window.op.q=window.op.q||[]).push(args);};
- window.op('init', {
- clientId: '${clientId}',
- trackScreenViews: true,
- trackOutgoingLinks: true,
- trackAttributes: true,
- });
-
-`}
- />
-
-
- We have already added your client id to the snippet.
-
-
-
- );
- }
-
- if (name === 'Next.js') {
- return (
-
-
Install dependencies
-
-
Add OpenPanelComponent to your root layout
-
-
- {children}
- >
- )
- }`}
- />
-
- This will track regular page views and outgoing links. You can also
- track custom events.
-
-
-
- );
- }
-
- if (name === 'Laravel') {
- return (
-
-
Install dependencies
-
-
Add environment variables
-
-
Usage
-
setProfileId(1);
-
-// Update user profile
-$openpanel->setProfile(
- id: 1,
- firstName: 'John Doe',
- // ...
-);
-
-// Track event
-$openpanel->event(
- name: 'User registered',
-);
- `}
- />
-
- Shoutout!
-
- Huge shoutout to{' '}
-
- @tbleckert
- {' '}
- for creating this package.
-
-
-
- );
- }
-
- if (name === 'Rest API') {
- return (
-
-
Authentication
-
You will need to pass your client ID and secret via headers.
-
Usage
-
Create a custom event called "my_event".
-
-
The payload should be a JSON object with the following fields:
-
- -
- "type" (string): track | identify | alias | increment |
- decrement
-
- - "payload.name" (string): The name of the event.
- -
- "payload.properties" (object): The properties of the
- event.
-
-
-
- );
- }
-
- if (name === 'Express') {
- return (
-
-
Install dependencies
-
-
-
Usage
-
Connect the middleware to your app.
-
{
- // track sign up events
- req.op.track('sign-up', {
- email: req.body.email,
- });
- res.send('Hello World');
-});
-
-app.listen(3000, () => {
- console.log('Server is running on http://localhost:3000');
-});`}
- />
-
- );
- }
-
- if (name === 'Node') {
- return (
-
-
Install dependencies
-
-
-
Create a instance
-
- Create a new instance of OpenPanel. You can use this SDK in any JS
- environment. You should omit clientSecret if you use this on web!
-
-
-
Usage
-
-
- );
- }
-
- if (name === 'React-Native') {
- return (
-
-
Install dependencies
-
Don't forget to install the peer dependencies as well!
-
-
Create a instance
-
- Create a new instance of OpenpanelSdk. You can use this SDK in any JS
- environment. You should omit clientSecret if you use this on web!
-
-
-
Usage
-
-
Navigation
-
- Check out our{' '}
-
- example app
- {' '}
- . See below for a quick demo.
-
-
{
- op.screenView(pathname)
- }, [pathname])
-
+const Instructions = ({ framework }: Props) => {
return (
-
- {/*... */}
-
+
);
-}`}
- />
-
- );
- }
};
-export default function InsdtructionsWithModalContent(props: Props) {
+export default function InstructionsWithModalContent(props: Props) {
return (
-
-
+
-
+
);
}
diff --git a/apps/dashboard/src/modals/index.tsx b/apps/dashboard/src/modals/index.tsx
index 7a12025c..58a917a8 100644
--- a/apps/dashboard/src/modals/index.tsx
+++ b/apps/dashboard/src/modals/index.tsx
@@ -62,9 +62,6 @@ const modals = {
VerifyEmail: dynamic(() => import('./VerifyEmail'), {
loading: Loading,
}),
- FunnelStepDetails: dynamic(() => import('./FunnelStepDetails'), {
- loading: Loading,
- }),
DateRangerPicker: dynamic(() => import('./DateRangerPicker'), {
loading: Loading,
}),
diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore
deleted file mode 100644
index 04424e48..00000000
--- a/apps/docs/.gitignore
+++ /dev/null
@@ -1,39 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-
-# testing
-/coverage
-
-# database
-/prisma/db.sqlite
-/prisma/db.sqlite-journal
-
-# next.js
-/.next/
-/out/
-next-env.d.ts
-
-# production
-/build
-
-# misc
-.DS_Store
-*.pem
-
-# debug
-npm-debug.log*
-
-# local env files
-# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables
-.env
-.env*.local
-
-# vercel
-.vercel
-
-# typescript
-*.tsbuildinfo
diff --git a/apps/docs/.prettierignore b/apps/docs/.prettierignore
deleted file mode 100644
index 0aa0c4cb..00000000
--- a/apps/docs/.prettierignore
+++ /dev/null
@@ -1 +0,0 @@
-./src/pages/docs/*
\ No newline at end of file
diff --git a/apps/docs/Dockerfile b/apps/docs/Dockerfile
deleted file mode 100644
index 3ad57427..00000000
--- a/apps/docs/Dockerfile
+++ /dev/null
@@ -1,59 +0,0 @@
-FROM --platform=linux/amd64 node:20-slim AS base
-
-ENV PNPM_HOME="/pnpm"
-
-ENV PATH="$PNPM_HOME:$PATH"
-
-RUN corepack enable
-
-ARG NODE_VERSION=20.15.1
-
-RUN apt update \
- && apt install -y curl \
- && curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n \
- && bash n $NODE_VERSION \
- && rm n \
- && npm install -g n
-
-WORKDIR /app
-
-COPY package.json package.json
-COPY pnpm-lock.yaml pnpm-lock.yaml
-COPY pnpm-workspace.yaml pnpm-workspace.yaml
-COPY apps/docs/package.json apps/docs/package.json
-
-# BUILD
-FROM base AS build
-
-WORKDIR /app/apps/docs
-RUN pnpm install --frozen-lockfile --ignore-scripts
-
-WORKDIR /app
-COPY apps apps
-RUN mkdir packages
-COPY tooling tooling
-
-WORKDIR /app/apps/docs
-RUN pnpm run build
-
-# PROD
-FROM base AS prod
-
-WORKDIR /app/apps/docs
-RUN pnpm install --frozen-lockfile --prod --ignore-scripts
-
-# FINAL
-FROM base AS runner
-
-COPY --from=build /app/package.json /app/package.json
-COPY --from=prod /app/node_modules /app/node_modules
-# Apps
-COPY --from=build /app/apps/docs /app/apps/docs
-# Apps node_modules
-COPY --from=prod /app/apps/docs/node_modules /app/apps/docs/node_modules
-
-WORKDIR /app/apps/docs
-
-EXPOSE 3000
-
-CMD ["pnpm", "start"]
\ No newline at end of file
diff --git a/apps/docs/README.md b/apps/docs/README.md
deleted file mode 100644
index d0fa60ed..00000000
--- a/apps/docs/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Docs
diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs
deleted file mode 100644
index bdc1e1f1..00000000
--- a/apps/docs/next.config.mjs
+++ /dev/null
@@ -1,33 +0,0 @@
-import nextra from 'nextra';
-
-/** @type {import("next").NextConfig} */
-const config = {
- reactStrictMode: true,
- transpilePackages: ['@openpanel/queue'],
- eslint: { ignoreDuringBuilds: true },
- typescript: { ignoreBuildErrors: true },
- experimental: {
- // Avoid "Critical dependency: the request of a dependency is an expression"
- serverComponentsExternalPackages: ['bullmq'],
- },
- /**
- * If you are using `appDir` then you must comment the below `i18n` config out.
- *
- * @see https://github.com/vercel/next.js/issues/41980
- */
- i18n: {
- locales: ['en-US'],
- defaultLocale: 'en-US',
- },
-};
-
-const withNextra = nextra({
- theme: 'nextra-theme-docs',
- themeConfig: './theme.config.jsx',
- flexsearch: {
- codeblocks: false,
- },
- defaultShowCopyCode: true,
-});
-
-export default withNextra(config);
diff --git a/apps/docs/package.json b/apps/docs/package.json
deleted file mode 100644
index 39c93b87..00000000
--- a/apps/docs/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "@openpanel/docs",
- "version": "0.1.0",
- "private": true,
- "scripts": {
- "dev": "rm -rf .next && pnpm with-env next dev",
- "build": "next build",
- "start": "next start",
- "typecheck": "tsc --noEmit",
- "with-env": "dotenv -e ../../.env -c --"
- },
- "dependencies": {
- "next": "~14.2.1",
- "nextra": "^2.13.4",
- "nextra-theme-docs": "^2.13.4",
- "react": "18.2.0",
- "react-dom": "18.2.0"
- },
- "devDependencies": {
- "@openpanel/tsconfig": "workspace:*",
- "@types/node": "^18.16.0",
- "@types/react": "^18.2.20",
- "@types/react-dom": "^18.2.7",
- "autoprefixer": "^10.4.18",
- "postcss": "^8.4.35",
- "tailwindcss": "^3.4.1",
- "typescript": "^5.2.2"
- }
-}
diff --git a/apps/docs/public/favicon.ico b/apps/docs/public/favicon.ico
deleted file mode 100644
index dd5ab726ed7448060d26d766f5a11f48e4c45a27..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 15406
zcmeHNX>b%p6dp@|_!EElKfkh3)ItkU5s#uQEq{2FQeK3Tf`kN$BXSpVSb}mYX8{U^
zOAAH05fCXw2_ak}Ik=C6Krq>v-Pzsj?(EF$KHuw253?&_ceAs@24}0fdUj@Bzwf<%
z)7|e7gnNX0g&sWw>(#5{d7&UwKPU)A_zsdFMf^T?
zxBRu0xc0b93ZW}48``e$vx`PvJPg7IHbVH1AHct6N=CZz&UzbksRcs&*F)4N;yB-D
zL?2i`4b;$b<=LrAKD6$
z)79XwoCLc28pv}8ra?cI(a>Be)!PyOPmCr~Uj>16Q&ZA=XTJ+k@j3)|E`zA&2B;TL
zLU7k|h@wu@;ZJ;hD=R>$*#XLtU7#G>&HBLF%;wQ9Tg#SDHs2u8-f~gM;3lmz1=wE1
zM(a~&KX;j{x4X2k0p*QlD{}_)G2~g_!Mi>Kx|DXB(OCA&os8d3ohS2l{VI&B(^?
zA|B$%$3gyLF!+`Y2k)!_;9EY5HSwdTb8buWqEgVVUx28$HQxLlh=qgf+B^Hbobvb1
zd<%5k`wZTM0r^8T3b9ZCa?L+nwVCnO+nT|*v>ZI2yawvoBaA=jI(X;2pHum@D|L)N
zox8a0lMRsk)V%YGjr;t$mA!WLG~*xob*;fiUhtub{~+VOm3;YFsrc(Hmq5Ex3+ybl
zVFtL%9<~&Z)>waA`J;Y`J?Hir{&N$!ON%VSz~?_f|6dL<^dG4^2w^-ElMXlr-|~^R
z@#pp@j_wUwQ`}bQoXO`e+dh^2oImji?W<%u&@P{{jz5k?dJX;doiV0wNtvPlME+~y
z{BbU_m7CKmH9Oguddo#zdtL`|%#(P2-_yZg2YKNTpuNHS*#OXQTw?DkM}D@9zdXMf
zeU5+FxKS_m(hXdHCB~oc0o?9*?^`y)GXA6of8}KKwVFFH;QH^AAQlPZ|F)a=XkS2_
z!EKB2`%CT9as8&-OB0?4|2GpM@a+t?4+J*Og22X^MkAltGwoGNOSi+`Aq&}z8|S0@;_n9b
zo@_VHe|z>YN6(I)9UE|LARQYhe*`3q6-(ov18H187DtfA_6725S)(|zg>fs(_S<1a
z;Q91T2<})4k(2vDJ%1e3Gc_!KNxgRIZ_J1O#o{v*gR+coIyz0`9g5jgzLxT~JU+sD
z+09}YERG?!fpYv85G$U_EBq91;xVNJ>=bKZ_?37ZNC`pY#J;@3FOGVG<+;tcwZ=MD
zzd-RbnvYl{j-TTAkyF3t6@KsM?|{~P*0346_G0dVVtwM6KG6Q-JZ3*U4-jcMlvnuu
zE60G|+GOAlY?_l`+tS1rK*t&k1OJ)BU`H-1-Sxr0dO||X(f3tFBL1<@fO_tj34cv~
z21%m-PVmrJFC)cE^?df|j&|CCGCn$NKu
z7F&0v#GG?r!}Ofw6*`k6Q~WCCspR>CFh}$T(B8po#kf7GHm|Rl;*Vf`pLzWkM?A*z
zTpYi4?HtHC&b6E8B3t}47VRM%zuwvi{uQHa`;M)^Pq{^&`=hnUziPaF_*aa^^FyPd
zKdQkr&ky-AT4RIp{U+NF(?8}7Z|c7Z=uBcBBbV3m+z(idDd(?Z&8Rf)S+)*}!yg47
z%13JsKmVAYyUTmBHJ|ECI6a+}uX3BQ8+S0l_9Gq9T9!D~8$2luSHbH069
zPpnZG%KR?vaxI=In$V}bjA!SgXfqdCJpt8GCp27Zw5w-8Il7zaoqV2Dddlf@tS6vz
zB>60!k6#AQl$S7$(hsD`{lPQ!mH#$;N1D{1`DyN958YYpX~ZaUsym0jGyjeaI5yze
zK$mTxThu&sHousAXF2%Jp6B^}s(qjui0)dy!D~SwS#
M$oV-M=&}a>1+M;*ZU6uP
diff --git a/apps/docs/public/ogimage.png b/apps/docs/public/ogimage.png
deleted file mode 100644
index ba022ad57021c04cfd5dd917660d9da3a531a8bc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 433788
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
z