From b9ed483c4fef30df3df11a5ebd24bb4de35b6bc6 Mon Sep 17 00:00:00 2001 From: Michael Novotny Date: Tue, 24 Jan 2023 15:38:04 -0600 Subject: [PATCH] Duplicates `edge-functions` into `edge-middleware`. (#528) ### Description Simply copy / paste of `edge-functions` and changing the folder name to `edge-middleware`. This is unconventional, but the safest way to transition a rename, as far as I can tell. By duplicating, I can change all the deploy button links while also not breaking templates as we're [***not*** going to sync these duplicate examples to the Template Marketplace](https://github.com/vercel/examples/blob/main/scripts/lib/update-changed-templates.ts#L5). Future steps include: 1. Duplicate (this PR) 2. Change deploy buttons 3. Update examples, change Template Marketplace sync, add README redirect notes to moved files 4. Change Template Marketplace urls and add redirects > Steps 3 and 4 will need to be carefully / closely timed. ### Demo URL Should allow ***both*** `edge-function` and `edge-middleware` deploy button urls to work once merged: * https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-functions/feature-flag-optimizely&env=OPTIMIZELY_SDK_KEY&project-name=feature-flag-optimizely&repository-name=feature-flag-optimizely * https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-middleware/feature-flag-optimizely&env=OPTIMIZELY_SDK_KEY&project-name=feature-flag-optimizely&repository-name=feature-flag-optimizely ### Type of Change - [x] Other (changes to the codebase, but not to examples) --- .../ab-testing-google-optimize/.env.example | 2 + .../ab-testing-google-optimize/.eslintrc.json | 4 + .../ab-testing-google-optimize/.gitignore | 34 + .../ab-testing-google-optimize/.npmrc | 2 + .../ab-testing-google-optimize/README.md | 60 + .../components/layout.tsx | 45 + .../lib/constants.ts | 1 + .../lib/optimize-experiments.json | 23 + .../lib/optimize.ts | 11 + .../ab-testing-google-optimize/lib/useGa.tsx | 7 + .../ab-testing-google-optimize/middleware.ts | 39 + .../ab-testing-google-optimize/next-env.d.ts | 6 + .../ab-testing-google-optimize/package.json | 29 + .../pages/[variant]/about.tsx | 74 + .../pages/[variant]/marketing.tsx | 74 + .../ab-testing-google-optimize/pages/_app.tsx | 17 + .../pages/about.tsx | 18 + .../pages/index.tsx | 65 + .../pages/marketing.tsx | 18 + .../postcss.config.js | 8 + .../public/favicon.ico | Bin 0 -> 15086 bytes .../tailwind.config.js | 8 + .../ab-testing-google-optimize/tsconfig.json | 26 + .../ab-testing-simple/.eslintrc.json | 4 + edge-middleware/ab-testing-simple/.gitignore | 34 + edge-middleware/ab-testing-simple/.npmrc | 2 + edge-middleware/ab-testing-simple/README.md | 54 + .../ab-testing-simple/lib/ab-testing.ts | 18 + .../ab-testing-simple/lib/buckets.ts | 3 + .../ab-testing-simple/middleware.ts | 56 + .../ab-testing-simple/next-env.d.ts | 5 + .../ab-testing-simple/package.json | 29 + .../ab-testing-simple/pages/_app.tsx | 17 + .../ab-testing-simple/pages/home/[bucket].tsx | 59 + .../ab-testing-simple/pages/index.tsx | 25 + .../pages/marketing/[bucket].tsx | 67 + .../pages/marketing/original.tsx | 47 + .../ab-testing-simple/postcss.config.js | 8 + .../ab-testing-simple/public/favicon.ico | Bin 0 -> 15086 bytes .../ab-testing-simple/tailwind.config.js | 8 + .../ab-testing-simple/tsconfig.json | 26 + .../ab-testing-statsig/.env.example | 5 + .../ab-testing-statsig/.eslintrc.json | 4 + edge-middleware/ab-testing-statsig/.gitignore | 41 + edge-middleware/ab-testing-statsig/.npmrc | 2 + edge-middleware/ab-testing-statsig/README.md | 66 + .../ab-testing-statsig/lib/constants.ts | 5 + .../ab-testing-statsig/lib/statsig-api.ts | 61 + .../ab-testing-statsig/middleware.ts | 45 + .../ab-testing-statsig/next-env.d.ts | 5 + .../ab-testing-statsig/package.json | 32 + .../ab-testing-statsig/pages/[bucket].tsx | 166 + .../ab-testing-statsig/pages/_app.tsx | 31 + .../ab-testing-statsig/postcss.config.js | 8 + .../public/example_experiment.png | Bin 0 -> 193095 bytes .../ab-testing-statsig/public/favicon.ico | Bin 0 -> 15086 bytes .../ab-testing-statsig/tailwind.config.js | 8 + .../ab-testing-statsig/tsconfig.json | 20 + edge-middleware/add-header/.eslintrc.json | 4 + edge-middleware/add-header/.gitignore | 34 + edge-middleware/add-header/.npmrc | 2 + edge-middleware/add-header/README.md | 71 + edge-middleware/add-header/middleware.ts | 12 + edge-middleware/add-header/next-env.d.ts | 5 + edge-middleware/add-header/package.json | 27 + edge-middleware/add-header/pages/_app.tsx | 22 + edge-middleware/add-header/pages/index.tsx | 66 + edge-middleware/add-header/postcss.config.js | 8 + edge-middleware/add-header/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/add-header/tailwind.config.js | 8 + edge-middleware/add-header/tsconfig.json | 20 + .../api-rate-limit-and-tokens/.env.example | 3 + .../api-rate-limit-and-tokens/.eslintrc.json | 4 + .../api-rate-limit-and-tokens/.gitignore | 34 + .../api-rate-limit-and-tokens/.npmrc | 2 + .../api-rate-limit-and-tokens/README.md | 64 + .../components/api-request.tsx | 83 + .../lib/api/constants.ts | 7 + .../api-rate-limit-and-tokens/lib/api/keys.ts | 77 + .../lib/fetch-api.ts | 25 + .../api-rate-limit-and-tokens/lib/get-ip.ts | 10 + .../lib/ip-rate-limit.ts | 29 + .../lib/rate-limit.ts | 132 + .../api-rate-limit-and-tokens/lib/upstash.ts | 62 + .../api-rate-limit-and-tokens/next-env.d.ts | 5 + .../api-rate-limit-and-tokens/package.json | 30 + .../api-rate-limit-and-tokens/pages/_app.tsx | 34 + .../pages/api/keys.ts | 66 + .../pages/api/ping.ts | 19 + .../api-rate-limit-and-tokens/pages/index.tsx | 95 + .../postcss.config.js | 8 + .../public/favicon.ico | Bin 0 -> 15086 bytes .../tailwind.config.js | 8 + .../api-rate-limit-and-tokens/tsconfig.json | 25 + edge-middleware/api-rate-limit/.env.example | 2 + edge-middleware/api-rate-limit/.eslintrc.json | 4 + edge-middleware/api-rate-limit/.gitignore | 34 + edge-middleware/api-rate-limit/.npmrc | 2 + edge-middleware/api-rate-limit/README.md | 63 + .../api-rate-limit/components/headers.tsx | 62 + .../api-rate-limit/lib/ip-rate-limit.ts | 33 + .../api-rate-limit/lib/rate-limit.ts | 132 + edge-middleware/api-rate-limit/lib/upstash.ts | 62 + edge-middleware/api-rate-limit/next-env.d.ts | 5 + edge-middleware/api-rate-limit/package.json | 27 + edge-middleware/api-rate-limit/pages/_app.tsx | 20 + .../api-rate-limit/pages/api/ping.ts | 19 + .../api-rate-limit/pages/index.tsx | 34 + .../api-rate-limit/postcss.config.js | 8 + .../api-rate-limit/public/favicon.ico | Bin 0 -> 15086 bytes .../api-rate-limit/tailwind.config.js | 8 + edge-middleware/api-rate-limit/tsconfig.json | 26 + .../basic-auth-password/.eslintrc.json | 4 + .../basic-auth-password/.gitignore | 34 + edge-middleware/basic-auth-password/.npmrc | 2 + edge-middleware/basic-auth-password/README.md | 57 + .../basic-auth-password/middleware.ts | 22 + .../basic-auth-password/next-env.d.ts | 5 + .../basic-auth-password/package.json | 27 + .../basic-auth-password/pages/_app.tsx | 17 + .../basic-auth-password/pages/api/auth.ts | 7 + .../basic-auth-password/pages/index.tsx | 17 + .../basic-auth-password/postcss.config.js | 8 + .../basic-auth-password/public/favicon.ico | Bin 0 -> 15086 bytes .../basic-auth-password/tailwind.config.js | 8 + .../basic-auth-password/tsconfig.json | 20 + .../bot-protection-botd/.env.example | 1 + .../bot-protection-botd/.eslintrc.json | 4 + .../bot-protection-botd/.gitignore | 34 + edge-middleware/bot-protection-botd/.npmrc | 2 + edge-middleware/bot-protection-botd/README.md | 62 + .../components/botd-result.tsx | 41 + .../components/headers.tsx | 44 + .../bot-protection-botd/lib/botd/constants.ts | 64 + .../bot-protection-botd/lib/botd/index.ts | 232 + .../bot-protection-botd/lib/botd/proxy.ts | 34 + .../bot-protection-botd/lib/botd/script.tsx | 62 + .../bot-protection-botd/middleware.ts | 38 + .../bot-protection-botd/next-env.d.ts | 5 + .../bot-protection-botd/package.json | 27 + .../bot-protection-botd/pages/_app.tsx | 31 + .../bot-protection-botd/pages/blocked.tsx | 18 + .../pages/bot-detected.tsx | 36 + .../bot-protection-botd/pages/index.tsx | 45 + .../bot-protection-botd/pages/omit.tsx | 27 + .../bot-protection-botd/postcss.config.js | 8 + .../bot-protection-botd/public/favicon.ico | Bin 0 -> 15086 bytes .../bot-protection-botd/tailwind.config.js | 8 + .../bot-protection-botd/tsconfig.json | 27 + .../bot-protection-datadome/.env.example | 2 + .../bot-protection-datadome/.eslintrc.json | 4 + .../bot-protection-datadome/.gitignore | 34 + .../bot-protection-datadome/.npmrc | 2 + .../bot-protection-datadome/README.md | 56 + .../components/headers.tsx | 36 + .../bot-protection-datadome/lib/constants.ts | 3 + .../bot-protection-datadome/lib/datadome.ts | 210 + .../bot-protection-datadome/middleware.ts | 29 + .../bot-protection-datadome/next-env.d.ts | 5 + .../bot-protection-datadome/package.json | 27 + .../bot-protection-datadome/pages/_app.tsx | 33 + .../bot-protection-datadome/pages/blocked.tsx | 35 + .../bot-protection-datadome/pages/index.tsx | 37 + .../bot-protection-datadome/pages/omit.tsx | 27 + .../bot-protection-datadome/postcss.config.js | 8 + .../public/favicon.ico | Bin 0 -> 15086 bytes .../tailwind.config.js | 8 + .../bot-protection-datadome/tsconfig.json | 27 + .../clerk-authentication/.eslintrc.json | 4 + .../clerk-authentication/.gitignore | 34 + .../clerk-authentication/README.md | 55 + .../components/CTASection.jsx | 28 + .../components/HeadTags.jsx | 41 + .../components/HeroSection.jsx | 150 + .../components/Layout.jsx | 3 + .../components/Pattern.jsx | 70 + .../clerk-authentication/components/index.js | 8 + .../statelessDoneRightSection/JWTDemo.jsx | 106 + .../statelessDoneRightSection/JWTMock.jsx | 47 + .../StatelessDoneRightSection.jsx | 62 + .../statelessDoneRightSection/TokenCard.jsx | 92 + .../statelessDoneRightSection/index.js | 1 + .../tryRenovationSection/SessionItem.jsx | 73 + .../tryRenovationSection/SessionList.jsx | 99 + .../tryRenovationSection/SessionMock.jsx | 49 + .../TryRenovationSection.jsx | 37 + .../components/tryRenovationSection/index.js | 1 + .../twoStrategiesSection/Requester.jsx | 120 + .../twoStrategiesSection/Result.jsx | 50 + .../TwoStrategiesSection.jsx | 104 + .../components/twoStrategiesSection/index.js | 1 + .../clerk-authentication/jsconfig.json | 9 + .../clerk-authentication/next.config.js | 3 + .../clerk-authentication/package.json | 32 + .../clerk-authentication/pages/_app.js | 15 + .../pages/api/stateful/_middleware.js | 31 + .../pages/api/stateless/_middleware.js | 22 + .../clerk-authentication/pages/index.js | 22 + .../clerk-authentication/postcss.config.js | 6 + .../public/clerk-x-next.svg | 20 + .../clerk-authentication/public/favicon.ico | Bin 0 -> 15086 bytes .../clerk-authentication/public/opengraph.png | Bin 0 -> 278295 bytes .../clerk-authentication/public/vercel.svg | 4 + .../clerk-authentication/styles/globals.css | 38 + .../clerk-authentication/tailwind.config.js | 20 + .../clerk-authentication/utils/buttons.js | 47 + .../utils/forceRender.jsx | 20 + .../clerk-authentication/utils/patterns.js | 35 + .../clerk-authentication/utils/timer.js | 17 + .../clerk-authentication/utils/token.js | 12 + .../utils/vercelRegion.js | 43 + edge-middleware/cookies/.eslintrc.json | 4 + edge-middleware/cookies/.gitignore | 34 + edge-middleware/cookies/.npmrc | 2 + edge-middleware/cookies/README.md | 73 + edge-middleware/cookies/middleware.ts | 16 + edge-middleware/cookies/next-env.d.ts | 5 + edge-middleware/cookies/package.json | 29 + edge-middleware/cookies/pages/_app.tsx | 14 + edge-middleware/cookies/pages/beta.tsx | 26 + edge-middleware/cookies/pages/non-beta.tsx | 26 + edge-middleware/cookies/postcss.config.js | 8 + edge-middleware/cookies/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/cookies/tailwind.config.js | 8 + edge-middleware/cookies/tsconfig.json | 26 + edge-middleware/cors/.eslintrc.json | 4 + edge-middleware/cors/.gitignore | 34 + edge-middleware/cors/.npmrc | 2 + edge-middleware/cors/README.md | 86 + edge-middleware/cors/lib/cors.ts | 153 + edge-middleware/cors/next-env.d.ts | 6 + edge-middleware/cors/package.json | 23 + edge-middleware/cors/pages/api/hello.ts | 17 + edge-middleware/cors/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/cors/tsconfig.json | 20 + edge-middleware/crypto/.eslintrc.json | 4 + edge-middleware/crypto/.gitignore | 34 + edge-middleware/crypto/.npmrc | 1 + edge-middleware/crypto/README.md | 57 + edge-middleware/crypto/middleware.ts | 19 + edge-middleware/crypto/next-env.d.ts | 5 + edge-middleware/crypto/package.json | 23 + edge-middleware/crypto/pages/api/crypto.ts | 52 + edge-middleware/crypto/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/crypto/tsconfig.json | 20 + .../feature-flag-apple-store/.env.example | 3 + .../feature-flag-apple-store/.eslintrc.json | 4 + .../feature-flag-apple-store/.gitignore | 34 + .../feature-flag-apple-store/.npmrc | 1 + .../feature-flag-apple-store/README.md | 92 + .../components/nav.tsx | 31 + .../lib/feature-flags.ts | 56 + .../feature-flag-apple-store/middleware.ts | 27 + .../feature-flag-apple-store/next-env.d.ts | 5 + .../feature-flag-apple-store/next.config.js | 5 + .../feature-flag-apple-store/package.json | 27 + .../feature-flag-apple-store/pages/_app.tsx | 14 + .../pages/_closed.tsx | 23 + .../pages/api/store/close.ts | 30 + .../pages/api/store/open.ts | 30 + .../feature-flag-apple-store/pages/index.tsx | 81 + .../pages/missing-edge-config.tsx | 82 + .../postcss.config.js | 8 + .../public/favicon.ico | Bin 0 -> 15086 bytes .../public/vercel.svg | 4 + .../tailwind.config.js | 15 + .../feature-flag-apple-store/tsconfig.json | 21 + .../feature-flag-configcat/.env.example | 1 + .../feature-flag-configcat/.eslintrc.json | 4 + .../feature-flag-configcat/.gitignore | 34 + edge-middleware/feature-flag-configcat/.npmrc | 1 + .../feature-flag-configcat/README.md | 68 + .../components/layout.tsx | 16 + .../feature-flag-configcat/docs/configcat.png | Bin 0 -> 178577 bytes .../feature-flag-configcat/lib/config.json | 52 + .../feature-flag-configcat/lib/configcat.ts | 48 + .../lib/use-configcat.tsx | 54 + .../feature-flag-configcat/middleware.ts | 40 + .../feature-flag-configcat/next-env.d.ts | 5 + .../feature-flag-configcat/next.config.js | 3 + .../feature-flag-configcat/package.json | 32 + .../feature-flag-configcat/pages/_app.tsx | 18 + .../feature-flag-configcat/pages/about/b.tsx | 19 + .../pages/about/index.tsx | 19 + .../feature-flag-configcat/pages/index.tsx | 90 + .../pages/marketing/b.tsx | 19 + .../pages/marketing/index.tsx | 19 + .../feature-flag-configcat/postcss.config.js | 8 + .../feature-flag-configcat/public/favicon.ico | Bin 0 -> 15086 bytes .../scripts/configcat.js | 64 + .../feature-flag-configcat/tailwind.config.js | 8 + .../feature-flag-configcat/tsconfig.json | 26 + .../feature-flag-optimizely/.env.example | 1 + .../feature-flag-optimizely/.eslintrc.json | 4 + .../feature-flag-optimizely/.gitignore | 40 + .../feature-flag-optimizely/.npmrc | 2 + .../feature-flag-optimizely/README.md | 142 + .../components/page_component.tsx | 78 + .../feature-flag-optimizely/middleware.ts | 66 + .../feature-flag-optimizely/next-env.d.ts | 5 + .../feature-flag-optimizely/next.config.js | 4 + .../feature-flag-optimizely/package.json | 29 + .../feature-flag-optimizely/pages/_app.tsx | 24 + .../feature-flag-optimizely/pages/index.tsx | 17 + .../feature-flag-optimizely/pages/popular.tsx | 17 + .../feature-flag-optimizely/postcss.config.js | 8 + .../public/favicon.ico | Bin 0 -> 25931 bytes .../feature-flag-optimizely/public/vercel.svg | 4 + .../scripts/fetch_optimizely_datafile.js | 30 + .../styles/Home.module.css | 116 + .../tailwind.config.js | 8 + .../feature-flag-optimizely/tsconfig.json | 20 + edge-middleware/feature-flag-posthog/.env | 3 + .../feature-flag-posthog/.env.example | 2 + .../feature-flag-posthog/.eslintrc.json | 4 + .../feature-flag-posthog/.gitignore | 34 + edge-middleware/feature-flag-posthog/.npmrc | 1 + .../feature-flag-posthog/README.md | 49 + .../feature-flag-posthog/lib/constants.ts | 27 + .../feature-flag-posthog/lib/posthog-api.ts | 49 + .../feature-flag-posthog/lib/posthog.ts | 47 + .../feature-flag-posthog/middleware.ts | 36 + .../feature-flag-posthog/next-env.d.ts | 5 + .../feature-flag-posthog/package.json | 30 + .../feature-flag-posthog/pages/_app.tsx | 34 + .../feature-flag-posthog/pages/about/b.tsx | 18 + .../pages/about/index.tsx | 19 + .../feature-flag-posthog/pages/index.tsx | 48 + .../pages/marketing/b.tsx | 18 + .../pages/marketing/index.tsx | 18 + .../feature-flag-posthog/pages/product/a.tsx | 18 + .../pages/product/index.tsx | 18 + .../feature-flag-posthog/postcss.config.js | 8 + .../feature-flag-posthog/public/favicon.ico | Bin 0 -> 15086 bytes .../feature-flag-posthog/tailwind.config.js | 8 + .../feature-flag-posthog/tsconfig.json | 26 + .../feature-flag-split/.env.example | 8 + .../feature-flag-split/.eslintrc.json | 4 + edge-middleware/feature-flag-split/.gitignore | 37 + edge-middleware/feature-flag-split/.npmrc | 2 + edge-middleware/feature-flag-split/README.md | 56 + .../feature-flag-split/lib/split-node.ts | 31 + .../feature-flag-split/lib/split.ts | 57 + .../feature-flag-split/middleware.ts | 28 + .../feature-flag-split/next-env.d.ts | 5 + .../feature-flag-split/next.config.js | 3 + .../feature-flag-split/package.json | 30 + .../feature-flag-split/pages/_app.tsx | 25 + .../feature-flag-split/pages/about/b.tsx | 31 + .../feature-flag-split/pages/about/index.tsx | 31 + .../feature-flag-split/pages/index.tsx | 50 + .../feature-flag-split/pages/marketing/b.tsx | 31 + .../pages/marketing/index.tsx | 31 + .../feature-flag-split/postcss.config.js | 8 + .../feature-flag-split/public/favicon.ico | Bin 0 -> 15086 bytes .../feature-flag-split/scripts/split.js | 40 + .../feature-flag-split/tailwind.config.js | 8 + .../feature-flag-split/tsconfig.json | 26 + .../geolocation-country-block/.eslintrc.json | 4 + .../geolocation-country-block/.gitignore | 34 + .../geolocation-country-block/README.md | 55 + .../geolocation-country-block/middleware.ts | 26 + .../geolocation-country-block/next-env.d.ts | 5 + .../geolocation-country-block/package.json | 23 + .../pages/[country].tsx | 11 + .../pages/blocked.tsx | 5 + .../postcss.config.js | 8 + .../public/favicon.ico | Bin 0 -> 15086 bytes .../geolocation-country-block/tsconfig.json | 20 + edge-middleware/geolocation/.eslintrc.json | 4 + edge-middleware/geolocation/.gitignore | 34 + edge-middleware/geolocation/README.md | 62 + .../geolocation/lib/countries.json | 1709 +++++ edge-middleware/geolocation/middleware.ts | 30 + edge-middleware/geolocation/next-env.d.ts | 5 + edge-middleware/geolocation/next.config.js | 7 + edge-middleware/geolocation/package.json | 27 + edge-middleware/geolocation/pages/_app.tsx | 14 + edge-middleware/geolocation/pages/index.tsx | 107 + edge-middleware/geolocation/postcss.config.js | 8 + .../geolocation/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/geolocation/public/map.svg | 1 + .../geolocation/scripts/countries.js | 35 + .../geolocation/tailwind.config.js | 8 + edge-middleware/geolocation/tsconfig.json | 20 + edge-middleware/hostname-rewrites/.env | 1 + .../hostname-rewrites/.eslintrc.json | 4 + edge-middleware/hostname-rewrites/.gitignore | 34 + edge-middleware/hostname-rewrites/.npmrc | 2 + edge-middleware/hostname-rewrites/README.md | 96 + edge-middleware/hostname-rewrites/lib/db.ts | 70 + .../hostname-rewrites/middleware.ts | 33 + .../hostname-rewrites/next-env.d.ts | 5 + .../hostname-rewrites/package.json | 27 + .../hostname-rewrites/pages/_app.tsx | 18 + .../pages/_sites/[site]/about.tsx | 57 + .../pages/_sites/[site]/index.tsx | 75 + .../hostname-rewrites/postcss.config.js | 8 + .../hostname-rewrites/public/favicon.ico | Bin 0 -> 15086 bytes .../hostname-rewrites/tailwind.config.js | 8 + .../hostname-rewrites/tsconfig.json | 20 + edge-middleware/i18n/.eslintrc.json | 4 + edge-middleware/i18n/.gitignore | 34 + edge-middleware/i18n/.npmrc | 2 + edge-middleware/i18n/README.md | 52 + edge-middleware/i18n/lib/api.ts | 11 + edge-middleware/i18n/lib/constants.ts | 35 + edge-middleware/i18n/lib/types.ts | 6 + edge-middleware/i18n/middleware.ts | 15 + edge-middleware/i18n/next-env.d.ts | 5 + edge-middleware/i18n/package.json | 27 + .../i18n/pages/[locale]/[country].tsx | 111 + edge-middleware/i18n/pages/_app.tsx | 18 + edge-middleware/i18n/postcss.config.js | 8 + edge-middleware/i18n/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/i18n/public/flags/ad.svg | 150 + edge-middleware/i18n/public/flags/ae.svg | 6 + edge-middleware/i18n/public/flags/af.svg | 81 + edge-middleware/i18n/public/flags/ag.svg | 14 + edge-middleware/i18n/public/flags/ai.svg | 763 ++ edge-middleware/i18n/public/flags/al.svg | 5 + edge-middleware/i18n/public/flags/am.svg | 5 + edge-middleware/i18n/public/flags/ao.svg | 13 + edge-middleware/i18n/public/flags/aq.svg | 7 + edge-middleware/i18n/public/flags/ar.svg | 31 + edge-middleware/i18n/public/flags/as.svg | 33 + edge-middleware/i18n/public/flags/at.svg | 6 + edge-middleware/i18n/public/flags/au.svg | 9 + edge-middleware/i18n/public/flags/aw.svg | 186 + edge-middleware/i18n/public/flags/ax.svg | 18 + edge-middleware/i18n/public/flags/az.svg | 8 + edge-middleware/i18n/public/flags/ba.svg | 12 + edge-middleware/i18n/public/flags/bb.svg | 6 + edge-middleware/i18n/public/flags/bd.svg | 4 + edge-middleware/i18n/public/flags/be.svg | 7 + edge-middleware/i18n/public/flags/bf.svg | 7 + edge-middleware/i18n/public/flags/bg.svg | 7 + edge-middleware/i18n/public/flags/bh.svg | 9 + edge-middleware/i18n/public/flags/bi.svg | 15 + edge-middleware/i18n/public/flags/bj.svg | 14 + edge-middleware/i18n/public/flags/bl.svg | 7 + edge-middleware/i18n/public/flags/bm.svg | 98 + edge-middleware/i18n/public/flags/bn.svg | 36 + edge-middleware/i18n/public/flags/bo.svg | 676 ++ edge-middleware/i18n/public/flags/bq.svg | 5 + edge-middleware/i18n/public/flags/br.svg | 45 + edge-middleware/i18n/public/flags/bs.svg | 13 + edge-middleware/i18n/public/flags/bt.svg | 89 + edge-middleware/i18n/public/flags/bv.svg | 13 + edge-middleware/i18n/public/flags/bw.svg | 7 + edge-middleware/i18n/public/flags/by.svg | 20 + edge-middleware/i18n/public/flags/bz.svg | 145 + edge-middleware/i18n/public/flags/ca.svg | 4 + edge-middleware/i18n/public/flags/cc.svg | 19 + edge-middleware/i18n/public/flags/cd.svg | 5 + edge-middleware/i18n/public/flags/cf.svg | 15 + edge-middleware/i18n/public/flags/cg.svg | 12 + edge-middleware/i18n/public/flags/ch.svg | 9 + edge-middleware/i18n/public/flags/ci.svg | 7 + edge-middleware/i18n/public/flags/ck.svg | 9 + edge-middleware/i18n/public/flags/cl.svg | 13 + edge-middleware/i18n/public/flags/cm.svg | 15 + edge-middleware/i18n/public/flags/cn.svg | 11 + edge-middleware/i18n/public/flags/co.svg | 7 + edge-middleware/i18n/public/flags/cr.svg | 7 + edge-middleware/i18n/public/flags/cu.svg | 13 + edge-middleware/i18n/public/flags/cv.svg | 13 + edge-middleware/i18n/public/flags/cw.svg | 14 + edge-middleware/i18n/public/flags/cx.svg | 15 + edge-middleware/i18n/public/flags/cy.svg | 6 + edge-middleware/i18n/public/flags/cz.svg | 5 + edge-middleware/i18n/public/flags/de.svg | 5 + edge-middleware/i18n/public/flags/dj.svg | 13 + edge-middleware/i18n/public/flags/dk.svg | 5 + edge-middleware/i18n/public/flags/dm.svg | 152 + edge-middleware/i18n/public/flags/do.svg | 6745 +++++++++++++++++ edge-middleware/i18n/public/flags/dz.svg | 5 + edge-middleware/i18n/public/flags/ec.svg | 138 + edge-middleware/i18n/public/flags/ee.svg | 7 + edge-middleware/i18n/public/flags/eg.svg | 38 + edge-middleware/i18n/public/flags/eh.svg | 15 + edge-middleware/i18n/public/flags/er.svg | 8 + edge-middleware/i18n/public/flags/es-ct.svg | 4 + edge-middleware/i18n/public/flags/es-ga.svg | 189 + edge-middleware/i18n/public/flags/es.svg | 544 ++ edge-middleware/i18n/public/flags/et.svg | 14 + edge-middleware/i18n/public/flags/eu.svg | 28 + edge-middleware/i18n/public/flags/fi.svg | 5 + edge-middleware/i18n/public/flags/fj.svg | 122 + edge-middleware/i18n/public/flags/fk.svg | 90 + edge-middleware/i18n/public/flags/fm.svg | 11 + edge-middleware/i18n/public/flags/fo.svg | 12 + edge-middleware/i18n/public/flags/fr.svg | 7 + edge-middleware/i18n/public/flags/ga.svg | 7 + edge-middleware/i18n/public/flags/gb-eng.svg | 5 + edge-middleware/i18n/public/flags/gb-nir.svg | 132 + edge-middleware/i18n/public/flags/gb-sct.svg | 4 + edge-middleware/i18n/public/flags/gb-wls.svg | 9 + edge-middleware/i18n/public/flags/gb.svg | 7 + edge-middleware/i18n/public/flags/gd.svg | 27 + edge-middleware/i18n/public/flags/ge.svg | 6 + edge-middleware/i18n/public/flags/gf.svg | 7 + edge-middleware/i18n/public/flags/gg.svg | 9 + edge-middleware/i18n/public/flags/gh.svg | 6 + edge-middleware/i18n/public/flags/gi.svg | 32 + edge-middleware/i18n/public/flags/gl.svg | 4 + edge-middleware/i18n/public/flags/gm.svg | 14 + edge-middleware/i18n/public/flags/gn.svg | 7 + edge-middleware/i18n/public/flags/gp.svg | 7 + edge-middleware/i18n/public/flags/gq.svg | 23 + edge-middleware/i18n/public/flags/gr.svg | 16 + edge-middleware/i18n/public/flags/gs.svg | 201 + edge-middleware/i18n/public/flags/gt.svg | 204 + edge-middleware/i18n/public/flags/gu.svg | 39 + edge-middleware/i18n/public/flags/gw.svg | 13 + edge-middleware/i18n/public/flags/gy.svg | 9 + edge-middleware/i18n/public/flags/hk.svg | 30 + edge-middleware/i18n/public/flags/hm.svg | 9 + edge-middleware/i18n/public/flags/hn.svg | 18 + edge-middleware/i18n/public/flags/hr.svg | 58 + edge-middleware/i18n/public/flags/ht.svg | 116 + edge-middleware/i18n/public/flags/hu.svg | 7 + edge-middleware/i18n/public/flags/id.svg | 6 + edge-middleware/i18n/public/flags/ie.svg | 7 + edge-middleware/i18n/public/flags/il.svg | 14 + edge-middleware/i18n/public/flags/im.svg | 36 + edge-middleware/i18n/public/flags/in.svg | 25 + edge-middleware/i18n/public/flags/io.svg | 138 + edge-middleware/i18n/public/flags/iq.svg | 10 + edge-middleware/i18n/public/flags/ir.svg | 219 + edge-middleware/i18n/public/flags/is.svg | 12 + edge-middleware/i18n/public/flags/it.svg | 7 + edge-middleware/i18n/public/flags/je.svg | 49 + edge-middleware/i18n/public/flags/jm.svg | 8 + edge-middleware/i18n/public/flags/jo.svg | 16 + edge-middleware/i18n/public/flags/jp.svg | 11 + edge-middleware/i18n/public/flags/ke.svg | 23 + edge-middleware/i18n/public/flags/kg.svg | 15 + edge-middleware/i18n/public/flags/kh.svg | 61 + edge-middleware/i18n/public/flags/ki.svg | 36 + edge-middleware/i18n/public/flags/km.svg | 16 + edge-middleware/i18n/public/flags/kn.svg | 14 + edge-middleware/i18n/public/flags/kp.svg | 15 + edge-middleware/i18n/public/flags/kr.svg | 24 + edge-middleware/i18n/public/flags/kw.svg | 13 + edge-middleware/i18n/public/flags/ky.svg | 63 + edge-middleware/i18n/public/flags/kz.svg | 23 + edge-middleware/i18n/public/flags/la.svg | 12 + edge-middleware/i18n/public/flags/lb.svg | 15 + edge-middleware/i18n/public/flags/lc.svg | 8 + edge-middleware/i18n/public/flags/li.svg | 43 + edge-middleware/i18n/public/flags/lk.svg | 22 + edge-middleware/i18n/public/flags/lr.svg | 14 + edge-middleware/i18n/public/flags/ls.svg | 8 + edge-middleware/i18n/public/flags/lt.svg | 7 + edge-middleware/i18n/public/flags/lu.svg | 5 + edge-middleware/i18n/public/flags/lv.svg | 6 + edge-middleware/i18n/public/flags/ly.svg | 13 + edge-middleware/i18n/public/flags/ma.svg | 4 + edge-middleware/i18n/public/flags/mc.svg | 6 + edge-middleware/i18n/public/flags/md.svg | 70 + edge-middleware/i18n/public/flags/me.svg | 116 + edge-middleware/i18n/public/flags/mf.svg | 7 + edge-middleware/i18n/public/flags/mg.svg | 7 + edge-middleware/i18n/public/flags/mh.svg | 7 + edge-middleware/i18n/public/flags/mk.svg | 5 + edge-middleware/i18n/public/flags/ml.svg | 7 + edge-middleware/i18n/public/flags/mm.svg | 16 + edge-middleware/i18n/public/flags/mn.svg | 13 + edge-middleware/i18n/public/flags/mo.svg | 9 + edge-middleware/i18n/public/flags/mp.svg | 86 + edge-middleware/i18n/public/flags/mq.svg | 7 + edge-middleware/i18n/public/flags/mr.svg | 6 + edge-middleware/i18n/public/flags/ms.svg | 78 + edge-middleware/i18n/public/flags/mt.svg | 49 + edge-middleware/i18n/public/flags/mu.svg | 8 + edge-middleware/i18n/public/flags/mv.svg | 6 + edge-middleware/i18n/public/flags/mw.svg | 10 + edge-middleware/i18n/public/flags/mx.svg | 382 + edge-middleware/i18n/public/flags/my.svg | 15 + edge-middleware/i18n/public/flags/mz.svg | 21 + edge-middleware/i18n/public/flags/na.svg | 16 + edge-middleware/i18n/public/flags/nc.svg | 14 + edge-middleware/i18n/public/flags/ne.svg | 6 + edge-middleware/i18n/public/flags/nf.svg | 9 + edge-middleware/i18n/public/flags/ng.svg | 6 + edge-middleware/i18n/public/flags/ni.svg | 129 + edge-middleware/i18n/public/flags/nl.svg | 5 + edge-middleware/i18n/public/flags/no.svg | 7 + edge-middleware/i18n/public/flags/np.svg | 14 + edge-middleware/i18n/public/flags/nr.svg | 12 + edge-middleware/i18n/public/flags/nu.svg | 26 + edge-middleware/i18n/public/flags/nz.svg | 41 + edge-middleware/i18n/public/flags/om.svg | 115 + edge-middleware/i18n/public/flags/pa.svg | 14 + edge-middleware/i18n/public/flags/pe.svg | 244 + edge-middleware/i18n/public/flags/pf.svg | 19 + edge-middleware/i18n/public/flags/pg.svg | 9 + edge-middleware/i18n/public/flags/ph.svg | 9 + edge-middleware/i18n/public/flags/pk.svg | 15 + edge-middleware/i18n/public/flags/pl.svg | 6 + edge-middleware/i18n/public/flags/pm.svg | 7 + edge-middleware/i18n/public/flags/pn.svg | 62 + edge-middleware/i18n/public/flags/pr.svg | 13 + edge-middleware/i18n/public/flags/ps.svg | 15 + edge-middleware/i18n/public/flags/pt.svg | 57 + edge-middleware/i18n/public/flags/pw.svg | 11 + edge-middleware/i18n/public/flags/py.svg | 157 + edge-middleware/i18n/public/flags/qa.svg | 4 + edge-middleware/i18n/public/flags/re.svg | 7 + edge-middleware/i18n/public/flags/ro.svg | 7 + edge-middleware/i18n/public/flags/rs.svg | 292 + edge-middleware/i18n/public/flags/ru.svg | 7 + edge-middleware/i18n/public/flags/rw.svg | 13 + edge-middleware/i18n/public/flags/sa.svg | 26 + edge-middleware/i18n/public/flags/sb.svg | 13 + edge-middleware/i18n/public/flags/sc.svg | 14 + edge-middleware/i18n/public/flags/sd.svg | 13 + edge-middleware/i18n/public/flags/se.svg | 5 + edge-middleware/i18n/public/flags/sg.svg | 13 + edge-middleware/i18n/public/flags/sh.svg | 74 + edge-middleware/i18n/public/flags/si.svg | 18 + edge-middleware/i18n/public/flags/sj.svg | 7 + edge-middleware/i18n/public/flags/sk.svg | 9 + edge-middleware/i18n/public/flags/sl.svg | 7 + edge-middleware/i18n/public/flags/sm.svg | 91 + edge-middleware/i18n/public/flags/sn.svg | 8 + edge-middleware/i18n/public/flags/so.svg | 11 + edge-middleware/i18n/public/flags/sr.svg | 6 + edge-middleware/i18n/public/flags/ss.svg | 8 + edge-middleware/i18n/public/flags/st.svg | 16 + edge-middleware/i18n/public/flags/sv.svg | 594 ++ edge-middleware/i18n/public/flags/sx.svg | 56 + edge-middleware/i18n/public/flags/sy.svg | 6 + edge-middleware/i18n/public/flags/sz.svg | 45 + edge-middleware/i18n/public/flags/tc.svg | 67 + edge-middleware/i18n/public/flags/td.svg | 7 + edge-middleware/i18n/public/flags/tf.svg | 15 + edge-middleware/i18n/public/flags/tg.svg | 14 + edge-middleware/i18n/public/flags/th.svg | 7 + edge-middleware/i18n/public/flags/tj.svg | 22 + edge-middleware/i18n/public/flags/tk.svg | 5 + edge-middleware/i18n/public/flags/tl.svg | 13 + edge-middleware/i18n/public/flags/tm.svg | 206 + edge-middleware/i18n/public/flags/tn.svg | 13 + edge-middleware/i18n/public/flags/to.svg | 10 + edge-middleware/i18n/public/flags/tr.svg | 8 + edge-middleware/i18n/public/flags/tt.svg | 5 + edge-middleware/i18n/public/flags/tv.svg | 16 + edge-middleware/i18n/public/flags/tw.svg | 34 + edge-middleware/i18n/public/flags/tz.svg | 13 + edge-middleware/i18n/public/flags/ua.svg | 6 + edge-middleware/i18n/public/flags/ug.svg | 30 + edge-middleware/i18n/public/flags/um.svg | 15 + edge-middleware/i18n/public/flags/un.svg | 16 + edge-middleware/i18n/public/flags/us.svg | 10 + edge-middleware/i18n/public/flags/uy.svg | 28 + edge-middleware/i18n/public/flags/uz.svg | 30 + edge-middleware/i18n/public/flags/va.svg | 479 ++ edge-middleware/i18n/public/flags/vc.svg | 8 + edge-middleware/i18n/public/flags/ve.svg | 26 + edge-middleware/i18n/public/flags/vg.svg | 127 + edge-middleware/i18n/public/flags/vi.svg | 28 + edge-middleware/i18n/public/flags/vn.svg | 11 + edge-middleware/i18n/public/flags/vu.svg | 18 + edge-middleware/i18n/public/flags/wf.svg | 7 + edge-middleware/i18n/public/flags/ws.svg | 7 + edge-middleware/i18n/public/flags/xk.svg | 16 + edge-middleware/i18n/public/flags/ye.svg | 7 + edge-middleware/i18n/public/flags/yt.svg | 7 + edge-middleware/i18n/public/flags/za.svg | 17 + edge-middleware/i18n/public/flags/zm.svg | 27 + edge-middleware/i18n/public/flags/zw.svg | 21 + edge-middleware/i18n/public/map.svg | 1 + edge-middleware/i18n/tailwind.config.js | 8 + edge-middleware/i18n/tsconfig.json | 20 + edge-middleware/image-response/.eslintrc.json | 4 + edge-middleware/image-response/.gitignore | 34 + edge-middleware/image-response/.npmrc | 2 + edge-middleware/image-response/README.md | 45 + edge-middleware/image-response/middleware.ts | 10 + edge-middleware/image-response/next-env.d.ts | 5 + edge-middleware/image-response/package.json | 23 + .../image-response/pages/api/img.ts | 9 + .../image-response/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/image-response/tsconfig.json | 20 + .../ip-blocking-datadome/.env.example | 3 + .../ip-blocking-datadome/.eslintrc.json | 4 + .../ip-blocking-datadome/.gitignore | 34 + edge-middleware/ip-blocking-datadome/.npmrc | 2 + .../ip-blocking-datadome/README.md | 61 + .../ip-blocking-datadome/lib/constants.ts | 7 + .../ip-blocking-datadome/lib/datadome-ip.ts | 67 + .../ip-blocking-datadome/lib/datadome.ts | 211 + .../ip-blocking-datadome/lib/fetch-api.ts | 33 + .../ip-blocking-datadome/middleware.ts | 23 + .../ip-blocking-datadome/next-env.d.ts | 5 + .../ip-blocking-datadome/package.json | 28 + .../ip-blocking-datadome/pages/_app.tsx | 44 + .../pages/api/rules/add.tsx | 37 + .../pages/api/rules/index.tsx | 24 + .../pages/api/rules/remove.tsx | 40 + .../ip-blocking-datadome/pages/index.tsx | 90 + .../ip-blocking-datadome/postcss.config.js | 8 + .../ip-blocking-datadome/public/favicon.ico | Bin 0 -> 15086 bytes .../ip-blocking-datadome/tailwind.config.js | 8 + .../ip-blocking-datadome/tsconfig.json | 26 + edge-middleware/ip-blocking/.env.example | 2 + edge-middleware/ip-blocking/.eslintrc.json | 4 + edge-middleware/ip-blocking/.gitignore | 34 + edge-middleware/ip-blocking/.npmrc | 2 + edge-middleware/ip-blocking/README.md | 61 + edge-middleware/ip-blocking/lib/fetch-api.ts | 25 + edge-middleware/ip-blocking/lib/get-ip.ts | 10 + .../ip-blocking/lib/rules/constants.ts | 1 + edge-middleware/ip-blocking/lib/rules/ip.ts | 21 + edge-middleware/ip-blocking/lib/upstash.ts | 62 + edge-middleware/ip-blocking/middleware.ts | 26 + edge-middleware/ip-blocking/next-env.d.ts | 5 + edge-middleware/ip-blocking/package.json | 28 + edge-middleware/ip-blocking/pages/_app.tsx | 30 + .../ip-blocking/pages/am-i-blocked.tsx | 19 + .../ip-blocking/pages/api/rules/ip.ts | 59 + edge-middleware/ip-blocking/pages/blocked.tsx | 19 + edge-middleware/ip-blocking/pages/index.tsx | 109 + edge-middleware/ip-blocking/postcss.config.js | 8 + .../ip-blocking/public/favicon.ico | Bin 0 -> 15086 bytes .../ip-blocking/tailwind.config.js | 8 + edge-middleware/ip-blocking/tsconfig.json | 25 + edge-middleware/json-response/.eslintrc.json | 4 + edge-middleware/json-response/.gitignore | 34 + edge-middleware/json-response/.npmrc | 2 + edge-middleware/json-response/README.md | 56 + edge-middleware/json-response/middleware.ts | 9 + edge-middleware/json-response/next-env.d.ts | 5 + edge-middleware/json-response/package.json | 23 + edge-middleware/json-response/pages/index.tsx | 9 + .../json-response/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/json-response/tsconfig.json | 20 + .../jwt-authentication/.env.example | 1 + .../jwt-authentication/.eslintrc.json | 4 + edge-middleware/jwt-authentication/.gitignore | 34 + edge-middleware/jwt-authentication/.npmrc | 2 + edge-middleware/jwt-authentication/README.md | 72 + .../jwt-authentication/lib/auth.ts | 57 + .../jwt-authentication/lib/constants.ts | 11 + .../jwt-authentication/lib/utils.ts | 15 + .../jwt-authentication/middleware.ts | 26 + .../jwt-authentication/next-env.d.ts | 5 + .../jwt-authentication/next.config.js | 9 + .../jwt-authentication/package.json | 30 + .../jwt-authentication/pages/_app.tsx | 18 + .../jwt-authentication/pages/api/auth.ts | 20 + .../jwt-authentication/pages/api/expire.ts | 14 + .../jwt-authentication/pages/api/protected.ts | 10 + .../jwt-authentication/pages/index.tsx | 59 + .../jwt-authentication/pages/protected.tsx | 33 + .../jwt-authentication/postcss.config.js | 8 + .../jwt-authentication/public/favicon.ico | Bin 0 -> 15086 bytes .../jwt-authentication/tailwind.config.js | 8 + .../jwt-authentication/tsconfig.json | 25 + edge-middleware/maintenance-page/.env.example | 1 + .../maintenance-page/.eslintrc.json | 4 + edge-middleware/maintenance-page/.gitignore | 41 + edge-middleware/maintenance-page/.npmrc | 2 + edge-middleware/maintenance-page/README.md | 71 + .../maintenance-page/middleware.ts | 30 + .../maintenance-page/next-env.d.ts | 5 + edge-middleware/maintenance-page/package.json | 28 + .../maintenance-page/pages/_app.tsx | 22 + .../maintenance-page/pages/big-promo.tsx | 22 + .../maintenance-page/pages/index.tsx | 66 + .../maintenance-page/pages/maintenance.tsx | 22 + .../pages/missing-edge-config.tsx | 82 + .../maintenance-page/postcss.config.js | 8 + .../maintenance-page/public/board.jpg | Bin 0 -> 21655 bytes .../maintenance-page/public/favicon.ico | Bin 0 -> 15086 bytes .../maintenance-page/tailwind.config.js | 8 + .../maintenance-page/tsconfig.json | 20 + .../modify-request-header/.eslintrc.json | 4 + .../modify-request-header/.gitignore | 34 + edge-middleware/modify-request-header/.npmrc | 2 + .../modify-request-header/README.md | 85 + .../modify-request-header/middleware.ts | 26 + .../modify-request-header/next-env.d.ts | 5 + .../modify-request-header/package.json | 26 + .../modify-request-header/pages/_app.tsx | 22 + .../modify-request-header/pages/index.tsx | 82 + .../modify-request-header/postcss.config.js | 8 + .../modify-request-header/public/favicon.ico | Bin 0 -> 15086 bytes .../modify-request-header/tailwind.config.js | 8 + .../modify-request-header/tsconfig.json | 20 + edge-middleware/next-news/.eslintrc.json | 4 + edge-middleware/next-news/.gitignore | 34 + edge-middleware/next-news/README.md | 52 + .../next-news/components/comment-form.tsx | 25 + .../next-news/components/comment.tsx | 88 + .../next-news/components/header.tsx | 93 + edge-middleware/next-news/components/item.tsx | 48 + .../next-news/components/login-form.tsx | 29 + edge-middleware/next-news/components/logo.tsx | 17 + edge-middleware/next-news/components/meta.tsx | 60 + edge-middleware/next-news/components/nav.tsx | 46 + edge-middleware/next-news/components/page.tsx | 34 + .../next-news/components/stories.tsx | 62 + .../next-news/components/story.tsx | 86 + .../next-news/components/updating-story.tsx | 15 + edge-middleware/next-news/lib/db.ts | 18 + edge-middleware/next-news/lib/get-comments.ts | 19 + edge-middleware/next-news/lib/get-item.ts | 33 + edge-middleware/next-news/lib/get-stories.ts | 18 + edge-middleware/next-news/lib/time-ago.ts | 14 + edge-middleware/next-news/next-env.d.ts | 5 + edge-middleware/next-news/next.config.mjs | 11 + edge-middleware/next-news/package.json | 27 + edge-middleware/next-news/pages/ask.tsx | 15 + edge-middleware/next-news/pages/item/[id].tsx | 43 + edge-middleware/next-news/pages/jobs.tsx | 15 + edge-middleware/next-news/pages/login.tsx | 9 + edge-middleware/next-news/pages/newest.tsx | 16 + .../next-news/pages/news/[page].tsx | 28 + edge-middleware/next-news/pages/show.tsx | 15 + edge-middleware/next-news/pages/submit.tsx | 9 + edge-middleware/next-news/pages/user.tsx | 3 + edge-middleware/next-news/public/favicon.ico | Bin 0 -> 1261 bytes edge-middleware/next-news/tsconfig.json | 20 + .../.env.production.example | 2 + .../personalization-builder-io/.eslintrc.json | 4 + .../personalization-builder-io/.gitignore | 34 + .../.prettierignore | 3 + .../personalization-builder-io/README.md | 147 + .../assets/index.css | 7 + .../components/Link/Link.tsx | 13 + .../config/builder.ts | 7 + .../personalization-builder-io/next-env.d.ts | 6 + .../personalization-builder-io/next.config.js | 23 + .../personalization-builder-io/package.json | 75 + .../pages/[[...path]].tsx | 101 + .../personalization-builder-io/pages/_app.tsx | 24 + .../pages/_middleware.tsx | 16 + .../pages/api/attributes.ts | 14 + .../postcss.config.js | 8 + .../tailwind.config.js | 10 + .../personalization-builder-io/tsconfig.json | 27 + .../.eslintrc.json | 4 + .../.gitignore | 34 + .../power-parity-pricing-strategies/PPP.md | 291 + .../power-parity-pricing-strategies/README.md | 52 + .../power-parity-pricing-strategies/api.ts | 1539 ++++ .../constants.ts | 28 + .../middleware.ts | 17 + .../next-env.d.ts | 5 + .../next.config.js | 11 + .../package.json | 27 + .../pages/404.tsx | 21 + .../pages/_app.tsx | 63 + .../pages/edge/[country].tsx | 150 + .../pages/ssr.tsx | 130 + .../pages/static.tsx | 75 + .../postcss.config.js | 8 + .../public/favicon.ico | Bin 0 -> 15086 bytes .../public/flags/ad.svg | 150 + .../public/flags/ae.svg | 6 + .../public/flags/af.svg | 81 + .../public/flags/ag.svg | 14 + .../public/flags/ai.svg | 763 ++ .../public/flags/al.svg | 5 + .../public/flags/am.svg | 5 + .../public/flags/ao.svg | 13 + .../public/flags/aq.svg | 7 + .../public/flags/ar.svg | 31 + .../public/flags/as.svg | 33 + .../public/flags/at.svg | 6 + .../public/flags/au.svg | 9 + .../public/flags/aw.svg | 186 + .../public/flags/ax.svg | 18 + .../public/flags/az.svg | 8 + .../public/flags/ba.svg | 12 + .../public/flags/bb.svg | 6 + .../public/flags/bd.svg | 4 + .../public/flags/be.svg | 7 + .../public/flags/bf.svg | 7 + .../public/flags/bg.svg | 7 + .../public/flags/bh.svg | 9 + .../public/flags/bi.svg | 15 + .../public/flags/bj.svg | 14 + .../public/flags/bl.svg | 7 + .../public/flags/bm.svg | 98 + .../public/flags/bn.svg | 36 + .../public/flags/bo.svg | 676 ++ .../public/flags/bq.svg | 5 + .../public/flags/br.svg | 45 + .../public/flags/bs.svg | 13 + .../public/flags/bt.svg | 89 + .../public/flags/bv.svg | 13 + .../public/flags/bw.svg | 7 + .../public/flags/by.svg | 20 + .../public/flags/bz.svg | 145 + .../public/flags/ca.svg | 4 + .../public/flags/cc.svg | 19 + .../public/flags/cd.svg | 5 + .../public/flags/cf.svg | 15 + .../public/flags/cg.svg | 12 + .../public/flags/ch.svg | 9 + .../public/flags/ci.svg | 7 + .../public/flags/ck.svg | 9 + .../public/flags/cl.svg | 13 + .../public/flags/cm.svg | 15 + .../public/flags/cn.svg | 11 + .../public/flags/co.svg | 7 + .../public/flags/cr.svg | 7 + .../public/flags/cu.svg | 13 + .../public/flags/cv.svg | 13 + .../public/flags/cw.svg | 14 + .../public/flags/cx.svg | 15 + .../public/flags/cy.svg | 6 + .../public/flags/cz.svg | 5 + .../public/flags/de.svg | 5 + .../public/flags/dj.svg | 13 + .../public/flags/dk.svg | 5 + .../public/flags/dm.svg | 152 + .../public/flags/do.svg | 6745 +++++++++++++++++ .../public/flags/dz.svg | 5 + .../public/flags/ec.svg | 138 + .../public/flags/ee.svg | 7 + .../public/flags/eg.svg | 38 + .../public/flags/eh.svg | 15 + .../public/flags/er.svg | 8 + .../public/flags/es-ct.svg | 4 + .../public/flags/es-ga.svg | 189 + .../public/flags/es.svg | 544 ++ .../public/flags/et.svg | 14 + .../public/flags/eu.svg | 28 + .../public/flags/fi.svg | 5 + .../public/flags/fj.svg | 122 + .../public/flags/fk.svg | 90 + .../public/flags/fm.svg | 11 + .../public/flags/fo.svg | 12 + .../public/flags/fr.svg | 7 + .../public/flags/ga.svg | 7 + .../public/flags/gb-eng.svg | 5 + .../public/flags/gb-nir.svg | 132 + .../public/flags/gb-sct.svg | 4 + .../public/flags/gb-wls.svg | 9 + .../public/flags/gb.svg | 7 + .../public/flags/gd.svg | 27 + .../public/flags/ge.svg | 6 + .../public/flags/gf.svg | 7 + .../public/flags/gg.svg | 9 + .../public/flags/gh.svg | 6 + .../public/flags/gi.svg | 32 + .../public/flags/gl.svg | 4 + .../public/flags/gm.svg | 14 + .../public/flags/gn.svg | 7 + .../public/flags/gp.svg | 7 + .../public/flags/gq.svg | 23 + .../public/flags/gr.svg | 16 + .../public/flags/gs.svg | 201 + .../public/flags/gt.svg | 204 + .../public/flags/gu.svg | 39 + .../public/flags/gw.svg | 13 + .../public/flags/gy.svg | 9 + .../public/flags/hk.svg | 30 + .../public/flags/hm.svg | 9 + .../public/flags/hn.svg | 18 + .../public/flags/hr.svg | 58 + .../public/flags/ht.svg | 116 + .../public/flags/hu.svg | 7 + .../public/flags/id.svg | 6 + .../public/flags/ie.svg | 7 + .../public/flags/il.svg | 14 + .../public/flags/im.svg | 36 + .../public/flags/in.svg | 25 + .../public/flags/io.svg | 138 + .../public/flags/iq.svg | 10 + .../public/flags/ir.svg | 219 + .../public/flags/is.svg | 12 + .../public/flags/it.svg | 7 + .../public/flags/je.svg | 49 + .../public/flags/jm.svg | 8 + .../public/flags/jo.svg | 16 + .../public/flags/jp.svg | 11 + .../public/flags/ke.svg | 23 + .../public/flags/kg.svg | 15 + .../public/flags/kh.svg | 61 + .../public/flags/ki.svg | 36 + .../public/flags/km.svg | 16 + .../public/flags/kn.svg | 14 + .../public/flags/kp.svg | 15 + .../public/flags/kr.svg | 24 + .../public/flags/kw.svg | 13 + .../public/flags/ky.svg | 63 + .../public/flags/kz.svg | 23 + .../public/flags/la.svg | 12 + .../public/flags/lb.svg | 15 + .../public/flags/lc.svg | 8 + .../public/flags/li.svg | 43 + .../public/flags/lk.svg | 22 + .../public/flags/lr.svg | 14 + .../public/flags/ls.svg | 8 + .../public/flags/lt.svg | 7 + .../public/flags/lu.svg | 5 + .../public/flags/lv.svg | 6 + .../public/flags/ly.svg | 13 + .../public/flags/ma.svg | 4 + .../public/flags/mc.svg | 6 + .../public/flags/md.svg | 70 + .../public/flags/me.svg | 116 + .../public/flags/mf.svg | 7 + .../public/flags/mg.svg | 7 + .../public/flags/mh.svg | 7 + .../public/flags/mk.svg | 5 + .../public/flags/ml.svg | 7 + .../public/flags/mm.svg | 16 + .../public/flags/mn.svg | 13 + .../public/flags/mo.svg | 9 + .../public/flags/mp.svg | 86 + .../public/flags/mq.svg | 7 + .../public/flags/mr.svg | 6 + .../public/flags/ms.svg | 78 + .../public/flags/mt.svg | 49 + .../public/flags/mu.svg | 8 + .../public/flags/mv.svg | 6 + .../public/flags/mw.svg | 10 + .../public/flags/mx.svg | 382 + .../public/flags/my.svg | 15 + .../public/flags/mz.svg | 21 + .../public/flags/na.svg | 16 + .../public/flags/nc.svg | 14 + .../public/flags/ne.svg | 6 + .../public/flags/nf.svg | 9 + .../public/flags/ng.svg | 6 + .../public/flags/ni.svg | 129 + .../public/flags/nl.svg | 5 + .../public/flags/no.svg | 7 + .../public/flags/np.svg | 14 + .../public/flags/nr.svg | 12 + .../public/flags/nu.svg | 26 + .../public/flags/nz.svg | 41 + .../public/flags/om.svg | 115 + .../public/flags/pa.svg | 14 + .../public/flags/pe.svg | 244 + .../public/flags/pf.svg | 19 + .../public/flags/pg.svg | 9 + .../public/flags/ph.svg | 9 + .../public/flags/pk.svg | 15 + .../public/flags/pl.svg | 6 + .../public/flags/pm.svg | 7 + .../public/flags/pn.svg | 62 + .../public/flags/pr.svg | 13 + .../public/flags/ps.svg | 15 + .../public/flags/pt.svg | 57 + .../public/flags/pw.svg | 11 + .../public/flags/py.svg | 157 + .../public/flags/qa.svg | 4 + .../public/flags/re.svg | 7 + .../public/flags/ro.svg | 7 + .../public/flags/rs.svg | 292 + .../public/flags/ru.svg | 7 + .../public/flags/rw.svg | 13 + .../public/flags/sa.svg | 26 + .../public/flags/sb.svg | 13 + .../public/flags/sc.svg | 14 + .../public/flags/sd.svg | 13 + .../public/flags/se.svg | 5 + .../public/flags/sg.svg | 13 + .../public/flags/sh.svg | 74 + .../public/flags/si.svg | 18 + .../public/flags/sj.svg | 7 + .../public/flags/sk.svg | 9 + .../public/flags/sl.svg | 7 + .../public/flags/sm.svg | 91 + .../public/flags/sn.svg | 8 + .../public/flags/so.svg | 11 + .../public/flags/sr.svg | 6 + .../public/flags/ss.svg | 8 + .../public/flags/st.svg | 16 + .../public/flags/sv.svg | 594 ++ .../public/flags/sx.svg | 56 + .../public/flags/sy.svg | 6 + .../public/flags/sz.svg | 45 + .../public/flags/tc.svg | 67 + .../public/flags/td.svg | 7 + .../public/flags/tf.svg | 15 + .../public/flags/tg.svg | 14 + .../public/flags/th.svg | 7 + .../public/flags/tj.svg | 22 + .../public/flags/tk.svg | 5 + .../public/flags/tl.svg | 13 + .../public/flags/tm.svg | 206 + .../public/flags/tn.svg | 13 + .../public/flags/to.svg | 10 + .../public/flags/tr.svg | 8 + .../public/flags/tt.svg | 5 + .../public/flags/tv.svg | 16 + .../public/flags/tw.svg | 34 + .../public/flags/tz.svg | 13 + .../public/flags/ua.svg | 6 + .../public/flags/ug.svg | 30 + .../public/flags/um.svg | 15 + .../public/flags/un.svg | 16 + .../public/flags/us.svg | 10 + .../public/flags/uy.svg | 28 + .../public/flags/uz.svg | 30 + .../public/flags/va.svg | 479 ++ .../public/flags/vc.svg | 8 + .../public/flags/ve.svg | 26 + .../public/flags/vg.svg | 127 + .../public/flags/vi.svg | 28 + .../public/flags/vn.svg | 11 + .../public/flags/vu.svg | 18 + .../public/flags/wf.svg | 7 + .../public/flags/ws.svg | 7 + .../public/flags/xk.svg | 16 + .../public/flags/ye.svg | 7 + .../public/flags/yt.svg | 7 + .../public/flags/za.svg | 17 + .../public/flags/zm.svg | 27 + .../public/flags/zw.svg | 21 + .../public/map.svg | 1 + .../public/mug.png | Bin 0 -> 168190 bytes .../tailwind.config.js | 8 + .../tsconfig.json | 20 + .../power-parity-pricing-strategies/types.ts | 11 + .../power-parity-pricing-strategies/utils.ts | 5 + .../power-parity-pricing/.eslintrc.json | 4 + .../power-parity-pricing/.gitignore | 34 + .../power-parity-pricing/README.md | 52 + edge-middleware/power-parity-pricing/api.ts | 11 + .../power-parity-pricing/constants.ts | 10 + .../power-parity-pricing/middleware.ts | 17 + .../power-parity-pricing/next-env.d.ts | 5 + .../power-parity-pricing/next.config.js | 5 + .../power-parity-pricing/package.json | 27 + .../power-parity-pricing/pages/[country].tsx | 162 + .../power-parity-pricing/pages/_app.tsx | 17 + .../power-parity-pricing/postcss.config.js | 8 + .../power-parity-pricing/public/favicon.ico | Bin 0 -> 15086 bytes .../power-parity-pricing/public/map.svg | 1 + .../power-parity-pricing/public/shirt.png | Bin 0 -> 115871 bytes .../power-parity-pricing/tailwind.config.js | 8 + .../power-parity-pricing/tsconfig.json | 20 + edge-middleware/power-parity-pricing/types.ts | 3 + edge-middleware/power-parity-pricing/utils.ts | 6 + .../query-params-filter/.eslintrc.json | 4 + .../query-params-filter/.gitignore | 34 + edge-middleware/query-params-filter/.npmrc | 2 + edge-middleware/query-params-filter/README.md | 90 + .../query-params-filter/middleware.ts | 27 + .../query-params-filter/next-env.d.ts | 5 + .../query-params-filter/package.json | 27 + .../query-params-filter/pages/_app.tsx | 17 + .../query-params-filter/pages/index.tsx | 17 + .../query-params-filter/postcss.config.js | 8 + .../query-params-filter/public/favicon.ico | Bin 0 -> 15086 bytes .../query-params-filter/tailwind.config.js | 8 + .../query-params-filter/tsconfig.json | 20 + edge-middleware/redirects-upstash/.env | 1 + .../redirects-upstash/.env.example | 7 + .../redirects-upstash/.eslintrc.json | 4 + edge-middleware/redirects-upstash/.gitignore | 37 + edge-middleware/redirects-upstash/.npmrc | 2 + edge-middleware/redirects-upstash/README.md | 74 + .../redirects-upstash/lib/redirects.ts | 41 + .../redirects-upstash/lib/upstash.ts | 62 + .../redirects-upstash/middleware.ts | 6 + .../redirects-upstash/next-env.d.ts | 5 + .../redirects-upstash/next.config.js | 3 + .../redirects-upstash/package.json | 28 + .../redirects-upstash/pages/_app.tsx | 25 + .../redirects-upstash/pages/index.tsx | 31 + .../redirects-upstash/pages/posts/[slug].tsx | 54 + .../redirects-upstash/postcss.config.js | 8 + .../redirects-upstash/public/favicon.ico | Bin 0 -> 15086 bytes .../redirects-upstash/scripts/upstash.js | 104 + edge-middleware/redirects-upstash/styles.css | 3 + .../redirects-upstash/tailwind.config.js | 8 + .../redirects-upstash/tsconfig.json | 26 + .../rewrites-upstash/.eslintrc.json | 4 + edge-middleware/rewrites-upstash/.gitignore | 34 + edge-middleware/rewrites-upstash/.npmrc | 2 + edge-middleware/rewrites-upstash/README.md | 52 + edge-middleware/rewrites-upstash/api.ts | 45 + .../components/ProductCard.tsx | 23 + .../rewrites-upstash/middleware.ts | 22 + .../rewrites-upstash/next-env.d.ts | 5 + edge-middleware/rewrites-upstash/package.json | 27 + .../rewrites-upstash/pages/_app.tsx | 22 + .../pages/api/product/[id]/stock.ts | 20 + .../rewrites-upstash/pages/index.tsx | 171 + .../pages/product/[id]/index.tsx | 86 + .../pages/product/[id]/no-stock.tsx | 78 + .../rewrites-upstash/postcss.config.js | 8 + .../rewrites-upstash/public/favicon.ico | Bin 0 -> 25931 bytes .../public/no-optimizing-board.jpg | Bin 0 -> 27902 bytes .../public/optimizing-board.jpg | Bin 0 -> 30949 bytes .../rewrites-upstash/tailwind.config.js | 8 + .../rewrites-upstash/tsconfig.json | 20 + edge-middleware/rewrites-upstash/types.ts | 7 + edge-middleware/streams/.eslintrc.json | 4 + edge-middleware/streams/.gitignore | 34 + edge-middleware/streams/.npmrc | 1 + edge-middleware/streams/README.md | 56 + edge-middleware/streams/next-env.d.ts | 5 + edge-middleware/streams/package.json | 27 + edge-middleware/streams/pages/_app.tsx | 18 + .../streams/pages/api/01-simple.ts | 27 + .../streams/pages/api/02-simple-transform.ts | 48 + .../pages/api/03-external-transform.ts | 52 + edge-middleware/streams/pages/index.tsx | 40 + edge-middleware/streams/postcss.config.js | 8 + edge-middleware/streams/public/favicon.ico | Bin 0 -> 15086 bytes edge-middleware/streams/tailwind.config.js | 8 + edge-middleware/streams/tsconfig.json | 20 + .../user-agent-based-rendering/.eslintrc.json | 4 + .../user-agent-based-rendering/.gitignore | 41 + .../user-agent-based-rendering/README.md | 52 + .../components/Home.tsx | 102 + .../user-agent-based-rendering/middleware.ts | 20 + .../user-agent-based-rendering/next-env.d.ts | 5 + .../user-agent-based-rendering/package.json | 27 + .../user-agent-based-rendering/pages/_app.tsx | 22 + .../pages/_viewport/desktop.tsx | 1 + .../pages/_viewport/mobile.tsx | 1 + .../postcss.config.js | 8 + .../public/board.jpg | Bin 0 -> 24627 bytes .../public/favicon.ico | Bin 0 -> 15086 bytes .../tailwind.config.js | 8 + .../user-agent-based-rendering/tsconfig.json | 20 + .../vercel-og-nextjs/.eslintrc.json | 4 + edge-middleware/vercel-og-nextjs/.gitignore | 41 + edge-middleware/vercel-og-nextjs/README.md | 65 + .../assets/RecursiveMonoCslSt-Bold.ttf | Bin 0 -> 391020 bytes .../vercel-og-nextjs/assets/TYPEWR__.TTF | Bin 0 -> 90000 bytes .../vercel-og-nextjs/next-env.d.ts | 5 + .../vercel-og-nextjs/next.config.js | 4 + edge-middleware/vercel-og-nextjs/package.json | 22 + .../pages/api/custom-font.tsx | 42 + .../pages/api/dynamic-image.tsx | 51 + .../vercel-og-nextjs/pages/api/emoji.tsx | 35 + .../vercel-og-nextjs/pages/api/encrypted.tsx | 68 + .../vercel-og-nextjs/pages/api/image-svg.tsx | 33 + .../vercel-og-nextjs/pages/api/language.tsx | 32 + .../vercel-og-nextjs/pages/api/param.tsx | 79 + .../vercel-og-nextjs/pages/api/static.tsx | 30 + .../vercel-og-nextjs/pages/api/tailwind.tsx | 55 + .../vercel-og-nextjs/pages/api/vercel.tsx | 50 + .../vercel-og-nextjs/pages/encrypted/[id].tsx | 43 + .../vercel-og-nextjs/pages/index.tsx | 25 + .../vercel-og-nextjs/public/favicon.ico | Bin 0 -> 15086 bytes .../vercel-og-nextjs/tsconfig.json | 20 + 1251 files changed, 58751 insertions(+) create mode 100644 edge-middleware/ab-testing-google-optimize/.env.example create mode 100644 edge-middleware/ab-testing-google-optimize/.eslintrc.json create mode 100644 edge-middleware/ab-testing-google-optimize/.gitignore create mode 100644 edge-middleware/ab-testing-google-optimize/.npmrc create mode 100644 edge-middleware/ab-testing-google-optimize/README.md create mode 100644 edge-middleware/ab-testing-google-optimize/components/layout.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/lib/constants.ts create mode 100644 edge-middleware/ab-testing-google-optimize/lib/optimize-experiments.json create mode 100644 edge-middleware/ab-testing-google-optimize/lib/optimize.ts create mode 100644 edge-middleware/ab-testing-google-optimize/lib/useGa.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/middleware.ts create mode 100644 edge-middleware/ab-testing-google-optimize/next-env.d.ts create mode 100644 edge-middleware/ab-testing-google-optimize/package.json create mode 100644 edge-middleware/ab-testing-google-optimize/pages/[variant]/about.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/pages/[variant]/marketing.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/pages/_app.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/pages/about.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/pages/index.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/pages/marketing.tsx create mode 100644 edge-middleware/ab-testing-google-optimize/postcss.config.js create mode 100644 edge-middleware/ab-testing-google-optimize/public/favicon.ico create mode 100644 edge-middleware/ab-testing-google-optimize/tailwind.config.js create mode 100644 edge-middleware/ab-testing-google-optimize/tsconfig.json create mode 100644 edge-middleware/ab-testing-simple/.eslintrc.json create mode 100644 edge-middleware/ab-testing-simple/.gitignore create mode 100644 edge-middleware/ab-testing-simple/.npmrc create mode 100644 edge-middleware/ab-testing-simple/README.md create mode 100644 edge-middleware/ab-testing-simple/lib/ab-testing.ts create mode 100644 edge-middleware/ab-testing-simple/lib/buckets.ts create mode 100644 edge-middleware/ab-testing-simple/middleware.ts create mode 100644 edge-middleware/ab-testing-simple/next-env.d.ts create mode 100644 edge-middleware/ab-testing-simple/package.json create mode 100644 edge-middleware/ab-testing-simple/pages/_app.tsx create mode 100644 edge-middleware/ab-testing-simple/pages/home/[bucket].tsx create mode 100644 edge-middleware/ab-testing-simple/pages/index.tsx create mode 100644 edge-middleware/ab-testing-simple/pages/marketing/[bucket].tsx create mode 100644 edge-middleware/ab-testing-simple/pages/marketing/original.tsx create mode 100644 edge-middleware/ab-testing-simple/postcss.config.js create mode 100644 edge-middleware/ab-testing-simple/public/favicon.ico create mode 100644 edge-middleware/ab-testing-simple/tailwind.config.js create mode 100644 edge-middleware/ab-testing-simple/tsconfig.json create mode 100644 edge-middleware/ab-testing-statsig/.env.example create mode 100644 edge-middleware/ab-testing-statsig/.eslintrc.json create mode 100644 edge-middleware/ab-testing-statsig/.gitignore create mode 100644 edge-middleware/ab-testing-statsig/.npmrc create mode 100644 edge-middleware/ab-testing-statsig/README.md create mode 100644 edge-middleware/ab-testing-statsig/lib/constants.ts create mode 100644 edge-middleware/ab-testing-statsig/lib/statsig-api.ts create mode 100644 edge-middleware/ab-testing-statsig/middleware.ts create mode 100644 edge-middleware/ab-testing-statsig/next-env.d.ts create mode 100644 edge-middleware/ab-testing-statsig/package.json create mode 100644 edge-middleware/ab-testing-statsig/pages/[bucket].tsx create mode 100644 edge-middleware/ab-testing-statsig/pages/_app.tsx create mode 100644 edge-middleware/ab-testing-statsig/postcss.config.js create mode 100644 edge-middleware/ab-testing-statsig/public/example_experiment.png create mode 100644 edge-middleware/ab-testing-statsig/public/favicon.ico create mode 100644 edge-middleware/ab-testing-statsig/tailwind.config.js create mode 100644 edge-middleware/ab-testing-statsig/tsconfig.json create mode 100644 edge-middleware/add-header/.eslintrc.json create mode 100644 edge-middleware/add-header/.gitignore create mode 100644 edge-middleware/add-header/.npmrc create mode 100644 edge-middleware/add-header/README.md create mode 100644 edge-middleware/add-header/middleware.ts create mode 100644 edge-middleware/add-header/next-env.d.ts create mode 100644 edge-middleware/add-header/package.json create mode 100644 edge-middleware/add-header/pages/_app.tsx create mode 100644 edge-middleware/add-header/pages/index.tsx create mode 100644 edge-middleware/add-header/postcss.config.js create mode 100644 edge-middleware/add-header/public/favicon.ico create mode 100644 edge-middleware/add-header/tailwind.config.js create mode 100644 edge-middleware/add-header/tsconfig.json create mode 100644 edge-middleware/api-rate-limit-and-tokens/.env.example create mode 100644 edge-middleware/api-rate-limit-and-tokens/.eslintrc.json create mode 100644 edge-middleware/api-rate-limit-and-tokens/.gitignore create mode 100644 edge-middleware/api-rate-limit-and-tokens/.npmrc create mode 100644 edge-middleware/api-rate-limit-and-tokens/README.md create mode 100644 edge-middleware/api-rate-limit-and-tokens/components/api-request.tsx create mode 100644 edge-middleware/api-rate-limit-and-tokens/lib/api/constants.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/lib/api/keys.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/lib/fetch-api.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/lib/get-ip.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/lib/ip-rate-limit.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/lib/rate-limit.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/lib/upstash.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/next-env.d.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/package.json create mode 100644 edge-middleware/api-rate-limit-and-tokens/pages/_app.tsx create mode 100644 edge-middleware/api-rate-limit-and-tokens/pages/api/keys.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/pages/api/ping.ts create mode 100644 edge-middleware/api-rate-limit-and-tokens/pages/index.tsx create mode 100644 edge-middleware/api-rate-limit-and-tokens/postcss.config.js create mode 100644 edge-middleware/api-rate-limit-and-tokens/public/favicon.ico create mode 100644 edge-middleware/api-rate-limit-and-tokens/tailwind.config.js create mode 100644 edge-middleware/api-rate-limit-and-tokens/tsconfig.json create mode 100644 edge-middleware/api-rate-limit/.env.example create mode 100644 edge-middleware/api-rate-limit/.eslintrc.json create mode 100644 edge-middleware/api-rate-limit/.gitignore create mode 100644 edge-middleware/api-rate-limit/.npmrc create mode 100644 edge-middleware/api-rate-limit/README.md create mode 100644 edge-middleware/api-rate-limit/components/headers.tsx create mode 100644 edge-middleware/api-rate-limit/lib/ip-rate-limit.ts create mode 100644 edge-middleware/api-rate-limit/lib/rate-limit.ts create mode 100644 edge-middleware/api-rate-limit/lib/upstash.ts create mode 100644 edge-middleware/api-rate-limit/next-env.d.ts create mode 100644 edge-middleware/api-rate-limit/package.json create mode 100644 edge-middleware/api-rate-limit/pages/_app.tsx create mode 100644 edge-middleware/api-rate-limit/pages/api/ping.ts create mode 100644 edge-middleware/api-rate-limit/pages/index.tsx create mode 100644 edge-middleware/api-rate-limit/postcss.config.js create mode 100644 edge-middleware/api-rate-limit/public/favicon.ico create mode 100644 edge-middleware/api-rate-limit/tailwind.config.js create mode 100644 edge-middleware/api-rate-limit/tsconfig.json create mode 100644 edge-middleware/basic-auth-password/.eslintrc.json create mode 100644 edge-middleware/basic-auth-password/.gitignore create mode 100644 edge-middleware/basic-auth-password/.npmrc create mode 100644 edge-middleware/basic-auth-password/README.md create mode 100644 edge-middleware/basic-auth-password/middleware.ts create mode 100644 edge-middleware/basic-auth-password/next-env.d.ts create mode 100644 edge-middleware/basic-auth-password/package.json create mode 100644 edge-middleware/basic-auth-password/pages/_app.tsx create mode 100644 edge-middleware/basic-auth-password/pages/api/auth.ts create mode 100644 edge-middleware/basic-auth-password/pages/index.tsx create mode 100644 edge-middleware/basic-auth-password/postcss.config.js create mode 100644 edge-middleware/basic-auth-password/public/favicon.ico create mode 100644 edge-middleware/basic-auth-password/tailwind.config.js create mode 100644 edge-middleware/basic-auth-password/tsconfig.json create mode 100644 edge-middleware/bot-protection-botd/.env.example create mode 100644 edge-middleware/bot-protection-botd/.eslintrc.json create mode 100644 edge-middleware/bot-protection-botd/.gitignore create mode 100644 edge-middleware/bot-protection-botd/.npmrc create mode 100644 edge-middleware/bot-protection-botd/README.md create mode 100644 edge-middleware/bot-protection-botd/components/botd-result.tsx create mode 100644 edge-middleware/bot-protection-botd/components/headers.tsx create mode 100644 edge-middleware/bot-protection-botd/lib/botd/constants.ts create mode 100644 edge-middleware/bot-protection-botd/lib/botd/index.ts create mode 100644 edge-middleware/bot-protection-botd/lib/botd/proxy.ts create mode 100644 edge-middleware/bot-protection-botd/lib/botd/script.tsx create mode 100644 edge-middleware/bot-protection-botd/middleware.ts create mode 100644 edge-middleware/bot-protection-botd/next-env.d.ts create mode 100644 edge-middleware/bot-protection-botd/package.json create mode 100644 edge-middleware/bot-protection-botd/pages/_app.tsx create mode 100644 edge-middleware/bot-protection-botd/pages/blocked.tsx create mode 100644 edge-middleware/bot-protection-botd/pages/bot-detected.tsx create mode 100644 edge-middleware/bot-protection-botd/pages/index.tsx create mode 100644 edge-middleware/bot-protection-botd/pages/omit.tsx create mode 100644 edge-middleware/bot-protection-botd/postcss.config.js create mode 100644 edge-middleware/bot-protection-botd/public/favicon.ico create mode 100644 edge-middleware/bot-protection-botd/tailwind.config.js create mode 100644 edge-middleware/bot-protection-botd/tsconfig.json create mode 100644 edge-middleware/bot-protection-datadome/.env.example create mode 100644 edge-middleware/bot-protection-datadome/.eslintrc.json create mode 100644 edge-middleware/bot-protection-datadome/.gitignore create mode 100644 edge-middleware/bot-protection-datadome/.npmrc create mode 100644 edge-middleware/bot-protection-datadome/README.md create mode 100644 edge-middleware/bot-protection-datadome/components/headers.tsx create mode 100644 edge-middleware/bot-protection-datadome/lib/constants.ts create mode 100644 edge-middleware/bot-protection-datadome/lib/datadome.ts create mode 100644 edge-middleware/bot-protection-datadome/middleware.ts create mode 100644 edge-middleware/bot-protection-datadome/next-env.d.ts create mode 100644 edge-middleware/bot-protection-datadome/package.json create mode 100644 edge-middleware/bot-protection-datadome/pages/_app.tsx create mode 100644 edge-middleware/bot-protection-datadome/pages/blocked.tsx create mode 100644 edge-middleware/bot-protection-datadome/pages/index.tsx create mode 100644 edge-middleware/bot-protection-datadome/pages/omit.tsx create mode 100644 edge-middleware/bot-protection-datadome/postcss.config.js create mode 100644 edge-middleware/bot-protection-datadome/public/favicon.ico create mode 100644 edge-middleware/bot-protection-datadome/tailwind.config.js create mode 100644 edge-middleware/bot-protection-datadome/tsconfig.json create mode 100644 edge-middleware/clerk-authentication/.eslintrc.json create mode 100644 edge-middleware/clerk-authentication/.gitignore create mode 100644 edge-middleware/clerk-authentication/README.md create mode 100644 edge-middleware/clerk-authentication/components/CTASection.jsx create mode 100644 edge-middleware/clerk-authentication/components/HeadTags.jsx create mode 100644 edge-middleware/clerk-authentication/components/HeroSection.jsx create mode 100644 edge-middleware/clerk-authentication/components/Layout.jsx create mode 100644 edge-middleware/clerk-authentication/components/Pattern.jsx create mode 100644 edge-middleware/clerk-authentication/components/index.js create mode 100644 edge-middleware/clerk-authentication/components/statelessDoneRightSection/JWTDemo.jsx create mode 100644 edge-middleware/clerk-authentication/components/statelessDoneRightSection/JWTMock.jsx create mode 100644 edge-middleware/clerk-authentication/components/statelessDoneRightSection/StatelessDoneRightSection.jsx create mode 100644 edge-middleware/clerk-authentication/components/statelessDoneRightSection/TokenCard.jsx create mode 100644 edge-middleware/clerk-authentication/components/statelessDoneRightSection/index.js create mode 100644 edge-middleware/clerk-authentication/components/tryRenovationSection/SessionItem.jsx create mode 100644 edge-middleware/clerk-authentication/components/tryRenovationSection/SessionList.jsx create mode 100644 edge-middleware/clerk-authentication/components/tryRenovationSection/SessionMock.jsx create mode 100644 edge-middleware/clerk-authentication/components/tryRenovationSection/TryRenovationSection.jsx create mode 100644 edge-middleware/clerk-authentication/components/tryRenovationSection/index.js create mode 100644 edge-middleware/clerk-authentication/components/twoStrategiesSection/Requester.jsx create mode 100644 edge-middleware/clerk-authentication/components/twoStrategiesSection/Result.jsx create mode 100644 edge-middleware/clerk-authentication/components/twoStrategiesSection/TwoStrategiesSection.jsx create mode 100644 edge-middleware/clerk-authentication/components/twoStrategiesSection/index.js create mode 100644 edge-middleware/clerk-authentication/jsconfig.json create mode 100644 edge-middleware/clerk-authentication/next.config.js create mode 100644 edge-middleware/clerk-authentication/package.json create mode 100644 edge-middleware/clerk-authentication/pages/_app.js create mode 100644 edge-middleware/clerk-authentication/pages/api/stateful/_middleware.js create mode 100644 edge-middleware/clerk-authentication/pages/api/stateless/_middleware.js create mode 100644 edge-middleware/clerk-authentication/pages/index.js create mode 100644 edge-middleware/clerk-authentication/postcss.config.js create mode 100644 edge-middleware/clerk-authentication/public/clerk-x-next.svg create mode 100644 edge-middleware/clerk-authentication/public/favicon.ico create mode 100644 edge-middleware/clerk-authentication/public/opengraph.png create mode 100644 edge-middleware/clerk-authentication/public/vercel.svg create mode 100644 edge-middleware/clerk-authentication/styles/globals.css create mode 100644 edge-middleware/clerk-authentication/tailwind.config.js create mode 100644 edge-middleware/clerk-authentication/utils/buttons.js create mode 100644 edge-middleware/clerk-authentication/utils/forceRender.jsx create mode 100644 edge-middleware/clerk-authentication/utils/patterns.js create mode 100644 edge-middleware/clerk-authentication/utils/timer.js create mode 100644 edge-middleware/clerk-authentication/utils/token.js create mode 100644 edge-middleware/clerk-authentication/utils/vercelRegion.js create mode 100644 edge-middleware/cookies/.eslintrc.json create mode 100644 edge-middleware/cookies/.gitignore create mode 100644 edge-middleware/cookies/.npmrc create mode 100644 edge-middleware/cookies/README.md create mode 100644 edge-middleware/cookies/middleware.ts create mode 100644 edge-middleware/cookies/next-env.d.ts create mode 100644 edge-middleware/cookies/package.json create mode 100644 edge-middleware/cookies/pages/_app.tsx create mode 100644 edge-middleware/cookies/pages/beta.tsx create mode 100644 edge-middleware/cookies/pages/non-beta.tsx create mode 100644 edge-middleware/cookies/postcss.config.js create mode 100644 edge-middleware/cookies/public/favicon.ico create mode 100644 edge-middleware/cookies/tailwind.config.js create mode 100644 edge-middleware/cookies/tsconfig.json create mode 100644 edge-middleware/cors/.eslintrc.json create mode 100644 edge-middleware/cors/.gitignore create mode 100644 edge-middleware/cors/.npmrc create mode 100644 edge-middleware/cors/README.md create mode 100644 edge-middleware/cors/lib/cors.ts create mode 100644 edge-middleware/cors/next-env.d.ts create mode 100644 edge-middleware/cors/package.json create mode 100644 edge-middleware/cors/pages/api/hello.ts create mode 100644 edge-middleware/cors/public/favicon.ico create mode 100644 edge-middleware/cors/tsconfig.json create mode 100644 edge-middleware/crypto/.eslintrc.json create mode 100644 edge-middleware/crypto/.gitignore create mode 100644 edge-middleware/crypto/.npmrc create mode 100644 edge-middleware/crypto/README.md create mode 100644 edge-middleware/crypto/middleware.ts create mode 100644 edge-middleware/crypto/next-env.d.ts create mode 100644 edge-middleware/crypto/package.json create mode 100644 edge-middleware/crypto/pages/api/crypto.ts create mode 100644 edge-middleware/crypto/public/favicon.ico create mode 100644 edge-middleware/crypto/tsconfig.json create mode 100644 edge-middleware/feature-flag-apple-store/.env.example create mode 100644 edge-middleware/feature-flag-apple-store/.eslintrc.json create mode 100644 edge-middleware/feature-flag-apple-store/.gitignore create mode 100644 edge-middleware/feature-flag-apple-store/.npmrc create mode 100644 edge-middleware/feature-flag-apple-store/README.md create mode 100644 edge-middleware/feature-flag-apple-store/components/nav.tsx create mode 100644 edge-middleware/feature-flag-apple-store/lib/feature-flags.ts create mode 100644 edge-middleware/feature-flag-apple-store/middleware.ts create mode 100644 edge-middleware/feature-flag-apple-store/next-env.d.ts create mode 100644 edge-middleware/feature-flag-apple-store/next.config.js create mode 100644 edge-middleware/feature-flag-apple-store/package.json create mode 100644 edge-middleware/feature-flag-apple-store/pages/_app.tsx create mode 100644 edge-middleware/feature-flag-apple-store/pages/_closed.tsx create mode 100644 edge-middleware/feature-flag-apple-store/pages/api/store/close.ts create mode 100644 edge-middleware/feature-flag-apple-store/pages/api/store/open.ts create mode 100644 edge-middleware/feature-flag-apple-store/pages/index.tsx create mode 100644 edge-middleware/feature-flag-apple-store/pages/missing-edge-config.tsx create mode 100644 edge-middleware/feature-flag-apple-store/postcss.config.js create mode 100644 edge-middleware/feature-flag-apple-store/public/favicon.ico create mode 100644 edge-middleware/feature-flag-apple-store/public/vercel.svg create mode 100644 edge-middleware/feature-flag-apple-store/tailwind.config.js create mode 100644 edge-middleware/feature-flag-apple-store/tsconfig.json create mode 100644 edge-middleware/feature-flag-configcat/.env.example create mode 100644 edge-middleware/feature-flag-configcat/.eslintrc.json create mode 100644 edge-middleware/feature-flag-configcat/.gitignore create mode 100644 edge-middleware/feature-flag-configcat/.npmrc create mode 100644 edge-middleware/feature-flag-configcat/README.md create mode 100644 edge-middleware/feature-flag-configcat/components/layout.tsx create mode 100644 edge-middleware/feature-flag-configcat/docs/configcat.png create mode 100644 edge-middleware/feature-flag-configcat/lib/config.json create mode 100644 edge-middleware/feature-flag-configcat/lib/configcat.ts create mode 100644 edge-middleware/feature-flag-configcat/lib/use-configcat.tsx create mode 100644 edge-middleware/feature-flag-configcat/middleware.ts create mode 100644 edge-middleware/feature-flag-configcat/next-env.d.ts create mode 100644 edge-middleware/feature-flag-configcat/next.config.js create mode 100644 edge-middleware/feature-flag-configcat/package.json create mode 100644 edge-middleware/feature-flag-configcat/pages/_app.tsx create mode 100644 edge-middleware/feature-flag-configcat/pages/about/b.tsx create mode 100644 edge-middleware/feature-flag-configcat/pages/about/index.tsx create mode 100644 edge-middleware/feature-flag-configcat/pages/index.tsx create mode 100644 edge-middleware/feature-flag-configcat/pages/marketing/b.tsx create mode 100644 edge-middleware/feature-flag-configcat/pages/marketing/index.tsx create mode 100644 edge-middleware/feature-flag-configcat/postcss.config.js create mode 100644 edge-middleware/feature-flag-configcat/public/favicon.ico create mode 100644 edge-middleware/feature-flag-configcat/scripts/configcat.js create mode 100644 edge-middleware/feature-flag-configcat/tailwind.config.js create mode 100644 edge-middleware/feature-flag-configcat/tsconfig.json create mode 100644 edge-middleware/feature-flag-optimizely/.env.example create mode 100644 edge-middleware/feature-flag-optimizely/.eslintrc.json create mode 100644 edge-middleware/feature-flag-optimizely/.gitignore create mode 100644 edge-middleware/feature-flag-optimizely/.npmrc create mode 100644 edge-middleware/feature-flag-optimizely/README.md create mode 100644 edge-middleware/feature-flag-optimizely/components/page_component.tsx create mode 100644 edge-middleware/feature-flag-optimizely/middleware.ts create mode 100644 edge-middleware/feature-flag-optimizely/next-env.d.ts create mode 100644 edge-middleware/feature-flag-optimizely/next.config.js create mode 100644 edge-middleware/feature-flag-optimizely/package.json create mode 100644 edge-middleware/feature-flag-optimizely/pages/_app.tsx create mode 100644 edge-middleware/feature-flag-optimizely/pages/index.tsx create mode 100644 edge-middleware/feature-flag-optimizely/pages/popular.tsx create mode 100644 edge-middleware/feature-flag-optimizely/postcss.config.js create mode 100644 edge-middleware/feature-flag-optimizely/public/favicon.ico create mode 100644 edge-middleware/feature-flag-optimizely/public/vercel.svg create mode 100644 edge-middleware/feature-flag-optimizely/scripts/fetch_optimizely_datafile.js create mode 100644 edge-middleware/feature-flag-optimizely/styles/Home.module.css create mode 100644 edge-middleware/feature-flag-optimizely/tailwind.config.js create mode 100644 edge-middleware/feature-flag-optimizely/tsconfig.json create mode 100644 edge-middleware/feature-flag-posthog/.env create mode 100644 edge-middleware/feature-flag-posthog/.env.example create mode 100644 edge-middleware/feature-flag-posthog/.eslintrc.json create mode 100644 edge-middleware/feature-flag-posthog/.gitignore create mode 100644 edge-middleware/feature-flag-posthog/.npmrc create mode 100644 edge-middleware/feature-flag-posthog/README.md create mode 100644 edge-middleware/feature-flag-posthog/lib/constants.ts create mode 100644 edge-middleware/feature-flag-posthog/lib/posthog-api.ts create mode 100644 edge-middleware/feature-flag-posthog/lib/posthog.ts create mode 100644 edge-middleware/feature-flag-posthog/middleware.ts create mode 100644 edge-middleware/feature-flag-posthog/next-env.d.ts create mode 100644 edge-middleware/feature-flag-posthog/package.json create mode 100644 edge-middleware/feature-flag-posthog/pages/_app.tsx create mode 100644 edge-middleware/feature-flag-posthog/pages/about/b.tsx create mode 100644 edge-middleware/feature-flag-posthog/pages/about/index.tsx create mode 100644 edge-middleware/feature-flag-posthog/pages/index.tsx create mode 100644 edge-middleware/feature-flag-posthog/pages/marketing/b.tsx create mode 100644 edge-middleware/feature-flag-posthog/pages/marketing/index.tsx create mode 100644 edge-middleware/feature-flag-posthog/pages/product/a.tsx create mode 100644 edge-middleware/feature-flag-posthog/pages/product/index.tsx create mode 100644 edge-middleware/feature-flag-posthog/postcss.config.js create mode 100644 edge-middleware/feature-flag-posthog/public/favicon.ico create mode 100644 edge-middleware/feature-flag-posthog/tailwind.config.js create mode 100644 edge-middleware/feature-flag-posthog/tsconfig.json create mode 100644 edge-middleware/feature-flag-split/.env.example create mode 100644 edge-middleware/feature-flag-split/.eslintrc.json create mode 100644 edge-middleware/feature-flag-split/.gitignore create mode 100644 edge-middleware/feature-flag-split/.npmrc create mode 100644 edge-middleware/feature-flag-split/README.md create mode 100644 edge-middleware/feature-flag-split/lib/split-node.ts create mode 100644 edge-middleware/feature-flag-split/lib/split.ts create mode 100644 edge-middleware/feature-flag-split/middleware.ts create mode 100644 edge-middleware/feature-flag-split/next-env.d.ts create mode 100644 edge-middleware/feature-flag-split/next.config.js create mode 100644 edge-middleware/feature-flag-split/package.json create mode 100644 edge-middleware/feature-flag-split/pages/_app.tsx create mode 100644 edge-middleware/feature-flag-split/pages/about/b.tsx create mode 100644 edge-middleware/feature-flag-split/pages/about/index.tsx create mode 100644 edge-middleware/feature-flag-split/pages/index.tsx create mode 100644 edge-middleware/feature-flag-split/pages/marketing/b.tsx create mode 100644 edge-middleware/feature-flag-split/pages/marketing/index.tsx create mode 100644 edge-middleware/feature-flag-split/postcss.config.js create mode 100644 edge-middleware/feature-flag-split/public/favicon.ico create mode 100644 edge-middleware/feature-flag-split/scripts/split.js create mode 100644 edge-middleware/feature-flag-split/tailwind.config.js create mode 100644 edge-middleware/feature-flag-split/tsconfig.json create mode 100644 edge-middleware/geolocation-country-block/.eslintrc.json create mode 100644 edge-middleware/geolocation-country-block/.gitignore create mode 100644 edge-middleware/geolocation-country-block/README.md create mode 100644 edge-middleware/geolocation-country-block/middleware.ts create mode 100644 edge-middleware/geolocation-country-block/next-env.d.ts create mode 100644 edge-middleware/geolocation-country-block/package.json create mode 100644 edge-middleware/geolocation-country-block/pages/[country].tsx create mode 100644 edge-middleware/geolocation-country-block/pages/blocked.tsx create mode 100644 edge-middleware/geolocation-country-block/postcss.config.js create mode 100644 edge-middleware/geolocation-country-block/public/favicon.ico create mode 100644 edge-middleware/geolocation-country-block/tsconfig.json create mode 100644 edge-middleware/geolocation/.eslintrc.json create mode 100644 edge-middleware/geolocation/.gitignore create mode 100644 edge-middleware/geolocation/README.md create mode 100644 edge-middleware/geolocation/lib/countries.json create mode 100644 edge-middleware/geolocation/middleware.ts create mode 100644 edge-middleware/geolocation/next-env.d.ts create mode 100644 edge-middleware/geolocation/next.config.js create mode 100644 edge-middleware/geolocation/package.json create mode 100644 edge-middleware/geolocation/pages/_app.tsx create mode 100644 edge-middleware/geolocation/pages/index.tsx create mode 100644 edge-middleware/geolocation/postcss.config.js create mode 100644 edge-middleware/geolocation/public/favicon.ico create mode 100644 edge-middleware/geolocation/public/map.svg create mode 100644 edge-middleware/geolocation/scripts/countries.js create mode 100644 edge-middleware/geolocation/tailwind.config.js create mode 100644 edge-middleware/geolocation/tsconfig.json create mode 100644 edge-middleware/hostname-rewrites/.env create mode 100644 edge-middleware/hostname-rewrites/.eslintrc.json create mode 100644 edge-middleware/hostname-rewrites/.gitignore create mode 100644 edge-middleware/hostname-rewrites/.npmrc create mode 100644 edge-middleware/hostname-rewrites/README.md create mode 100644 edge-middleware/hostname-rewrites/lib/db.ts create mode 100644 edge-middleware/hostname-rewrites/middleware.ts create mode 100644 edge-middleware/hostname-rewrites/next-env.d.ts create mode 100644 edge-middleware/hostname-rewrites/package.json create mode 100644 edge-middleware/hostname-rewrites/pages/_app.tsx create mode 100644 edge-middleware/hostname-rewrites/pages/_sites/[site]/about.tsx create mode 100644 edge-middleware/hostname-rewrites/pages/_sites/[site]/index.tsx create mode 100644 edge-middleware/hostname-rewrites/postcss.config.js create mode 100644 edge-middleware/hostname-rewrites/public/favicon.ico create mode 100644 edge-middleware/hostname-rewrites/tailwind.config.js create mode 100644 edge-middleware/hostname-rewrites/tsconfig.json create mode 100644 edge-middleware/i18n/.eslintrc.json create mode 100644 edge-middleware/i18n/.gitignore create mode 100644 edge-middleware/i18n/.npmrc create mode 100644 edge-middleware/i18n/README.md create mode 100644 edge-middleware/i18n/lib/api.ts create mode 100644 edge-middleware/i18n/lib/constants.ts create mode 100644 edge-middleware/i18n/lib/types.ts create mode 100644 edge-middleware/i18n/middleware.ts create mode 100644 edge-middleware/i18n/next-env.d.ts create mode 100644 edge-middleware/i18n/package.json create mode 100644 edge-middleware/i18n/pages/[locale]/[country].tsx create mode 100644 edge-middleware/i18n/pages/_app.tsx create mode 100644 edge-middleware/i18n/postcss.config.js create mode 100644 edge-middleware/i18n/public/favicon.ico create mode 100644 edge-middleware/i18n/public/flags/ad.svg create mode 100644 edge-middleware/i18n/public/flags/ae.svg create mode 100644 edge-middleware/i18n/public/flags/af.svg create mode 100644 edge-middleware/i18n/public/flags/ag.svg create mode 100644 edge-middleware/i18n/public/flags/ai.svg create mode 100644 edge-middleware/i18n/public/flags/al.svg create mode 100644 edge-middleware/i18n/public/flags/am.svg create mode 100644 edge-middleware/i18n/public/flags/ao.svg create mode 100644 edge-middleware/i18n/public/flags/aq.svg create mode 100644 edge-middleware/i18n/public/flags/ar.svg create mode 100644 edge-middleware/i18n/public/flags/as.svg create mode 100644 edge-middleware/i18n/public/flags/at.svg create mode 100644 edge-middleware/i18n/public/flags/au.svg create mode 100644 edge-middleware/i18n/public/flags/aw.svg create mode 100644 edge-middleware/i18n/public/flags/ax.svg create mode 100644 edge-middleware/i18n/public/flags/az.svg create mode 100644 edge-middleware/i18n/public/flags/ba.svg create mode 100644 edge-middleware/i18n/public/flags/bb.svg create mode 100644 edge-middleware/i18n/public/flags/bd.svg create mode 100644 edge-middleware/i18n/public/flags/be.svg create mode 100644 edge-middleware/i18n/public/flags/bf.svg create mode 100644 edge-middleware/i18n/public/flags/bg.svg create mode 100644 edge-middleware/i18n/public/flags/bh.svg create mode 100644 edge-middleware/i18n/public/flags/bi.svg create mode 100644 edge-middleware/i18n/public/flags/bj.svg create mode 100644 edge-middleware/i18n/public/flags/bl.svg create mode 100644 edge-middleware/i18n/public/flags/bm.svg create mode 100644 edge-middleware/i18n/public/flags/bn.svg create mode 100644 edge-middleware/i18n/public/flags/bo.svg create mode 100644 edge-middleware/i18n/public/flags/bq.svg create mode 100644 edge-middleware/i18n/public/flags/br.svg create mode 100644 edge-middleware/i18n/public/flags/bs.svg create mode 100644 edge-middleware/i18n/public/flags/bt.svg create mode 100644 edge-middleware/i18n/public/flags/bv.svg create mode 100644 edge-middleware/i18n/public/flags/bw.svg create mode 100644 edge-middleware/i18n/public/flags/by.svg create mode 100644 edge-middleware/i18n/public/flags/bz.svg create mode 100644 edge-middleware/i18n/public/flags/ca.svg create mode 100644 edge-middleware/i18n/public/flags/cc.svg create mode 100644 edge-middleware/i18n/public/flags/cd.svg create mode 100644 edge-middleware/i18n/public/flags/cf.svg create mode 100644 edge-middleware/i18n/public/flags/cg.svg create mode 100644 edge-middleware/i18n/public/flags/ch.svg create mode 100644 edge-middleware/i18n/public/flags/ci.svg create mode 100644 edge-middleware/i18n/public/flags/ck.svg create mode 100644 edge-middleware/i18n/public/flags/cl.svg create mode 100644 edge-middleware/i18n/public/flags/cm.svg create mode 100644 edge-middleware/i18n/public/flags/cn.svg create mode 100644 edge-middleware/i18n/public/flags/co.svg create mode 100644 edge-middleware/i18n/public/flags/cr.svg create mode 100644 edge-middleware/i18n/public/flags/cu.svg create mode 100644 edge-middleware/i18n/public/flags/cv.svg create mode 100644 edge-middleware/i18n/public/flags/cw.svg create mode 100644 edge-middleware/i18n/public/flags/cx.svg create mode 100644 edge-middleware/i18n/public/flags/cy.svg create mode 100644 edge-middleware/i18n/public/flags/cz.svg create mode 100644 edge-middleware/i18n/public/flags/de.svg create mode 100644 edge-middleware/i18n/public/flags/dj.svg create mode 100644 edge-middleware/i18n/public/flags/dk.svg create mode 100644 edge-middleware/i18n/public/flags/dm.svg create mode 100644 edge-middleware/i18n/public/flags/do.svg create mode 100644 edge-middleware/i18n/public/flags/dz.svg create mode 100644 edge-middleware/i18n/public/flags/ec.svg create mode 100644 edge-middleware/i18n/public/flags/ee.svg create mode 100644 edge-middleware/i18n/public/flags/eg.svg create mode 100644 edge-middleware/i18n/public/flags/eh.svg create mode 100644 edge-middleware/i18n/public/flags/er.svg create mode 100644 edge-middleware/i18n/public/flags/es-ct.svg create mode 100644 edge-middleware/i18n/public/flags/es-ga.svg create mode 100644 edge-middleware/i18n/public/flags/es.svg create mode 100644 edge-middleware/i18n/public/flags/et.svg create mode 100644 edge-middleware/i18n/public/flags/eu.svg create mode 100644 edge-middleware/i18n/public/flags/fi.svg create mode 100644 edge-middleware/i18n/public/flags/fj.svg create mode 100644 edge-middleware/i18n/public/flags/fk.svg create mode 100644 edge-middleware/i18n/public/flags/fm.svg create mode 100644 edge-middleware/i18n/public/flags/fo.svg create mode 100644 edge-middleware/i18n/public/flags/fr.svg create mode 100644 edge-middleware/i18n/public/flags/ga.svg create mode 100644 edge-middleware/i18n/public/flags/gb-eng.svg create mode 100644 edge-middleware/i18n/public/flags/gb-nir.svg create mode 100644 edge-middleware/i18n/public/flags/gb-sct.svg create mode 100644 edge-middleware/i18n/public/flags/gb-wls.svg create mode 100644 edge-middleware/i18n/public/flags/gb.svg create mode 100644 edge-middleware/i18n/public/flags/gd.svg create mode 100644 edge-middleware/i18n/public/flags/ge.svg create mode 100644 edge-middleware/i18n/public/flags/gf.svg create mode 100644 edge-middleware/i18n/public/flags/gg.svg create mode 100644 edge-middleware/i18n/public/flags/gh.svg create mode 100644 edge-middleware/i18n/public/flags/gi.svg create mode 100644 edge-middleware/i18n/public/flags/gl.svg create mode 100644 edge-middleware/i18n/public/flags/gm.svg create mode 100644 edge-middleware/i18n/public/flags/gn.svg create mode 100644 edge-middleware/i18n/public/flags/gp.svg create mode 100644 edge-middleware/i18n/public/flags/gq.svg create mode 100644 edge-middleware/i18n/public/flags/gr.svg create mode 100644 edge-middleware/i18n/public/flags/gs.svg create mode 100644 edge-middleware/i18n/public/flags/gt.svg create mode 100644 edge-middleware/i18n/public/flags/gu.svg create mode 100644 edge-middleware/i18n/public/flags/gw.svg create mode 100644 edge-middleware/i18n/public/flags/gy.svg create mode 100644 edge-middleware/i18n/public/flags/hk.svg create mode 100644 edge-middleware/i18n/public/flags/hm.svg create mode 100644 edge-middleware/i18n/public/flags/hn.svg create mode 100644 edge-middleware/i18n/public/flags/hr.svg create mode 100644 edge-middleware/i18n/public/flags/ht.svg create mode 100644 edge-middleware/i18n/public/flags/hu.svg create mode 100644 edge-middleware/i18n/public/flags/id.svg create mode 100644 edge-middleware/i18n/public/flags/ie.svg create mode 100644 edge-middleware/i18n/public/flags/il.svg create mode 100644 edge-middleware/i18n/public/flags/im.svg create mode 100644 edge-middleware/i18n/public/flags/in.svg create mode 100644 edge-middleware/i18n/public/flags/io.svg create mode 100644 edge-middleware/i18n/public/flags/iq.svg create mode 100644 edge-middleware/i18n/public/flags/ir.svg create mode 100644 edge-middleware/i18n/public/flags/is.svg create mode 100644 edge-middleware/i18n/public/flags/it.svg create mode 100644 edge-middleware/i18n/public/flags/je.svg create mode 100644 edge-middleware/i18n/public/flags/jm.svg create mode 100644 edge-middleware/i18n/public/flags/jo.svg create mode 100644 edge-middleware/i18n/public/flags/jp.svg create mode 100644 edge-middleware/i18n/public/flags/ke.svg create mode 100644 edge-middleware/i18n/public/flags/kg.svg create mode 100644 edge-middleware/i18n/public/flags/kh.svg create mode 100644 edge-middleware/i18n/public/flags/ki.svg create mode 100644 edge-middleware/i18n/public/flags/km.svg create mode 100644 edge-middleware/i18n/public/flags/kn.svg create mode 100644 edge-middleware/i18n/public/flags/kp.svg create mode 100644 edge-middleware/i18n/public/flags/kr.svg create mode 100644 edge-middleware/i18n/public/flags/kw.svg create mode 100644 edge-middleware/i18n/public/flags/ky.svg create mode 100644 edge-middleware/i18n/public/flags/kz.svg create mode 100644 edge-middleware/i18n/public/flags/la.svg create mode 100644 edge-middleware/i18n/public/flags/lb.svg create mode 100644 edge-middleware/i18n/public/flags/lc.svg create mode 100644 edge-middleware/i18n/public/flags/li.svg create mode 100644 edge-middleware/i18n/public/flags/lk.svg create mode 100644 edge-middleware/i18n/public/flags/lr.svg create mode 100644 edge-middleware/i18n/public/flags/ls.svg create mode 100644 edge-middleware/i18n/public/flags/lt.svg create mode 100644 edge-middleware/i18n/public/flags/lu.svg create mode 100644 edge-middleware/i18n/public/flags/lv.svg create mode 100644 edge-middleware/i18n/public/flags/ly.svg create mode 100644 edge-middleware/i18n/public/flags/ma.svg create mode 100644 edge-middleware/i18n/public/flags/mc.svg create mode 100644 edge-middleware/i18n/public/flags/md.svg create mode 100644 edge-middleware/i18n/public/flags/me.svg create mode 100644 edge-middleware/i18n/public/flags/mf.svg create mode 100644 edge-middleware/i18n/public/flags/mg.svg create mode 100644 edge-middleware/i18n/public/flags/mh.svg create mode 100644 edge-middleware/i18n/public/flags/mk.svg create mode 100644 edge-middleware/i18n/public/flags/ml.svg create mode 100644 edge-middleware/i18n/public/flags/mm.svg create mode 100644 edge-middleware/i18n/public/flags/mn.svg create mode 100644 edge-middleware/i18n/public/flags/mo.svg create mode 100644 edge-middleware/i18n/public/flags/mp.svg create mode 100644 edge-middleware/i18n/public/flags/mq.svg create mode 100644 edge-middleware/i18n/public/flags/mr.svg create mode 100644 edge-middleware/i18n/public/flags/ms.svg create mode 100644 edge-middleware/i18n/public/flags/mt.svg create mode 100644 edge-middleware/i18n/public/flags/mu.svg create mode 100644 edge-middleware/i18n/public/flags/mv.svg create mode 100644 edge-middleware/i18n/public/flags/mw.svg create mode 100644 edge-middleware/i18n/public/flags/mx.svg create mode 100644 edge-middleware/i18n/public/flags/my.svg create mode 100644 edge-middleware/i18n/public/flags/mz.svg create mode 100644 edge-middleware/i18n/public/flags/na.svg create mode 100644 edge-middleware/i18n/public/flags/nc.svg create mode 100644 edge-middleware/i18n/public/flags/ne.svg create mode 100644 edge-middleware/i18n/public/flags/nf.svg create mode 100644 edge-middleware/i18n/public/flags/ng.svg create mode 100644 edge-middleware/i18n/public/flags/ni.svg create mode 100644 edge-middleware/i18n/public/flags/nl.svg create mode 100644 edge-middleware/i18n/public/flags/no.svg create mode 100644 edge-middleware/i18n/public/flags/np.svg create mode 100644 edge-middleware/i18n/public/flags/nr.svg create mode 100644 edge-middleware/i18n/public/flags/nu.svg create mode 100644 edge-middleware/i18n/public/flags/nz.svg create mode 100644 edge-middleware/i18n/public/flags/om.svg create mode 100644 edge-middleware/i18n/public/flags/pa.svg create mode 100644 edge-middleware/i18n/public/flags/pe.svg create mode 100644 edge-middleware/i18n/public/flags/pf.svg create mode 100644 edge-middleware/i18n/public/flags/pg.svg create mode 100644 edge-middleware/i18n/public/flags/ph.svg create mode 100644 edge-middleware/i18n/public/flags/pk.svg create mode 100644 edge-middleware/i18n/public/flags/pl.svg create mode 100644 edge-middleware/i18n/public/flags/pm.svg create mode 100644 edge-middleware/i18n/public/flags/pn.svg create mode 100644 edge-middleware/i18n/public/flags/pr.svg create mode 100644 edge-middleware/i18n/public/flags/ps.svg create mode 100644 edge-middleware/i18n/public/flags/pt.svg create mode 100644 edge-middleware/i18n/public/flags/pw.svg create mode 100644 edge-middleware/i18n/public/flags/py.svg create mode 100644 edge-middleware/i18n/public/flags/qa.svg create mode 100644 edge-middleware/i18n/public/flags/re.svg create mode 100644 edge-middleware/i18n/public/flags/ro.svg create mode 100644 edge-middleware/i18n/public/flags/rs.svg create mode 100644 edge-middleware/i18n/public/flags/ru.svg create mode 100644 edge-middleware/i18n/public/flags/rw.svg create mode 100644 edge-middleware/i18n/public/flags/sa.svg create mode 100644 edge-middleware/i18n/public/flags/sb.svg create mode 100644 edge-middleware/i18n/public/flags/sc.svg create mode 100644 edge-middleware/i18n/public/flags/sd.svg create mode 100644 edge-middleware/i18n/public/flags/se.svg create mode 100644 edge-middleware/i18n/public/flags/sg.svg create mode 100644 edge-middleware/i18n/public/flags/sh.svg create mode 100644 edge-middleware/i18n/public/flags/si.svg create mode 100644 edge-middleware/i18n/public/flags/sj.svg create mode 100644 edge-middleware/i18n/public/flags/sk.svg create mode 100644 edge-middleware/i18n/public/flags/sl.svg create mode 100644 edge-middleware/i18n/public/flags/sm.svg create mode 100644 edge-middleware/i18n/public/flags/sn.svg create mode 100644 edge-middleware/i18n/public/flags/so.svg create mode 100644 edge-middleware/i18n/public/flags/sr.svg create mode 100644 edge-middleware/i18n/public/flags/ss.svg create mode 100644 edge-middleware/i18n/public/flags/st.svg create mode 100644 edge-middleware/i18n/public/flags/sv.svg create mode 100644 edge-middleware/i18n/public/flags/sx.svg create mode 100644 edge-middleware/i18n/public/flags/sy.svg create mode 100644 edge-middleware/i18n/public/flags/sz.svg create mode 100644 edge-middleware/i18n/public/flags/tc.svg create mode 100644 edge-middleware/i18n/public/flags/td.svg create mode 100644 edge-middleware/i18n/public/flags/tf.svg create mode 100644 edge-middleware/i18n/public/flags/tg.svg create mode 100644 edge-middleware/i18n/public/flags/th.svg create mode 100644 edge-middleware/i18n/public/flags/tj.svg create mode 100644 edge-middleware/i18n/public/flags/tk.svg create mode 100644 edge-middleware/i18n/public/flags/tl.svg create mode 100644 edge-middleware/i18n/public/flags/tm.svg create mode 100644 edge-middleware/i18n/public/flags/tn.svg create mode 100644 edge-middleware/i18n/public/flags/to.svg create mode 100644 edge-middleware/i18n/public/flags/tr.svg create mode 100644 edge-middleware/i18n/public/flags/tt.svg create mode 100644 edge-middleware/i18n/public/flags/tv.svg create mode 100644 edge-middleware/i18n/public/flags/tw.svg create mode 100644 edge-middleware/i18n/public/flags/tz.svg create mode 100644 edge-middleware/i18n/public/flags/ua.svg create mode 100644 edge-middleware/i18n/public/flags/ug.svg create mode 100644 edge-middleware/i18n/public/flags/um.svg create mode 100644 edge-middleware/i18n/public/flags/un.svg create mode 100644 edge-middleware/i18n/public/flags/us.svg create mode 100644 edge-middleware/i18n/public/flags/uy.svg create mode 100644 edge-middleware/i18n/public/flags/uz.svg create mode 100644 edge-middleware/i18n/public/flags/va.svg create mode 100644 edge-middleware/i18n/public/flags/vc.svg create mode 100644 edge-middleware/i18n/public/flags/ve.svg create mode 100644 edge-middleware/i18n/public/flags/vg.svg create mode 100644 edge-middleware/i18n/public/flags/vi.svg create mode 100644 edge-middleware/i18n/public/flags/vn.svg create mode 100644 edge-middleware/i18n/public/flags/vu.svg create mode 100644 edge-middleware/i18n/public/flags/wf.svg create mode 100644 edge-middleware/i18n/public/flags/ws.svg create mode 100644 edge-middleware/i18n/public/flags/xk.svg create mode 100644 edge-middleware/i18n/public/flags/ye.svg create mode 100644 edge-middleware/i18n/public/flags/yt.svg create mode 100644 edge-middleware/i18n/public/flags/za.svg create mode 100644 edge-middleware/i18n/public/flags/zm.svg create mode 100644 edge-middleware/i18n/public/flags/zw.svg create mode 100644 edge-middleware/i18n/public/map.svg create mode 100644 edge-middleware/i18n/tailwind.config.js create mode 100644 edge-middleware/i18n/tsconfig.json create mode 100644 edge-middleware/image-response/.eslintrc.json create mode 100644 edge-middleware/image-response/.gitignore create mode 100644 edge-middleware/image-response/.npmrc create mode 100644 edge-middleware/image-response/README.md create mode 100644 edge-middleware/image-response/middleware.ts create mode 100644 edge-middleware/image-response/next-env.d.ts create mode 100644 edge-middleware/image-response/package.json create mode 100644 edge-middleware/image-response/pages/api/img.ts create mode 100644 edge-middleware/image-response/public/favicon.ico create mode 100644 edge-middleware/image-response/tsconfig.json create mode 100644 edge-middleware/ip-blocking-datadome/.env.example create mode 100644 edge-middleware/ip-blocking-datadome/.eslintrc.json create mode 100644 edge-middleware/ip-blocking-datadome/.gitignore create mode 100644 edge-middleware/ip-blocking-datadome/.npmrc create mode 100644 edge-middleware/ip-blocking-datadome/README.md create mode 100644 edge-middleware/ip-blocking-datadome/lib/constants.ts create mode 100644 edge-middleware/ip-blocking-datadome/lib/datadome-ip.ts create mode 100644 edge-middleware/ip-blocking-datadome/lib/datadome.ts create mode 100644 edge-middleware/ip-blocking-datadome/lib/fetch-api.ts create mode 100644 edge-middleware/ip-blocking-datadome/middleware.ts create mode 100644 edge-middleware/ip-blocking-datadome/next-env.d.ts create mode 100644 edge-middleware/ip-blocking-datadome/package.json create mode 100644 edge-middleware/ip-blocking-datadome/pages/_app.tsx create mode 100644 edge-middleware/ip-blocking-datadome/pages/api/rules/add.tsx create mode 100644 edge-middleware/ip-blocking-datadome/pages/api/rules/index.tsx create mode 100644 edge-middleware/ip-blocking-datadome/pages/api/rules/remove.tsx create mode 100644 edge-middleware/ip-blocking-datadome/pages/index.tsx create mode 100644 edge-middleware/ip-blocking-datadome/postcss.config.js create mode 100644 edge-middleware/ip-blocking-datadome/public/favicon.ico create mode 100644 edge-middleware/ip-blocking-datadome/tailwind.config.js create mode 100644 edge-middleware/ip-blocking-datadome/tsconfig.json create mode 100644 edge-middleware/ip-blocking/.env.example create mode 100644 edge-middleware/ip-blocking/.eslintrc.json create mode 100644 edge-middleware/ip-blocking/.gitignore create mode 100644 edge-middleware/ip-blocking/.npmrc create mode 100644 edge-middleware/ip-blocking/README.md create mode 100644 edge-middleware/ip-blocking/lib/fetch-api.ts create mode 100644 edge-middleware/ip-blocking/lib/get-ip.ts create mode 100644 edge-middleware/ip-blocking/lib/rules/constants.ts create mode 100644 edge-middleware/ip-blocking/lib/rules/ip.ts create mode 100644 edge-middleware/ip-blocking/lib/upstash.ts create mode 100644 edge-middleware/ip-blocking/middleware.ts create mode 100644 edge-middleware/ip-blocking/next-env.d.ts create mode 100644 edge-middleware/ip-blocking/package.json create mode 100644 edge-middleware/ip-blocking/pages/_app.tsx create mode 100644 edge-middleware/ip-blocking/pages/am-i-blocked.tsx create mode 100644 edge-middleware/ip-blocking/pages/api/rules/ip.ts create mode 100644 edge-middleware/ip-blocking/pages/blocked.tsx create mode 100644 edge-middleware/ip-blocking/pages/index.tsx create mode 100644 edge-middleware/ip-blocking/postcss.config.js create mode 100644 edge-middleware/ip-blocking/public/favicon.ico create mode 100644 edge-middleware/ip-blocking/tailwind.config.js create mode 100644 edge-middleware/ip-blocking/tsconfig.json create mode 100644 edge-middleware/json-response/.eslintrc.json create mode 100644 edge-middleware/json-response/.gitignore create mode 100644 edge-middleware/json-response/.npmrc create mode 100644 edge-middleware/json-response/README.md create mode 100644 edge-middleware/json-response/middleware.ts create mode 100644 edge-middleware/json-response/next-env.d.ts create mode 100644 edge-middleware/json-response/package.json create mode 100644 edge-middleware/json-response/pages/index.tsx create mode 100644 edge-middleware/json-response/public/favicon.ico create mode 100644 edge-middleware/json-response/tsconfig.json create mode 100644 edge-middleware/jwt-authentication/.env.example create mode 100644 edge-middleware/jwt-authentication/.eslintrc.json create mode 100644 edge-middleware/jwt-authentication/.gitignore create mode 100644 edge-middleware/jwt-authentication/.npmrc create mode 100644 edge-middleware/jwt-authentication/README.md create mode 100644 edge-middleware/jwt-authentication/lib/auth.ts create mode 100644 edge-middleware/jwt-authentication/lib/constants.ts create mode 100644 edge-middleware/jwt-authentication/lib/utils.ts create mode 100644 edge-middleware/jwt-authentication/middleware.ts create mode 100644 edge-middleware/jwt-authentication/next-env.d.ts create mode 100644 edge-middleware/jwt-authentication/next.config.js create mode 100644 edge-middleware/jwt-authentication/package.json create mode 100644 edge-middleware/jwt-authentication/pages/_app.tsx create mode 100644 edge-middleware/jwt-authentication/pages/api/auth.ts create mode 100644 edge-middleware/jwt-authentication/pages/api/expire.ts create mode 100644 edge-middleware/jwt-authentication/pages/api/protected.ts create mode 100644 edge-middleware/jwt-authentication/pages/index.tsx create mode 100644 edge-middleware/jwt-authentication/pages/protected.tsx create mode 100644 edge-middleware/jwt-authentication/postcss.config.js create mode 100644 edge-middleware/jwt-authentication/public/favicon.ico create mode 100644 edge-middleware/jwt-authentication/tailwind.config.js create mode 100644 edge-middleware/jwt-authentication/tsconfig.json create mode 100644 edge-middleware/maintenance-page/.env.example create mode 100644 edge-middleware/maintenance-page/.eslintrc.json create mode 100644 edge-middleware/maintenance-page/.gitignore create mode 100644 edge-middleware/maintenance-page/.npmrc create mode 100644 edge-middleware/maintenance-page/README.md create mode 100644 edge-middleware/maintenance-page/middleware.ts create mode 100644 edge-middleware/maintenance-page/next-env.d.ts create mode 100644 edge-middleware/maintenance-page/package.json create mode 100644 edge-middleware/maintenance-page/pages/_app.tsx create mode 100644 edge-middleware/maintenance-page/pages/big-promo.tsx create mode 100644 edge-middleware/maintenance-page/pages/index.tsx create mode 100644 edge-middleware/maintenance-page/pages/maintenance.tsx create mode 100644 edge-middleware/maintenance-page/pages/missing-edge-config.tsx create mode 100644 edge-middleware/maintenance-page/postcss.config.js create mode 100644 edge-middleware/maintenance-page/public/board.jpg create mode 100644 edge-middleware/maintenance-page/public/favicon.ico create mode 100644 edge-middleware/maintenance-page/tailwind.config.js create mode 100644 edge-middleware/maintenance-page/tsconfig.json create mode 100644 edge-middleware/modify-request-header/.eslintrc.json create mode 100644 edge-middleware/modify-request-header/.gitignore create mode 100644 edge-middleware/modify-request-header/.npmrc create mode 100644 edge-middleware/modify-request-header/README.md create mode 100644 edge-middleware/modify-request-header/middleware.ts create mode 100644 edge-middleware/modify-request-header/next-env.d.ts create mode 100644 edge-middleware/modify-request-header/package.json create mode 100644 edge-middleware/modify-request-header/pages/_app.tsx create mode 100644 edge-middleware/modify-request-header/pages/index.tsx create mode 100644 edge-middleware/modify-request-header/postcss.config.js create mode 100644 edge-middleware/modify-request-header/public/favicon.ico create mode 100644 edge-middleware/modify-request-header/tailwind.config.js create mode 100644 edge-middleware/modify-request-header/tsconfig.json create mode 100644 edge-middleware/next-news/.eslintrc.json create mode 100644 edge-middleware/next-news/.gitignore create mode 100644 edge-middleware/next-news/README.md create mode 100644 edge-middleware/next-news/components/comment-form.tsx create mode 100644 edge-middleware/next-news/components/comment.tsx create mode 100644 edge-middleware/next-news/components/header.tsx create mode 100644 edge-middleware/next-news/components/item.tsx create mode 100644 edge-middleware/next-news/components/login-form.tsx create mode 100644 edge-middleware/next-news/components/logo.tsx create mode 100644 edge-middleware/next-news/components/meta.tsx create mode 100644 edge-middleware/next-news/components/nav.tsx create mode 100644 edge-middleware/next-news/components/page.tsx create mode 100644 edge-middleware/next-news/components/stories.tsx create mode 100644 edge-middleware/next-news/components/story.tsx create mode 100644 edge-middleware/next-news/components/updating-story.tsx create mode 100644 edge-middleware/next-news/lib/db.ts create mode 100644 edge-middleware/next-news/lib/get-comments.ts create mode 100644 edge-middleware/next-news/lib/get-item.ts create mode 100644 edge-middleware/next-news/lib/get-stories.ts create mode 100644 edge-middleware/next-news/lib/time-ago.ts create mode 100644 edge-middleware/next-news/next-env.d.ts create mode 100644 edge-middleware/next-news/next.config.mjs create mode 100644 edge-middleware/next-news/package.json create mode 100644 edge-middleware/next-news/pages/ask.tsx create mode 100644 edge-middleware/next-news/pages/item/[id].tsx create mode 100644 edge-middleware/next-news/pages/jobs.tsx create mode 100644 edge-middleware/next-news/pages/login.tsx create mode 100644 edge-middleware/next-news/pages/newest.tsx create mode 100644 edge-middleware/next-news/pages/news/[page].tsx create mode 100644 edge-middleware/next-news/pages/show.tsx create mode 100644 edge-middleware/next-news/pages/submit.tsx create mode 100644 edge-middleware/next-news/pages/user.tsx create mode 100644 edge-middleware/next-news/public/favicon.ico create mode 100644 edge-middleware/next-news/tsconfig.json create mode 100644 edge-middleware/personalization-builder-io/.env.production.example create mode 100644 edge-middleware/personalization-builder-io/.eslintrc.json create mode 100644 edge-middleware/personalization-builder-io/.gitignore create mode 100644 edge-middleware/personalization-builder-io/.prettierignore create mode 100644 edge-middleware/personalization-builder-io/README.md create mode 100644 edge-middleware/personalization-builder-io/assets/index.css create mode 100644 edge-middleware/personalization-builder-io/components/Link/Link.tsx create mode 100644 edge-middleware/personalization-builder-io/config/builder.ts create mode 100644 edge-middleware/personalization-builder-io/next-env.d.ts create mode 100644 edge-middleware/personalization-builder-io/next.config.js create mode 100644 edge-middleware/personalization-builder-io/package.json create mode 100644 edge-middleware/personalization-builder-io/pages/[[...path]].tsx create mode 100644 edge-middleware/personalization-builder-io/pages/_app.tsx create mode 100644 edge-middleware/personalization-builder-io/pages/_middleware.tsx create mode 100644 edge-middleware/personalization-builder-io/pages/api/attributes.ts create mode 100644 edge-middleware/personalization-builder-io/postcss.config.js create mode 100644 edge-middleware/personalization-builder-io/tailwind.config.js create mode 100644 edge-middleware/personalization-builder-io/tsconfig.json create mode 100644 edge-middleware/power-parity-pricing-strategies/.eslintrc.json create mode 100644 edge-middleware/power-parity-pricing-strategies/.gitignore create mode 100644 edge-middleware/power-parity-pricing-strategies/PPP.md create mode 100644 edge-middleware/power-parity-pricing-strategies/README.md create mode 100644 edge-middleware/power-parity-pricing-strategies/api.ts create mode 100644 edge-middleware/power-parity-pricing-strategies/constants.ts create mode 100644 edge-middleware/power-parity-pricing-strategies/middleware.ts create mode 100644 edge-middleware/power-parity-pricing-strategies/next-env.d.ts create mode 100644 edge-middleware/power-parity-pricing-strategies/next.config.js create mode 100644 edge-middleware/power-parity-pricing-strategies/package.json create mode 100644 edge-middleware/power-parity-pricing-strategies/pages/404.tsx create mode 100644 edge-middleware/power-parity-pricing-strategies/pages/_app.tsx create mode 100644 edge-middleware/power-parity-pricing-strategies/pages/edge/[country].tsx create mode 100644 edge-middleware/power-parity-pricing-strategies/pages/ssr.tsx create mode 100644 edge-middleware/power-parity-pricing-strategies/pages/static.tsx create mode 100644 edge-middleware/power-parity-pricing-strategies/postcss.config.js create mode 100644 edge-middleware/power-parity-pricing-strategies/public/favicon.ico create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ad.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ae.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/af.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ag.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ai.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/al.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/am.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ao.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/aq.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ar.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/as.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/at.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/au.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/aw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ax.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/az.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ba.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bb.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bd.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/be.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bh.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bi.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bj.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bl.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bo.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bq.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/br.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bs.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bt.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bv.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/by.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/bz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ca.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cc.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cd.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ch.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ci.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ck.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cl.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/co.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cv.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cx.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cy.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/cz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/de.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/dj.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/dk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/dm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/do.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/dz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ec.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ee.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/eg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/eh.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/er.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/es-ct.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/es-ga.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/es.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/et.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/eu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/fi.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/fj.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/fk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/fm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/fo.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/fr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ga.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gb-eng.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gb-nir.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gb-sct.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gb-wls.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gb.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gd.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ge.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gh.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gi.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gl.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gp.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gq.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gs.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gt.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/gy.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/hk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/hm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/hn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/hr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ht.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/hu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/id.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ie.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/il.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/im.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/in.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/io.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/iq.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ir.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/is.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/it.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/je.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/jm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/jo.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/jp.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ke.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/kg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/kh.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ki.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/km.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/kn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/kp.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/kr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/kw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ky.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/kz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/la.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/lb.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/lc.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/li.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/lk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/lr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ls.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/lt.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/lu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/lv.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ly.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ma.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mc.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/md.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/me.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mh.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ml.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mo.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mp.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mq.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ms.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mt.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mv.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mx.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/my.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/mz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/na.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/nc.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ne.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/nf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ng.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ni.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/nl.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/no.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/np.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/nr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/nu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/nz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/om.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pa.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pe.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ph.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pl.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ps.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pt.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/pw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/py.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/qa.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/re.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ro.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/rs.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ru.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/rw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sa.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sb.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sc.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sd.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/se.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sh.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/si.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sj.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sl.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/so.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ss.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/st.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sv.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sx.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sy.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/sz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tc.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/td.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/th.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tj.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tl.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/to.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tr.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tt.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tv.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/tz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ua.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ug.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/um.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/un.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/us.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/uy.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/uz.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/va.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/vc.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ve.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/vg.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/vi.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/vn.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/vu.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/wf.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ws.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/xk.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/ye.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/yt.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/za.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/zm.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/flags/zw.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/map.svg create mode 100644 edge-middleware/power-parity-pricing-strategies/public/mug.png create mode 100644 edge-middleware/power-parity-pricing-strategies/tailwind.config.js create mode 100644 edge-middleware/power-parity-pricing-strategies/tsconfig.json create mode 100644 edge-middleware/power-parity-pricing-strategies/types.ts create mode 100644 edge-middleware/power-parity-pricing-strategies/utils.ts create mode 100644 edge-middleware/power-parity-pricing/.eslintrc.json create mode 100644 edge-middleware/power-parity-pricing/.gitignore create mode 100644 edge-middleware/power-parity-pricing/README.md create mode 100644 edge-middleware/power-parity-pricing/api.ts create mode 100644 edge-middleware/power-parity-pricing/constants.ts create mode 100644 edge-middleware/power-parity-pricing/middleware.ts create mode 100644 edge-middleware/power-parity-pricing/next-env.d.ts create mode 100644 edge-middleware/power-parity-pricing/next.config.js create mode 100644 edge-middleware/power-parity-pricing/package.json create mode 100644 edge-middleware/power-parity-pricing/pages/[country].tsx create mode 100644 edge-middleware/power-parity-pricing/pages/_app.tsx create mode 100644 edge-middleware/power-parity-pricing/postcss.config.js create mode 100644 edge-middleware/power-parity-pricing/public/favicon.ico create mode 100644 edge-middleware/power-parity-pricing/public/map.svg create mode 100644 edge-middleware/power-parity-pricing/public/shirt.png create mode 100644 edge-middleware/power-parity-pricing/tailwind.config.js create mode 100644 edge-middleware/power-parity-pricing/tsconfig.json create mode 100644 edge-middleware/power-parity-pricing/types.ts create mode 100644 edge-middleware/power-parity-pricing/utils.ts create mode 100644 edge-middleware/query-params-filter/.eslintrc.json create mode 100644 edge-middleware/query-params-filter/.gitignore create mode 100644 edge-middleware/query-params-filter/.npmrc create mode 100644 edge-middleware/query-params-filter/README.md create mode 100644 edge-middleware/query-params-filter/middleware.ts create mode 100644 edge-middleware/query-params-filter/next-env.d.ts create mode 100644 edge-middleware/query-params-filter/package.json create mode 100644 edge-middleware/query-params-filter/pages/_app.tsx create mode 100644 edge-middleware/query-params-filter/pages/index.tsx create mode 100644 edge-middleware/query-params-filter/postcss.config.js create mode 100644 edge-middleware/query-params-filter/public/favicon.ico create mode 100644 edge-middleware/query-params-filter/tailwind.config.js create mode 100644 edge-middleware/query-params-filter/tsconfig.json create mode 100644 edge-middleware/redirects-upstash/.env create mode 100644 edge-middleware/redirects-upstash/.env.example create mode 100644 edge-middleware/redirects-upstash/.eslintrc.json create mode 100644 edge-middleware/redirects-upstash/.gitignore create mode 100644 edge-middleware/redirects-upstash/.npmrc create mode 100644 edge-middleware/redirects-upstash/README.md create mode 100644 edge-middleware/redirects-upstash/lib/redirects.ts create mode 100644 edge-middleware/redirects-upstash/lib/upstash.ts create mode 100644 edge-middleware/redirects-upstash/middleware.ts create mode 100644 edge-middleware/redirects-upstash/next-env.d.ts create mode 100644 edge-middleware/redirects-upstash/next.config.js create mode 100644 edge-middleware/redirects-upstash/package.json create mode 100644 edge-middleware/redirects-upstash/pages/_app.tsx create mode 100644 edge-middleware/redirects-upstash/pages/index.tsx create mode 100644 edge-middleware/redirects-upstash/pages/posts/[slug].tsx create mode 100644 edge-middleware/redirects-upstash/postcss.config.js create mode 100644 edge-middleware/redirects-upstash/public/favicon.ico create mode 100644 edge-middleware/redirects-upstash/scripts/upstash.js create mode 100644 edge-middleware/redirects-upstash/styles.css create mode 100644 edge-middleware/redirects-upstash/tailwind.config.js create mode 100644 edge-middleware/redirects-upstash/tsconfig.json create mode 100644 edge-middleware/rewrites-upstash/.eslintrc.json create mode 100644 edge-middleware/rewrites-upstash/.gitignore create mode 100644 edge-middleware/rewrites-upstash/.npmrc create mode 100644 edge-middleware/rewrites-upstash/README.md create mode 100644 edge-middleware/rewrites-upstash/api.ts create mode 100644 edge-middleware/rewrites-upstash/components/ProductCard.tsx create mode 100644 edge-middleware/rewrites-upstash/middleware.ts create mode 100644 edge-middleware/rewrites-upstash/next-env.d.ts create mode 100644 edge-middleware/rewrites-upstash/package.json create mode 100644 edge-middleware/rewrites-upstash/pages/_app.tsx create mode 100644 edge-middleware/rewrites-upstash/pages/api/product/[id]/stock.ts create mode 100644 edge-middleware/rewrites-upstash/pages/index.tsx create mode 100644 edge-middleware/rewrites-upstash/pages/product/[id]/index.tsx create mode 100644 edge-middleware/rewrites-upstash/pages/product/[id]/no-stock.tsx create mode 100644 edge-middleware/rewrites-upstash/postcss.config.js create mode 100644 edge-middleware/rewrites-upstash/public/favicon.ico create mode 100644 edge-middleware/rewrites-upstash/public/no-optimizing-board.jpg create mode 100644 edge-middleware/rewrites-upstash/public/optimizing-board.jpg create mode 100644 edge-middleware/rewrites-upstash/tailwind.config.js create mode 100644 edge-middleware/rewrites-upstash/tsconfig.json create mode 100644 edge-middleware/rewrites-upstash/types.ts create mode 100644 edge-middleware/streams/.eslintrc.json create mode 100644 edge-middleware/streams/.gitignore create mode 100644 edge-middleware/streams/.npmrc create mode 100644 edge-middleware/streams/README.md create mode 100644 edge-middleware/streams/next-env.d.ts create mode 100644 edge-middleware/streams/package.json create mode 100644 edge-middleware/streams/pages/_app.tsx create mode 100644 edge-middleware/streams/pages/api/01-simple.ts create mode 100644 edge-middleware/streams/pages/api/02-simple-transform.ts create mode 100644 edge-middleware/streams/pages/api/03-external-transform.ts create mode 100644 edge-middleware/streams/pages/index.tsx create mode 100644 edge-middleware/streams/postcss.config.js create mode 100644 edge-middleware/streams/public/favicon.ico create mode 100644 edge-middleware/streams/tailwind.config.js create mode 100644 edge-middleware/streams/tsconfig.json create mode 100644 edge-middleware/user-agent-based-rendering/.eslintrc.json create mode 100644 edge-middleware/user-agent-based-rendering/.gitignore create mode 100644 edge-middleware/user-agent-based-rendering/README.md create mode 100644 edge-middleware/user-agent-based-rendering/components/Home.tsx create mode 100644 edge-middleware/user-agent-based-rendering/middleware.ts create mode 100644 edge-middleware/user-agent-based-rendering/next-env.d.ts create mode 100644 edge-middleware/user-agent-based-rendering/package.json create mode 100644 edge-middleware/user-agent-based-rendering/pages/_app.tsx create mode 100644 edge-middleware/user-agent-based-rendering/pages/_viewport/desktop.tsx create mode 100644 edge-middleware/user-agent-based-rendering/pages/_viewport/mobile.tsx create mode 100644 edge-middleware/user-agent-based-rendering/postcss.config.js create mode 100644 edge-middleware/user-agent-based-rendering/public/board.jpg create mode 100644 edge-middleware/user-agent-based-rendering/public/favicon.ico create mode 100644 edge-middleware/user-agent-based-rendering/tailwind.config.js create mode 100644 edge-middleware/user-agent-based-rendering/tsconfig.json create mode 100644 edge-middleware/vercel-og-nextjs/.eslintrc.json create mode 100644 edge-middleware/vercel-og-nextjs/.gitignore create mode 100644 edge-middleware/vercel-og-nextjs/README.md create mode 100644 edge-middleware/vercel-og-nextjs/assets/RecursiveMonoCslSt-Bold.ttf create mode 100644 edge-middleware/vercel-og-nextjs/assets/TYPEWR__.TTF create mode 100644 edge-middleware/vercel-og-nextjs/next-env.d.ts create mode 100644 edge-middleware/vercel-og-nextjs/next.config.js create mode 100644 edge-middleware/vercel-og-nextjs/package.json create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/custom-font.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/dynamic-image.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/emoji.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/encrypted.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/image-svg.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/language.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/param.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/static.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/tailwind.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/api/vercel.tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/encrypted/[id].tsx create mode 100644 edge-middleware/vercel-og-nextjs/pages/index.tsx create mode 100644 edge-middleware/vercel-og-nextjs/public/favicon.ico create mode 100644 edge-middleware/vercel-og-nextjs/tsconfig.json diff --git a/edge-middleware/ab-testing-google-optimize/.env.example b/edge-middleware/ab-testing-google-optimize/.env.example new file mode 100644 index 0000000000..48d5b348ae --- /dev/null +++ b/edge-middleware/ab-testing-google-optimize/.env.example @@ -0,0 +1,2 @@ +NEXT_PUBLIC_GOOGLE_TRACKING_ID = +NEXT_PUBLIC_OPTIMIZE_CONTAINER_ID = \ No newline at end of file diff --git a/edge-middleware/ab-testing-google-optimize/.eslintrc.json b/edge-middleware/ab-testing-google-optimize/.eslintrc.json new file mode 100644 index 0000000000..a2569c2c7c --- /dev/null +++ b/edge-middleware/ab-testing-google-optimize/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "root": true, + "extends": "next/core-web-vitals" +} diff --git a/edge-middleware/ab-testing-google-optimize/.gitignore b/edge-middleware/ab-testing-google-optimize/.gitignore new file mode 100644 index 0000000000..303de8d1d0 --- /dev/null +++ b/edge-middleware/ab-testing-google-optimize/.gitignore @@ -0,0 +1,34 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# Dependencies +/node_modules +/.pnp +.pnp.js + +# Testing +/coverage + +# Next.js +/.next/ +/out/ + +# Production +/build + +# Misc +.DS_Store +*.pem + +# Debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Local ENV files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Vercel +.vercel \ No newline at end of file diff --git a/edge-middleware/ab-testing-google-optimize/.npmrc b/edge-middleware/ab-testing-google-optimize/.npmrc new file mode 100644 index 0000000000..570bce4ae3 --- /dev/null +++ b/edge-middleware/ab-testing-google-optimize/.npmrc @@ -0,0 +1,2 @@ +# Enabled to avoid deps failing to use next@canary +legacy-peer-deps=true \ No newline at end of file diff --git a/edge-middleware/ab-testing-google-optimize/README.md b/edge-middleware/ab-testing-google-optimize/README.md new file mode 100644 index 0000000000..3696da105f --- /dev/null +++ b/edge-middleware/ab-testing-google-optimize/README.md @@ -0,0 +1,60 @@ +--- +name: A/B Testing with Google Optimize +slug: ab-testing-google-optimize +description: Learn to use Google Optimize as an A/B testing solution for experimentation at the edge. +framework: Next.js +useCase: Edge Functions +css: Tailwind +deployUrl: https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-functions/ab-testing-google-optimize&project-name=ab-testing-google-optimize&repository-name=ab-testing-google-optimize +demoUrl: https://edge-functions-ab-testing-google-optimize.vercel.app +--- + +# A/B Testing with Google Optimize + +[Google Optimize](https://marketingplatform.google.com/about/optimize/) is Google' optimization tool and A/B testing solution, natively integrated with Google Analytics. In this example we'll do A/B testing with Optimize experiments at the edge. + +By A/B testing directly on the server-side, you'll reduce layout shift from client-loaded experiments and improving your site's performance with smaller JavaScript bundles. + +## Demo + +https://edge-functions-ab-testing-google-optimize.vercel.app + +### One-Click Deploy + +Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme): + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-functions/ab-testing-google-optimize&project-name=ab-testing-google-optimize&repository-name=ab-testing-google-optimize) + +## Getting Started + +Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the example: + +```bash +npx create-next-app --example https://github.com/vercel/examples/tree/main/edge-functions/ab-testing-google-optimize ab-testing-google-optimize +# or +yarn create next-app --example https://github.com/vercel/examples/tree/main/edge-functions/ab-testing-google-optimize ab-testing-google-optimize +``` + +[`middleware.ts`](middleware.ts) loads the experiments using a pre-defined JSON file ([lib/optimize-experiments.json](lib/optimize-experiments.json)), it currently has to be edited manually in order to add the experiments created in https://optimize.google.com. + +Run Next.js in development mode: + +```bash +npm install +npm run dev + +# or + +yarn +yarn dev +``` + +Once the page loads (http://localhost:3000) the layout will load the `optimize.js` script using your google tracking id, and the pages will register events for the current experiment and variant. + +To create your own experiments you'll need an account with [Google Optimize](https://optimize.google.com/optimize/home). Once that's done, copy the `.env.example` file in this directory to `.env.local` (which will be ignored by Git): + +```bash +cp .env.example .env.local +``` + +Then open `.env.local` and set the environment variables to match the ones for your Google Optimize account. diff --git a/edge-middleware/ab-testing-google-optimize/components/layout.tsx b/edge-middleware/ab-testing-google-optimize/components/layout.tsx new file mode 100644 index 0000000000..e90cf974a6 --- /dev/null +++ b/edge-middleware/ab-testing-google-optimize/components/layout.tsx @@ -0,0 +1,45 @@ +import { FC } from 'react' +import Script from 'next/script' +import { Layout, Page } from '@vercel/examples-ui' +import type { LayoutProps } from '@vercel/examples-ui/layout' +import { GaProvider } from '@lib/useGa' + +function throwIfSSR() { + throw new Error('Using GA during SSR is not allowed') +} + +function gaHandler() { + const dataLayer = ((window as any).dataLayer = + (window as any).dataLayer || []) + + dataLayer.push(arguments) +} + +const OptimizeLayout: FC = ({ children, ...props }) => { + const ga = typeof window === 'undefined' ? throwIfSSR : gaHandler + + return ( + + + {/* + +