From 70da3a9399d3385b53f7831beb08f716b972860d Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 1 Oct 2025 19:34:37 -0400 Subject: [PATCH] wip: zen --- bun.lock | 589 ++++++++++++++- infra/console.ts | 14 +- packages/console/app/package.json | 2 + packages/console/app/public/email | 1 + packages/console/app/src/context/auth.ts | 16 +- .../console/app/src/routes/workspace/[id].tsx | 41 +- .../src/routes/workspace/member-section.tsx | 283 +++++-- .../core/migrations/0021_flawless_clea.sql | 2 + .../core/migrations/meta/0021_snapshot.json | 702 ++++++++++++++++++ .../core/migrations/meta/_journal.json | 7 + packages/console/core/package.json | 1 + packages/console/core/src/account.ts | 8 +- packages/console/core/src/actor.ts | 2 - packages/console/core/src/aws.ts | 63 ++ packages/console/core/src/billing.ts | 2 +- packages/console/core/src/schema/user.sql.ts | 3 +- packages/console/core/src/workspace.ts | 1 - packages/console/function/src/auth.ts | 6 +- packages/console/function/sst-env.d.ts | 8 + packages/console/mail/emails/components.tsx | 108 +++ packages/console/mail/emails/styles.ts | 110 +++ .../mail/emails/templates/InviteEmail.tsx | 113 +++ .../static/ibm-plex-mono-latin-400.woff2 | Bin 0 -> 10088 bytes .../static/ibm-plex-mono-latin-500.woff2 | Bin 0 -> 10132 bytes .../static/ibm-plex-mono-latin-600.woff2 | Bin 0 -> 10148 bytes .../static/ibm-plex-mono-latin-700.woff2 | Bin 0 -> 10140 bytes .../emails/templates/static/rubik-latin.woff2 | Bin 0 -> 35320 bytes .../mail/emails/templates/static/zen-logo.png | Bin 0 -> 8336 bytes packages/console/mail/package.json | 19 + packages/console/mail/sst-env.d.ts | 9 + packages/console/resource/sst-env.d.ts | 8 + packages/function/sst-env.d.ts | 8 + sst-env.d.ts | 8 + 33 files changed, 2018 insertions(+), 116 deletions(-) create mode 120000 packages/console/app/public/email create mode 100644 packages/console/core/migrations/0021_flawless_clea.sql create mode 100644 packages/console/core/migrations/meta/0021_snapshot.json create mode 100644 packages/console/core/src/aws.ts create mode 100644 packages/console/mail/emails/components.tsx create mode 100644 packages/console/mail/emails/styles.ts create mode 100644 packages/console/mail/emails/templates/InviteEmail.tsx create mode 100644 packages/console/mail/emails/templates/static/ibm-plex-mono-latin-400.woff2 create mode 100644 packages/console/mail/emails/templates/static/ibm-plex-mono-latin-500.woff2 create mode 100644 packages/console/mail/emails/templates/static/ibm-plex-mono-latin-600.woff2 create mode 100644 packages/console/mail/emails/templates/static/ibm-plex-mono-latin-700.woff2 create mode 100644 packages/console/mail/emails/templates/static/rubik-latin.woff2 create mode 100644 packages/console/mail/emails/templates/static/zen-logo.png create mode 100644 packages/console/mail/package.json create mode 100644 packages/console/mail/sst-env.d.ts diff --git a/bun.lock b/bun.lock index 7c5e63b3..335e7b22 100644 --- a/bun.lock +++ b/bun.lock @@ -48,8 +48,10 @@ "name": "@opencode/console-app", "dependencies": { "@ibm/plex": "6.4.1", + "@jsx-email/render": "1.1.1", "@openauthjs/openauth": "0.0.0-20250322224806", "@opencode/console-core": "workspace:*", + "@opencode/console-mail": "workspace:*", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.0", "@solidjs/start": "^1.1.0", @@ -65,6 +67,7 @@ "@aws-sdk/client-sts": "3.782.0", "@opencode/console-resource": "workspace:*", "@planetscale/database": "1.19.0", + "aws4fetch": "1.0.20", "drizzle-orm": "0.41.0", "postgres": "3.4.7", "stripe": "18.0.0", @@ -95,6 +98,16 @@ "typescript": "catalog:", }, }, + "packages/console/mail": { + "name": "@opencode/console-mail", + "version": "0.13.5", + "dependencies": { + "@jsx-email/all": "2.2.3", + "@jsx-email/cli": "1.4.3", + "@types/react": "18.0.25", + "react": "18.2.0", + }, + }, "packages/console/resource": { "name": "@opencode/console-resource", "dependencies": { @@ -259,6 +272,8 @@ "zod": "4.1.8", }, "packages": { + "@adobe/css-tools": ["@adobe/css-tools@4.4.4", "", {}, "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg=="], + "@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@2.2.10", "", { "dependencies": { "@ai-sdk/provider": "1.1.3", "@ai-sdk/provider-utils": "2.2.8", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.0.0" } }, "sha512-icLGO7Q0NinnHIPgT+y1QjHVwH4HwV+brWbvM+FfCG2Afpa89PyKa3Ret91kGjZpBgM/xnj1B7K5eM+rRlsXQA=="], "@ai-sdk/anthropic": ["@ai-sdk/anthropic@2.0.0", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4" } }, "sha512-uyyaO4KhxoIKZztREqLPh+6/K3ZJx/rp72JKoUEL9/kC+vfQTThUfPnY/bUryUpcnawx8IY/tSoYNOi/8PCv7w=="], @@ -273,6 +288,8 @@ "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@3.0.0", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@standard-schema/spec": "^1.0.0", "eventsource-parser": "^3.0.3", "zod-to-json-schema": "^3.24.1" }, "peerDependencies": { "zod": "^3.25.76 || ^4" } }, "sha512-BoQZtGcBxkeSH1zK+SRYNDtJPIPpacTeiMZqnG4Rv6xXjEwM0FH4MGs9c+PlhyEWmQCzjRM2HAotEydFhD4dYw=="], + "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], "@astrojs/cloudflare": ["@astrojs/cloudflare@12.6.3", "", { "dependencies": { "@astrojs/internal-helpers": "0.7.1", "@astrojs/underscore-redirects": "1.0.0", "@cloudflare/workers-types": "^4.20250507.0", "tinyglobby": "^0.2.13", "vite": "^6.3.5", "wrangler": "^4.14.1" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-xhJptF5tU2k5eo70nIMyL1Udma0CqmUEnGSlGyFflLqSY82CRQI6nWZ/xZt0ZvmXuErUjIx0YYQNfZsz5CNjLQ=="], @@ -397,6 +414,10 @@ "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw=="], + "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw=="], + + "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw=="], + "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.0", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg=="], "@babel/preset-typescript": ["@babel/preset-typescript@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ=="], @@ -441,10 +462,16 @@ "@deno/shim-deno-test": ["@deno/shim-deno-test@0.5.0", "", {}, "sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w=="], + "@dot/log": ["@dot/log@0.1.5", "", { "dependencies": { "chalk": "^4.1.2", "loglevelnext": "^6.0.0", "p-defer": "^3.0.0" } }, "sha512-ECraEVJWv2f2mWK93lYiefUkphStVlKD6yKDzisuoEmxuLKrxO9iGetHK2DoEAkj7sxjE886n0OUVVCUx0YPNg=="], + "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], "@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="], + "@emotion/is-prop-valid": ["@emotion/is-prop-valid@0.8.8", "", { "dependencies": { "@emotion/memoize": "0.7.4" } }, "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA=="], + + "@emotion/memoize": ["@emotion/memoize@0.7.4", "", {}, "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="], + "@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="], "@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="], @@ -513,10 +540,14 @@ "@floating-ui/dom": ["@floating-ui/dom@1.7.4", "", { "dependencies": { "@floating-ui/core": "^1.7.3", "@floating-ui/utils": "^0.2.10" } }, "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA=="], + "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.6", "", { "dependencies": { "@floating-ui/dom": "^1.7.4" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw=="], + "@floating-ui/utils": ["@floating-ui/utils@0.2.10", "", {}, "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ=="], "@fontsource/ibm-plex-mono": ["@fontsource/ibm-plex-mono@5.2.5", "", {}, "sha512-G09N3GfuT9qj3Ax2FDZvKqZttzM3v+cco2l8uXamhKyXLdmlaUDH5o88/C3vtTHj2oT7yRKsvxz9F+BXbWKMYA=="], + "@fontsource/inter": ["@fontsource/inter@5.2.8", "", {}, "sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg=="], + "@hey-api/json-schema-ref-parser": ["@hey-api/json-schema-ref-parser@1.0.6", "", { "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", "js-yaml": "^4.1.0", "lodash": "^4.17.21" } }, "sha512-yktiFZoWPtEW8QKS65eqKwA5MTKp88CyiL8q72WynrBs/73SAaxlSWlA2zW/DZlywZ5hX1OYzrCC0wFdvO9c2w=="], "@hey-api/openapi-ts": ["@hey-api/openapi-ts@0.80.1", "", { "dependencies": { "@hey-api/json-schema-ref-parser": "1.0.6", "ansi-colors": "4.1.3", "c12": "2.0.1", "color-support": "1.1.3", "commander": "13.0.0", "handlebars": "4.7.8", "open": "10.1.2", "semver": "7.7.2" }, "peerDependencies": { "typescript": "^5.5.3" }, "bin": { "openapi-ts": "bin/index.cjs" } }, "sha512-AC478kg36vmmrseLZNFonZ/cmXXmDzW5yWz4PVg1S8ebJsRtVRJ/QU+mtnXfzf9avN2P0pz/AO4WAe4jyFY2gA=="], @@ -595,6 +626,48 @@ "@jsdevtools/ono": ["@jsdevtools/ono@7.1.3", "", {}, "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="], + "@jsx-email/all": ["@jsx-email/all@2.2.3", "", { "dependencies": { "@jsx-email/body": "1.0.2", "@jsx-email/button": "1.0.4", "@jsx-email/column": "1.0.3", "@jsx-email/container": "1.0.2", "@jsx-email/font": "1.0.3", "@jsx-email/head": "1.0.2", "@jsx-email/heading": "1.0.2", "@jsx-email/hr": "1.0.2", "@jsx-email/html": "1.0.2", "@jsx-email/img": "1.0.2", "@jsx-email/link": "1.0.2", "@jsx-email/markdown": "2.0.4", "@jsx-email/preview": "1.0.2", "@jsx-email/render": "1.1.1", "@jsx-email/row": "1.0.2", "@jsx-email/section": "1.0.2", "@jsx-email/tailwind": "2.4.4", "@jsx-email/text": "1.0.2" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-OBvLe/hVSQc0LlMSTJnkjFoqs3bmxcC4zpy/5pT5agPCSKMvAKQjzmsc2xJ2wO73jSpRV1K/g38GmvdCfrhSoQ=="], + + "@jsx-email/body": ["@jsx-email/body@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-NjR2tgLH4XGfGkm+O8kcVwi9MBqZsXZCLlmk3HlMux3/n/+a5zB+yhJqXWZBJl2i+6cSF+E2O6hK11ekyK9WWQ=="], + + "@jsx-email/button": ["@jsx-email/button@1.0.4", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-NbuxtBtTdcFOKpyw166lvgA8sKpgwQzqpRVSTDZdd+2xlh5gzeckXG9VtCbfktIatD26r45ZMmP68QGK3hxIPA=="], + + "@jsx-email/cli": ["@jsx-email/cli@1.4.3", "", { "dependencies": { "@dot/log": "^0.1.3", "@fontsource/inter": "^5.0.8", "@jsx-email/doiuse-email": "^1.0.1", "@jsx-email/render": "1.1.1", "@radix-ui/colors": "1.0.1", "@radix-ui/react-collapsible": "1.0.3", "@radix-ui/react-popover": "1.0.6", "@radix-ui/react-slot": "1.0.2", "@radix-ui/react-toggle-group": "1.0.4", "@radix-ui/react-tooltip": "1.0.6", "@vitejs/plugin-react": "^4.1.0", "autoprefixer": "^10.4.16", "chalk": "4.1.2", "cheerio": "1.0.0-rc.12", "classnames": "2.3.2", "debug": "^4.3.4", "esbuild": "^0.19.3", "esbuild-plugin-copy": "^2.1.1", "framer-motion": "8.5.5", "globby": "11.0.4", "html-minifier-terser": "^7.2.0", "import-local": "^3.1.0", "js-beautify": "^1.14.9", "mustache": "^4.2.0", "postcss": "^8.4.30", "react": "18.2.0", "react-dom": "18.2.0", "react-router-dom": "6.16.0", "shikiji": "^0.6.8", "superstruct": "^1.0.3", "tailwindcss": "3.3.3", "titleize": "^4.0.0", "vite": "^4.4.9", "vite-plugin-dynamic-import": "^1.5.0", "yargs-parser": "^21.1.1" }, "bin": { "email": "dist/src/index.js" } }, "sha512-Aid5d5U3RM9sjkjzn/X/a5FFWLJSXlwh8pagBVgnUTiaBM8+nroSPZaC21Xe3rl/uwYpY9lc+2AAH9+7SmroiQ=="], + + "@jsx-email/column": ["@jsx-email/column@1.0.3", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-dto5s/INVWy4oMOETX53O53NerpPxezO8CQctriTaHLrqlR22lWoXJZoGTzMvt9uLyoUrYViA6Tj2F9Bio+fOg=="], + + "@jsx-email/container": ["@jsx-email/container@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-Muue8X2PgjxCf+YvUJ6zGTqcmo3i4S3EmsLGYpnWl7e/ZKmMLTjN4DdUeSsi27fWEdpUTjQQG4McMGdFYhZTGg=="], + + "@jsx-email/doiuse-email": ["@jsx-email/doiuse-email@1.0.4", "", { "dependencies": { "@adobe/css-tools": "^4.3.1", "css-what": "^6.1.0", "domhandler": "^5.0.3", "dot-prop": "^8.0.2", "htmlparser2": "^9.0.0", "micromatch": "^4.0.5", "style-to-object": "^1.0.4" } }, "sha512-HfLjuQsAAyAkIZWR0wHR6+P6u40RIX0jBZu/1rgsw18+jc36agZD5j84zG4CDzitRxgXJXrAohPfDFPxcrtjAA=="], + + "@jsx-email/font": ["@jsx-email/font@1.0.3", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-NRp9NBjrmYVwAFYRwuifzvavtHB8blRLEJ+q9BygY3y58+FhHENweU8FMdC5OSts2C99FbKrHUicTSanEj8+Aw=="], + + "@jsx-email/head": ["@jsx-email/head@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-M5Af6Imt7W/Vp09dY76I/v7gRe1aQLmeXjBZZSrSbvpMVQVAd6gwR/druNaAO+zHDoKhXwR50+pxXpnC+TFiIw=="], + + "@jsx-email/heading": ["@jsx-email/heading@1.0.2", "", { "dependencies": { "@radix-ui/react-slot": "1.0.2" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-yumw176gsAJQnwSx0HCamCj2DozQireayax7s+jvr+TvEvFxNLD4PQvK45c6JdYYD9OPGnjDApks102FJQ7xDQ=="], + + "@jsx-email/hr": ["@jsx-email/hr@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-CuJ/ADJoRwuQyUqulOf00BceTdY9kzrLQTMwGPUmFMtlsF+EFSPNULoksFg6nskVjFV7pBUm78FwiEfP2OAHMQ=="], + + "@jsx-email/html": ["@jsx-email/html@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-FOiJdZWbCwNwsAqRuXlrXo39UTVWtrezuzA0pXY0UD5nEPzwpk7N46EwW8uxBRoqNRPiuUnwnFWLXuPZNAIGlg=="], + + "@jsx-email/img": ["@jsx-email/img@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-aqqnx43Cvq/wVzALhK6n5pSJBqTRwq5wuM66/QAkEJaZgXqrXCNRx1fNeqQt/Zp2j6KmHq3Ax0AHSJX4pjKIDw=="], + + "@jsx-email/link": ["@jsx-email/link@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-+mr+WFHZ7fILkFlSdbusSm9ml6jPq7u89LGe2E71AB23JEaaF8qO5u6so6wySAme+gDIGId/+tobPcTHeI+hHQ=="], + + "@jsx-email/markdown": ["@jsx-email/markdown@2.0.4", "", { "dependencies": { "md-to-react-email": "5.0.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-jYf/BVGKjz7TU1FhEX0ELZGKPQj+6o0R4NjZTBJsJ3PUovgXynS4GqU83eARwGbOSUve/9qvRljsCCQHD+t/Gg=="], + + "@jsx-email/preview": ["@jsx-email/preview@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-dkc3hG08R0J0TEQ/cDCtdyoLYddb1MIvhh5OyTqfd5pgSxPF6MaSH8LkDqMUYpSYZ3RtUK6g4d8q3mF7tx28sQ=="], + + "@jsx-email/render": ["@jsx-email/render@1.1.1", "", { "dependencies": { "html-to-text": "9.0.5", "pretty": "2.0.0" } }, "sha512-0y45YofM0Ak8Rswss1AWgy7v9mlMoHMrgD0x601gvb2HBddDp2r0etNJhhN9ZwW8QOteuYluHD279e+PCr2WxA=="], + + "@jsx-email/row": ["@jsx-email/row@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-6bUr1rqIsUVrhBWcTj0QTZvUQ/deThDKoi10dSfhjmbUqFYr7RdyGwMwsUuFg1YzZCohvy8dVpBIwd+5wmtsIw=="], + + "@jsx-email/section": ["@jsx-email/section@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-gGGE9zkljfrgWOz7NlmFsDPVKCQv6omu+VXsce0yh0+yHBehuFYrv4WOqMZFtfQo6Y1IDdQWt+XCi5GlEvd0Lw=="], + + "@jsx-email/tailwind": ["@jsx-email/tailwind@2.4.4", "", { "dependencies": { "@jsx-email/render": "1.1.1", "react": "18.2.0", "react-dom": "18.2.0", "tw-to-css": "0.0.12" } }, "sha512-RqLD0y2le1ruFBt9MCa0PNnTVUgcS8vcOOWMJUkMezBZUAUkP5KSj3DO+6DdgVn67kH9cnnRvknXo8L6qd6BwA=="], + + "@jsx-email/text": ["@jsx-email/text@1.0.2", "", { "peerDependencies": { "react": "^18.2.0" } }, "sha512-0zzwEwrKtY6tfjPJF0r3krKCDpP/ySYDvkn4+MvIFrIH5RZKmn3XDa5o/3hkbxMwpLn4MsXGIXn9XzMTaqTfUA=="], + "@kobalte/core": ["@kobalte/core@0.13.11", "", { "dependencies": { "@floating-ui/dom": "^1.5.1", "@internationalized/date": "^3.4.0", "@internationalized/number": "^3.2.1", "@kobalte/utils": "^0.9.1", "@solid-primitives/props": "^3.1.8", "@solid-primitives/resize-observer": "^2.0.26", "solid-presence": "^0.1.8", "solid-prevent-scroll": "^0.1.4" }, "peerDependencies": { "solid-js": "^1.8.15" } }, "sha512-hK7TYpdib/XDb/r/4XDBFaO9O+3ZHz4ZWryV4/3BfES+tSQVgg2IJupDnztKXB0BqbSRy/aWlHKw1SPtNPYCFQ=="], "@kobalte/utils": ["@kobalte/utils@0.9.1", "", { "dependencies": { "@solid-primitives/event-listener": "^2.2.14", "@solid-primitives/keyed": "^1.2.0", "@solid-primitives/map": "^0.4.7", "@solid-primitives/media": "^2.2.4", "@solid-primitives/props": "^3.1.8", "@solid-primitives/refs": "^1.0.5", "@solid-primitives/utils": "^6.2.1" }, "peerDependencies": { "solid-js": "^1.8.8" } }, "sha512-eeU60A3kprIiBDAfv9gUJX1tXGLuZiKMajUfSQURAF2pk4ZoMYiqIzmrMBvzcxP39xnYttgTyQEVLwiTZnrV4w=="], @@ -607,6 +680,18 @@ "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.15.1", "", { "dependencies": { "ajv": "^6.12.6", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.23.8", "zod-to-json-schema": "^3.24.1" } }, "sha512-W/XlN9c528yYn+9MQkVjxiTPgPxoxt+oczfjHBDsJx0+59+O7B75Zhsp0B16Xbwbz8ANISDajh6+V7nIcPMc5w=="], + "@motionone/animation": ["@motionone/animation@10.18.0", "", { "dependencies": { "@motionone/easing": "^10.18.0", "@motionone/types": "^10.17.1", "@motionone/utils": "^10.18.0", "tslib": "^2.3.1" } }, "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw=="], + + "@motionone/dom": ["@motionone/dom@10.18.0", "", { "dependencies": { "@motionone/animation": "^10.18.0", "@motionone/generators": "^10.18.0", "@motionone/types": "^10.17.1", "@motionone/utils": "^10.18.0", "hey-listen": "^1.0.8", "tslib": "^2.3.1" } }, "sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A=="], + + "@motionone/easing": ["@motionone/easing@10.18.0", "", { "dependencies": { "@motionone/utils": "^10.18.0", "tslib": "^2.3.1" } }, "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg=="], + + "@motionone/generators": ["@motionone/generators@10.18.0", "", { "dependencies": { "@motionone/types": "^10.17.1", "@motionone/utils": "^10.18.0", "tslib": "^2.3.1" } }, "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg=="], + + "@motionone/types": ["@motionone/types@10.17.1", "", {}, "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A=="], + + "@motionone/utils": ["@motionone/utils@10.18.0", "", { "dependencies": { "@motionone/types": "^10.17.1", "hey-listen": "^1.0.8", "tslib": "^2.3.1" } }, "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw=="], + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], @@ -651,6 +736,8 @@ "@octokit/webhooks-types": ["@octokit/webhooks-types@7.6.1", "", {}, "sha512-S8u2cJzklBC0FgTwWVLaM8tMrDuDMVE4xiTK4EYXM9GntyvrdbSoxqDQa+Fh57CCNApyIpyeqPhhFEmHPfrXgw=="], + "@one-ini/wasm": ["@one-ini/wasm@0.1.1", "", {}, "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw=="], + "@openauthjs/openauth": ["@openauthjs/openauth@0.0.0-20250322224806", "", { "dependencies": { "@standard-schema/spec": "1.0.0-beta.3", "aws4fetch": "1.0.20", "jose": "5.9.6" }, "peerDependencies": { "arctic": "^2.2.2", "hono": "^4.0.0" } }, "sha512-p5IWSRXvABcwocH2dNI0w8c1QJelIOFulwhKk+aLLFfUbs8u1pr7kQbYe8yCSM2+bcLHiwbogpUQc2ovrGwCuw=="], "@opencode-ai/plugin": ["@opencode-ai/plugin@workspace:packages/plugin"], @@ -665,6 +752,8 @@ "@opencode/console-function": ["@opencode/console-function@workspace:packages/console/function"], + "@opencode/console-mail": ["@opencode/console-mail@workspace:packages/console/mail"], + "@opencode/console-resource": ["@opencode/console-resource@workspace:packages/console/resource"], "@opencode/console-scripts": ["@opencode/console-scripts@workspace:packages/console/scripts"], @@ -741,6 +830,70 @@ "@poppinss/exception": ["@poppinss/exception@1.2.2", "", {}, "sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg=="], + "@radix-ui/colors": ["@radix-ui/colors@1.0.1", "", {}, "sha512-xySw8f0ZVsAEP+e7iLl3EvcBXX7gsIlC1Zso/sPBW9gIWerBTgz6axrjU+MZ39wD+WFi5h5zdWpsg3+hwt2Qsg=="], + + "@radix-ui/primitive": ["@radix-ui/primitive@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" } }, "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw=="], + + "@radix-ui/react-arrow": ["@radix-ui/react-arrow@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA=="], + + "@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-id": "1.0.1", "@radix-ui/react-presence": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-use-controllable-state": "1.0.1", "@radix-ui/react-use-layout-effect": "1.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg=="], + + "@radix-ui/react-collection": ["@radix-ui/react-collection@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-slot": "1.0.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA=="], + + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw=="], + + "@radix-ui/react-context": ["@radix-ui/react-context@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg=="], + + "@radix-ui/react-direction": ["@radix-ui/react-direction@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA=="], + + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.0.4", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-use-callback-ref": "1.0.1", "@radix-ui/react-use-escape-keydown": "1.0.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg=="], + + "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA=="], + + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-use-callback-ref": "1.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ=="], + + "@radix-ui/react-id": ["@radix-ui/react-id@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ=="], + + "@radix-ui/react-popover": ["@radix-ui/react-popover@1.0.6", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-dismissable-layer": "1.0.4", "@radix-ui/react-focus-guards": "1.0.1", "@radix-ui/react-focus-scope": "1.0.3", "@radix-ui/react-id": "1.0.1", "@radix-ui/react-popper": "1.1.2", "@radix-ui/react-portal": "1.0.3", "@radix-ui/react-presence": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-slot": "1.0.2", "@radix-ui/react-use-controllable-state": "1.0.1", "aria-hidden": "^1.1.1", "react-remove-scroll": "2.5.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-cZ4defGpkZ0qTRtlIBzJLSzL6ht7ofhhW4i1+pkemjV1IKXm0wgCRnee154qlV6r9Ttunmh2TNZhMfV2bavUyA=="], + + "@radix-ui/react-popper": ["@radix-ui/react-popper@1.1.2", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@floating-ui/react-dom": "^2.0.0", "@radix-ui/react-arrow": "1.0.3", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-use-callback-ref": "1.0.1", "@radix-ui/react-use-layout-effect": "1.0.1", "@radix-ui/react-use-rect": "1.0.1", "@radix-ui/react-use-size": "1.0.1", "@radix-ui/rect": "1.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg=="], + + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA=="], + + "@radix-ui/react-presence": ["@radix-ui/react-presence@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-use-layout-effect": "1.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg=="], + + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "1.0.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g=="], + + "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.0.4", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", "@radix-ui/react-collection": "1.0.3", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-direction": "1.0.1", "@radix-ui/react-id": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-use-callback-ref": "1.0.1", "@radix-ui/react-use-controllable-state": "1.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ=="], + + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.0.2", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg=="], + + "@radix-ui/react-toggle": ["@radix-ui/react-toggle@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-use-controllable-state": "1.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg=="], + + "@radix-ui/react-toggle-group": ["@radix-ui/react-toggle-group@1.0.4", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-direction": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-roving-focus": "1.0.4", "@radix-ui/react-toggle": "1.0.3", "@radix-ui/react-use-controllable-state": "1.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A=="], + + "@radix-ui/react-tooltip": ["@radix-ui/react-tooltip@1.0.6", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-dismissable-layer": "1.0.4", "@radix-ui/react-id": "1.0.1", "@radix-ui/react-popper": "1.1.2", "@radix-ui/react-portal": "1.0.3", "@radix-ui/react-presence": "1.0.1", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-slot": "1.0.2", "@radix-ui/react-use-controllable-state": "1.0.1", "@radix-ui/react-visually-hidden": "1.0.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg=="], + + "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ=="], + + "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA=="], + + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg=="], + + "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ=="], + + "@radix-ui/react-use-rect": ["@radix-ui/react-use-rect@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/rect": "1.0.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw=="], + + "@radix-ui/react-use-size": ["@radix-ui/react-use-size@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react"] }, "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g=="], + + "@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.0.3", "", { "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA=="], + + "@radix-ui/rect": ["@radix-ui/rect@1.0.1", "", { "dependencies": { "@babel/runtime": "^7.13.10" } }, "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ=="], + + "@remix-run/router": ["@remix-run/router@1.9.0", "", {}, "sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], + "@rollup/plugin-alias": ["@rollup/plugin-alias@5.1.1", "", { "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ=="], "@rollup/plugin-commonjs": ["@rollup/plugin-commonjs@28.0.6", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", "fdir": "^6.2.0", "is-reference": "1.2.1", "magic-string": "^0.30.3", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw=="], @@ -801,6 +954,8 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.2", "", { "os": "win32", "cpu": "x64" }, "sha512-ARz+Bs8kY6FtitYM96PqPEVvPXqEZmPZsSkXvyX19YzDqkCaIlhCieLLMI5hxO9SRZ2XtCtm8wxhy0iJ2jxNfw=="], + "@selderee/plugin-htmlparser2": ["@selderee/plugin-htmlparser2@0.11.0", "", { "dependencies": { "domhandler": "^5.0.3", "selderee": "^0.11.0" } }, "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ=="], + "@shikijs/core": ["@shikijs/core@3.9.2", "", { "dependencies": { "@shikijs/types": "3.9.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3q/mzmw09B2B6PgFNeiaN8pkNOixWS726IHmJEpjDAcneDPMQmUg2cweT9cWXY4XcyQS3i6mOOUgQz9RRUP6HA=="], "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.9.2", "", { "dependencies": { "@shikijs/types": "3.9.2", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-kUTRVKPsB/28H5Ko6qEsyudBiWEDLst+Sfi+hwr59E0GLHV0h8RfgbQU7fdN5Lt9A8R1ulRiZyTvAizkROjwDA=="], @@ -1027,12 +1182,16 @@ "@types/node": ["@types/node@22.13.9", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw=="], - "@types/react": ["@types/react@19.1.13", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ=="], + "@types/prop-types": ["@types/prop-types@15.7.15", "", {}, "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw=="], + + "@types/react": ["@types/react@18.0.25", "", { "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g=="], "@types/resolve": ["@types/resolve@1.20.2", "", {}, "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="], "@types/sax": ["@types/sax@1.2.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A=="], + "@types/scheduler": ["@types/scheduler@0.26.0", "", {}, "sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA=="], + "@types/turndown": ["@types/turndown@5.0.5", "", {}, "sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w=="], "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], @@ -1051,9 +1210,11 @@ "@vinxi/server-components": ["@vinxi/server-components@0.5.1", "", { "dependencies": { "@vinxi/plugin-directives": "0.5.1", "acorn": "^8.10.0", "acorn-loose": "^8.3.0", "acorn-typescript": "^1.4.3", "astring": "^1.8.6", "magicast": "^0.2.10", "recast": "^0.23.4" }, "peerDependencies": { "vinxi": "^0.5.5" } }, "sha512-0BsG95qac3dkhfdRZxqzqYWJE4NvPL7ILlV43B6K6ho1etXWB2e5b0IxsUAUbyqpqiXM7mSRivojuXjb2G4OsQ=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], + "@zip.js/zip.js": ["@zip.js/zip.js@2.7.62", "", {}, "sha512-OaLvZ8j4gCkLn048ypkZu29KX30r8/OfFF2w4Jo5WXFr+J04J+lzJ5TKZBVgFXhlvSkqNFQdfnY1Q8TMTCyBVA=="], - "abbrev": ["abbrev@3.0.1", "", {}, "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg=="], + "abbrev": ["abbrev@2.0.0", "", {}, "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ=="], "abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], @@ -1083,10 +1244,12 @@ "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], "ansis": ["ansis@4.1.0", "", {}, "sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w=="], + "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], "archiver": ["archiver@7.0.1", "", { "dependencies": { "archiver-utils": "^5.0.2", "async": "^3.2.4", "buffer-crc32": "^1.0.0", "readable-stream": "^4.0.0", "readdir-glob": "^1.1.2", "tar-stream": "^3.0.0", "zip-stream": "^6.0.1" } }, "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ=="], @@ -1099,10 +1262,14 @@ "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], "array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="], + "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], + "ast-types": ["ast-types@0.16.1", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg=="], "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], @@ -1115,13 +1282,15 @@ "async-sema": ["async-sema@3.1.1", "", {}, "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg=="], + "autoprefixer": ["autoprefixer@10.4.21", "", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], "aws-sdk": ["aws-sdk@2.1692.0", "", { "dependencies": { "buffer": "4.9.2", "events": "1.1.1", "ieee754": "1.1.13", "jmespath": "0.16.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", "util": "^0.12.4", "uuid": "8.0.0", "xml2js": "0.6.2" } }, "sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw=="], "aws-ssl-profiles": ["aws-ssl-profiles@1.1.2", "", {}, "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g=="], - "aws4fetch": ["aws4fetch@1.0.18", "", {}, "sha512-3Cf+YaUl07p24MoQ46rFwulAmiyCwH2+1zw1ZyPAX5OtJ34Hh185DwB8y/qRLb6cYYYtSFJ9pthyLc0MD4e8sQ=="], + "aws4fetch": ["aws4fetch@1.0.20", "", {}, "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g=="], "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], @@ -1161,6 +1330,8 @@ "before-after-hook": ["before-after-hook@4.0.0", "", {}, "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="], + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="], "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], @@ -1205,8 +1376,12 @@ "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + "camel-case": ["camel-case@4.1.2", "", { "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" } }, "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw=="], + "camelcase": ["camelcase@8.0.0", "", {}, "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA=="], + "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], + "caniuse-lite": ["caniuse-lite@1.0.30001745", "", {}, "sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ=="], "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], @@ -1221,6 +1396,10 @@ "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + "cheerio": ["cheerio@1.0.0-rc.12", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "htmlparser2": "^8.0.1", "parse5": "^7.0.0", "parse5-htmlparser2-tree-adapter": "^7.0.0" } }, "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q=="], + + "cheerio-select": ["cheerio-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" } }, "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g=="], + "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], @@ -1229,6 +1408,10 @@ "citty": ["citty@0.1.6", "", { "dependencies": { "consola": "^3.2.3" } }, "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ=="], + "classnames": ["classnames@2.3.2", "", {}, "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="], + + "clean-css": ["clean-css@5.3.3", "", { "dependencies": { "source-map": "~0.6.0" } }, "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg=="], + "cli-boxes": ["cli-boxes@3.0.0", "", {}, "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="], "clipboardy": ["clipboardy@4.0.0", "", { "dependencies": { "execa": "^8.0.1", "is-wsl": "^3.1.0", "is64bit": "^2.0.0" } }, "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w=="], @@ -1265,8 +1448,12 @@ "compress-commons": ["compress-commons@6.0.2", "", { "dependencies": { "crc-32": "^1.2.0", "crc32-stream": "^6.0.0", "is-stream": "^2.0.1", "normalize-path": "^3.0.0", "readable-stream": "^4.0.0" } }, "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg=="], + "condense-newlines": ["condense-newlines@0.2.1", "", { "dependencies": { "extend-shallow": "^2.0.1", "is-whitespace": "^0.3.0", "kind-of": "^3.0.2" } }, "sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg=="], + "confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + "config-chain": ["config-chain@1.1.13", "", { "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ=="], + "consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], "content-disposition": ["content-disposition@1.0.0", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg=="], @@ -1347,6 +1534,8 @@ "detect-libc": ["detect-libc@2.1.1", "", {}, "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw=="], + "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], + "deterministic-object-hash": ["deterministic-object-hash@2.0.2", "", { "dependencies": { "base-64": "^1.0.0" } }, "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ=="], "devalue": ["devalue@5.3.2", "", {}, "sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw=="], @@ -1355,8 +1544,12 @@ "dfa": ["dfa@1.2.0", "", {}, "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q=="], + "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], + "diff": ["diff@8.0.2", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="], + "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], + "direction": ["direction@2.0.1", "", { "bin": { "direction": "cli.js" } }, "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA=="], "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], @@ -1369,6 +1562,8 @@ "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], + "dot-case": ["dot-case@3.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="], + "dot-prop": ["dot-prop@9.0.0", "", { "dependencies": { "type-fest": "^4.18.2" } }, "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ=="], "dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], @@ -1385,6 +1580,8 @@ "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], + "editorconfig": ["editorconfig@1.0.4", "", { "dependencies": { "@one-ini/wasm": "0.1.1", "commander": "^10.0.0", "minimatch": "9.0.1", "semver": "^7.5.3" }, "bin": { "editorconfig": "bin/editorconfig" } }, "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q=="], + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], "electron-to-chromium": ["electron-to-chromium@1.5.224", "", {}, "sha512-kWAoUu/bwzvnhpdZSIc6KUyvkI1rbRXMT0Eq8pKReyOyaPZcctMli+EgvcN1PAvwVc7Tdo4Fxi2PsLNDU05mdg=="], @@ -1399,7 +1596,7 @@ "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], - "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], "env-paths": ["env-paths@3.0.0", "", {}, "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A=="], @@ -1421,6 +1618,8 @@ "esbuild": ["esbuild@0.25.10", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.10", "@esbuild/android-arm": "0.25.10", "@esbuild/android-arm64": "0.25.10", "@esbuild/android-x64": "0.25.10", "@esbuild/darwin-arm64": "0.25.10", "@esbuild/darwin-x64": "0.25.10", "@esbuild/freebsd-arm64": "0.25.10", "@esbuild/freebsd-x64": "0.25.10", "@esbuild/linux-arm": "0.25.10", "@esbuild/linux-arm64": "0.25.10", "@esbuild/linux-ia32": "0.25.10", "@esbuild/linux-loong64": "0.25.10", "@esbuild/linux-mips64el": "0.25.10", "@esbuild/linux-ppc64": "0.25.10", "@esbuild/linux-riscv64": "0.25.10", "@esbuild/linux-s390x": "0.25.10", "@esbuild/linux-x64": "0.25.10", "@esbuild/netbsd-arm64": "0.25.10", "@esbuild/netbsd-x64": "0.25.10", "@esbuild/openbsd-arm64": "0.25.10", "@esbuild/openbsd-x64": "0.25.10", "@esbuild/openharmony-arm64": "0.25.10", "@esbuild/sunos-x64": "0.25.10", "@esbuild/win32-arm64": "0.25.10", "@esbuild/win32-ia32": "0.25.10", "@esbuild/win32-x64": "0.25.10" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ=="], + "esbuild-plugin-copy": ["esbuild-plugin-copy@2.1.1", "", { "dependencies": { "chalk": "^4.1.2", "chokidar": "^3.5.3", "fs-extra": "^10.0.1", "globby": "^11.0.3" }, "peerDependencies": { "esbuild": ">= 0.14.0" } }, "sha512-Bk66jpevTcV8KMFzZI1P7MZKZ+uDcrZm2G2egZ2jNIvVnivDpodZI+/KnpL3Jnap0PBdIHU7HwFGB8r+vV5CVw=="], + "esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="], "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], @@ -1499,6 +1698,8 @@ "finalhandler": ["finalhandler@2.1.0", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q=="], + "find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + "flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="], "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], @@ -1513,10 +1714,16 @@ "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], + "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], + + "framer-motion": ["framer-motion@8.5.5", "", { "dependencies": { "@motionone/dom": "^10.15.3", "hey-listen": "^1.0.8", "tslib": "^2.4.0" }, "optionalDependencies": { "@emotion/is-prop-valid": "^0.8.2" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, "sha512-5IDx5bxkjWHWUF3CVJoSyUVOtrbAxtzYBBowRE2uYI/6VYhkEBD+rbTHEGuUmbGHRj6YqqSfoG7Aa1cLyWCrBA=="], + "fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], + "fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], + "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], @@ -1537,6 +1744,8 @@ "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], + "get-port-please": ["get-port-please@3.2.0", "", {}, "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A=="], "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], @@ -1553,11 +1762,11 @@ "glob": ["glob@11.0.3", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.0.3", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA=="], - "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], "glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], - "globby": ["globby@14.1.0", "", { "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.3", "ignore": "^7.0.3", "path-type": "^6.0.0", "slash": "^5.1.0", "unicorn-magic": "^0.3.0" } }, "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA=="], + "globby": ["globby@11.0.4", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.1.1", "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" } }, "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg=="], "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], @@ -1571,6 +1780,8 @@ "handlebars": ["handlebars@4.7.8", "", { "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "optionalDependencies": { "uglify-js": "^3.1.4" }, "bin": { "handlebars": "bin/handlebars" } }, "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ=="], + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], @@ -1623,6 +1834,8 @@ "he": ["he@1.2.0", "", { "bin": { "he": "bin/he" } }, "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="], + "hey-listen": ["hey-listen@1.0.8", "", {}, "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="], + "hono": ["hono@4.7.10", "", {}, "sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ=="], "hono-openapi": ["hono-openapi@1.0.7", "", { "peerDependencies": { "@hono/standard-validator": "^0.1.2", "@standard-community/standard-json": "^0.3.1", "@standard-community/standard-openapi": "^0.2.4", "@types/json-schema": "^7.0.15", "hono": "^4.8.3", "openapi-types": "^12.1.3" }, "optionalPeers": ["@hono/standard-validator", "hono"] }, "sha512-rMn+nn4/HMisyi549L3zT7WCmVvmpiKsyt790GcGfqvJf9mJfhq6txw09l0IhSBxpJpA0pXVKxFijcsnGfshUA=="], @@ -1633,12 +1846,18 @@ "html-escaper": ["html-escaper@3.0.3", "", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="], + "html-minifier-terser": ["html-minifier-terser@7.2.0", "", { "dependencies": { "camel-case": "^4.1.2", "clean-css": "~5.3.2", "commander": "^10.0.0", "entities": "^4.4.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", "terser": "^5.15.1" }, "bin": { "html-minifier-terser": "cli.js" } }, "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA=="], + "html-to-image": ["html-to-image@1.11.13", "", {}, "sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg=="], + "html-to-text": ["html-to-text@9.0.5", "", { "dependencies": { "@selderee/plugin-htmlparser2": "^0.11.0", "deepmerge": "^4.3.1", "dom-serializer": "^2.0.0", "htmlparser2": "^8.0.2", "selderee": "^0.11.0" } }, "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg=="], + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], "html-whitespace-sensitive-tag-names": ["html-whitespace-sensitive-tag-names@3.0.1", "", {}, "sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA=="], + "htmlparser2": ["htmlparser2@8.0.2", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA=="], + "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], @@ -1663,6 +1882,8 @@ "ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + "import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], @@ -1685,6 +1906,10 @@ "is-arrayish": ["is-arrayish@0.3.4", "", {}, "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA=="], + "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + + "is-buffer": ["is-buffer@1.1.6", "", {}, "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="], + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], @@ -1727,6 +1952,8 @@ "is-what": ["is-what@4.1.16", "", {}, "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A=="], + "is-whitespace": ["is-whitespace@0.3.0", "", {}, "sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg=="], + "is-wsl": ["is-wsl@3.1.0", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="], "is64bit": ["is64bit@2.0.0", "", { "dependencies": { "system-architecture": "^0.1.0" } }, "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw=="], @@ -1745,6 +1972,10 @@ "js-base64": ["js-base64@3.7.7", "", {}, "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="], + "js-beautify": ["js-beautify@1.15.4", "", { "dependencies": { "config-chain": "^1.1.13", "editorconfig": "^1.0.4", "glob": "^10.4.2", "js-cookie": "^3.0.5", "nopt": "^7.2.1" }, "bin": { "css-beautify": "js/bin/css-beautify.js", "html-beautify": "js/bin/html-beautify.js", "js-beautify": "js/bin/js-beautify.js" } }, "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA=="], + + "js-cookie": ["js-cookie@3.0.5", "", {}, "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], @@ -1759,6 +1990,8 @@ "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], + "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], + "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], @@ -1773,6 +2006,8 @@ "lazystream": ["lazystream@1.0.1", "", { "dependencies": { "readable-stream": "^2.0.5" } }, "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw=="], + "leac": ["leac@0.6.0", "", {}, "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg=="], + "lightningcss": ["lightningcss@1.30.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.30.1", "lightningcss-darwin-x64": "1.30.1", "lightningcss-freebsd-x64": "1.30.1", "lightningcss-linux-arm-gnueabihf": "1.30.1", "lightningcss-linux-arm64-gnu": "1.30.1", "lightningcss-linux-arm64-musl": "1.30.1", "lightningcss-linux-x64-gnu": "1.30.1", "lightningcss-linux-x64-musl": "1.30.1", "lightningcss-win32-arm64-msvc": "1.30.1", "lightningcss-win32-x64-msvc": "1.30.1" } }, "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg=="], "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ=="], @@ -1795,20 +2030,32 @@ "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.1", "", { "os": "win32", "cpu": "x64" }, "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg=="], + "lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], + + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + "listhen": ["listhen@1.9.0", "", { "dependencies": { "@parcel/watcher": "^2.4.1", "@parcel/watcher-wasm": "^2.4.1", "citty": "^0.1.6", "clipboardy": "^4.0.0", "consola": "^3.2.3", "crossws": ">=0.2.0 <0.4.0", "defu": "^6.1.4", "get-port-please": "^3.1.2", "h3": "^1.12.0", "http-shutdown": "^1.2.2", "jiti": "^2.1.2", "mlly": "^1.7.1", "node-forge": "^1.3.1", "pathe": "^1.1.2", "std-env": "^3.7.0", "ufo": "^1.5.4", "untun": "^0.1.3", "uqr": "^0.1.2" }, "bin": { "listen": "bin/listhen.mjs", "listhen": "bin/listhen.mjs" } }, "sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg=="], "local-pkg": ["local-pkg@1.1.2", "", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A=="], + "locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], "lodash.defaults": ["lodash.defaults@4.2.0", "", {}, "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ=="], "lodash.isarguments": ["lodash.isarguments@3.1.0", "", {}, "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg=="], + "loglevelnext": ["loglevelnext@6.0.0", "", {}, "sha512-FDl1AI2sJGjHHG3XKJd6sG3/6ncgiGCQ0YkW46nxe7SfqQq6hujd9CvFXIXtkGBUN83KPZ2KSOJK8q5P0bSSRQ=="], + "long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "lower-case": ["lower-case@2.0.2", "", { "dependencies": { "tslib": "^2.0.3" } }, "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="], + "lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], "lru.min": ["lru.min@1.1.2", "", {}, "sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg=="], @@ -1829,6 +2076,8 @@ "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + "md-to-react-email": ["md-to-react-email@5.0.0", "", { "dependencies": { "marked": "7.0.4" }, "peerDependencies": { "react": "18.x" } }, "sha512-GdBrBUbAAJHypnuyofYGfVos8oUslxHx69hs3CW9P0L8mS1sT6GnJuMBTlz/Fw+2widiwdavcu9UwyLF/BzZ4w=="], + "mdast-util-definitions": ["mdast-util-definitions@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ=="], "mdast-util-directive": ["mdast-util-directive@3.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q=="], @@ -1981,8 +2230,12 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "mustache": ["mustache@4.2.0", "", { "bin": { "mustache": "bin/mustache" } }, "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="], + "mysql2": ["mysql2@3.14.4", "", { "dependencies": { "aws-ssl-profiles": "^1.1.1", "denque": "^2.1.0", "generate-function": "^2.3.1", "iconv-lite": "^0.7.0", "long": "^5.2.1", "lru.min": "^1.0.0", "named-placeholders": "^1.1.3", "seq-queue": "^0.0.5", "sqlstring": "^2.3.2" } }, "sha512-Cs/jx3WZPNrYHVz+Iunp9ziahaG5uFMvD2R8Zlmc194AqXNxt9HBNu7ZsPYrUtmJsF0egETCWIdMIYAwOGjL1w=="], + "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], + "named-placeholders": ["named-placeholders@1.1.3", "", { "dependencies": { "lru-cache": "^7.14.1" } }, "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w=="], "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], @@ -1999,6 +2252,8 @@ "nlcst-to-string": ["nlcst-to-string@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="], + "no-case": ["no-case@3.0.4", "", { "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="], + "node-abi": ["node-abi@3.77.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ=="], "node-addon-api": ["node-addon-api@6.1.0", "", {}, "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="], @@ -2017,10 +2272,12 @@ "node-releases": ["node-releases@2.0.21", "", {}, "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw=="], - "nopt": ["nopt@8.1.0", "", { "dependencies": { "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A=="], + "nopt": ["nopt@7.2.1", "", { "dependencies": { "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w=="], "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], + "npm-run-path": ["npm-run-path@5.3.0", "", { "dependencies": { "path-key": "^4.0.0" } }, "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ=="], "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], @@ -2061,12 +2318,18 @@ "openid-client": ["openid-client@5.6.4", "", { "dependencies": { "jose": "^4.15.4", "lru-cache": "^6.0.0", "object-hash": "^2.2.0", "oidc-token-hash": "^5.0.3" } }, "sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA=="], + "p-defer": ["p-defer@3.0.0", "", {}, "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw=="], + "p-limit": ["p-limit@6.2.0", "", { "dependencies": { "yocto-queue": "^1.1.1" } }, "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA=="], + "p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "p-queue": ["p-queue@8.1.1", "", { "dependencies": { "eventemitter3": "^5.0.1", "p-timeout": "^6.1.2" } }, "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ=="], "p-timeout": ["p-timeout@6.1.4", "", {}, "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg=="], + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], "package-manager-detector": ["package-manager-detector@1.3.0", "", {}, "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ=="], @@ -2075,14 +2338,24 @@ "pako": ["pako@0.2.9", "", {}, "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="], + "param-case": ["param-case@3.0.4", "", { "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="], + "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], "parse-latin": ["parse-latin@7.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", "nlcst-to-string": "^4.0.0", "unist-util-modify-children": "^4.0.0", "unist-util-visit-children": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ=="], "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + "parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@7.1.0", "", { "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g=="], + + "parseley": ["parseley@0.12.1", "", { "dependencies": { "leac": "^0.6.0", "peberminta": "^0.9.0" } }, "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw=="], + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + "pascal-case": ["pascal-case@3.1.2", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], @@ -2095,30 +2368,50 @@ "pathe": ["pathe@1.1.2", "", {}, "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="], + "peberminta": ["peberminta@0.9.0", "", {}, "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ=="], + "perfect-debounce": ["perfect-debounce@1.0.0", "", {}, "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="], "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], + + "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + "pkce-challenge": ["pkce-challenge@5.0.0", "", {}, "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ=="], + "pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], + "pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + "postcss-css-variables": ["postcss-css-variables@0.18.0", "", { "dependencies": { "balanced-match": "^1.0.0", "escape-string-regexp": "^1.0.3", "extend": "^3.0.1" }, "peerDependencies": { "postcss": "^8.2.6" } }, "sha512-lYS802gHbzn1GI+lXvy9MYIYDuGnl1WB4FTKoqMQqJ3Mab09A7a/1wZvGTkCEZJTM8mSbIyb1mJYn8f0aPye0Q=="], + + "postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="], + + "postcss-js": ["postcss-js@4.1.0", "", { "dependencies": { "camelcase-css": "^2.0.1" }, "peerDependencies": { "postcss": "^8.4.21" } }, "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw=="], + + "postcss-load-config": ["postcss-load-config@4.0.2", "", { "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="], + "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="], "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + "postgres": ["postgres@3.4.7", "", {}, "sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw=="], "prebuild-install": ["prebuild-install@7.1.3", "", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": { "prebuild-install": "bin.js" } }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="], "prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="], + "pretty": ["pretty@2.0.0", "", { "dependencies": { "condense-newlines": "^0.2.1", "extend-shallow": "^2.0.1", "js-beautify": "^1.6.12" } }, "sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w=="], + "pretty-bytes": ["pretty-bytes@7.1.0", "", {}, "sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw=="], "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], @@ -2131,6 +2424,8 @@ "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + "proto-list": ["proto-list@1.2.4", "", {}, "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA=="], + "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], @@ -2157,6 +2452,24 @@ "rc9": ["rc9@2.1.2", "", { "dependencies": { "defu": "^6.1.4", "destr": "^2.0.3" } }, "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg=="], + "react": ["react@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="], + + "react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], + + "react-refresh": ["react-refresh@0.17.0", "", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], + + "react-remove-scroll": ["react-remove-scroll@2.5.5", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", "use-callback-ref": "^1.3.0", "use-sidecar": "^1.1.2" }, "peerDependencies": { "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw=="], + + "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], + + "react-router": ["react-router@6.16.0", "", { "dependencies": { "@remix-run/router": "1.9.0" }, "peerDependencies": { "react": ">=16.8" } }, "sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA=="], + + "react-router-dom": ["react-router-dom@6.16.0", "", { "dependencies": { "@remix-run/router": "1.9.0", "react-router": "6.16.0" }, "peerDependencies": { "react": ">=16.8", "react-dom": ">=16.8" } }, "sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg=="], + + "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], + + "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], + "readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="], "readdir-glob": ["readdir-glob@1.1.3", "", { "dependencies": { "minimatch": "^5.1.0" } }, "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA=="], @@ -2199,6 +2512,8 @@ "rehype-stringify": ["rehype-stringify@10.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", "unified": "^11.0.0" } }, "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA=="], + "relateurl": ["relateurl@0.2.7", "", {}, "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog=="], + "remark-directive": ["remark-directive@3.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", "micromark-extension-directive": "^3.0.0", "unified": "^11.0.0" } }, "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A=="], "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], @@ -2221,6 +2536,8 @@ "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="], + "resolve-cwd": ["resolve-cwd@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="], + "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], @@ -2255,12 +2572,16 @@ "sax": ["sax@1.2.1", "", {}, "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA=="], + "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + "scule": ["scule@1.3.0", "", {}, "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g=="], "section-matter": ["section-matter@1.0.0", "", { "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" } }, "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA=="], "secure-json-parse": ["secure-json-parse@2.7.0", "", {}, "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="], + "selderee": ["selderee@0.11.0", "", { "dependencies": { "parseley": "^0.12.0" } }, "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA=="], + "semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], "send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="], @@ -2291,6 +2612,8 @@ "shiki": ["shiki@3.9.2", "", { "dependencies": { "@shikijs/core": "3.9.2", "@shikijs/engine-javascript": "3.9.2", "@shikijs/engine-oniguruma": "3.9.2", "@shikijs/langs": "3.9.2", "@shikijs/themes": "3.9.2", "@shikijs/types": "3.9.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-t6NKl5e/zGTvw/IyftLcumolgOczhuroqwXngDeMqJ3h3EQiTY/7wmfgPlsmloD8oYfqkEDqxiaH37Pjm1zUhQ=="], + "shikiji": ["shikiji@0.6.13", "", { "dependencies": { "hast-util-to-html": "^9.0.0" } }, "sha512-4T7X39csvhT0p7GDnq9vysWddf2b6BeioiN3Ymhnt3xcy9tXmDcnsEFVxX18Z4YcQgEE/w48dLJ4pPPUcG9KkA=="], + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], @@ -2311,7 +2634,7 @@ "sitemap": ["sitemap@8.0.0", "", { "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", "arg": "^5.0.0", "sax": "^1.2.4" }, "bin": { "sitemap": "dist/cli.js" } }, "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A=="], - "slash": ["slash@5.1.0", "", {}, "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg=="], + "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], "smob": ["smob@1.5.0", "", {}, "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig=="], @@ -2401,7 +2724,11 @@ "style-to-object": ["style-to-object@1.0.9", "", { "dependencies": { "inline-style-parser": "0.2.4" } }, "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw=="], - "supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], + "sucrase": ["sucrase@3.35.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA=="], + + "superstruct": ["superstruct@1.0.4", "", {}, "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], @@ -2423,6 +2750,10 @@ "text-decoder": ["text-decoder@1.2.3", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA=="], + "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], + + "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], @@ -2431,6 +2762,8 @@ "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + "titleize": ["titleize@4.0.0", "", {}, "sha512-ZgUJ1K83rhdu7uh7EHAC2BgY5DzoX8V5rTvoWI4vFysggi6YjLe5gUXABPWAU7VkvGP7P/0YiWq+dcPeYDsf1g=="], + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], "toad-cache": ["toad-cache@3.7.0", "", {}, "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw=="], @@ -2449,6 +2782,8 @@ "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], + "tsconfck": ["tsconfck@3.1.6", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="], "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -2473,6 +2808,8 @@ "turndown": ["turndown@7.2.0", "", { "dependencies": { "@mixmark-io/domino": "^2.2.0" } }, "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="], + "tw-to-css": ["tw-to-css@0.0.12", "", { "dependencies": { "postcss": "8.4.31", "postcss-css-variables": "0.18.0", "tailwindcss": "3.3.2" } }, "sha512-rQAsQvOtV1lBkyCw+iypMygNHrShYAItES5r8fMsrhhaj5qrV2LkZyXc8ccEH+u5bFjHjQ9iuxe90I7Kykf6pw=="], + "type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], "type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="], @@ -2533,6 +2870,8 @@ "universal-user-agent": ["universal-user-agent@7.0.3", "", {}, "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A=="], + "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], "unplugin": ["unplugin@2.3.10", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "acorn": "^8.15.0", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw=="], @@ -2555,6 +2894,10 @@ "url": ["url@0.10.3", "", { "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" } }, "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ=="], + "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], + + "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], + "util": ["util@0.12.5", "", { "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", "which-typed-array": "^1.1.2" } }, "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA=="], "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], @@ -2577,6 +2920,8 @@ "vite": ["vite@6.3.6", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA=="], + "vite-plugin-dynamic-import": ["vite-plugin-dynamic-import@1.6.0", "", { "dependencies": { "acorn": "^8.12.1", "es-module-lexer": "^1.5.4", "fast-glob": "^3.3.2", "magic-string": "^0.30.11" } }, "sha512-TM0sz70wfzTIo9YCxVFwS8OA9lNREsh+0vMHGSkWDTZ7bgd1Yjs5RV8EgB634l/91IsXJReg0xtmuQqP0mf+rg=="], + "vite-plugin-icons-spritesheet": ["vite-plugin-icons-spritesheet@3.0.1", "", { "dependencies": { "chalk": "^5.4.1", "glob": "^11.0.1", "node-html-parser": "^7.0.1", "tinyexec": "^0.3.2" }, "peerDependencies": { "vite": ">=5.2.0" } }, "sha512-Cr0+Z6wRMwSwKisWW9PHeTjqmQFv0jwRQQMc3YgAhAgZEe03j21el0P/CA31KN/L5eiL1LhR14VTXl96LetonA=="], "vite-plugin-solid": ["vite-plugin-solid@2.11.8", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg=="], @@ -2631,6 +2976,8 @@ "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "yaml": ["yaml@2.8.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="], + "yargs": ["yargs@18.0.0", "", { "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^7.2.0", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" } }, "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg=="], "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], @@ -2659,8 +3006,6 @@ "@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@2.2.8", "", { "dependencies": { "@ai-sdk/provider": "1.1.3", "nanoid": "^3.3.8", "secure-json-parse": "^2.7.0" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA=="], - "@ai-sdk/amazon-bedrock/aws4fetch": ["aws4fetch@1.0.20", "", {}, "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g=="], - "@ai-sdk/amazon-bedrock/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "@ai-sdk/gateway/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@3.0.1", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@standard-schema/spec": "^1.0.0", "eventsource-parser": "^3.0.3", "zod-to-json-schema": "^3.24.1" }, "peerDependencies": { "zod": "^3.25.76 || ^4" } }, "sha512-/iP1sKc6UdJgGH98OCly7sWJKv+J9G47PnTjIj40IJMUQKwDrUMyf7zOOfRtPwSuNifYhSoJQ4s1WltI65gJ/g=="], @@ -2693,6 +3038,8 @@ "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], + "@dot/log/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], "@expressive-code/plugin-shiki/shiki": ["shiki@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/engine-javascript": "3.13.0", "@shikijs/engine-oniguruma": "3.13.0", "@shikijs/langs": "3.13.0", "@shikijs/themes": "3.13.0", "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g=="], @@ -2703,6 +3050,20 @@ "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], + "@jsx-email/cli/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "@jsx-email/cli/esbuild": ["esbuild@0.19.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.19.12", "@esbuild/android-arm": "0.19.12", "@esbuild/android-arm64": "0.19.12", "@esbuild/android-x64": "0.19.12", "@esbuild/darwin-arm64": "0.19.12", "@esbuild/darwin-x64": "0.19.12", "@esbuild/freebsd-arm64": "0.19.12", "@esbuild/freebsd-x64": "0.19.12", "@esbuild/linux-arm": "0.19.12", "@esbuild/linux-arm64": "0.19.12", "@esbuild/linux-ia32": "0.19.12", "@esbuild/linux-loong64": "0.19.12", "@esbuild/linux-mips64el": "0.19.12", "@esbuild/linux-ppc64": "0.19.12", "@esbuild/linux-riscv64": "0.19.12", "@esbuild/linux-s390x": "0.19.12", "@esbuild/linux-x64": "0.19.12", "@esbuild/netbsd-x64": "0.19.12", "@esbuild/openbsd-x64": "0.19.12", "@esbuild/sunos-x64": "0.19.12", "@esbuild/win32-arm64": "0.19.12", "@esbuild/win32-ia32": "0.19.12", "@esbuild/win32-x64": "0.19.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg=="], + + "@jsx-email/cli/tailwindcss": ["tailwindcss@3.3.3", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.18.2", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", "postcss": "^8.4.23", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.1", "postcss-nested": "^6.0.1", "postcss-selector-parser": "^6.0.11", "resolve": "^1.22.2", "sucrase": "^3.32.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w=="], + + "@jsx-email/cli/vite": ["vite@4.5.14", "", { "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", "rollup": "^3.27.1" }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g=="], + + "@jsx-email/doiuse-email/dot-prop": ["dot-prop@8.0.2", "", { "dependencies": { "type-fest": "^3.8.0" } }, "sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ=="], + + "@jsx-email/doiuse-email/htmlparser2": ["htmlparser2@9.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "entities": "^4.5.0" } }, "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ=="], + + "@mapbox/node-pre-gyp/nopt": ["nopt@8.1.0", "", { "dependencies": { "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A=="], + "@mdx-js/mdx/source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], "@modelcontextprotocol/sdk/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -2713,8 +3074,6 @@ "@openauthjs/openauth/@standard-schema/spec": ["@standard-schema/spec@1.0.0-beta.3", "", {}, "sha512-0ifF3BjA1E8SY9C+nUew8RefNOIq0cDlYALPty4rhUm8Rrl6tCM8hBT4bhGhx7I7iXD0uAgt50lgo8dD73ACMw=="], - "@openauthjs/openauth/aws4fetch": ["aws4fetch@1.0.20", "", {}, "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g=="], - "@openauthjs/openauth/jose": ["jose@5.9.6", "", {}, "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ=="], "@opencode-ai/sdk/@hey-api/openapi-ts": ["@hey-api/openapi-ts@0.81.0", "", { "dependencies": { "@hey-api/json-schema-ref-parser": "1.0.6", "ansi-colors": "4.1.3", "c12": "2.0.1", "color-support": "1.1.3", "commander": "13.0.0", "handlebars": "4.7.8", "js-yaml": "4.1.0", "open": "10.1.2", "semver": "7.7.2" }, "peerDependencies": { "typescript": "^5.5.3" }, "bin": { "openapi-ts": "bin/index.cjs" } }, "sha512-PoJukNBkUfHOoMDpN33bBETX49TUhy7Hu8Sa0jslOvFndvZ5VjQr4Nl/Dzjb9LG1Lp5HjybyTJMA6a1zYk/q6A=="], @@ -2737,6 +3096,8 @@ "@parcel/watcher-wasm/napi-wasm": ["napi-wasm@1.1.3", "", { "bundled": true }, "sha512-h/4nMGsHjZDCYmQVNODIrYACVJ+I9KItbG+0si6W/jSjdA9JbWDoU4LLeMXVcEQGHjttI2tuXqDrbGF7qkUHHg=="], + "@poppinss/dumper/supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], + "@rollup/plugin-commonjs/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], "@rollup/plugin-inject/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], @@ -2801,16 +3162,28 @@ "body-parser/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "bun-types/@types/react": ["@types/react@19.1.13", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ=="], + "compress-commons/is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], + "condense-newlines/kind-of": ["kind-of@3.2.2", "", { "dependencies": { "is-buffer": "^1.1.5" } }, "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="], + "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], "dax-sh/undici-types": ["undici-types@5.28.4", "", {}, "sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww=="], - "dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + "dir-glob/path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], "drizzle-kit/esbuild": ["esbuild@0.19.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.19.12", "@esbuild/android-arm": "0.19.12", "@esbuild/android-arm64": "0.19.12", "@esbuild/android-x64": "0.19.12", "@esbuild/darwin-arm64": "0.19.12", "@esbuild/darwin-x64": "0.19.12", "@esbuild/freebsd-arm64": "0.19.12", "@esbuild/freebsd-x64": "0.19.12", "@esbuild/linux-arm": "0.19.12", "@esbuild/linux-arm64": "0.19.12", "@esbuild/linux-ia32": "0.19.12", "@esbuild/linux-loong64": "0.19.12", "@esbuild/linux-mips64el": "0.19.12", "@esbuild/linux-ppc64": "0.19.12", "@esbuild/linux-riscv64": "0.19.12", "@esbuild/linux-s390x": "0.19.12", "@esbuild/linux-x64": "0.19.12", "@esbuild/netbsd-x64": "0.19.12", "@esbuild/openbsd-x64": "0.19.12", "@esbuild/sunos-x64": "0.19.12", "@esbuild/win32-arm64": "0.19.12", "@esbuild/win32-ia32": "0.19.12", "@esbuild/win32-x64": "0.19.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg=="], + "editorconfig/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], + + "editorconfig/minimatch": ["minimatch@9.0.1", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w=="], + + "esbuild-plugin-copy/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "esbuild-plugin-copy/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + "estree-util-to-js/source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], "express/cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], @@ -2819,18 +3192,26 @@ "express/serve-static": ["serve-static@2.2.0", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ=="], + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], "giget/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], "giget/tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], + "globby/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + "gray-matter/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], "h3/cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], "hast-util-to-parse5/property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], + "html-minifier-terser/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], + + "js-beautify/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "lazystream/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], "listhen/@parcel/watcher-wasm": ["@parcel/watcher-wasm@2.5.1", "", { "dependencies": { "is-glob": "^4.0.3", "micromatch": "^4.0.5", "napi-wasm": "^1.1.0" } }, "sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw=="], @@ -2839,6 +3220,8 @@ "local-pkg/pkg-types": ["pkg-types@2.3.0", "", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="], + "md-to-react-email/marked": ["marked@7.0.4", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ=="], + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "miniflare/acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="], @@ -2857,6 +3240,8 @@ "nitropack/confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], + "nitropack/globby": ["globby@14.1.0", "", { "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.3", "ignore": "^7.0.3", "path-type": "^6.0.0", "slash": "^5.1.0", "unicorn-magic": "^0.3.0" } }, "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA=="], + "nitropack/h3": ["h3@1.15.4", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.2", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ=="], "nitropack/ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], @@ -2891,14 +3276,22 @@ "openid-client/jose": ["jose@4.15.9", "", {}, "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA=="], + "p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "p-queue/eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="], "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + "parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "path-scurry/lru-cache": ["lru-cache@11.2.2", "", {}, "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg=="], "pkg-types/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "postcss-css-variables/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], + + "postcss-load-config/lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + "prebuild-install/tar-fs": ["tar-fs@2.1.4", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ=="], "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], @@ -2929,6 +3322,8 @@ "sitemap/sax": ["sax@1.4.1", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], + "sst/aws4fetch": ["aws4fetch@1.0.18", "", {}, "sha512-3Cf+YaUl07p24MoQ46rFwulAmiyCwH2+1zw1ZyPAX5OtJ34Hh185DwB8y/qRLb6cYYYtSFJ9pthyLc0MD4e8sQ=="], + "sst/jose": ["jose@5.2.3", "", {}, "sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA=="], "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -2939,6 +3334,10 @@ "strip-literal/js-tokens": ["js-tokens@9.0.1", "", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="], + "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], + + "sucrase/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "tar/yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], @@ -2947,6 +3346,10 @@ "tree-sitter-bash/node-addon-api": ["node-addon-api@8.5.0", "", {}, "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A=="], + "tw-to-css/postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="], + + "tw-to-css/tailwindcss": ["tailwindcss@3.3.2", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.18.2", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", "postcss": "^8.4.23", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.1", "postcss-nested": "^6.0.1", "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0", "resolve": "^1.22.2", "sucrase": "^3.32.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w=="], + "unenv/mime": ["mime@3.0.0", "", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="], "unifont/ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], @@ -2973,7 +3376,7 @@ "wrangler/unenv": ["unenv@2.0.0-rc.21", "", { "dependencies": { "defu": "^6.1.4", "exsolve": "^1.0.7", "ohash": "^2.0.11", "pathe": "^2.0.3", "ufo": "^1.6.1" } }, "sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A=="], - "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], "wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], @@ -3059,6 +3462,68 @@ "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + + "@jsx-email/cli/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.19.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA=="], + + "@jsx-email/cli/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.19.12", "", { "os": "android", "cpu": "arm" }, "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w=="], + + "@jsx-email/cli/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.19.12", "", { "os": "android", "cpu": "arm64" }, "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA=="], + + "@jsx-email/cli/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.19.12", "", { "os": "android", "cpu": "x64" }, "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew=="], + + "@jsx-email/cli/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.19.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g=="], + + "@jsx-email/cli/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.19.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A=="], + + "@jsx-email/cli/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.19.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA=="], + + "@jsx-email/cli/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.19.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.19.12", "", { "os": "linux", "cpu": "arm" }, "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.19.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.19.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.19.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.19.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg=="], + + "@jsx-email/cli/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.19.12", "", { "os": "linux", "cpu": "x64" }, "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg=="], + + "@jsx-email/cli/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.19.12", "", { "os": "none", "cpu": "x64" }, "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA=="], + + "@jsx-email/cli/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.19.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw=="], + + "@jsx-email/cli/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.19.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA=="], + + "@jsx-email/cli/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.19.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A=="], + + "@jsx-email/cli/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.19.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ=="], + + "@jsx-email/cli/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.19.12", "", { "os": "win32", "cpu": "x64" }, "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA=="], + + "@jsx-email/cli/tailwindcss/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "@jsx-email/cli/tailwindcss/jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], + + "@jsx-email/cli/tailwindcss/object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], + + "@jsx-email/cli/vite/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], + + "@jsx-email/cli/vite/rollup": ["rollup@3.29.5", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w=="], + + "@jsx-email/doiuse-email/dot-prop/type-fest": ["type-fest@3.13.1", "", {}, "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g=="], + + "@mapbox/node-pre-gyp/nopt/abbrev": ["abbrev@3.0.1", "", {}, "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg=="], + "@octokit/core/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@26.0.0", "", {}, "sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA=="], "@octokit/plugin-rest-endpoint-methods/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@26.0.0", "", {}, "sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA=="], @@ -3159,6 +3624,10 @@ "drizzle-kit/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.19.12", "", { "os": "win32", "cpu": "x64" }, "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA=="], + "esbuild-plugin-copy/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "esbuild-plugin-copy/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + "giget/tar/chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], "giget/tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], @@ -3167,6 +3636,12 @@ "gray-matter/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "js-beautify/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + + "js-beautify/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "js-beautify/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "lazystream/readable-stream/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], "lazystream/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], @@ -3183,14 +3658,14 @@ "nitropack/c12/giget": ["giget@2.0.0", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.0", "defu": "^6.1.4", "node-fetch-native": "^1.6.6", "nypm": "^0.6.0", "pathe": "^2.0.3" }, "bin": { "giget": "dist/cli.mjs" } }, "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA=="], + "nitropack/globby/slash": ["slash@5.1.0", "", {}, "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg=="], + "nitropack/h3/cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], "nitropack/serve-static/send": ["send@1.2.0", "", { "dependencies": { "debug": "^4.3.5", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.0", "mime-types": "^3.0.1", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.1" } }, "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw=="], "opencode/@openauthjs/openauth/@standard-schema/spec": ["@standard-schema/spec@1.0.0-beta.3", "", {}, "sha512-0ifF3BjA1E8SY9C+nUew8RefNOIq0cDlYALPty4rhUm8Rrl6tCM8hBT4bhGhx7I7iXD0uAgt50lgo8dD73ACMw=="], - "opencode/@openauthjs/openauth/aws4fetch": ["aws4fetch@1.0.20", "", {}, "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g=="], - "opencode/@openauthjs/openauth/jose": ["jose@5.9.6", "", {}, "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ=="], "opencontrol/@modelcontextprotocol/sdk/pkce-challenge": ["pkce-challenge@4.1.0", "", {}, "sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ=="], @@ -3219,6 +3694,20 @@ "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "sucrase/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + + "sucrase/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "sucrase/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + + "tw-to-css/tailwindcss/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "tw-to-css/tailwindcss/jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], + + "tw-to-css/tailwindcss/object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], + + "tw-to-css/tailwindcss/postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + "unimport/pkg-types/confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], "unstorage/h3/cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], @@ -3299,6 +3788,54 @@ "@aws-crypto/util/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], + "@jsx-email/cli/tailwindcss/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "@jsx-email/cli/tailwindcss/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.18.20", "", { "os": "android", "cpu": "x64" }, "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.18.20", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.18.20", "", { "os": "darwin", "cpu": "x64" }, "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.18.20", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.18.20", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.18.20", "", { "os": "linux", "cpu": "arm" }, "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.18.20", "", { "os": "linux", "cpu": "arm64" }, "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.18.20", "", { "os": "linux", "cpu": "ia32" }, "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.18.20", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.18.20", "", { "os": "linux", "cpu": "s390x" }, "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.18.20", "", { "os": "linux", "cpu": "x64" }, "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.18.20", "", { "os": "none", "cpu": "x64" }, "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.18.20", "", { "os": "openbsd", "cpu": "x64" }, "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.18.20", "", { "os": "sunos", "cpu": "x64" }, "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.18.20", "", { "os": "win32", "cpu": "arm64" }, "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.18.20", "", { "os": "win32", "cpu": "ia32" }, "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g=="], + + "@jsx-email/cli/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="], + "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="], "@vercel/nft/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], @@ -3307,8 +3844,12 @@ "archiver-utils/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "esbuild-plugin-copy/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "giget/tar/minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "js-beautify/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "nitropack/c12/giget/nypm": ["nypm@0.6.2", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.2", "pathe": "^2.0.3", "pkg-types": "^2.3.0", "tinyexec": "^1.0.1" }, "bin": { "nypm": "dist/cli.mjs" } }, "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g=="], "prebuild-install/tar-fs/tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], @@ -3321,6 +3862,14 @@ "rollup-plugin-visualizer/yargs/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "sucrase/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "tw-to-css/tailwindcss/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "tw-to-css/tailwindcss/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "@jsx-email/cli/tailwindcss/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es/regex": ["regex@5.1.1", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw=="], "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es/regex-recursion": ["regex-recursion@5.1.1", "", { "dependencies": { "regex": "^5.1.1", "regex-utilities": "^2.3.0" } }, "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w=="], @@ -3329,8 +3878,8 @@ "rollup-plugin-visualizer/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "rollup-plugin-visualizer/yargs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "rollup-plugin-visualizer/yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "tw-to-css/tailwindcss/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], } } diff --git a/infra/console.ts b/infra/console.ts index bab66197..281bafad 100644 --- a/infra/console.ts +++ b/infra/console.ts @@ -110,6 +110,9 @@ const STRIPE_WEBHOOK_SECRET = new sst.Linkable("STRIPE_WEBHOOK_SECRET", { // CONSOLE //////////////// +const AWS_SES_ACCESS_KEY_ID = new sst.Secret("AWS_SES_ACCESS_KEY_ID") +const AWS_SES_SECRET_ACCESS_KEY = new sst.Secret("AWS_SES_SECRET_ACCESS_KEY") + let logProcessor if ($app.stage === "production" || $app.stage === "frank") { const HONEYCOMB_API_KEY = new sst.Secret("HONEYCOMB_API_KEY") @@ -122,7 +125,16 @@ if ($app.stage === "production" || $app.stage === "frank") { new sst.cloudflare.x.SolidStart("Console", { domain, path: "packages/console/app", - link: [database, AUTH_API_URL, STRIPE_WEBHOOK_SECRET, STRIPE_SECRET_KEY, ZEN_MODELS, EMAILOCTOPUS_API_KEY], + link: [ + database, + AUTH_API_URL, + STRIPE_WEBHOOK_SECRET, + STRIPE_SECRET_KEY, + ZEN_MODELS, + EMAILOCTOPUS_API_KEY, + AWS_SES_ACCESS_KEY_ID, + AWS_SES_SECRET_ACCESS_KEY, + ], environment: { //VITE_DOCS_URL: web.url.apply((url) => url!), //VITE_API_URL: gateway.url.apply((url) => url!), diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 5c43c3bb..18a2f5e2 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -11,8 +11,10 @@ }, "dependencies": { "@ibm/plex": "6.4.1", + "@jsx-email/render": "1.1.1", "@openauthjs/openauth": "0.0.0-20250322224806", "@opencode/console-core": "workspace:*", + "@opencode/console-mail": "workspace:*", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.0", "@solidjs/start": "^1.1.0", diff --git a/packages/console/app/public/email b/packages/console/app/public/email new file mode 120000 index 00000000..0df016d0 --- /dev/null +++ b/packages/console/app/public/email @@ -0,0 +1 @@ +../../mail/emails/templates/static \ No newline at end of file diff --git a/packages/console/app/src/context/auth.ts b/packages/console/app/src/context/auth.ts index 585cac3c..7097787f 100644 --- a/packages/console/app/src/context/auth.ts +++ b/packages/console/app/src/context/auth.ts @@ -1,5 +1,5 @@ import { getRequestEvent } from "solid-js/web" -import { and, Database, eq, inArray } from "@opencode/console-core/drizzle/index.js" +import { and, Database, eq, inArray, sql } from "@opencode/console-core/drizzle/index.js" import { WorkspaceTable } from "@opencode/console-core/schema/workspace.sql.js" import { UserTable } from "@opencode/console-core/schema/user.sql.js" import { redirect } from "@solidjs/router" @@ -54,8 +54,8 @@ export const getActor = async (workspace?: string): Promise => { } const accounts = Object.keys(auth.data.account ?? {}) if (accounts.length) { - const result = await Database.transaction(async (tx) => { - return await tx + const result = await Database.use((tx) => + tx .select({ user: UserTable, }) @@ -65,9 +65,15 @@ export const getActor = async (workspace?: string): Promise => { .where(and(inArray(AccountTable.id, accounts), eq(WorkspaceTable.id, workspace))) .limit(1) .execute() - .then((x) => x[0]) - }) + .then((x) => x[0]), + ) if (result) { + await Database.use((tx) => + tx + .update(UserTable) + .set({ timeSeen: sql`now()` }) + .where(eq(UserTable.id, result.user.id)), + ) return { type: "user", properties: { diff --git a/packages/console/app/src/routes/workspace/[id].tsx b/packages/console/app/src/routes/workspace/[id].tsx index 5257a8e9..df05b14b 100644 --- a/packages/console/app/src/routes/workspace/[id].tsx +++ b/packages/console/app/src/routes/workspace/[id].tsx @@ -7,10 +7,33 @@ import { UsageSection } from "./usage-section" import { KeySection } from "./key-section" import { MemberSection } from "./member-section" import { Show } from "solid-js" -import { useParams } from "@solidjs/router" +import { createAsync, query, useParams } from "@solidjs/router" +import { Actor } from "@opencode/console-core/actor.js" +import { withActor } from "~/context/auth.withActor" +import { and, Database, eq } from "@opencode/console-core/drizzle/index.js" +import { UserTable } from "@opencode/console-core/schema/user.sql.js" + +const getUser = query(async (workspaceID: string) => { + "use server" + return withActor(async () => { + const actor = Actor.use() + const isAdmin = await (async () => { + if (actor.type !== "user") return false + const role = await Database.use((tx) => + tx + .select({ role: UserTable.role }) + .from(UserTable) + .where(and(eq(UserTable.workspaceID, workspaceID), eq(UserTable.id, actor.properties.userID))), + ).then((x) => x[0]?.role) + return role === "admin" + })() + return { isAdmin } + }, workspaceID) +}, "user.get") export default function () { const params = useParams() + const data = createAsync(() => getUser(params.id)) return (
@@ -27,13 +50,17 @@ export default function () {
- - + + + + + + - - - + + +
) @@ -43,6 +70,6 @@ export function isBeta(workspaceID: string) { return [ "wrk_01K46JDFR0E75SG2Q8K172KF3Y", // production "wrk_01K4NFRR5P7FSYWH88307B4DDS", // dev - "wrk_01K68M8J1KK0PJ39H59B1EGHP6", // frank + "wrk_01K6G7HBZ7C046A4XK01CVD0NS", // frank ].includes(workspaceID) } diff --git a/packages/console/app/src/routes/workspace/member-section.tsx b/packages/console/app/src/routes/workspace/member-section.tsx index d0afd7eb..0e3a101f 100644 --- a/packages/console/app/src/routes/workspace/member-section.tsx +++ b/packages/console/app/src/routes/workspace/member-section.tsx @@ -2,32 +2,49 @@ import { json, query, action, useParams, createAsync, useSubmission } from "@sol import { createEffect, createSignal, For, Show } from "solid-js" import { withActor } from "~/context/auth.withActor" import { createStore } from "solid-js/store" -import { formatDateUTC, formatDateForTable } from "./common" import styles from "./member-section.module.css" -import { and, Database, eq, sql } from "@opencode/console-core/drizzle/index.js" +import { and, Database, eq, isNull, sql } from "@opencode/console-core/drizzle/index.js" import { UserTable, UserRole } from "@opencode/console-core/schema/user.sql.js" import { Identifier } from "@opencode/console-core/identifier.js" +import { Actor } from "@opencode/console-core/actor.js" +import { AWS } from "@opencode/console-core/aws.js" -const removeMember = action(async (form: FormData) => { +const assertAdmin = async (workspaceID: string) => { + const actor = Actor.use() + if (actor.type !== "user") throw new Error(`Expected admin user, got ${actor.type}`) + const user = await Database.use((tx) => + tx + .select() + .from(UserTable) + .where(and(eq(UserTable.workspaceID, workspaceID), eq(UserTable.id, actor.properties.userID))), + ).then((x) => x[0]) + if (user?.role !== "admin") throw new Error(`Expected admin user, got ${user?.role}`) + return actor +} + +const assertNotSelf = (id: string) => { + const actor = Actor.use() + if (actor.type === "user" && actor.properties.userID === id) { + throw new Error(`Expected not self actor, got self actor`) + } + return actor +} + +const listMembers = query(async (workspaceID: string) => { "use server" - const id = form.get("id")?.toString() - if (!id) return { error: "ID is required" } - const workspaceID = form.get("workspaceID")?.toString() - if (!workspaceID) return { error: "Workspace ID is required" } - return json( - await withActor( - () => - Database.use((tx) => - tx - .update(UserTable) - .set({ timeDeleted: sql`now()` }) - .where(and(eq(UserTable.id, id), eq(UserTable.workspaceID, workspaceID))), - ), - workspaceID, - ), - { revalidate: listMembers.key }, - ) -}, "member.remove") + return withActor(async () => { + const actor = await assertAdmin(workspaceID) + return Database.use((tx) => + tx + .select() + .from(UserTable) + .where(and(eq(UserTable.workspaceID, workspaceID), isNull(UserTable.timeDeleted))), + ).then((members) => ({ + members, + currentUserID: actor.properties.userID, + })) + }, workspaceID) +}, "member.list") const inviteMember = action(async (form: FormData) => { "use server" @@ -38,34 +55,105 @@ const inviteMember = action(async (form: FormData) => { const role = form.get("role")?.toString() as (typeof UserRole)[number] if (!role) return { error: "Role is required" } return json( - await withActor( - () => - Database.use((tx) => - tx - .insert(UserTable) - .values({ - id: Identifier.create("user"), - name: "", - email, - workspaceID, - role, + await withActor(async () => { + await assertAdmin(workspaceID) + return Database.use((tx) => + tx + .insert(UserTable) + .values({ + id: Identifier.create("user"), + name: "", + email, + workspaceID, + role, + }) + .then((data) => ({ error: undefined, data })) + .then(async (data) => { + const { render } = await import("@jsx-email/render") + const { InviteEmail } = await import("@opencode/console-mail/InviteEmail.jsx") + await AWS.sendEmail({ + to: email, + subject: `You've been invited to join the ${workspaceID} workspace on OpenCode Zen`, + body: render( + // @ts-ignore + InviteEmail({ + assetsUrl: `https://opencode.ai/email`, + workspace: workspaceID, + }), + ), }) - .then((data) => ({ error: undefined, data })) - .catch((e) => ({ error: e.message as string })), - ), - workspaceID, - ), + return data + }) + .catch((e) => { + let error = e.message + if (error.match(/Duplicate entry '.*' for key 'user.user_email'/)) + error = "A user with this email has already been invited." + return { error } + }), + ) + }, workspaceID), { revalidate: listMembers.key }, ) }, "member.create") -const listMembers = query(async (workspaceID: string) => { +const removeMember = action(async (form: FormData) => { "use server" - return withActor( - () => Database.use((tx) => tx.select().from(UserTable).where(eq(UserTable.workspaceID, workspaceID))), - workspaceID, + const id = form.get("id")?.toString() + if (!id) return { error: "ID is required" } + const workspaceID = form.get("workspaceID")?.toString() + if (!workspaceID) return { error: "Workspace ID is required" } + return json( + await withActor(async () => { + await assertAdmin(workspaceID) + assertNotSelf(id) + return Database.transaction(async (tx) => { + const email = await tx + .select({ email: UserTable.email }) + .from(UserTable) + .where(and(eq(UserTable.id, id), eq(UserTable.workspaceID, workspaceID))) + .execute() + .then((rows) => rows[0].email) + if (!email) return { error: "User not found" } + await tx + .update(UserTable) + .set({ + oldEmail: email, + email: null, + timeDeleted: sql`now()`, + }) + .where(and(eq(UserTable.id, id), eq(UserTable.workspaceID, workspaceID))) + }) + .then(() => ({ error: undefined })) + .catch((e) => ({ error: e.message as string })) + }, workspaceID), + { revalidate: listMembers.key }, ) -}, "member.list") +}, "member.remove") + +const updateMemberRole = action(async (form: FormData) => { + "use server" + const id = form.get("id")?.toString() + if (!id) return { error: "ID is required" } + const workspaceID = form.get("workspaceID")?.toString() + if (!workspaceID) return { error: "Workspace ID is required" } + const role = form.get("role")?.toString() as (typeof UserRole)[number] + if (!role) return { error: "Role is required" } + return json( + await withActor(async () => { + await assertAdmin(workspaceID) + if (role === "member") assertNotSelf(id) + return Database.use((tx) => + tx + .update(UserTable) + .set({ role }) + .where(and(eq(UserTable.id, id), eq(UserTable.workspaceID, workspaceID))) + .then((data) => ({ error: undefined, data })) + .catch((e) => ({ error: e.message as string })), + ) + }, workspaceID), + { revalidate: listMembers.key }, + ) +}, "member.updateRole") export function MemberCreateForm() { const params = useParams() @@ -144,9 +232,89 @@ export function MemberCreateForm() { ) } +function MemberRow(props: { member: any; workspaceID: string; currentUserID: string | null }) { + const [editing, setEditing] = createSignal(false) + const submission = useSubmission(updateMemberRole) + const isCurrentUser = () => props.currentUserID === props.member.id + + createEffect(() => { + if (!submission.pending && submission.result && !submission.result.error) { + setEditing(false) + } + }) + + return ( + + {props.member.email} + {props.member.role} + }> + invited + + + + +
+ + + +
+
+ + + } + > + + +
+
{props.member.email}
+ + + Role: {props.member.role}}> +
+ + +
+
+ + {(err) =>
{err()}
} +
+
+ + + + +
+
+ + +
+ ) +} + export function MemberSection() { const params = useParams() - const members = createAsync(() => listMembers(params.id)) + const data = createAsync(() => listMembers(params.id)) return (
@@ -157,7 +325,7 @@ export function MemberSection() {

Invite a member to your workspace

@@ -169,32 +337,15 @@ export function MemberSection() { Email Role - Joined + - - {(member) => { - return ( - - {member.email} - {member.role} - invited}> - - {formatDateForTable(member.timeSeen!)} - - - -
- - - -
- - - ) - }} + + {(member) => ( + + )} diff --git a/packages/console/core/migrations/0021_flawless_clea.sql b/packages/console/core/migrations/0021_flawless_clea.sql new file mode 100644 index 00000000..8c4489c2 --- /dev/null +++ b/packages/console/core/migrations/0021_flawless_clea.sql @@ -0,0 +1,2 @@ +ALTER TABLE `user` MODIFY COLUMN `email` varchar(255);--> statement-breakpoint +ALTER TABLE `user` ADD `old_email` varchar(255); \ No newline at end of file diff --git a/packages/console/core/migrations/meta/0021_snapshot.json b/packages/console/core/migrations/meta/0021_snapshot.json new file mode 100644 index 00000000..b285e34f --- /dev/null +++ b/packages/console/core/migrations/meta/0021_snapshot.json @@ -0,0 +1,702 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "14616ba2-c21e-4787-a289-f2a3eb6de04f", + "prevId": "908437f9-54ed-4c83-b555-614926e326f8", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_created": { + "name": "time_created", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "time_updated": { + "name": "time_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "time_deleted": { + "name": "time_deleted", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "email": { + "name": "email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "billing": { + "name": "billing", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_id": { + "name": "workspace_id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_created": { + "name": "time_created", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "time_updated": { + "name": "time_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "time_deleted": { + "name": "time_deleted", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "customer_id": { + "name": "customer_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "payment_method_id": { + "name": "payment_method_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "payment_method_last4": { + "name": "payment_method_last4", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "balance": { + "name": "balance", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "monthly_limit": { + "name": "monthly_limit", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "monthly_usage": { + "name": "monthly_usage", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "time_monthly_usage_updated": { + "name": "time_monthly_usage_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reload": { + "name": "reload", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reload_error": { + "name": "reload_error", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "time_reload_error": { + "name": "time_reload_error", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "time_reload_locked_till": { + "name": "time_reload_locked_till", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "global_customer_id": { + "name": "global_customer_id", + "columns": [ + "customer_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "billing_workspace_id_id_pk": { + "name": "billing_workspace_id_id_pk", + "columns": [ + "workspace_id", + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "payment": { + "name": "payment", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_id": { + "name": "workspace_id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_created": { + "name": "time_created", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "time_updated": { + "name": "time_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "time_deleted": { + "name": "time_deleted", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "customer_id": { + "name": "customer_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "invoice_id": { + "name": "invoice_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "payment_id": { + "name": "payment_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "amount": { + "name": "amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_refunded": { + "name": "time_refunded", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "payment_workspace_id_id_pk": { + "name": "payment_workspace_id_id_pk", + "columns": [ + "workspace_id", + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "usage": { + "name": "usage", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_id": { + "name": "workspace_id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_created": { + "name": "time_created", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "time_updated": { + "name": "time_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "time_deleted": { + "name": "time_deleted", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "model": { + "name": "model", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "input_tokens": { + "name": "input_tokens", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "output_tokens": { + "name": "output_tokens", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reasoning_tokens": { + "name": "reasoning_tokens", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "cache_read_tokens": { + "name": "cache_read_tokens", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "cache_write_5m_tokens": { + "name": "cache_write_5m_tokens", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "cache_write_1h_tokens": { + "name": "cache_write_1h_tokens", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "cost": { + "name": "cost", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "usage_workspace_id_id_pk": { + "name": "usage_workspace_id_id_pk", + "columns": [ + "workspace_id", + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "key": { + "name": "key", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_id": { + "name": "workspace_id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_created": { + "name": "time_created", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "time_updated": { + "name": "time_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "time_deleted": { + "name": "time_deleted", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor": { + "name": "actor", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "old_name": { + "name": "old_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_used": { + "name": "time_used", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "global_key": { + "name": "global_key", + "columns": [ + "key" + ], + "isUnique": true + }, + "name": { + "name": "name", + "columns": [ + "workspace_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "key_workspace_id_id_pk": { + "name": "key_workspace_id_id_pk", + "columns": [ + "workspace_id", + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_id": { + "name": "workspace_id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_created": { + "name": "time_created", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "time_updated": { + "name": "time_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "time_deleted": { + "name": "time_deleted", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "old_email": { + "name": "old_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "time_seen": { + "name": "time_seen", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "color": { + "name": "color", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "enum('admin','member')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "workspace_id", + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_workspace_id_id_pk": { + "name": "user_workspace_id_id_pk", + "columns": [ + "workspace_id", + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "workspace": { + "name": "workspace", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "time_created": { + "name": "time_created", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "time_updated": { + "name": "time_updated", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "time_deleted": { + "name": "time_deleted", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "slug": { + "name": "slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "workspace_id": { + "name": "workspace_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/packages/console/core/migrations/meta/_journal.json b/packages/console/core/migrations/meta/_journal.json index 5b45082f..6879a3b3 100644 --- a/packages/console/core/migrations/meta/_journal.json +++ b/packages/console/core/migrations/meta/_journal.json @@ -148,6 +148,13 @@ "when": 1759169697658, "tag": "0020_supreme_jack_power", "breakpoints": true + }, + { + "idx": 21, + "version": "5", + "when": 1759186023755, + "tag": "0021_flawless_clea", + "breakpoints": true } ] } \ No newline at end of file diff --git a/packages/console/core/package.json b/packages/console/core/package.json index a1d0681c..acbef22e 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -8,6 +8,7 @@ "@aws-sdk/client-sts": "3.782.0", "@opencode/console-resource": "workspace:*", "@planetscale/database": "1.19.0", + "aws4fetch": "1.0.20", "drizzle-orm": "0.41.0", "postgres": "3.4.7", "stripe": "18.0.0", diff --git a/packages/console/core/src/account.ts b/packages/console/core/src/account.ts index cb123e04..3bed2bef 100644 --- a/packages/console/core/src/account.ts +++ b/packages/console/core/src/account.ts @@ -54,13 +54,7 @@ export namespace Account { .select(getTableColumns(WorkspaceTable)) .from(WorkspaceTable) .innerJoin(UserTable, eq(UserTable.workspaceID, WorkspaceTable.id)) - .where( - and( - eq(UserTable.email, actor.properties.email), - isNull(UserTable.timeDeleted), - isNull(WorkspaceTable.timeDeleted), - ), - ) + .where(and(eq(UserTable.email, actor.properties.email), isNull(WorkspaceTable.timeDeleted))) .execute(), ) } diff --git a/packages/console/core/src/actor.ts b/packages/console/core/src/actor.ts index f9db0129..0d13f721 100644 --- a/packages/console/core/src/actor.ts +++ b/packages/console/core/src/actor.ts @@ -1,5 +1,4 @@ import { Context } from "./context" -import { UserRole } from "./schema/user.sql" import { Log } from "./util/log" export namespace Actor { @@ -21,7 +20,6 @@ export namespace Actor { properties: { userID: string workspaceID: string - role: (typeof UserRole)[number] } } diff --git a/packages/console/core/src/aws.ts b/packages/console/core/src/aws.ts new file mode 100644 index 00000000..200e29e4 --- /dev/null +++ b/packages/console/core/src/aws.ts @@ -0,0 +1,63 @@ +import { z } from "zod" +import { Resource } from "@opencode/console-resource" +import { AwsClient } from "aws4fetch" +import { fn } from "./util/fn" + +export namespace AWS { + let client: AwsClient + + const createClient = () => { + if (!client) { + client = new AwsClient({ + accessKeyId: Resource.AWS_SES_ACCESS_KEY_ID.value, + secretAccessKey: Resource.AWS_SES_SECRET_ACCESS_KEY.value, + region: "us-east-1", + }) + } + return client + } + + export const sendEmail = fn( + z.object({ + to: z.string(), + subject: z.string(), + body: z.string(), + }), + async (input) => { + const res = await createClient().fetch("https://email.us-east-1.amazonaws.com/v2/email/outbound-emails", { + method: "POST", + headers: { + "X-Amz-Target": "SES.SendEmail", + "Content-Type": "application/json", + }, + body: JSON.stringify({ + FromEmailAddress: `OpenCode Zen `, + Destination: { + ToAddresses: [input.to], + }, + Content: { + Simple: { + Subject: { + Charset: "UTF-8", + Data: input.subject, + }, + Body: { + Text: { + Charset: "UTF-8", + Data: input.body, + }, + Html: { + Charset: "UTF-8", + Data: input.body, + }, + }, + }, + }, + }), + }) + if (!res.ok) { + throw new Error(`Failed to send email: ${res.statusText}`) + } + }, + ) +} diff --git a/packages/console/core/src/billing.ts b/packages/console/core/src/billing.ts index a87498a3..9c683a35 100644 --- a/packages/console/core/src/billing.ts +++ b/packages/console/core/src/billing.ts @@ -206,7 +206,7 @@ export namespace Billing { }, } : { - customer_email: user.email, + customer_email: user.email!, customer_creation: "always", }), currency: "usd", diff --git a/packages/console/core/src/schema/user.sql.ts b/packages/console/core/src/schema/user.sql.ts index 34939474..eaadb06d 100644 --- a/packages/console/core/src/schema/user.sql.ts +++ b/packages/console/core/src/schema/user.sql.ts @@ -9,7 +9,8 @@ export const UserTable = mysqlTable( { ...workspaceColumns, ...timestamps, - email: varchar("email", { length: 255 }).notNull(), + email: varchar("email", { length: 255 }), + oldEmail: varchar("old_email", { length: 255 }), name: varchar("name", { length: 255 }).notNull(), timeSeen: utc("time_seen"), color: int("color"), diff --git a/packages/console/core/src/workspace.ts b/packages/console/core/src/workspace.ts index 0ff3a153..d6eeb80c 100644 --- a/packages/console/core/src/workspace.ts +++ b/packages/console/core/src/workspace.ts @@ -21,7 +21,6 @@ export namespace Workspace { id: Identifier.create("user"), email: account.properties.email, name: "", - timeSeen: sql`now()`, role: "admin", }) await tx.insert(BillingTable).values({ diff --git a/packages/console/function/src/auth.ts b/packages/console/function/src/auth.ts index 5dc79968..77199fef 100644 --- a/packages/console/function/src/auth.ts +++ b/packages/console/function/src/auth.ts @@ -111,11 +111,7 @@ export default { } else if (response.provider === "google") { if (!response.id.email_verified) throw new Error("Google email not verified") email = response.id.email as string - } - //if (response.provider === "email") { - // email = response.claims.email - //} - else throw new Error("Unsupported provider") + } else throw new Error("Unsupported provider") if (!email) throw new Error("No email found") diff --git a/packages/console/function/sst-env.d.ts b/packages/console/function/sst-env.d.ts index 0cd862df..6a5d2bbf 100644 --- a/packages/console/function/sst-env.d.ts +++ b/packages/console/function/sst-env.d.ts @@ -10,6 +10,14 @@ declare module "sst" { "type": "sst.sst.Linkable" "value": string } + "AWS_SES_ACCESS_KEY_ID": { + "type": "sst.sst.Secret" + "value": string + } + "AWS_SES_SECRET_ACCESS_KEY": { + "type": "sst.sst.Secret" + "value": string + } "Console": { "type": "sst.cloudflare.SolidStart" "url": string diff --git a/packages/console/mail/emails/components.tsx b/packages/console/mail/emails/components.tsx new file mode 100644 index 00000000..d030b6cb --- /dev/null +++ b/packages/console/mail/emails/components.tsx @@ -0,0 +1,108 @@ +// @ts-nocheck +import React from "react" +import { Font, Hr as JEHr, Text as JEText, type HrProps, type TextProps } from "@jsx-email/all" +import { DIVIDER_COLOR, SURFACE_DIVIDER_COLOR, textColor } from "./styles" + +export function Text(props: TextProps) { + return +} + +export function Hr(props: HrProps) { + return +} + +export function SurfaceHr(props: HrProps) { + return ( + + ) +} + +export function Title({ children }: TitleProps) { + return React.createElement("title", null, children) +} + +export function A({ children, ...props }: AProps) { + return React.createElement("a", props, children) +} + +export function Span({ children, ...props }: SpanProps) { + return React.createElement("span", props, children) +} + +export function Wbr({ children, ...props }: WbrProps) { + return React.createElement("wbr", props, children) +} + +export function Fonts({ assetsUrl }: { assetsUrl: string }) { + return ( + <> + + + + + + + ) +} + +export function SplitString({ text, split }: { text: string; split: number }) { + const segments: JSX.Element[] = [] + for (let i = 0; i < text.length; i += split) { + segments.push(<>{text.slice(i, i + split)}) + if (i + split < text.length) { + segments.push() + } + } + return <>{segments} +} diff --git a/packages/console/mail/emails/styles.ts b/packages/console/mail/emails/styles.ts new file mode 100644 index 00000000..f9b62a7c --- /dev/null +++ b/packages/console/mail/emails/styles.ts @@ -0,0 +1,110 @@ +export const unit = 16; + +export const GREY_COLOR = [ + "#1A1A2E", //0 + "#2F2F41", //1 + "#444454", //2 + "#585867", //3 + "#6D6D7A", //4 + "#82828D", //5 + "#9797A0", //6 + "#ACACB3", //7 + "#C1C1C6", //8 + "#D5D5D9", //9 + "#EAEAEC", //10 + "#FFFFFF", //11 +]; + +export const BLUE_COLOR = "#395C6B"; +export const DANGER_COLOR = "#ED322C"; +export const TEXT_COLOR = GREY_COLOR[0]; +export const SECONDARY_COLOR = GREY_COLOR[5]; +export const DIMMED_COLOR = GREY_COLOR[7]; +export const DIVIDER_COLOR = GREY_COLOR[10]; +export const BACKGROUND_COLOR = "#F0F0F1"; +export const SURFACE_COLOR = DIVIDER_COLOR; +export const SURFACE_DIVIDER_COLOR = GREY_COLOR[9]; + +export const body = { + background: BACKGROUND_COLOR, +}; + +export const container = { + minWidth: "600px", +}; + +export const medium = { + fontWeight: 500, +}; + +export const danger = { + color: DANGER_COLOR, +}; + +export const frame = { + padding: `${unit * 1.5}px`, + border: `1px solid ${SURFACE_DIVIDER_COLOR}`, + background: "#FFF", + borderRadius: "6px", + boxShadow: `0 1px 2px rgba(0,0,0,0.03), + 0 2px 4px rgba(0,0,0,0.03), + 0 2px 6px rgba(0,0,0,0.03)`, +}; + +export const textColor = { + color: TEXT_COLOR, +}; + +export const code = { + fontFamily: "IBM Plex Mono, monospace", +}; + +export const headingHr = { + margin: `${unit}px 0`, +}; + +export const buttonPrimary = { + ...code, + padding: "12px 18px", + color: "#FFF", + borderRadius: "4px", + background: BLUE_COLOR, + fontSize: "12px", + fontWeight: 500, +}; + +export const compactText = { + margin: "0 0 2px", +}; + +export const breadcrumb = { + fontSize: "14px", + color: SECONDARY_COLOR, +}; + +export const breadcrumbColonSeparator = { + padding: " 0 4px", + color: DIMMED_COLOR, +}; + +export const breadcrumbSeparator = { + color: DIVIDER_COLOR, +}; + +export const heading = { + fontSize: "22px", + fontWeight: 500, +}; + +export const sectionLabel = { + ...code, + ...compactText, + letterSpacing: "0.5px", + fontSize: "13px", + fontWeight: 500, + color: DIMMED_COLOR, +}; + +export const footerLink = { + fontSize: "14px", +}; diff --git a/packages/console/mail/emails/templates/InviteEmail.tsx b/packages/console/mail/emails/templates/InviteEmail.tsx new file mode 100644 index 00000000..978080a9 --- /dev/null +++ b/packages/console/mail/emails/templates/InviteEmail.tsx @@ -0,0 +1,113 @@ +// @ts-nocheck +import React from "react" +import { Img, Row, Html, Link, Body, Head, Button, Column, Preview, Section, Container } from "@jsx-email/all" +import { Hr, Text, Fonts, SplitString, Title, A, Span } from "../components" +import { + unit, + body, + code, + frame, + medium, + heading, + container, + headingHr, + footerLink, + breadcrumb, + compactText, + buttonPrimary, + breadcrumbColonSeparator, +} from "../styles" + +const LOCAL_ASSETS_URL = "/static" +const CONSOLE_URL = "https://opencode.ai/" +const DOC_URL = "https://opencode.ai/docs/zen" + +interface InviteEmailProps { + workspace: string + assetsUrl: string +} +export const InviteEmail = ({ workspace, assetsUrl = LOCAL_ASSETS_URL }: InviteEmailProps) => { + const subject = `Join the ${workspace} workspace` + const messagePlain = `You've been invited to join the ${workspace} workspace in the OpenCode Zen Console.` + const url = `${CONSOLE_URL}workspace/${workspace}` + return ( + + + {`OpenCode Zen — ${messagePlain}`} + + + {messagePlain} + + +
+ + + + OpenCode Zen Logo + + + + + + + + + +
+
+
+ +
+ + OpenCode Zen + : + {workspace} + + + + + + +
+
+ + You've been invited to join the{" "} + + {workspace} + {" "} + workspace in the{" "} + + OpenCode Zen Console + + . + +
+ + + +
+
+
+ + + + + Console + + + + + About + + + +
+
+ + + ) +} + +export default InviteEmail diff --git a/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-400.woff2 b/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..89713fa9ae9ed1fb7cb9e067cf43c66c9a20db4c GIT binary patch literal 10088 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 Kw6mOITmS&bzdEP@ literal 0 HcmV?d00001 diff --git a/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-500.woff2 b/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-500.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..21413e73f58cb075d77dba6f2cdffee2a2492169 GIT binary patch literal 10132 zcmV;FCu`VuPew8T0RR9104J0H4gdfE0A36L04F*C0RR9100000000000000000000 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 Cn64E7 literal 0 HcmV?d00001 diff --git a/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-600.woff2 b/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-600.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4a2ebd962a99117c5630ea25ec7532126e924928 GIT binary patch literal 10148 zcmV;VCtKKePew8T0RR9104JmX4gdfE0A3IP04GTR0RR9100000000000000000000 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 S3`+(JyKPY8`Bgj<0002=FiXM! literal 0 HcmV?d00001 diff --git a/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-700.woff2 b/packages/console/mail/emails/templates/static/ibm-plex-mono-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..624783be59f0232ba0fee71f139909308e73acb4 GIT binary patch literal 10140 zcmV;NCu7)mPew8T0RR9104JOP4gdfE0A64K04GEM0RR9100000000000000000000 z0000QOdE!F9EMf~U;u<*5fBQ2i(Kvr3xqTP0X7081Bhe3pC%ccG!^oJ6Mf%m`w9iph|AIhAr9u`kW}-qcms z$LLMA-Gl~p#A>g3S!@;z3;rmDTHIb*p0h9yHa~WRCa2hW=(BsiTh;S~FD~icbqvLJ z1jUXS^5igP2)5aw7>ErPAkk7KRR-Ze1Pd!sv8TOFSN*6<7m>QC{Ga<;e&wPLb()m$ zUFuK~T_UtqhOt|J7=JA?P<(&l-VbohLeXfr($+d9uR@hyg98lsZ$N-7fj__ItW7E< z5g8$BG-;$VLZ91-*-YQR^S^Zdd#@zJoU<$cBz_KK_1geVkGp#X&NF33GtvAyKz1v) zA?%n-ZgJ>bt0b6RB(Cfu!5-wn>7t;iE2No$y%749T`fm}o$ciCSE+z^{%xx3eSiN% z4y$OFc*9`{!&=;$Vf(s&XZ?TwE|SeB^$aKoNHU!r1*9l_Qi<_ohrrK%nM$Ojz`MtK zSTnXfx69CVMDV}X)aK>y5232;coOnmSk}qC3zBeAEi1C+or|lnH7YVn7U+4qkOw}? z-myMBfnot`n@!Um$Es$KKCz}VdTdFXyVkToN~zefqu^S=K%9Gg4nnP&#*sExLYGpu zqLkou{{r_yU<^n@aSk8b3B(<(9pZjF#3OcyN9_>L+96)GLE@Vj0!l;$lE1*v{)+e? zc(Bz8SkJDOdVv3wws`>(6xuIBzDEuZCFkb>$SYw92xdGKNI4?(U)9(jWRPeQYR94@ z6cPvl{`Rlmz4oKmCOmZ8Rp-4vvXf-}yQB8oX|uIfBn~{X&qA~PZVc!}`N)6XWKDI< zgF#5t=lB&sp_TJ(3J(qP%-~Q#9c05~$c3>`s?pp4lrs?I!xTt_639U;F&lU*r(($F zatuj;d|(=j8XCmWySj?Lfqi0ea4E5Hh#?1ZArJDQ;Gq=?!=C3+clJVHlVhao5)eor z5Pe7p=r)&R7?gHV06^EagKxPRKM5Ju$>)LN`;VIME&_;28*t;ja7kM}09x|?qh8_U zWM=|gafK?Fl7$%L!NCy=x$sBGfVGeU;gAJI&L z8yi6O^8dMF5@4Upx4oeSmdguDxPMdyxr$e&^DtsG^E0 zs;HuhDySj|Y!_s*ysn^1ycCG-p$b^b7Xs6kj?jR*vD8>i40zUlD5axgod2-IDsEN@ zu{kor$PKKI7G5T$iXk*fLsVq_`vJvb;q3wjG6EpMtsM#pQT%9a;lIhu&Eo>dTQV1L z1h$B?RV41i{NPj-;O7ry?o{An!xm<*>S1RF9;E~lrgdB)2pAG zPLXoO+NJsc;#}2AO)gfhK{E`PrADoH>Ud?F#-QF?O}gB0(|gx=ObK{Hqa3e1_gcQ) zcGzjJUG~^#zoQO0?1)7XX1m{2_thXf_UZnX*6>eM55rZ8C#c z0g&4Ru?4W`4Z!k00L?u>z5yWDT3lV_DPfqS4=t(AFx(S~;3|F~L{g?1-X^8I^UvZu z4o)mtmigpv2|yE*uyfG|`;)sp&b`FW1)OmmHF=G^p>ARfiYFW+=pE)ZspWhTa-FktO+*AM7iCvlmg-A({1@Ni)y^(S zwqP<}*p+MkM!UpiIol56WH#RVk@LgW9^(Lw=_VLG*wD2{ViE+ABHQDR3d31XYrw}e z%I}>0l{%3QR;-Y+K=OAVwwmo#@KD2yVX+$lfa7_%9|-JtdLSIZ`rMnkBo?5+P_si) zv^VS>Sx9H}(z3cCIyPR=-3bYPsg!%tj7^V>Ih5tn1wumRap(34+a7lZcj3Bg@0G)N zz#GjmcLFLuunwLrWWKvX6lZ3zkQTk{a~^Q;`)9Oc&?rATlw$#t^sI7My}=wkY1`r= zcgPRAIN!hO{a}xI4q_FWjSMM1A3Tolv)BXp8E-M3Rhco=NDoSg1#vvyI7bw|6CiJV zgIL-_(xA9Xo;*l^73U(B>oPc6cD3X~HwKwif;O>cFlr;^IYRh`aP}ll(*UH1+f=RB z&nSef=<2*EFHiRiN1N*#@EEsNnwuakPWBOC(yoRI$|FHV=%kcw%gfwhw)ZPbLv&<- zr;L$fO_nRxY|kM}G^h}@ff9P4ucEA2ELwR7s_F)#kkgcTos92J9d@BagdC>SI{+&tsRi<7hS9hvR$ zD!G5p(}WV^Coy!9p+kldGnSYuhlx-EeYS`9N@*wBTOJb7tlkCrjnpKe>YO7MUOGe7 zAjV*iG~UJrYq>Ba$C@~kQ!hL|M;xTkV9CjWoO3vr{)=*XB?4c%JiU*M8VyWzRY~>> z5^R^2rllCP*m_`Csj(LJrmnyUI+Inl@2(sm#@bZnm%#Uy4S-r`$&+j~o2oO&4YW-o zsH~{33W;#gCs=Zw4S14AAQ+$UJR&4x!H9OI@q`QQS-VR#pS~^1s?@;_cFb#;rXSzJbp^j& z0siC_dWzrLm&P9g^|IV}vh}Z<>#G1phFl3H6+)H(sTG9M>8VTc=SoP6TAchTXHrX2 z)C7;x{7+SG?c(J`LN5SJb9G_GQ+VSWZPzOr!K+{!Qwi^acrRF8~21t_Lo&VJRIMAkRMv5Fy|AmlA?qs}o3vuSdy>@(+mg@gO^gSaF~4 zhc%e~-`Irp%=O^yd_1S1{v=mh6);=;gg%E`IJCGNNrmsU^E&+t;Kij zHZ{V8V{q7#)LoBW7snYUal-X5QQn@8YAxFUSWfkHu_m-oLE4d>Xw_m$LeBLXKL!$#;pLW}D)N9v0{ zQma0$&Wh$febhzs)I)T*+@!1~r6)DAj{)4Z~~b zQR@@v{Zz{$LP_S{ePM_})rmCL)JbY7wX@;jA`OuGLnkibRkW-uHGhv%x&jT-3+4IP zT%u>7phws>s8Y*%H*Ebrq@m!L1Xs23{eUv%iA%IfPBA16fV9~d60D1MArrC?{o=HM z)N+DVAYVtPJGM#bWA1dT8!6eff1G%hr=vArIn$z)lg7Hi#_@fFI`!FZxGj0N5BJoY z-SImc$g#KZ!IFAlVfvZ}^3QY61{+t7U4B}Q4`Ix`d=V@u;NX#uS&Z;B!zcD{=O2Q=m7psjzp~|Pd z(7qE2QWF~vIo(^KblWUD*kR;|!^l(KXijRCvf<)joY5?JE+H*JQFskrJOEiUiC}Dm z3VST`qk}NM7mor}9T6}OOOnNB*rDkMN-m3eWh_Ux5xKt&U7Fut)Q~aV((EkH8%HYZ z!Y{^XjF9^8d*R!0TzIx0<0$rEX6(0*IYXvpm)*!BHoDnch|$Z3p9sOc8N)y0sQEW9 z!8BD5=GWRL33Dc|6n|5oOIuh zJ0;c;n6BiICGsxlWmOG*qh+vm3NX!X^T-svmZPp*EqS0oY#gtkb$+~FQ}II;7Qf--jO4O&;p&Wr z-+(!Jr9L+&m2l2gL@jnKwL^C+st^>ni|DLPR~T8FQpLcj0uf#De}Y@QSec&g2S^k* zd#>ZqpB;7L8i|dqji1eE8pdfe?sWrN#{XvA@!Q=Q9=;11FOb_p`QW>4l09^1T)Jcy zPBf3a^@GgM%FuzSNbC^FZAL=I7Q$p*g4D?>Ny)At}vI8||wql2N$qOBV-*NTgVuFHLDItuv zXW|s^hx|-|-d~OyOU>4wL)>n(gIAn>OTb-+P-)4xn=;!oTCz}_-9qkHR(sk?uQbOq zxuonzSzVHo<|3`O} zYqRRs!}b^j1gap4PF3F>s_AxCv5)jyV}Vb8+ON zIuuL!OCYR*NF^-~d?2vN*f`^^%s3%`1qM4pao6|4hB(&bixGyCj+ZgcN8a>9c<71L zeG!wBGh*Ug^O(s0+5312@eBDm!Y96L_B>)daUPr16JE+5pnc|32hJF>0vzS>zW6lm zB%iz@Cn|X9FNiE3u%rlT5)-l20zoyFpI;5`?ndm!R_T&ut+#>OdGY1t)`DbRMwabF zlz(`j9Daw=nP5gY1{v*jE!!_$n@HX}^b8#E0Yl5^=h0R{^JwdBfQ5EggASZavP9+t zX5vOv@%3w(JIcuOk%+CRrp}mKk3=55Ge8IR6)|>ez=SJ{;S-AEkl57W zB#`_2ifV{J9hI|E4N$l~8qWK|)Y5_NXoW8gs+(TZLFLc(CMRpT%eS{40u*?5zwo2O zdfQGGu~3-U$oq~^^1%aNQ8IhnO;!*6KT}ps8bO#XipzpbaITxZg}`ag$kKhB-|8le zk-BCdzS4RHOOFW#3IpNkDzz|d10Sq?P#?H|)PI$Jg0~}hz<~}QtU%-6LtYo6TsNQ? z%#?NQO8>or@({88_ky_70S7*9lQ@#}!3=$}W95PWPKRyRmavS$Orx#@?D8M^JG;iB z&{wtg;&N_*HRi{hpmwby6!hz}#|*v1QruvHOroDm~Z`v=~^&{;RGp z&sNG)8w0fwskXFSZ*@iJ(;5kam&ij%tQVwo@!uRQ=P$AB6i~qD&pf_!Cv|VW#DO_L zHSL;5$bGj!i&6=SoZU{b@K?jsHTGsG|-Iwuwd4KZQHm4 z>jf7^T-WA_$X{2wglGkaG?!bi_R1ZiPnxUMA-4UBU3z!gXPQ;XM(Vk3o{KF`Xmps;_yf!bj0BF z1}3fh;dDY}-}|PkHEU|u&W_#K=9l7XoxcCGuL3+gcbcp@yEreO#+6KAQ#R4k;e`=d zo{Y*tZ%1Ya-|Q?pX(93|v&iS@>7mYWcWD-%;4mo52w<{WGpxDNL+=6C$Hob%6eoe; zq@)tYhc~B3*NM}LNmeUi#{0U{H-ocB$F^ja(Ju!lU3QeMQPx1h7@LMz7cdA@ESTj( zU;$GQn|i;iP70=mz)J^gJJROz8esee)7;hPY7X0XNWFr_U}2-eyZW#L{P1St>=x5H z@$BHH+_Y|;Nb?5J-V7R#DSDpSGqUkGwA~;obPhO&d4@-{{s?IYG8VamH2bRvin@;9 zhbU;+IXso0Mh{^rS%SPR1N;L?S}oUwk;?LLk8oBt3zN<@DjKF& z*+Jwcxdk6YWpSBi#z;|)?EPqZBuC~>(DFzI2EmmUd@%5RaHeyqmQ-;CMlH6-+&>NT zx;#dST(X1}#MChqx;~IKQ$983z`@h`ZTU0p@6J$QV3HUjCSY5R7U1wqYvNXdLnJ2U z8FiIpozNC@{`9+g*MSX;-5BY7VK9G0$SC=)J2GMJKEQ=*%BY5PQl-Yk9!U4*=iIoZ zWmP$>4qndsfx)2y0+D6G*5GUcF(uEaEhQ=2B%Pvg(M+*$xcT7LfQ^4>ew;Gp-TwnG zlK~U1Da9JZL^I2n;W!;E&}FFTIK%BcltP}5x{Wi?Rk{p8@aYVPkwr8c#HCnui>NUP z$tV(wix|kHMxjukqD9cGe7?20|0=-WYi3VlXY!k@a{h~hr>|8>{(h{%O*l6V9~hsW zq)`+u`G`-UQZU*{sVD~JUr1<2rDV^2EY^@15ZkNU|9jf% zQCmq+S%xgWDX!_^)D6r2PW0p9!HK5YtX5%KHEvaH3vq?MsFbeJ6;V|B#5_@3ohoSK zKO}{=s;Nm^r6B#YF$m3&8Mrvg$Q)$3Wttr6{x%ISs+AtX+(OSs-@>3TN%hi8VBSv) zwF`mbpRVt_z`tF&U0c?vXeL|=h$JGA-qM1~Kq@zu6U(KNHO;P?^^|Oiy3Qe+{6fHw zyH3tFdcjYtQ>Ui_=CcNA%1Q9%*~vL64bHwc%B3ySy_r=!ZO*j0;Lvo9BR&v&DEQ{k zHR%VQ54mO!5nso<>Jt*liBNqVApX8!>u(C^ zSo{?CvYTL+#Dt$IZM77v@%@qIR98}3HC37gM||-8;TyFSUgNtGur0vJ3P*k4Ik71J z&bOwH;58neGhi&gar{O(So`LgQPUjbDlR)=(SW9A&Y7-|N3L=|_nau}F#}{EAoGt|XI%lAN z0Kyhm_gD9!-A|8BQk$e0Cu8_m z6c(9iN{qo_!ZtY>gT6W*VCGTvXdGHkqY=fejGE*`U@+1M@Z~1@@omp%MbBb;gP9&15>PJ`{FFulTHQ z^%)|H6U+I(?N6U*N-JT3rb!|y#ZA;CoT<%?0@#;@o%8R4iRn{a_ z8qG|7Ti>Fn!voVuO2E%{VpRI3WEMzn+Eu@+xn@n>s`+&x3+hHj>#Cb=-{D__*>H@X zSVqk(bmY>RxeC;VMQ(hg)~1qk9{53%(le-cPQ>LTtNw_PlT%5U@!k?t?_gyLQS6c= zLg&AU$iolv`H7TP5&|;?R!w-%zz^UV?|~*_2u?TK*C`V+SGd156uXCl%1n8iAliBJ z(Mk}9m=_l44!K;a3)7cG)Xixe$ba7gemrPqg5*hbcWkZ7N^UTu6cOa=QnKDaDpgA{ z`68`}$dOqDy@O9>*~{EwW+qo@7he4F(!dobe_)}YPbQTu=L_e_B(hzguw}s88k86v z0)5@UvmI3zu}fpkREWtKJfGt1grHAm4h%1eG;Jf-+22%9&lUImxP55prTG0kyrp1XVxiqC^#=p9vQVpP_G^t0(Y`t9blX z1|BGFe;+*i(Z-$4cF)}N_HcKJt8PJkr@m39*};qBKheiGcJDqt^he2Q_7l8Q#BQm< zZ&^AzwytsI{w0k|j;(B@#AGVu4h4`}2WbyJBB#Mq4xIT>xXmka7K(KqS^fsoJRJ8WR2dU;U^?KThP09AHcBD&0)~6ve=kS|9&&7!->--C9_Fa zo%)h5v7Qj%kAlCyZYU?I7M1AhqmXbb7M*%SSn<1U_Y&=qItw%L^KMm!C_j%gTqRY zoVWb$)jUlaKM6l_4oV&(aI9jGyluohaG~ZNOU2SSd;0^j`T)H``uP1%8`9!YJ;(s$ zEF@xYiX|xY^y`$JK{Wx(>@<#6Bovv9fL)8IK+4BKj^TTM34KnsCGi z3lO^@dT`V%>umYBQ)Tno0h5e#wpZYAm={SQ$r*Uy-m#4-f`aZq&oo;HS{i zfaZK<_axt~W2y~NPQ}w>LbhONNC#l|CQ-}I zG)q6}aw?i#EQXNwsBDKS0P~-IkDna(N!0Qs5B670f@%Td;^IPgyyNACKk=4}=vgJK z+&3M~@o~L*`9Xu{L~_-^hJGPTJCrkRK9usgUm)0kq*b7Tv=j(hLb3v{IbmIFEs0C> z6%9=KGSzQxU;u<_le;ag9D_mm1!kn2i|`33y1w*o0>QUsnetmTFBw_=oBJsUXtD3u zvth?Ulmxa|2zxf-CPU)jVb4a~Bw{)6%YaA+z@7~|Q4-r?zp!T`Zi2$`M@$rRrlE{5 zz!4nE;T*YwgQFqOPwaGRgI9-Yq3zcG}Nwoh%W z<8*hU@m)SgOePu{NC)g$dy;B5CF-KZdjgQS8$zCv&JnrPqh-1$I-xQ?1=OW)lhM!FR7xgS8D zQ0}0|!xp2z6&DFP+&RbDhtpXd(c|;Q0?T}Y9-l8}q}rx~vIu&p3OlOD!xlShK{5y( z(c|;Qatru;1!=KmVty&SjoDBeL@402zc6$6vE2BvQVwiAyf$KDH%{Y8x5OlfmJqGZ*A*B8{66c)u`p)kjAKZ z`$|1G%ww6S=Dbb}4BpsR=|qh9he_DNUAjHOw25-GA`{FGv?scbaKg-BUhe$ZUqXFQBcv)C1GG< zVdLPgaUTSPM8qU+%fOWW|2_gzj978vB|t&LfZ0G~{@^(W=tbEfQG~TZbiCwwl}RJC8B8@4+{Fu@!CwY%`?}0tBo2g01^l$y7p5l+z-C;r=#$2 z2+o;hqZ6hV1g;n40k!JX^YCi0R->OaY0;|LBW)(@&|WaOT9+QZx~njg z_|>>8E-AB1x!o442nN1V>9VV?x$cIWZmDwH9o6nxVvoIkbKe6s9{RI>w`2OpES0f@JqoAUpOTxg!!p7-q-&kk?gWuD*czw%` z6%Y~;lSn2dBd4IGqNbsxqi0}j_yV08RLUu>Z{zXXc5f|@w;FYCfdJCoc^DPq>QRQ` zz!7-@%o}5QacSFR4=4Tmw23!tsS9rOR(6WpI!1WNovMgeV7IW6yCt=gExWbWc9I)* zNdUCCSP?-KF~pHT60HcJ z4ejVaXEq!lRlI9UHa*Zlg*6#OkU$WDYMBVPSA{}Zc8sKD;4M)F$d@<}B%x*R)9)`)9f8a%royifg3BxYZ(;=1<5g7R zSMtaHO92q%LaT)U4(UJbb46(j>d=ijUV$O1$R9F7ix|0h@iEK*rhoOz#10pP+`*Cl{a03sLeNCR8xeAoPr3A$|Br&d zU1DUn;ZyZ%eQJ!#7V~P^2BON z;?%eH;Ax+o-BxAB0oLS9+EzLPgM-NliEI`IeWUL(+`BImoy5BmMT1kmTXCqLo0U!( z;wTC=M&sqX#^j@{%kPtAZpDph)Q#VVAM!UeAL)?-Q~VqcH}9(F%_I0pzf*Mc9s<)F z;Xezw^NjVe0c8!wn7S!RNx`S2?w~0yf^lf}d{aI0)@d+LUk|k$jg!D$Zijy&D`}c0^ajf7#Yi!S2LS4P^Q121=CgM+BJ#h?? z)wU)fA)%<&C44;zA)&qP`wBvfkk$GNwWpu}agnX<+sR$-N8^vuGB78%oC(j_Dc0a>b z9S+5%~ar8}GsH-58kuVcFgHXJ^Q1 zGh)+}IsD9h+Kz*fF7I z*U#5iJNA&!GE498ap1}V`r_kk+Plr(bYX-glfOPn+Rlq(apG=S6%y1jL949%r}Sv!1`e!5?mY z66E0doEUJy0oYZ17;s}BK9elR77gxgk8XD0!6GIuDGL#r&(offntVT@ zq@~2bq5UHu*F_iw9HRt)&Gz0IoUf~S%u}6ig&f34j<7yVo^ezqIU>DC|EMdM8NoQ4 zo<_t`7DnU;6cm$_MWBA_FkAZv(y||EB|Wg06gVpS+w$Ildj;IPsUyZhk`qMWyCsoP zfG(1&vMW_*E?Co0O5YYxU;X}WUA)}lHo)8qT^P_J5|T`Oo|y(ogkej_ac(;l|G|aQ z^m8*b2RC55Seo&X2#KW^38Plfa-aKs@%+hb z?!EPvv=R^!AQTWH6exJS+aBZDebcl@K!D&6;C%}`onB_SvaX*w(tWYJIR2y{tSC^4 zVjc-AEz^u}o23`}az~ahu-HkKTnP2^3d``Ser-tE1#BEW?^3-qnQs867m0!&hZhJ- z`SJbDLU7UnYJ>ekvKVP#@rewEJMj++J~u!BK^M`nYqixMy;w~VW@fiAXjgf=Ea17plN;kdH$2(1=|&Z1tUwgR6J#95seW++qC$9^!qH`cpGI0*q9y z%dCc3WY<^3)F*;!8Vg;Ti4vScag_7vq$o&M=z8ABt>W0&_vW11(TNF9MJJUHF~a95 z?qZ32L%-{FOSa7Yb0v(7tqD&b5VcziyF5oCx~qrv6zG%(^XB9E+l_a_`T4=K z(fOGz<7~<5TyXiJcYF2R-6h&tYU-k>>f%%C?A6)*y?OI==2C5KUAc+RyB))7>ey5+ z!qR1~;cIElT-_F|VbjR$eaNaYxO)9;yIqmp+#_P??Yx>@FriUGD4`m-tp2R5GykAu zk}jc@bkWZ2dwO~`eIixD+t{8HN!}3Pp z3#uo!ljg8AfgcwkAWWANaWXm@;-l?cJY0ZqlHOulWYU={{!$wJ2%)Ph(D4#hzr>)% z7d}bp=)9twusHOdVFcTto^+s=rU~Igvx)gO+bEz``p`O0;-!@vabdfa`TFhr za4-P<+@7&0!A(>neWhT7thxs+Lws9mVhPq z;`>OEPtA>zF;(Tliq0^&_R(}>#mUZb2T%4{*FyKl{z6DHD%R*R{$#V|gfQR$cnS2x zD*1arW^6^+?c$iCfM>=HYyB1W){C1{yBE#pX;2fT?owi8tZI5F&4-+JsW)uX3%Eit zJMTwyojI#h!yGqa<7Co!VeOz!ICek@lS)rnZYC1}6A>jOPOxqEGk*Ty!n14^Rar%15-I}hU`5K-PCH;4xFd+fSh)-;N>pYt$tiyPdY^Ab@xj3 zb4VcDZ5`hFAdS=KKm^Z}dz&mB;L=Z`o`4_swlu1gpmXmwbU#%c_&u(yCpSCU?6#I% zxEl&fJ7l-gI1+`xMM(@-+KJ2?DXw7ypyukswZT$hYRoa6@mkqY0ek$gk;m3GY-7I` zG+E&^l*n7v`i2=dvgtTxG*xD1xOA}1lsd?f9l$T(`wg792r+>SGMe_uSG$jo&y&xZ z&)$!e56}(>|LVJ^&5Kl} z^^W^@@D%&-PR`!ZKW0b{a32wvy(6CxpHQop_o15O7v*ug+Tk}+ckW}Ok)V6`xth!S zUWF*gHU4+Z`{6FoQ@$UFHcki!Qw)l5|Df&M?Uy?v=LoIA=Ert;HMY6==yI8a=M1Ga zoSVzkHDsvufjpUzt!~NTw3Cm<1N4#w-Fn?++L?9BX;b@k>vaVFB@RRfop$9pNlTLH zyIT$+1hFbK0m|7MzowjRHPW?^jWyD>65Vy6slz~?xFG-NZY)zk4ZDR&w#{3x6YJbq z4pe>ujP3ZQn!vL!^y()s_q<`oY!fqN5{Y_e=-K7C)~Zr0-of!l7HvIdUTXO-{Ndig zUfTCc>q}q|0HTyjNuxCDqLt%xtKLZF2aPkcpry*oFM*=3RU@7?S*`2i{VA7O>GsQq z<*#ioFa$m_xZ}_zE0v-e@72_N&l%P5uEu96Dmg0KD)LQ|l{?#5Wn5P8-lj4ZnTAd*J)k7Kx%xdyhDBTuT47qsR}p<=M-ZLXDHSSfV&m=om*8u%(Mhe+K7p$} zC34#&PVh?jbR$-b`MoT5V*}a%@W-%a=y9}5HezdNUlsVIE_x5vH6*!DZ<_c6N+0rl zMi}GWLV$VKr%8yXj}7Xf)JguIVW8>uF9M_LH=@T05yK4HZ@t7GkTmYa0t_eG>w`hB z*@-pd6`;H=+M{D9W$wvo+Y;IxMS{!bkpWI3g2z8QwfvopW--z;>UFcnMcIG!d8!5; zqugIyh{444UE<$2LD(wqvJ&QhEj80`ovPA}XwGjt?;lws=5%ErPhB%a7&O^@n9v<` zr$VC`sq(x#m`lm7I(A$k|Ht9;*YX=tuVy8*Be=I=YJrbj#;?bz;kH}=dS;ef2bIUD zTYjkiw45ID?_Wpgg;3ucsNX_I5{EBcZ^wgJnAxJ{&99z|R|Tol+^L4@+}VLy#3{$@ z>3}7!3IE2`84FaG3wLkK!Gs-NNUFb2t-1%CS^Y(l%`2@&-K1E0S}gkB5z+;+A?wDK zJezI1KAUg1VY@HWtr`X?ZI85*F+b`daWA&f`(9E(_U?&RgHv-|mXWE~#iCyZ8_tHP zmbU5(uea^SbE_m@-Zc-Wq0k~#%N+~7tSs1uEote9^IemS;YISI5Ee*4u9)Jaq7S6Zi36L@0; zHd?CaTn~IQ8*9W=)@`+7*8TT3a;}>2(>z)Af&x?Lz%BT)7rk zjtW>tm0z5l>HiP_8*4c2zV*SLPI<6qw2usX7vWG|VTn2Zbm~OZSNNlPJMgRa#Bec) zq3{#LJQxNtIs#8i@cnkdz5NJ%`_6J;j53tB(&uwl#i4Y)|H|fDm(B#rx)3)$0fpaJ z{h%U(BQicw3)jzhV{Ly5VNg<`eljlr^L1)qER#qfR(WJ$+*{|~(?ZXN(73N)F4XH_ z6)r-V!c0jUjP1VNCS#~8FngfDEbxiDE4O)X{i_#O@d+AzmxbZqUe%45#IBm_9Zj#t zJWB#>EJT_9$-saP0Ws?yNOOBHTpYKFfYp{~vKlbq6^CFe&!ScwotS?AJ8F{LFe3qF zi-Boj1NqXS0=;+;62N>FQ6zDVV@d6NP&_bgwDp?`XHas95w+w6Nu!RPe{i;#?_jle zAHVkYAQXNv&FWmizP}*|!xZR!Opju(TtT)n+?D%jexlY*P-_@6=Ir1=|Dcj3P|wRG z_k5~zB~;|Obh#7XJBVioabA(@XbwV#b2q8x?$W-I5>mQgS9=Woa73AcEpK?)^Hc2b zG7^?d@_+S6?$bnzr1BPEIS7GhhI<2dp3NzwdJ zpO5d2(Xoe5qr&gSHk(+0xJ=KY;d>}QPKZujp*MB<=V$fZ3j6_xb8jEBH5uc&M;@+u z3bC{Zg`Fo$HO+{oU6Jse($Li9+J9huqueG}HJoSx({j&0$$eEBiQR46Sh6)VJywvJ zH>dPU?ly3`Bv<>yaCbsuEI+$L#K`EE`B}%7=oI|sIksA(7vZ(ya%paYDd$!Q_Y4H5 zy|%59wC(SW7gqKj0n?R;?O%o7_dO$imSvQ>s~Qx%0>ZA1rxae9Wd&>Gav>dBp7-7)23ieFAWld3W1t-sF8Y7Rs>@9=HC zXG0r1U_T$rO#wwFs5-VbM)A5vC??-Hm+oThl!N2O7q)z)GFMb$cU#asNavWF5?yE6 zlzkd@<%uVM8rn11g66DbB?ak^ZaKZZa0v}hs#An=GwMS9d2A;R6HWWCOlndqXV?uq zimq-e5QaesfF!Z;v(D&?>J}&B`UxfDl-1B$ae*^nFqh0L+B>?0YiIvLhj{C6ht;A- zcbxaw_eI(Q=-2_@K_;H2m%gT|!TX=V<;Z!z`y=CE2P3h}fVg8I@X)*O&3d-h`t^%m(=9pKUtC>_0j?;1rdKAT8Uk12!tLjnu zfx)$Wy*(b{-M)g}yEnt%s)Bj_Y@>x(^bTG<;d^gnKv96P37GcHxQ>gt7!6c9tE`O`7-IVKA^hhc)}Hu*6-h%JC1K=Ye@N<#)lGlH8Y z4^#z2q0GDSlL~NwMhY#?X(2*PpVYBKlLoRU?Rv~?LhvW*K=3e~8z(+^LJq#MXdIo% zxGZL`RxbownQzcK5nS&8cV|%k;4oqJ`B#Z3yP=TvD%i+##hzG&P5mVbuMKlVsXr5( z-@;?95_gksBi$ftTLcb(A;cskLm7KteY>SN9uG|)(A8?*U&{yeJ~U*=MIZSmVeJG89Us^{=aWQcR()%Pyyb(A2gJ#|QH_%I~zd2!ctt32DGHQVm-)s^Yeb;om3 zH|d??awxdpWDCH~$1f~6+BY=NKb#oVi`eD*P-z8K>)y3Ln3@X=%h5&AcH^L~4^Ua) z>6Qw@1Xt&8*3B=UN3VvRbJsu^Jx-%FBX>lhSSAgoSyX%=on18$u^BqZZ3KAj&}TZoe!y0LP5V=CSNJj4H|8J(8eCLwW^?| zv3!$18*TO&p8`Pz!B9HkcAGZLBmBmDvUq z5^6y;fre(Sw@=(pGv%?W~0!DAeO|$Aw>u)W5Ny0jRLEaQI<3)kvw3EL9eAvaId>yfPq}3?y%t~) ze9PB64r(GZVTq;c1GLQLqi^^z1tE93b~9q-IF*ed67pi8zR))y9v})Zn>1$Uep_|m z)dO)70z`qy0ZOW}7Otk%b!>#M5(I!pEXm-nM@Slu%YR zX9bV~!RpDcY;h5A{w74@8vv2m;ZY)$nO>7CcFzD_72rDq3crDi4W=J|L`31D+8<;_ zLIwm-HV*TAUGFmk*uX&TBZl>8WWdqG5 zK4ch%ETf2V2N!JmwGDzV7pF%c5X}BmMbvlOY6s>T&Q>83v)_g!gM0Mi;TvAp)!w%J zupPR>g!-n9Cdw}^OszA(6y6;z&LgdVy|euEIufVEYMwwNc;ekK)@d67#GaSd8<;Fr z9wEkTu~ea0%WtTm;;o{2_f`WOYnDAluU)WQeL6>Jo%^CcrO(%HDi^|_pe90ZvNa^g z$1pzU(TeW61;tWU)EYp!lgna|{+$9N>Qf`$36wpui@d|fFORNUg0_~kEV~l{hyyGm zfV~a!zX8DxFW!;`XupqBzN$dT1=bkO{i76nZsp;5MM@EA zM(Kdn!UR=vs7egX5wesE(*HrFj`6(8>gKUQ97VCl|9e*+-eCEEoqAY3ocRBpXM z+yi%`>Y6iAWlb%JK~7YN{_k~x$Syr5_d_&!+b_~+F6a=eZ337&4z>IUcw0bWKC);E z^W|}nP6Oy0{m}Uxq{)>J+VPg|@lv;E;B&tl>giBJHWbTG| z(zo|2qr-RTv4}VvWG)_!TDO5wV|=?Q{DK(bQ)K^eewJyQ9HI+@892NTp_oo;e#ovE z6O+O^lFC!W%9z_0h<%McwSS@Epu6!>24JsIDQ^ai8v6H%U#X{+D;HM|p(6zKIEY_( zkun=lz4*byd(j+i1Ak*Wzo$z_St)l1QXVLh%9Bmg!_=bNa+v(??HBaF4W?=zJ_a65 zT!|6eereae%v}aPeyN;%F!@X8u(sgTiBj}QtLQgCl!MZd&DGRQ0zleB=);=Il$rEQ zo5dJXt3X?oSH?7ki5In-!&$zk(ro5od;h8hIP!*z`-!3`ut^(pTyxF7bwcpv;r9y! zL2BY{{J4_0wZ5MqqIw(V7&>f0{FSU}h}2unvzS6|EvaXTmc#x-g3{~;Q7XQr^FU#Y zJ8PDvkoZ3z%(zmaTBMre8I!5RIQqCnZ&}mS4l5r@WBW3PC+H8b=IFBq7TrsJz!MKn ztmaeABu-A#ohR-+VC=LW#JdZ|^_i(K%qXT>qLjmQhP0Nc!O2%t_FhZW@jdhe*7aIB z=6|nO!mv(?o8t@ds>-DBVY($ItYN_!V`_C=eT?oXMyb**JS2^rq_lLf3gNBeRh-B= zy(T7U^K?xryFLP#KByqT*?DuCM9{GZ9N4`kG<8=IwG)YB(4QY1@@E*YVPlo zV3MDx5t_k|MYl6byl%jf%o&8SJZ?>5l6g*@;&VFlj-yj)BJT}u7NT!9``nw$x-;7s zWml(ELm}z>yAqUlM#YBXY6b7Tkyy3YB`o?Zu0pzcjcs$TYAFT`?To?X#8m~+CuZ;; z^qs`>s8h~+!~8ehs^r(HNwa?Rk>nUm?j}^UTGDk?mmh69PJez^2ILV`#f zR!SVYIg#PT>tpaOWXUNk@TNKRVYszZlriHjr0Z?a56DSU1Qe@`1nsOv^$8a`Qj=2T zRWQ+`RsQJknp3by$2w^qRfHr}Ob9JtQxt=wivv`-EXa9H#rSb0<7G{dK}*G#E(Y82 zxeRgDUsDR4lf{>=B^HPj?FwfOT{SB%x>J+MHh*aL4FcMCqD7LBmpF7tnK~|nW1%dF_`<8%Dv&RXIl9Q$ zVH2u85c86|ji6Fyg%TRPJ`~6QRaZyerB%en(cz9bMQ}q8vz2IH600t+Tw}kK8vD}m;7l#XbgRUsC2Ad!7Y3^1KS4}MfjqEA7by!sQz9kLF?23tIF1Gx-TCO&hR z%y^Kf(=t}eL`ekYp<49?a)7G9oai+ZT;68Ke~wHm5cK&+pEj?q0%>0oG%Kr=48n~@ zFfK$~aVnAP&&wldC%3UuOo$LAHb;tc|Ib0X{N=rb)=m=H{+h`bw<8y|WS#deO_U_P z%J3k3vyw42i)~+-+gd{41p5(jE)|sEBb1#2_E6oTzmD_0!_u$X8_W`8jyYW!wE3t; zf0R={%@b0d%AImStZIq|D5`#I*E#SVeg-(0wml_>&7v)Y%Pio54<~OyeZepVc~mOR zjmACcnT2L5KGDQ|Frjmr4H;b_xR8rQYOr8`1!9`9U#8 z+6QuKF-TW_VV%S)fIFFFaCwR_8DO6IFXE&RcGO`KWmL>GC(mu!s-%6EU6S2!P+@XR z2zIH3ekyXixQlPA+r73jjZ?;?#+jN{%JeJdnUYuvYn<#8h9-B*-4lJE5!iX?M0p?; zsg-zDoi++5`WFchMskx1q2HSdi!crqW*Tg*3t~f^xl6M7s`n-?(d<#gg6c{Rie`Ag@wVm= zUU%h}#I-+DHz%9Na*aamt@!1P23RI(?D*>Md;zgVcx2L|l1cT)0OOAh5ImV!9en-( zb_bV%-@EGB{D<%1KZO8W4~IDX|IsWO`J9hVxw2YCCX;w7!J`K%n(4$!EnVrfO8f14 zR_fpP$^b?R?ftB(h}}XUk|GMp3i(2nY!4XBMTNC|=|Wo9JNhsgOn`s-p!??h{!`5N zTBrnAB78D0KMFZlJ_>`io(p3rR{CCzp#*9sV6*gWF}FIi$N+1EtsAupw}ZZ$MEKDD zbkp@*d2I((iXm<=+^LQmF`wW#77Od-nk>p(V~2?{H8WTeKC%hBy_Fhh4vSu! zL+-zXqK?XeOeLZ0G_we)l>Y_b5W|-h5FD9UElf@yR-3m#0dsi8b2y0Y|7h%V3haM; z&MH9^Z6+>_`7f?=8QEXCHaw=lBp!X0OV>IGir z`;cKm8QQWJGW^p?$HbJQ6t0`DrX$@qoir@&=T+3nv{l9@Ytm?b!UgtSMU=Aj*iy5= z?VG`8+dS7gOhNp%`*k#$dn`j~)ooUdUXty1ozv0DH&ff)$AI*sS9~O)+7#=DK7HkY zF-2>9dYG0A!0l+=%0Ea~Y=81Yd+jm4ZIR85z&1!A!gP8Eq`p)9YQ%LW`j7+rys)R; zOk%msV^e|CN0afrUinZ(HuQ-fUFtEcV?+5?@`QVh+zCYHD1W?@AZS5Y_DiCpE|rS} z_CX2x7D6x=%hYd-n2!%E1z7=Lc%!w|r}&TJVsQ&#sC$wXw*%c__WtsN3uU#*0sbdB zQukr|es@i>N_-G_BYDdj>MKbNtC%0rNhynextzC=dlNup0`Kl%7?bwHT%DT%`VyGF z8ja_7or5z2=;8+6J*U%bROovYli50u##NkJ)O$q4tZNSSYq1kk?b`L=|=WS4u{SKHs`0Suf`^8KsTLuo*RSW9nh~s`zEG z|KnQ{sl=r^<$rnrPx&etmhXR|;F$bfdG-khy$w1_@Ttzrm<+M^(az`)bU>KJ7({3GCV!DDt_%2A zb>OKjllT@=41#K4avH4R#cMGp#^r$0$~0Zz>-KCK#z+`l^2-i#lKpTrP;`>59A@e;E0~pZNGhz&x zgWf?%45b>nfi2%WGh`nfJs*}k@FRymA;S?u^+dJ%Kt~2Dpi{UaKF;0&`J4N!8O4X+-x_1q*Nnd>IQXA!8wL^sTsHKlRfkz^KCxg`ZhM0V z$rkYWk(I|pB#G0UiH0}pqK~g^sOM#HkEpF5vZ%HB8xmnx0-%k?_IJpB1wxqPu`S`# zQ{(xQ1QZ~LX;IoT6cBXtR2aM#w5h9)L?}LW zF=SHzNJ`k35D{IB2v)JJ`pyPIW{Xn@}CL*dqr#{)Sr7Dq3+e=P|nYBmg1 ztr#Jltvrp+g>FzGCoxFRoDJR_>|6%j+f*zS$l-r+g0}c(CBaX_^OS}><^T{+5$q6v zDIJE$hrZWOpQ3WCjjrYulYokgODW$jnIP*_z(KystXnwwq4AFkLkHV9D_DqDd#iF6 zdac~l8Hq}KGHwrrCa2h@I!Z5wimJ3tUYyo!UuDmI#B6P)fgG4bn!jg_ku}oU6xizcnMe>0I_vn0D2>ebOAA0`R;t&)1Zd7cl^oW1<2>i zR%Hh>1-XPcK#VW}x8=#-JDUXGfj^O(fUa@!k{FYcn^IO5O*XM=8G!V}GUWZ2S%(>W zcct~qjlS@ap`I1#;fE1s5<0?=H`6!ZS_I*ux(LNl&L;@?f|05W1y8DvTdXK?IU-3% zGI4_@_s|d+nDIHygPEt1)ts#y_cNO-7l)!ZQT`P|`E4~lf>~Mw*c{+&$=slOCCQwj zxRxNvOro_(5T?aj4;6x+5#rb)Jf{Dw62=VG1=^I#z~7fePe4FxEGbxiOi!(4p<*x9 zB85M!ltC8l*O@WaHx56*h7d*x-p;lH(#nnAV%z`A-c{F6oD|QHo5PObMG}5on|?Q% zJ`)luE$Js7=CAByTHZh;zj#9ku`@V%O{dVPFnW9fF;0ks2`Q732F}1w2yJW$f>wgB zl+}_(@v&r|5_u(Hwpo?9e>Y;3ncVB$hCn}8p9twV5lsaZql6ungonWaa+`I|4e{F1xV4Aae_y{Jr zKZdI!r$s|fP5JvFSW}Vi6x1JvB&5Fl6s|8*oqpZ6|D)1%hkGjaZASFn2#QHZ^>^B3 z9SiykPLVcD9&yQ20NuSkRA3R5v%} z@^R9GyTX1?o25nFtEO8THeLx8fCfI=KerPw5UsZfnyq_Z&|_;?r_cX8`kGl%&f}~F zUK~S<`#5w`xX3Om-8kJ6h~l)QXk=2g)6&+ky7hg%Wq>lFfIMYEentGV2(QuyvzXq} zda7umrMsmy4RE_=O@SdoulIX44-8m}4h6u~hhu&>^~vkpz4IOl=sPPyhw|sv`Z5JQ%awpU*jAQ1(t?@9)cX>Para>NjcR&iJLUMU%`CB)NB3cFJ5n69Z>K=gi_gm+eVfg-5M|R-FA^ES10%Uzb`uP~4K+LYmDGF8Fc{1xKCIofqN!{aJM8F{aqlcAI7UnP)7*xUr$q}+YC)Bt z9=usRq@lW$%8Q)XT+W3L%9&ghsHa?;F4g0_&riJ;8C>1r1x!}sY&U$)=7^J0mM$hI z(I2(&r?DJbQe79V8PSx_J2+&i4k^elKdgDI!<2Yr}fWcd|fl9+qT&h`f1$=LMq7%A|{5?L;6n^UsDfY4Vj zPqdZQ+gij?36%6FZ$2joH%uWYqgxA6pfXp6!Q6yWre4C7KPP)X4_~T{=|vG057SV* zKnxf)xe>4a(9IGtqd^D=jqz6XS`?Hu(R~&>^i+WddM-!L18Xb0{gH)LoWzh=L0B3} zeKzHG=jAtBwt1ap0N59u8b0V`5;^D^s|t`>+wrl1Fj6*1PK`71fTO*RKr}W=(>@3+ zi-_NlC{m1lI_~SB=O7e#eP5JDQizU?p}`n-xiKg!Wh6Pn0*5uuIfdDJiW|*Zjw>^+ z>K8n1!UP)@9HXD&ImppqNf|O#293Hu#Z=Sc327XC%NOql3OIUDA^ss*!U&fyY?|Gd}orL-T7@FUGuQUey1 zMS%iU2aEIx^o9$udt4%UL4AvsRMrPteEB9-Q@X-j6$S~#>3z9Xm`hLp*faioZIuxa z(K5f{dE`Wp7%^6U>2WH95Kp3<^aGcz0P~x%fUFjOa#Lv@({zKmf$bd~;-!lu@;VBM zPzU5wtMJeK66QP}?naVEv8;^)=UQlgBf=j2lq9aK zlzUJ3q(8Ka`w^=Q2ih^OJ@xeD`nk-0pA}HkilOp)7*QgVp8CX9<13b{x|Q({Zpz41 zl(=1e2!R8)U)=o>)uPTR!(M)G544N;jO^!J5YCAM;jI%q*ktFHhJgLYGb z1j+~y*#x(%qP}R1{roxsGvMrVNs&I)&&jLe zX~-;&X@93&046I_LO6lRqtfXe3n}2Mux*8Lu_5_B+qajjuUv;!)chD~ zD*Yl8tmY=!3uM8Tl>v9H#Pmf@Ow3NvWXePLRHNp#GR-L1irzRIfxJjXctSH zplR2?$hH)LgDebn)w471U?XZDF%*$Hd*=_7<&BF#4LOZey|o-KQnbPU()lM+fVxKA z6urB3!kVg>1Os+U^!{|x)qMs@mvoRK4ekL1)$b|8VWe#rW`e5Ak{><nuj z=K2`8;S6r+r`9wx+hk$5d_qJj;jWKh6uzXSMUrl0D$sAh;Gl(sx{y8kPz^tZe*vmx zBpTv`DnVTlJ!a}CsYgI=(uzg0tPw8gnzZ%I68EQoMqHl2JjY^`CE11eFrfi2vxsTN zD_*ckCI&kq46IsIC9$Oiv$I;1ktgQMl^*dW?QOpfG6A$XFK!HWOTPj~nY<4d)OWeQ zZC3+K=#PZ{X{aQ*(=lRWo3c{Q2p=6_bg>QQJ*DAfi-`UN9A!*k)E3JU(e}{Tv~|C21>j<3?66kzxk_B~aX=V8#IG zBtYJTH!%yENa!ge25+z@VdZEzUqCr)TfKYP)`WILAhLyQBm;G-ZDjV)7JxU%aRHU~ zzRP}RzAfeUOA-#eLHC$ecwN}hPDWi#FK*MvT1F)%oda+kaH3WV;vvj^-_jF9Z5hh- zp`K6th~HqQa5m!0i=qe8rg+jj_7;Pj#5{!sHz{qGkYS^2@l^~ zv<7;m`Bd>`yvIgR#@mgz{!VOTzxE`Mkdvg%shMQzhA{$VSNsd5>ABTQwx}RAia|~M zR#eWykkCYmi-$`)ch0ACjhEaQj3DI0!pVaZ5c{R)GjTORlhEPCVYi^lgDF=l!K}b_NJg$IQnnq@e&F{85@}=dIr8bMi0e}3G%mxZfv$h zf)iiADfKNdyAPpyAphPRP|CRg_pXw7vgRO_!{bFmxGUY*;9pM!Z7|{~_+`Svaz)RB z@EBHrjc1;}5%e}8FIVsP)i2PbKAx_hb=YS6o_7duf%RK8G6n}W(M5%9$$;zrh_7W{ zBs&y381_mV``EmeAiqv5TTd@7^ydd}=R#+T)hKSPnA7-kilH;tZ_Bva5G}5&yP?fMbT$dcrYsAtIeKfgcZw=hEq*A z$W~0WQf)FA8Pd#}f|0Lup9`4p(V*R;kUm15?$@&P3Src-Q6?IL=hKmNO{1Se17hDK zzJSq%+c~(CFX&eNiPgcUDk`z_Zo_+3HwM3h7UJ26Ui?=`Hbp!>=+4AKfi0qKcu2tD zh(ZV6$(nuFDWND`vadN0$r-sNz~apN)qg8VusNB^GxFe26dc>=i5VhNVxbjztKC1! z{7GF8xIcOQy`>yVQEjW`WAsD74NP2{O=;#O92dtk-VTsjkee1@rFYb^EJ9tAZ@N^y z3^~SUKSRs~6zEBE+rL;(MbfO~!N(?yK`1{XlIOIyxkhDZM*xC27?S)C~28z_h@#eAWe$w*L)H)U2{Hu|t(?};5UoXK)ydgy*!6kEEs z6T*p??ME&0z>lK`Mhg6!pQbi41?cNsC!TnTD4KTX9`q*{nGW&##?9H3vIS2uhCtWcy+l5uzwQF)vQEE{lgnC^oJtx9x@xXgZbLlx0{1COeHw# z8@)F!7U7EW9?|$SX#y{KyQP-1^jNJl&>Xkno-wUqojXxT#>q_HN$H+wEodx6nLU@$tTsO!35aPNzL0@Hf^W?tFdo2AM27x%+v|M~b8badUN3?!1h7!&1QfbKX8l z09&w^AO->HehXup>et?nxzaXvatv($%eSS{uuqk@2kk@^x1G4#oME$kp(v#gH?BlKg@=>SbL zFs2aOiM@Naz<5g;ggiYVn-NJ-k^*1fVv7+B=g*&l<8+8+aHt?T>zk=ynh2cZZtFGv zd|B{eD;Nkv6;i!wJp*Dqa_hbtyon``L&x$DSy~@BR2Y^#|QG?T1m1 zPaPPZIlplhGzYtvqoaq`Spk}d&qvBYDU|LnzvyP=niIpm=V{wZn6y<;b1jR?#iem( zzN$7v-UD&{YfPa2cn$s$^m-x@AB)(+gl^FK`JUi0&cYI|hQ@v6-SVX|cEDK|O5MCf z)3~BMJ$(7#i3OIX0Z7?Q{v_zxo8>S#eiSWC&KuQJ= zIkyXYp4n|6WkM04*zAp%D=`1~-q%x9nZ)>$6_GaYp;>ozFN=8{km{&Z)0WmDhk}J8 zqI*ecaY~vDOUJ&c?U4MBmn4U+RttP&=vY&FNq?34Ws`3lds3xFV0K)%I9~9b8U=IC zUwQFfcGPZl#+Y5PKFs99r8%70XD7~l+i{{RXrD3fRIDxWy)6oe7s~WjZ70~9jxNf( z^d=hIHDLf1C+Ke9gT=TD8Y}3AogSDtR#@&%(tuwZX0$dd;*6AfcY_=5P z95l6z4yy>OLlk1>ntHdVo}2>61C^G68wXJ9SlFAqIWbLmiMJwMJ!c^jPN4%e)bn$n z3^<(odzOp`=8*%gce-wH>iSEgWLv+=Fzy<9hQ;KIA`0b=T>DWmSOTiR8)N$tbgYm{4;)FG-0|jfLG}M}jbI)Fq@A@`rgWqb= zg7_1GW?ADX2!4(PEY=y;$+PXG>#tEeE|OLGvc|V|VDQM4Ti&dIn1~i* z(%1Lzik+Aa0vd3RfTO<>*$oJAvG`I4BSgDD1cK&Jk0qQKh>heaxbaBc$PiocMsC1K&Rp?Y8$o9P$bMgNV05Cw$zlOQy2QIS-RR4CW_aH0I*0s=}bj zY7Ll_g;uZu9Yar6HX7Y& zId!84Y#CvJI*{j|A2;Uymz;$-N&~keH*7-3Q5t#?z3o!9)#p?Yv;1~xoJY}HNs}xs z&S|&0rFKLOE?-r)vDqa=x8TNORr$g4syH_XK^xO6g?u(B7$8ZFjtgA8g$q;(fIY2J z5l&b8KQVm$mk>7d@?FLpe2In0TuGJ4kENJ~StVcP~G=b_r@rG~J}eW)v^@@$!Mg} z$>(+RnVpik^Ez>mP`$(2CZVKLAeXhZ_k?glD>xp4B*NG!m=&m~#FSEu6iit~BEUNn zm@=U>cvgVRU_s}C*C#nVb~u9GKc0355 zKPPr;ow1Y@;mvUJAAfpuQ>6-xr$Fzt_>zx$9pPC};dS=c#%^exFRD5HZvLPDg|)ZU zTBA3iwZzgJ8QR)Jb|{?Cn<+LJ#@A*(*Q9+488=`oQabV_P`QhXOPo0pDRv{5%Ls#D zt|L9>ce$d`g3CM|fD>cfe6yy2DpD|_cw}UDTr^u@H>9K^ZVZ@+FOjWp$urKeJ!^wy z_jBoHeB+1#;ArH?iBG+Sz{r8>j&O8*wulD4BVUfLq5`JY%-0rdVxK0n$R8&e&&)L$ zWtPBmrOwL~I+^I4v%F@VPbnZ{aj(<{4&2=NbwG;~VZGb7_T1XDz7baO(~W$0;96ko zM^s?jje?QWZ-wgUkuz^iN=hn5*t=HlS*hAkI+-*{u*QafOO+z{g@9@)OL-c{4y*|( zmZr`Yf=}(LTlUcTJQuH?WNGNr^}$EJE8K2_9enFw@xA}O_$=TQbDS~x- z4MK_bt@JxscL9%6`3sSbzK1MOviuem2epa%CSBV4>9=R?QewvII5dsQ8fLiwCUrt@`79 zuP3LbD;2DtJ=>a6PQzF_%!dyq>o9V>dYc)n-qw7tWc@{747f=-(`F9E)fUx14?iau$Q4)=K=+^l9^a7?*3F%lGOgu8Po}asqrlbHod$GB zyvv*32!(pSeOZ0Uq^C=bvRHWA@5|diBGYr7Pf@_p{qA7IfGCItZ@%9z zib0@AHVn7hl_A#N#|T8pWS`M!6ColZ<0mb6X*Y-S^v`B`MMs6Sr7p0JOyO{>91gHW zKLqITw(tLorW*wO9=>4v>#C}CFqOsN3TDf)+#aLqfj@J}1`dbB;eZ|cjqAQ-A>ZLx zgb`c$$0vlck9eX%sn$Uk5ITK{_!?UAeN{?yjpq9oJkwYHAPTnx>tU<<@S1vm{ z^JfCT55K1%4=C*1cK(7%OTmu)qG#+pmH%0+RkmL}nJgX?ej*s%uN|XF_(Ss^mL&^Lcjm_% zt3=MZ(@R?Yk6^(YG6X^0LrO)*1uk}d0R^E5+yyhH3HFmx2s7|VroKOGlsMb0Hl5d8 zTlzs(%!e6?>(_cJQ*a^Bw%7vXp=Zga&F-4#Y;YQx=K*%xNj#EC=I2?E;gB29Kh z4k;@94yGahM-XZ7%>r?1MqFa!dgMBlD_zM~o;VJh3mHEAvr+w}d7(|;XdUIbqG+G~qil{|XC(GLQBoi+_Irq=5TXzQRiltQ*wNW9!+$6M?8({G{L(*HcG66(Q8&O+-38i#PSEh-XMg@Glkc zrHHRST$jg#jCBH}YW(riv11$K1R5c}(P)+)$0MT%oiu0T$m>Jq> zMJ0bZ3`H)Nq1cg?QtVPOJs*J#;%c&FRAid9KDW)U(nXC$9V{?d(_%V(CX>nN30kL~ z`M*V2RKjLS@Lh(Vj9>3;s9Q!rHliH#J#RQ%(PIxgQmWN$pPv_myf(vFP|R#jyHg}J z-8bhwHZ$v+Lhy6bfrr{sXf_vGEP^R$IpTWnDI|SX_?emls4LULygR+8gWp^X_=KZj zLAg0^uR$_pv@gP`w(0|R!?lMu_wY5ENRc_mU#eeCqTX#+e$mT;)JJwIzH&I8Y8L;1 zNX4&(bz$~nrkn2^(S_Lmg4dD!`5BFk8T0e=1#67W@^M;`^xST9QHiNHH{Rq2NGeKZnCUTVeWv!@Xsy0BMIfoNF8og?!zf z)0op}zfPtgF>1`$dV-sYFuEsbg!zCDhR1CI8r_iz*v3%N zd3P4ub+ErKi$RMK~S0M}qki}Ftii-PUV z4S4^#=Z84pNvg;&MzFUF3o~s+jV2#Xe$CZL%|I}HHl|<%Q_x~tQ4?%d{wnrL{$HTe zh=CFAaK>vp+M$8%&;VA{#ygyhuwmp~mWaK-ZbV+dcAmFBJ73*OKtQ$k%HYjH-~`Tks{?j$m@9*{$oNcN z-uCQ#ZPSnvut+&_`TGSo`2E)m)X3MDV$-F|`#?ho)boC*tfha24Mp78a(^$_xY3b( z8zRRNhJ9cX55u(Q?8~$M|9lNAtIap{F;Wv$$>38c9bI)o`aunzSY2b+4wMOK&D60gqwbzW+)2UDg|ciqGLLnAR7ToTF)PR|Aj17`$Q*Rk0#q zk3)E7{;ohD>CH<1LMn3;$|RnhcmKiwj1h+=l)0=piTmTx$Jlkrm$z#%b49)s+qH`*IaEsGAXt1z(AP; z3qZ~77?F(TF{Uw(N24w?T-eT?Z1?MI>s#*jhXUa$Qb3FhuaE*49L3h_7hAUsUu{3$ z(wk44=x4+-vTR@ak>9mSe#~B=hk9O+m56aT=SO){FC(sy*fD2<7!$ggWQr@z55n27 z-w7KZ8dHu&MNoVtBEiHvnBb@@96`brQBmtkyMnsaam1%iU9VFKRjta9iW4Bhz`>cI!ecITynY;EC>P)3IYxb0*(rT zI$i`CuzzVc_!oe0&~`AoM2A8LV^G|BzFJ8sJovVA*xwn#ytk~rvjD!BezJ375JCj0 zZla&jCN^-hR&%xPsC($(`0;PY_f0>8ZoUaHH~Ibi|0ZYvowu1UisF5sUefx*W?h~= zw_zp|HAy_!>S&G|V>W}64~$R~nq!#)ft&aTTSaJY&1Sc7|8S27+9h(V*PahUf^#Wpr z`jx&cGld6r!p8SK5Df~PKolO;3gb4(|2hMgt@eE(S0mmup##2K8wrqeBnmgt0B}6# z;Q*AP0b~-CO>iEo-w@ zdR8_W73g~OA4E$mA@&f5h;xXGiK~h46YnF>(F{@%X+7yY z=?iianM`JrMPwD(L{2BaO1?xL~Rv_5akjskdn&S{-dQZ7ppp z?R|O*eKUi`C}(V8e8G6k>@XXc2Uu8EHtS{9S8TwJvRAP`<|J{7INLcFxngcDcQN;K z9)p+6lkzk?6VJ|b^1QqVuZUO4tLL@xdU-><*}R3k6}*>t8+hA!2YIJ>@9-}29w(=g z9mxa9uOwege#j^I`TSY@1^ngw7y0Y?+xTzt_wtYM|IdGme}(^8APFLZRf2PZ`@%DX z$AoVQKNaysoub8}?V_Wi4@EabKZ~A=S+Pl6DDD?;7Jnq+OPVDwNlrWyDwMenesgfSYcIcQ2e4)C`*(B%B9LtF2f`V@VEzD~bF z|C;_C{dN5lgJdupY7G5`&4$+ve;e7M8$C<|!v(>hqFx}mAIY)|#}cXHc~Ce~2?T;5 z(AR#J8Xq%Wppl5UWM=*BDA0jqz#yH#l>{f zmIMG-9Ek6lV=g%7v@?#&;SJyy;%X!TMo*uff#w^SxX91{v+Xk8+$)}ocu8Q-!V(0} zj|{}$0}Tk@SYg!FDZ8)!z-A%^n{~0O_J~JG(2(T5ri-?rnZ3K080MMhm>S&^rw5}S zzh^0#W7|!^7&&LcPsZ(gTS;t3f->H8O%hi$e}yB29R~Gz{W4RJ9~?xFm?K}WNajm} zDLFaU2zLw85JR@B1!qlkjrJdp)KxWHb}pk)X;_QubmP+TRaLc-_9d&xcqcNvw?*Cex@l2{)8Tju~r|L>w zE83REG%Pz52&KMsU3I;`*uJly+``KPs?~`+iM3t^8)xZh+kW3ypKodm# z3nn%Rnw>If5Lgy0g~Ff8i(SIOk{rRwt_Zx<Kci>JBLk13&m^^UC_>%^~Lk8l^f_ zmzV0-;7`_wc_uZ_mMb@D=4$KLK_ybth84pIO*oduyi$o|JU6pG>F^iTF${zct{de{ z`|4oa?9}w3r5a8X(Y$dJM1m4uTw3WYD4os-oIVQM+4Y~S;}rZ<=h(=5nPj{C#5yF1 z)JP5C8nyR?f*5KR^6bUE??U~S z5;ni~YA;Q*%-OJna;?MYi?Pk)T`+T_+pJWte1mqaT~LZFV~p-D$1Q37RB;7m9lTd; z;BR!sj;Bpm;!QH|--OaH(NSrWc4dmZb#hVtIGxE{^arO9kczTrK|^>y0l&T#2}d<* z)PcZ|w2F<(Etjd5SE!BxSJI7Vo+wz8tWvW&gM+?FPxoPqk`asV1vNpUyQx4!%>0Tf zWEqOSL$Tf0KFG4@QGE(d(eF;g6+4R}1~SveULf%WAfWTp0=tUK#dCE4F;(^dHHhks zUU!uS1wKJs8e$ z#@uGwIPqqwmeaEqJo*j0_4TQ9j`~Q}elKC-5WK*v5C)RQN!{MrJa2WvYY&RL<~H|?I(WllkkFLdTx z?aVS?(GcEE+hgY`Dx+wT?P4Cietc>5k~M4Q+FMv4g^K+GiZ~J5`0$JOB-){V1dQkU zTy>_dNl@p*WRC8#B>4Otb#1 znHnO;K%}(%Fs!iN*yeK8ne6%Xf{Nb6AR^P>vSl-km59yq9l-*pI1LYx#a%uSi|-YW z;gCp*3$Q2^Tt=0dfY?|Y8OtNG0_VT7?%KShaTg9{Yg}twO?}Ly!`RYht-zkNBRXYW^mCJXEf;mIe>ZSIWT=DvC;Rfj1oDn9-9;YRDfot*+w;11GWW$ zA{lvSdYnF*X1n4lXM$yk1k1etH*}6Ytm#Zl3>pMOz>^&$QV)IJ387u-B&5C)K%vh` z$t8otB~Y2njAm0tlk`?XA-(K&b(H5O@t;mEa0=iZB^jaB*LZ2mX&bjNLO%cC$?+IHnw2Oa&j(V(S)aXLv}eN)doW%Bsgi4*TlQ1F4xU@O>0Ko?^at1$1MI6gK$dCF$7u8Pdl zCPjEYXg9QS%mT&V*S@)WAY!l)CGC@~z=KBiQw)VkDE zlTImPD=JqS7JXRtDg|FGqTZ>}aDg(=-o_M{Y zO+%;$PQhSSetC~S2nW&9+FgzMGSSF^#MtBZ6gAE>B}*Tb`hG@?P8U)e*DqipbcQru zi3xGivAZX|#qr*dp_7D^BgQE1O^&+^#~QB6@=t~Br2W5!lX~Te5O})mba4wftaN>0 zAkv=L!;inSevlj;jf6*+R?}kx9o;=s`uhG*ZCh^s&l#MX$u2h%G;=yNwd%f~__l2ip{*GMc4TZ zMe&@}@?dU9sP&}oyzRl6h5lTo_g>E+iL!WxQz6V*j&fq(O8`i`leTBNye3CO8X+t3 zPtQJm4f?oS{oOr(i-X3s;~v8P!ThzI_BIl5Q;r%6N_9MckTFNj!*{htnV|)tS-tEe zRvm3a*F-Xo6uJ`mXa%phajr6FpoYhq4fE`E^}Y;KW$L)qFw+5^^&#lc53Xma z9Z)pU^tWt^Wm4;}+fKM|M`KVVBboD^0VtrXw0p>OO6_y`r)|&k{nFJc{I$+Z3l|qv z&tt)LvScO3#R*=?mOr0? z4GZeD#QvdxRwEEcvI`;N_Xs3U|6>k|HIH32b6;_0 z0rN4G*In;TCR2Nvj%3q#FIn(%oV=mnW?4{;{)lS6hG#Fa*Xn&AI+Da^WELB;xamC4 zWkl(0C^2GU?tI~1VcucEOWtO?X*f+y96HRI5ui?EGwu3Bz2kq z9{Y6BG@g zKb1o^TZnDlGiO0#@?~{snzC(v@;U}AJBCCg7VQLSokSoJ4yBGnAPYs@Mqz3yHxw_B zyRQAw!JKt14TsvE#Q3W$fW2Cdh|sCYnj5S&{aR$W$hFU6ptA*KQeu~c&)N*1NwwYz z!&Oj|qj>Bx0;~eHa$fr^S<`h*ZXSEklkH4&u!UzZoivZJFperQrbf2^w@u1&+-Ql( zIjbE-&iZPDML#-6H-@6u-X$+?&)x9SW^JCmzTVdn{{4j@!0^UZiN6Z%9fTw4uFEXh z8m;A7-ldVzJQ8nNYNA!I-Kff!Pb_5rPM|+2`HkGxojkF$C_}+xU2yy#&)kmbr!xpH zTlqmbQYGUB{vzg<&4F;Ls$$%}AHx@ITbXrVsAjr*Q_kIAuimPb`kfan^oiOVecqol zB($Vvxy1>Ee7n+==1iZB;LEd^l|UNTS$ctk*RNMo*mgQ}QHVQwMa;%j$1MtUW<^s! z-?6^XhO{|8yI?{SxW$~629ccPagK!L!pW=UR;A60OJ3}p&(`3u>(qtV>ZX>L z^tdmrC$&Ba!}S_)i}lzXOTuiq{AxVRRby%3t@!c8Qn~b4zVMjQJfpklx9b9t zNMA^8Tsxly?`+a&CBesu2WJBf{D$sBr3S6dI}nLkp%<#g!`sh437OGsua!o@<}@g0 z@=^fsES=DVoIeuV+u#C)yc{ey(n5ut4m!30KI?MP)ORu7*gIA!gk&^dj6B1#Y{KV; z*i8wd(<=@9{%qS8FLp*lSZ%S_*4G|i)n)VTGh}~>KU(v#pN{k|p>#nF=ZgoD9V#Ty zrZ0Cnq>mH?RTi^2xudYEwV2OlXU3vwfNQhv=fMEWl(1x`1{x!GvfT?ax>r=woOeO@ zDzBv#X0~;fe*q3No=&?W&f*~--JV>(n5w#~sM9NJmti}~H;aOW(+{wLqODu!GoTXg zVus#9(%L`Z{8^iuy?!(*2@01o2)K9S*!j|!U2;FW5Dqq;*hy5)qhe1=xO2Dhbdxvv z=H_cdGdz#`axUT!I)31tmN-yr92T2`&yZ{&B`RGiRKAmRaAZSzzH!-p8(}{5h!g!D zb~=MneqRJAK9u-amd~69*~gT;WC^_iJ3jH87g;>_XT@BqFiu==k*6H8+O!M<>|T5K z8wl_Cy<+U$gpkPa%4QKy->3l>fIAP~BWs%22kQd8Oah@Wr_3K0sLIohN7gq@+p)wp zjy`=Zn$l%?P{q{}H(V~8qK-a=L1VUjP(iA10;letaH4tg|1AhGmn>^B;Kg ztpClrhMeV+#6(A!VpqcW-<;HJ2s_X(>=KAjQWQ-$&IFFZ6Z*B^aN`p%&shLm7l}pz zu>&vhYM>f7NK$S{f6;M?>#nTY|Mg^+W8i{G)?CHw{RWzm{o$q2dh_QKTe^qLP*qOi z^M`*uOGyhnnyo=R8&%{FI;iPJmhwr0q`ag3nyRNKqjzu~%*(*~ymSj&d~P#2V;0#p z#|&<#X0KkRGegY`qYu7Rk2$nk^yoAENy45I7hEK(JlqEB5*hlFBN@#k;-+CFshgRX z2cnELorP= zYIL6@vyk+mIOuu3^*mu|ADo57orF8#Nd!{dG`N%cnTcFRO>2a;BR|n&P~!~TQcfI6 zpI984=p0pzK)X~Q`l*#lFrZP;xP$g+<4?DW>Z=ACQy{6a;h1P7(As(E zVpn~7sK`L8m(_NrSZ!<@dto$>LXXewRTsKDI=lLu8`T?F9O?9j9gRj@f)|jHJHuh@ z%;XR;$J8o!VrVqwtRlDW2l{nwX$Qx>c}DCD`ar)Z0V>Cj?ST;j{4x;&!A7dbW9@^w zVPS}A?u%1SJI@@=$3YBvRhh_;IeFDK(CofcCRay7Hl8f!I zv1b8mHx8*~yxDU)F4pw!hVq;`B@010bazvNGj7!oja8=7fzmCWnVr&*q-3nuhP5KU z{GB+!iSu`DJM$h)rEEtMlr|=`Dv5P9??FqDR2A6LZA(oGONvEYfX+gp6G~lOo|8FY z-h*8j5V&nKiv6Iz9LCb@kV~f9aXlUKc|RbIb>aZc3Q?%SS;#9}% z%d989esYY;sp-u)RaqB%ED@Op=|2SCHdyA*D9_2e?7~T&23j0Q6$$!#Q)mRbjkD!x^#j`4HkHcr(?l~$&UxuxjU}DOK#9md9#3JSCnRhxcYff>&ykVq61P|N2isR{@@h^I2C-sD~{?1yswN-6k$=Dp9poupv8O;eieA&R0I zrp{>?nOzbc?6|zaeII6n(vGd|Qba&xpT1S$c}=ekuWPN6&bv@i2f@`iuRS+UEfzA;y#omywmpj6542~->f zOwfEUO%|!lSh78&V373seS`Xb&hVYXCk!7weD&~Y!$%CCZ5Xa6{97}skKS_v0ar>N zfK14;qVCnQ6xxOX2>pz00Iqzb9@)TWg5c^<2x8-sSNE0=m|}nqh%aNqEOPxI2sOAo zP2s9CZiQ4j#j1(Xw~H?dhbr&);=$CVBXqhh?zzz zIZXkK`27wMSjh#9M?xTcNf7L>wGr9-P0=Onz|V;u=OeH4F&`7bvWW(@_UTfkH5Pe= zay2hd1Ay%;CKqb$Ikc0v#u0z#{4Sa?#Afsdlct#N1-P z*B6ZVxWrKuy#_JG#cATGKTiCn?r^JmeY{{=7CnncoH@Yl?iOvp?|Wq+qTQ$W6ofFt z_Au%c>0BxjGK_f<%GFrVhB8NC=P%8nZZ#7$#>q(^6mRP2x5X!^9Qkev-I)N*OkYgX z@GNTiP*u#9rP~%)M$vV13(d96SyW1nH9}RNog7H+lfeu|HK3|7C7k=7H#x#V3@{@| zETtonhDH#fB-nxgvW!DF1Zy9ZhunR@0zfIQRSd`&&F*(RKi`LVWwVXwovY|T*neoE z{Quk?d=#XaXv+dTlVXG@S>-EUb|$XUH)GDGds^kEHn_AV#@c0{SW_W@CaV%r{P zpK2{h_lXMgiUN;}2q9Ct-jDo-zIQ9ml ztLdg($rrDg6O3hWRbR%-SUyAm8jnbA2g2u%B^BLf9tEi& zX;sjQZX6;X;gGm;$;)@3z!;QY2xz4AXR9fdbsTkJkL7R2k#JzKR1}A|w-!;GPt&t> z-`FsrB5q_OAJ^x29fhMY@&I10Y*bf*eu~Vvg)JP7)-e}G$)~g$s!d*QUl3;DN~gGd z+_j6Iq6`vah+!CmPCMoJFbu~>m3S?rdTheltWDGMXuaU)Sr@5 z(hHk=*9+F#mbuP|m(JX+e^E5BlCmP3kR2FiN_T+G4AhmS#3b$`N1^D(_v3{S_h3IlRtwg)W>~rmJf|h^x+ne1-Y+LXw_Tg81}0(-6X@BG zoS%nDXLAxyr;f!V|BuFFS0fQ^f^`+$=SPQ!yKXF+=Y#QE-D`LT&%WMXhG~_O&@ub< zdapCJ2(o42vmd3A;VuP?;%k)N3GNUrg5Yf|laogU&8j51Tc~!@Es8dS`ix_`Dh<6Q za)#azx%R&aqblQrM#iAD?F;SxFbd6ymgjK2PQyo6ul6bHrct#H;^xgcbC9I+uB5lA zoL}zelIUUgDm5NjftKv)QKu`z-m$SYv2JH9I(^eR6i31Zt! zw;+heid|kXYCj|r{~wS#1IT@{C{{-E6NT1>j{YXsvpoZYrx6S?k^JIN;glCJ&(&S~ z{5Mw~5>0_&d7&eu$r#X&&V8o4f8Z?_EjfAeOn>1_AWJ2BB{|yhNlPRV@LD@cgJxG> zyE8O4@%X;pRH)8W?PgA;RQgrz9dH#J;)n}5LC*5Sv1CLf#HH~tWEU6kk}%%_86qU8 zqlm_D!odJJu~Ul%u>4Dc>1%=S+P7j0hT?E8^qPezl>t#pOBw}X$1%v-Yht|9?YwKq z*Dp)hHLf2ll3>~n0@wD3d+hTA!Eo%<&{3$NqbE0S_=63lQ&H%%<&XYIKLn+mRFc3* zZ0j>GW0^RApN~Q=xUYER>3Wirz_Nzfb4XktvU@u&7dLtTdvh^_MKwdWPYY1gwi2=e zodNhbQE$izb{_=;0Z-n}MIoO+!m&U9>LlQ}D-41#fdQynSXmSvG#B5P^_!C^tck`E zq|L-uE_2Ggp7mji3%<0Zai5#CjEt8{CL74LW$t+PAi?gR=dOw11sx``5-&1`Bw5l> z$7)?-2mpf!YYCG8XIqyRTO}xIS;*Hvc>Dt24*%Z}>WdSZ`q5=CqU;DF&PE;J3@OoH zg?v<9=jZ3h76g4{hj+V#(e=%B0|z5+k%*1%1#Upv*GJW7Ut%Ov~ z^w(5AFU$7I#kv*0QXGmpr~)@HC-!EQ199fqHGHpUn&CMJ|KTy7V?Tq?$M0|y{b#Px zU;bjddSo}AiYOU+<>-~e4&mlSz@prd_#5}}tke1x2pq`yUlg`j|eXqc0#eL5eYBu2iFk{9{-P_Kl0iElJ-lTGz>s|oi^k9N@WOVdprwNSC z|52bQjH_VE*8foSm^ffFhh7O#hu4aY?*sdBkgK^HiNEUU}09>|Al`SLs?WyZg zlAL?eKf8*MsQ<=yWIBZrfZOvNRVq5Pv#h^Yl$7AW(X0&bo%klaEU+NmwQVy!_qo0C z*vgtLb{ef_v(@N`vNmdQIQL)ESSzJbFaj%=O6B5+lYWY-)4Ei;rrGTx{Z&!>p!%d) zEKwYv-2)I#r8SF9s)Mzsq{#jh+@m{d3!F{$Iheh8Q1BfazgywP^;)Z+!egY6Lly}n zFp3SQ{{j`cQ~WeZpw?4b|dujWVZZ!@TD)a6jhneY$(&W(nd4JiiT^cx*_I7%g@G8-CScrKaZ@8R1|k^R*5}&xq9uQmV#;p zu)`RMW#oMIVx|Wk+@CIoR~!(-VbM;fkE;U9up%p{ZYWI2V@*vh>(yQTr7RzqUR#N+ zQ=b41@~=f}<0(nj;tqInBaf`8snwVNrFb>ECZtkA4J54+c(GIxX^Lep*%$K4K)rO$ zt1S>v^5|OZCo`*6UR2c}9JWTSVtK5kb*T% zF?u~{xL71+5(;-XXfxhvcYHw<`R)=p2tXw~|54~2-vKE4AqgWc!2AYJLl-F^z7oH} z`;3v|5J>6CNcB2+F|8MGvK0 zd!u+&y)M?@ZU8wx)hUv0=?*<_x5K+5*5+>R76dD(6^$#20!Nq^Bgdt?IZ1u8X0+3k zPqa5T4|X~`=rJ>J7qc%EEJa^l)70Ma|7L=Ia_mTRV@$JjUKcGQk32!d^5Wjp!-w2^ z_SDmFUcP)S9qtdxSVSKRYzQkQ!)n4kIR9Fg5~*5k(94Bf3Yo#=B_}E?6Qxm~LebJ6 zmrLd`8Dy$ZV^FK5LgL?h)PEBZVM-|Bt%O)U)fNnlJ+zhzVa_+72H?!~K18^(!eHhU1L5 zASY4)bWs|28M}VzB@yo;7iH8QEnXMD$B6^9QJ( z)UB#uj$1BF^<8^L>(8}CYFloXuc6R6ernOaZr@s2TN`QXTTo`ZePaCxR?K4KzxwSm}6>WXnK0miDdSVN=@eRb6aoSlgzV8Yn8h1q*`T$b@cXdEM8FH zl~_TpLAu7#jZUZ2X#^AuE}qHRoGWH8&U31vsj~H_xT&&k0Im5r@~}klXW9Iuv87qR zxNAD?R9k$lzq6(N!af($VO^rp$zg4CEb^O;85m?ceetusWokoCmd0>2{Sat!8DNaO zF`OS+gZ6HB-d!}|7fXh}8^SUY*~@g>h>>VBa@Jruzf1^9x4fC_ML#MoN}9%t;VtSN zAxZ6CzKC6ImN`r~NG=)drN{)UXs6?Q-9fk~e2wFdwj=)TaC0k;Iqn3z;-piKp+m`G zbQ)KD6umJ@*=r?&R-9mFIvo@@t?zgOh5pMQ(39o$yLMLA*10M)GJ)S)TjcH}Df)Dh zRfr^-bZwBr@DYS%^NH?u^ON0z&dF<~yXQfTZ)U%01XV?8+XB}NhVZT}Gs#2Cb%&7c zxJs5w@6JrQ%oM1T#CblT z)mORYP70Q|*(82tWPlwS-2@*wFJ9ucLZ8u7A0{TJj;yyN*K2Q07F-;Mhg7mm5^qnL z%%vq&YYjrR>MUE;F$7IjCCsFhrgxQ5msdmBLr3s(qPcwQt-+ewP+0an_Ee4mc6SPK zLjTUMviaOSlbQL%Q{6-3H#S;cdNh97bnT>O7vG)C76`#Ic1y0__>&2?W#e&bzwTbJKQo!op_qZlxBP`bO!wVILX3qK;x)Ltrr{t2^7D$jK zeAf8Z;klz5FJkt7q4QmqVQ#!BmL^@9}15r60wMqbg9ul7Urt{uw=nswD5!Ygn>+^j%|%Q)N1~+ zBxi1LMupD`)=DB-!8djLeSb>8NUl6{#muHt7K(7Q=xmm1HuK{oP_0NKQFN$pq$2~9 z@xwZDT*v3k9_6jD5T6b|wC2;dKE1)YAdpug(lM}x@ z>h^%loC`f}*Iu$UkX05h)&=I9K4mRmv+#~2#BkUU!nBk7o9gx2ZB?jOE7fXER80m5 z&ZeN{3bl3;)Zy42>L~9036DYKyy2Q+J7j4mXLYfuQDqv~Nh@2n*pg$(|%h zQE=r94NcR}r2h>Wjy;f=udKQYSptMBzGdzD2-et}?+mJTWa#=lz&YUAzsd!=P~spQ zyEs+0_d=R3Qg;OQ7lM;8YKvV-5`Us4^L5n#P$YmL;HF?;EF-+!NJFO?pQX_?Ln=4OC@V}Z z#7eEw_i+JbDWdI-$9gYOtR?$03uqb)FF)c4=xE?i)y{5biQ`tiTq+$gG}`Mv;gy5- zFmN@iZ4iW+cmZ!W7)2m>KSr_XuHmJ&uXb9+T_JATTgu7bQ%5*UGnI^ z2dCNn!;UV4!P{D%eI4m?p5S$iZd)DoL~VQ~bdk;HSsRMJnyOy0yk0`X)%6seU40hD za!FUtmI~QxE>J(DMxO8H;a*K`-0{D@uBm7OwSM#GS89| zZo?@8eAClh&)TnMaZ!lCYp+i2aF%ZZ0_uLhn_QEt@b5flU-wM3g_H2+;?>A{Hxt;iCf5-Qr)`Ls} zWaFgIv+;eN!gNKDUJ+EM6fqB^G#!$6FP^M*JUM3({{}tp46Zm_ztpu-mqM^35ad)`2I5Vp#8=WwKVI3H%rKu~XeL;n^r;_&eA(JD=a;cU#jZ=fcI22Y8S2->?pz?7 z*z!NQZhoQDt7rvJmPzJy&g-(~SNumiqZ&p1?(i}d*M_yQsQZQSC=Y{fc>ZI#7X2!0 z3os9IA-}P|j5BO&eX{G|Tsv=T2$sq=7xPL;=VVzxMz?vclXJ@Gm*4>Ey`dZwkOwX( zgS7Q#)=BGM^a@Fe6BfbA?|yAjB*dUj_SR z>37zjQvD&?KO$kJ&L-@p6yHneAw_?a72$5Ss?KoiG+P&Vu$;S`%Y;sKb6eUH7r0?! z^dH_9$?~{hlS@#sf>IQ)!XCk zi}o9z>6ng3mRod_S)0l3vg~qWNL#x4KwkBO~;S{TfhjjU|zn9N9)zrN_470 zkdwS6-p5tveHZPeyW8?B8tDt*3rX?;!a3sr#X3h1&<^^yk>L%nqMaPzINLE`O|JX% z?VxIl0?P`~7^=D*3NAz1KxZp^U?4a)FtR5dm?P#qFi%P>E@(M;h(0|U^a>k1ZM$`7 z;(>-t7r*I<13!{S-^<_Zr4lW%ucKrVgJyB4qzWxfYSW(kqTnLFZTn4;&77H{$$%mC z8|;k96tVmKgYPq-jai|9sA5AJb?A~JH&L#|KvnBLy`-#6(xl#^!-7`Yrwt=jOWnO$ z4|8kTQh~zf#qo1Af@0k0kRgo&ygj9&_kE<_3NZPm}##q@vbL;};=XeCU$PLg^V8T|D0>2M>ik2=4Z+tUmK=O}_NRXD-EQ{&0f* z@VM9a6{BX~h?330={IqFDy43nwQ`T``~vy}{YsANu*3P`z)N!Y5kweK#F0cAS>#bf8CBHA-E-fAG|@&EeGD-s zC8n5@8cVE6iw*YIVf!+Y`9Bss#GtR ztGu|pOYdvP9CyNQqs}-hiI_jcoF!ITVU>mI+;P@vgj{Q}bxBbC*3G8yQ4e1=A~QI-8)8ETIi#R+B&}zf!^;3s=VLH znFGN|M4LUJu*_o*jN}aem62{Z(E&x2o{pk_MKUUP=*F7j&~s01G{d=jJqodJc{@v_ zoes9n2r(_&_1gzA)sKHGY4M%?;mqPymZ*%3lo?gehMyx*&Z8tWFLz&YA_!$NjO2Cj q9^hKZ`|9`2sVP`RQ;&A)-@VZVg1TTz8(-ff6l;seKh`1u0001c5r@nG literal 0 HcmV?d00001 diff --git a/packages/console/mail/emails/templates/static/zen-logo.png b/packages/console/mail/emails/templates/static/zen-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3822236275c4bf6b4052c444610f344b89763cff GIT binary patch literal 8336 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 literal 0 HcmV?d00001 diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json new file mode 100644 index 00000000..8ceb170e --- /dev/null +++ b/packages/console/mail/package.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "name": "@opencode/console-mail", + "version": "0.13.5", + "private": true, + "type": "module", + "dependencies": { + "@jsx-email/all": "2.2.3", + "@jsx-email/cli": "1.4.3", + "@types/react": "18.0.25", + "react": "18.2.0" + }, + "exports": { + "./*": "./emails/templates/*" + }, + "scripts": { + "dev": "email preview emails/templates" + } +} diff --git a/packages/console/mail/sst-env.d.ts b/packages/console/mail/sst-env.d.ts new file mode 100644 index 00000000..9b9de732 --- /dev/null +++ b/packages/console/mail/sst-env.d.ts @@ -0,0 +1,9 @@ +/* This file is auto-generated by SST. Do not edit. */ +/* tslint:disable */ +/* eslint-disable */ +/* deno-fmt-ignore-file */ + +/// + +import "sst" +export {} \ No newline at end of file diff --git a/packages/console/resource/sst-env.d.ts b/packages/console/resource/sst-env.d.ts index 0cd862df..6a5d2bbf 100644 --- a/packages/console/resource/sst-env.d.ts +++ b/packages/console/resource/sst-env.d.ts @@ -10,6 +10,14 @@ declare module "sst" { "type": "sst.sst.Linkable" "value": string } + "AWS_SES_ACCESS_KEY_ID": { + "type": "sst.sst.Secret" + "value": string + } + "AWS_SES_SECRET_ACCESS_KEY": { + "type": "sst.sst.Secret" + "value": string + } "Console": { "type": "sst.cloudflare.SolidStart" "url": string diff --git a/packages/function/sst-env.d.ts b/packages/function/sst-env.d.ts index 0cd862df..6a5d2bbf 100644 --- a/packages/function/sst-env.d.ts +++ b/packages/function/sst-env.d.ts @@ -10,6 +10,14 @@ declare module "sst" { "type": "sst.sst.Linkable" "value": string } + "AWS_SES_ACCESS_KEY_ID": { + "type": "sst.sst.Secret" + "value": string + } + "AWS_SES_SECRET_ACCESS_KEY": { + "type": "sst.sst.Secret" + "value": string + } "Console": { "type": "sst.cloudflare.SolidStart" "url": string diff --git a/sst-env.d.ts b/sst-env.d.ts index f6fdecb7..a34d687d 100644 --- a/sst-env.d.ts +++ b/sst-env.d.ts @@ -9,6 +9,14 @@ declare module "sst" { "type": "sst.sst.Linkable" "value": string } + "AWS_SES_ACCESS_KEY_ID": { + "type": "sst.sst.Secret" + "value": string + } + "AWS_SES_SECRET_ACCESS_KEY": { + "type": "sst.sst.Secret" + "value": string + } "Api": { "type": "sst.cloudflare.Worker" "url": string