diff --git a/.env.example b/.env.example
index 2242f36..014ee46 100644
--- a/.env.example
+++ b/.env.example
@@ -1,3 +1,13 @@
-DATABASE_URL="postgresql://postgres:postgres@localhost:5433/persona?schema=public&connect_timeout=300"
-PURCHASE_REFLECTION_THRESHOLD=50
ANTHROPIC_API_KEY=
+NEXT_PUBLIC_CONTACT_EMAIL=
+POSTGRES_DATABASE=
+POSTGRES_HOST=
+POSTGRES_PASSWORD=
+POSTGRES_PRISMA_URL=
+POSTGRES_URL=
+POSTGRES_URL_NON_POOLING=
+POSTGRES_URL_NO_SSL=
+POSTGRES_USER=
+PURCHASE_REFLECTION_THRESHOLD=
+NUMBER_OF_WEEKS=
+RATE_LIMIT=
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
index 9e2006c..fe97958 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,22 +1,32 @@
{
"env": {
+ "node": true,
"browser": true,
"es2021": true
},
"extends": [
+ "next/core-web-vitals",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
+ "plugins": ["@typescript-eslint"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
- "plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/no-unused-vars": "error",
- "@typescript-eslint/consistent-type-definitions": "error"
+ "@typescript-eslint/consistent-type-definitions": "error",
+ "@typescript-eslint/no-explicit-any": "warn",
+ "react-hooks/rules-of-hooks": "error",
+ "react-hooks/exhaustive-deps": "error"
},
- "ignorePatterns": ["node_modules/", "dist/"]
+ "settings": {
+ "next": {
+ "rootDir": ["./"]
+ }
+ },
+ "ignorePatterns": ["node_modules/", ".next/"]
}
diff --git a/.gitignore b/.gitignore
index 8e5b17d..6a2c8f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -131,7 +131,5 @@ dist
.editorconfig
-personas/
-purchases/
-
-.DS_Store
\ No newline at end of file
+.DS_Store
+.vercel
diff --git a/.husky/commit-msg b/.husky/commit-msg
new file mode 100755
index 0000000..1a089f4
--- /dev/null
+++ b/.husky/commit-msg
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npx --no-install commitlint --edit $1
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 0000000..1787b50
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,8 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+yarn audit
+yarn format
+yarn lint-staged
+yarn typecheck
+yarn build
\ No newline at end of file
diff --git a/README.md b/README.md
index b0f9a2b..e88446a 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,16 @@
-# Purchases Personas Generator
+# Synthetic Consumers Data Generator
-A TypeScript application that leverages the Anthropic Claude API to generate realistic fictional personas and their weekly purchase behaviors. For creating synthetic datasets for retail/e-commerce applications with believable user behaviors and spending patterns.
+A NextJS application that makes use of the Anthropic Claude API to generate synthetic consumers and their weekly purchase history. For creating synthetic datasets for retail/e-commerce applications with believable user behaviors and spending patterns.
## đ Features
-- Generate detailed fictional personas including:
- - Personal demographics and household details
+- Generate detailed synthetic consumers including:
+ - Consumer demographics and household details
- Daily routines and activities
- Shopping preferences and brand loyalties
- Financial patterns and spending habits
- Contextual behaviors and upcoming events
-- Create realistic weekly purchase histories that match persona profiles
-- Store generated data in JSON files for easy data portability
+- Create realistic weekly purchase histories that match consumer profiles
## đ Getting Started
@@ -48,7 +47,15 @@ yarn dev
- `yarn lint` - Run ESLint with automatic fixes
- `yarn format` - Format code using Prettier
- `yarn typecheck` - Check TypeScript types
+- `yarn prepare` - Install husky
+- `yarn audit` - Run audit
+- `yarn vercel:link` - Link Vercel project
+- `yarn vercel:env` - Pull .env from Vercel
+- `yarn prisma:migrate` - Migrate database
+- `yarn prisma:push` - Push migrations
+- `yarn prisma:generate`- Generate Prisma types
+- `yarn prisma:reset` - Reset database
## â ïž Disclaimer
-The personas and purchase histories generated by this tool are fictional and should not be used as real user data. They are intended for testing and development purposes only.
+The consumers and purchase histories generated by this tool are fictional and should not be used as real user data. They are intended for testing and development purposes only.
diff --git a/app/api/consumer/route.ts b/app/api/consumer/route.ts
new file mode 100644
index 0000000..022239c
--- /dev/null
+++ b/app/api/consumer/route.ts
@@ -0,0 +1,28 @@
+import { NextResponse } from 'next/server';
+import { generate } from '@utils/consumer/store';
+import { rateLimiter } from '@utils/rateLimiter';
+
+export async function POST() {
+ const rateLimit = await rateLimiter();
+ if (rateLimit) {
+ return NextResponse.json(
+ { error: 'Rate limit exceeded.' },
+ { status: 429 }
+ );
+ }
+
+ try {
+ const data = await generate();
+
+ return NextResponse.json({
+ id: data.id,
+ consumer: data.consumer
+ });
+ } catch (error) {
+ console.error('Error generating consumer:', error);
+ return NextResponse.json(
+ { error: 'Failed to generate consumer' },
+ { status: 500 }
+ );
+ }
+}
diff --git a/app/api/purchase-list/route.ts b/app/api/purchase-list/route.ts
new file mode 100644
index 0000000..5e7dbc3
--- /dev/null
+++ b/app/api/purchase-list/route.ts
@@ -0,0 +1,38 @@
+import { generate } from '@purchases/store';
+import { purchasesRequestSchema } from '@purchases/types';
+import { rateLimiter } from '@utils/rateLimiter';
+import { NextRequest, NextResponse } from 'next/server';
+
+export async function POST(request: NextRequest) {
+ const rateLimit = await rateLimiter();
+ if (rateLimit) {
+ return NextResponse.json(
+ { error: 'Rate limit exceeded.' },
+ { status: 429 }
+ );
+ }
+
+ try {
+ const body = await request.json();
+
+ const result = purchasesRequestSchema.safeParse(body);
+ if (!result.success) {
+ return NextResponse.json(
+ { error: result.error.issues[0].message },
+ { status: 400 }
+ );
+ }
+
+ const { id, consumer } = result.data;
+
+ const purchaseList = await generate(id, consumer, new Date());
+
+ return NextResponse.json(purchaseList);
+ } catch (error) {
+ console.error('Error processing purchases:', error);
+ return NextResponse.json(
+ { error: 'Failed to process purchases' },
+ { status: 500 }
+ );
+ }
+}
diff --git a/app/globals.css b/app/globals.css
new file mode 100644
index 0000000..7b1b9ed
--- /dev/null
+++ b/app/globals.css
@@ -0,0 +1,44 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+ overflow-x: hidden;
+ overscroll-behavior: none;
+ width: 100%;
+ position: relative;
+}
+
+#root,
+#__next {
+ overflow-x: hidden;
+ width: 100%;
+}
+
+@layer base {
+ :root {
+ --background: 0 0% 100%;
+ --foreground: 222.2 84% 4.9%;
+ --card: 0 0% 100%;
+ --card-foreground: 222.2 84% 4.9%;
+ --popover: 0 0% 100%;
+ --popover-foreground: 222.2 84% 4.9%;
+ --primary: 222.2 47.4% 11.2%;
+ --primary-foreground: 210 40% 98%;
+ --secondary: 210 40% 96.1%;
+ --secondary-foreground: 222.2 47.4% 11.2%;
+ --muted: 210 40% 96.1%;
+ --muted-foreground: 215.4 16.3% 46.9%;
+ --accent: 210 40% 96.1%;
+ --accent-foreground: 222.2 47.4% 11.2%;
+ --destructive: 0 84.2% 60.2%;
+ --destructive-foreground: 210 40% 98%;
+ --border: 214.3 31.8% 91.4%;
+ --input: 214.3 31.8% 91.4%;
+ --ring: 222.2 84% 4.9%;
+ --radius: 0.5rem;
+ }
+}
diff --git a/app/layout.tsx b/app/layout.tsx
new file mode 100644
index 0000000..9fbb6cd
--- /dev/null
+++ b/app/layout.tsx
@@ -0,0 +1,20 @@
+import type { Metadata } from 'next';
+import './globals.css';
+
+export const metadata: Metadata = {
+ title: 'Synthetic Consumers Data Generator',
+ description:
+ 'Generate realistic synthetic consumers and their weekly purchase behaviors using AI'
+};
+
+export default function RootLayout({
+ children
+}: {
+ children: React.ReactNode;
+}) {
+ return (
+
+
{children}
+
+ );
+}
diff --git a/app/page.tsx b/app/page.tsx
new file mode 100644
index 0000000..354e37e
--- /dev/null
+++ b/app/page.tsx
@@ -0,0 +1,20 @@
+'use client';
+
+import { Footer } from '@components/Footer';
+import { Header } from '@components/Header';
+import { Content } from '@components/Content';
+import { ToastProvider } from '../context/toast/ToastProvider';
+
+export default function Home() {
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/components/Button.tsx b/components/Button.tsx
new file mode 100644
index 0000000..672d65e
--- /dev/null
+++ b/components/Button.tsx
@@ -0,0 +1,39 @@
+import { Spinner } from './Spinner';
+
+interface ButtonProps {
+ onClick: () => void;
+ loading?: boolean;
+ disabled?: boolean;
+ labelLoading?: string;
+ labelReady: string;
+ className?: string;
+}
+
+export const Button = ({
+ onClick,
+ loading = false,
+ disabled = false,
+ labelLoading = '',
+ labelReady,
+ className
+}: ButtonProps) => {
+ return (
+
+ );
+};
diff --git a/components/Content.tsx b/components/Content.tsx
new file mode 100644
index 0000000..2c353b4
--- /dev/null
+++ b/components/Content.tsx
@@ -0,0 +1,337 @@
+import { useState } from 'react';
+import { Consumer, consumerSchema } from '@utils/consumer/types';
+import { PurchaseList, purchasesRequestSchema } from '@purchases/types';
+import { Button } from './Button';
+import { useToast } from '../context/toast/ToastContext';
+import { Toasts } from './Toast';
+import { LineChart, PersonStanding, Download, Sparkles } from 'lucide-react';
+
+export const Content = () => {
+ const [consumerId, setConsumerId] = useState();
+ const [loading, setLoading] = useState(false);
+ const [submitting, setSubmitting] = useState(false);
+ const [consumer, setConsumer] = useState(null);
+ const [purchasesError, setPurchasesError] = useState(null);
+ const [editedConsumer, setEditedConsumer] = useState('');
+ const [purchasesResult, setPurchasesResult] = useState(
+ null
+ );
+ const { showToast, toasts } = useToast();
+
+ const downloadJson = (data: Consumer | PurchaseList, filename: string) => {
+ const blob = new Blob([JSON.stringify(data, null, 2)], {
+ type: 'application/json'
+ });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = filename;
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ URL.revokeObjectURL(url);
+ };
+
+ const handleDownloadConsumer = () => {
+ if (!consumer) return;
+ try {
+ downloadJson(consumer, 'consumer.json');
+ } catch (err) {
+ showToast('Failed to download consumer data');
+ }
+ };
+
+ const handleDownloadPurchases = () => {
+ if (!purchasesResult) return;
+ try {
+ downloadJson(purchasesResult, 'purchases.json');
+ } catch (err) {
+ showToast('Failed to download purchase history');
+ }
+ };
+
+ const handleGenerateConsumer = async () => {
+ setLoading(true);
+ setConsumer(null);
+ setPurchasesError(null);
+ setEditedConsumer('');
+ setPurchasesResult(null);
+
+ try {
+ const response = await fetch('/api/consumer', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' }
+ });
+
+ if (!response.ok) {
+ const errorData = await response.json();
+ throw new Error(errorData.error || 'Failed to generate consumer');
+ }
+
+ const data = await response.json();
+
+ setConsumerId(data.id);
+ setConsumer(data.consumer);
+
+ setEditedConsumer(JSON.stringify(data.consumer, null, 2));
+ } catch (err) {
+ showToast(err instanceof Error ? err.message : 'Something went wrong');
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ const handleJsonEdit = (value: string) => {
+ setEditedConsumer(value);
+ try {
+ const parsed = JSON.parse(value);
+ const validConsumer = consumerSchema.safeParse(parsed);
+ if (!validConsumer.success) {
+ setPurchasesError('Invalid consumer format');
+ return;
+ }
+ setPurchasesError(null);
+ } catch {
+ setPurchasesError('Invalid JSON format');
+ }
+ };
+
+ const handleGeneratePurchases = async () => {
+ if (purchasesError) {
+ showToast('Please fix the JSON errors before submitting');
+ return;
+ }
+
+ setSubmitting(true);
+ setPurchasesResult(null);
+
+ try {
+ const jsonData = JSON.parse(editedConsumer);
+ const requestData = { id: consumerId, consumer: jsonData };
+
+ const validationResult = purchasesRequestSchema.safeParse(requestData);
+ if (!validationResult.success) {
+ throw new Error(validationResult.error.issues[0].message);
+ }
+
+ const response = await fetch('/api/purchase-list', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(requestData)
+ });
+
+ if (!response.ok) {
+ const errorData = await response.json();
+ throw new Error(errorData.error || 'Failed to generate purchases');
+ }
+
+ const data = await response.json();
+
+ setPurchasesResult(data);
+ } catch (err) {
+ showToast(err instanceof Error ? err.message : 'Something went wrong');
+ } finally {
+ setSubmitting(false);
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Quick Start
+
+
+ Generate synthetic data in minutes
+
+
+
+
+
+
+
+
01
+
Generate Profile
+
+ Create a synthetic consumer profile
+
+
+
+
02
+
Review Data
+
+ Check and modify the generated profile
+
+
+
+
03
+
Get History
+
+ Generate purchase history data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {purchasesError && (
+
+ {purchasesError}
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Purchase History
+
+
+
+
+
+ {purchasesResult ? (
+
+
+ {JSON.stringify(purchasesResult, null, 2)}
+
+
+ ) : (
+
+
+
+ No purchase history generated yet
+
+
+ )}
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/components/Footer.tsx b/components/Footer.tsx
new file mode 100644
index 0000000..41cce6c
--- /dev/null
+++ b/components/Footer.tsx
@@ -0,0 +1,32 @@
+import { AlertTriangle, Mail } from 'lucide-react';
+
+export const Footer = () => {
+ return (
+
+ );
+};
diff --git a/components/Header.tsx b/components/Header.tsx
new file mode 100644
index 0000000..f34886b
--- /dev/null
+++ b/components/Header.tsx
@@ -0,0 +1,32 @@
+import { Database, Sparkles } from 'lucide-react';
+
+export const Header = () => {
+ return (
+
+
+
+
+
+
+
+
+
+ Synthetic Consumer Generator
+
+
+ Beta
+
+
+
+
+
+ Generate realistic customer profiles and purchase histories in
+ seconds
+
+
+
+
+
+
+ );
+};
diff --git a/components/Spinner.tsx b/components/Spinner.tsx
new file mode 100644
index 0000000..5fac7bd
--- /dev/null
+++ b/components/Spinner.tsx
@@ -0,0 +1,5 @@
+import { Loader2 } from 'lucide-react';
+
+export const Spinner = () => {
+ return ;
+};
diff --git a/components/Toast.tsx b/components/Toast.tsx
new file mode 100644
index 0000000..735a259
--- /dev/null
+++ b/components/Toast.tsx
@@ -0,0 +1,24 @@
+import { AlertCircle } from 'lucide-react';
+import { Toast } from '../context/toast/ToastContext';
+
+interface ToastsProps {
+ toasts: Toast[];
+}
+
+export const Toasts = ({ toasts }: ToastsProps) => {
+ return (
+
+ {toasts.map(toast => {
+ return (
+
+ );
+ })}
+
+ );
+};
diff --git a/context/toast/ToastContext.ts b/context/toast/ToastContext.ts
new file mode 100644
index 0000000..5f59fdb
--- /dev/null
+++ b/context/toast/ToastContext.ts
@@ -0,0 +1,23 @@
+import { createContext, useContext } from 'react';
+
+export interface Toast {
+ id: number;
+ message: string;
+}
+
+interface ToastContextType {
+ showToast: (message: string) => void;
+ toasts: Toast[];
+}
+
+export const ToastContext = createContext(
+ undefined
+);
+
+export const useToast = () => {
+ const context = useContext(ToastContext);
+ if (!context) {
+ throw new Error('useToast must be used within a ToastProvider');
+ }
+ return context;
+};
diff --git a/context/toast/ToastProvider.tsx b/context/toast/ToastProvider.tsx
new file mode 100644
index 0000000..9179c5d
--- /dev/null
+++ b/context/toast/ToastProvider.tsx
@@ -0,0 +1,23 @@
+import React, { useState, useCallback } from 'react';
+import { Toast, ToastContext } from './ToastContext';
+
+export const ToastProvider: React.FC<{ children: React.ReactNode }> = ({
+ children
+}) => {
+ const [toasts, setToasts] = useState([]);
+
+ const showToast = useCallback((message: string) => {
+ const id = Date.now();
+ setToasts(prev => [...prev, { id, message }]);
+
+ setTimeout(() => {
+ setToasts(prev => prev.filter(toast => toast.id !== id));
+ }, 3000);
+ }, []);
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/next-env.d.ts b/next-env.d.ts
new file mode 100644
index 0000000..40c3d68
--- /dev/null
+++ b/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information.
diff --git a/package.json b/package.json
index 34a781c..7982673 100644
--- a/package.json
+++ b/package.json
@@ -1,41 +1,67 @@
{
- "name": "purchases-personas",
- "version": "1.1.0",
- "description": "Generate realistic fictional personas and their weekly purchase behaviors using AI",
+ "name": "synthetic-consumer-data",
+ "version": "1.0.0",
+ "description": "Generate realistic synthetic consumers and their weekly purchase behaviors using AI",
+ "author": "riccardo@frompixels.com",
"scripts": {
- "start": "node dist/index.js",
- "dev": "nodemon src/index.ts",
- "build": "tsc",
- "lint": "eslint . --fix",
- "format": "prettier --config .prettierrc '**/*.{ts,json,md}' --write",
+ "dev": "next dev",
+ "build": "prisma generate && next build",
+ "start": "next start",
+ "lint": "next lint && eslint . --fix",
+ "format": "prettier --config .prettierrc '**/*.{ts,tsx,json,md}' --write",
"typecheck": "tsc --noEmit",
"prepare": "husky install",
"audit": "audit-ci",
- "generate": "prisma generate",
- "migrate": "prisma migrate dev"
+ "vercel:link": "vercel link",
+ "vercel:env": "vercel env pull .env",
+ "prisma:migrate": "npx prisma migrate dev",
+ "prisma:push": "npx prisma db push",
+ "prisma:generate": "npx prisma generate",
+ "prisma:reset": "npx prisma db push --force-reset"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.32.1",
+ "@prisma/client": "^6.0.1",
+ "class-variance-authority": "^0.7.1",
+ "clsx": "^2.1.1",
"crypto": "^1.0.1",
"dotenv": "^16.4.5",
- "express": "^4.21.1",
+ "lucide-react": "^0.462.0",
+ "moment": "^2.30.1",
+ "next": "14.2.10",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "tailwind-merge": "^2.5.5",
"zod": "^3.23.8"
},
"devDependencies": {
"@commitlint/cli": "^18.4.3",
"@commitlint/config-conventional": "^18.4.3",
- "@types/express": "^4.17.21",
- "@types/node": "^20.10.0",
+ "@types/node": "^22.10.1",
+ "@types/react": "^18.3.12",
+ "@types/react-dom": "^18.3.1",
"@typescript-eslint/eslint-plugin": "^6.12.0",
"@typescript-eslint/parser": "^6.12.0",
"audit-ci": "^6.6.1",
+ "autoprefixer": "^10.4.20",
"eslint": "^8",
+ "eslint-config-next": "^15.0.3",
"eslint-config-prettier": "^9.0.0",
"husky": "^8.0.3",
"lint-staged": "^15.1.0",
- "nodemon": "^3.0.2",
+ "postcss": "^8.4.49",
"prettier": "^3.1.0",
- "ts-node": "^10.9.2",
+ "prisma": "^6.0.1",
+ "tailwindcss": "^3.4.15",
+ "tailwindcss-animate": "^1.0.7",
"typescript": "^5.3.0"
+ },
+ "lint-staged": {
+ "*.{ts,tsx}": [
+ "eslint --quiet --fix"
+ ],
+ "*.{json,ts,tsx}": [
+ "prettier --write --ignore-unknown"
+ ]
}
}
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 0000000..5cbc2c7
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {}
+ }
+};
diff --git a/prisma/migrations/20241204155324_database_initialization/migration.sql b/prisma/migrations/20241204155324_database_initialization/migration.sql
new file mode 100644
index 0000000..864cef9
--- /dev/null
+++ b/prisma/migrations/20241204155324_database_initialization/migration.sql
@@ -0,0 +1,26 @@
+-- CreateTable
+CREATE TABLE "consumer" (
+ "id" SERIAL NOT NULL,
+ "letters" TEXT NOT NULL,
+ "year" INTEGER NOT NULL,
+ "zipCode" TEXT NOT NULL,
+ "persona" JSONB NOT NULL,
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updatedAt" TIMESTAMP(3) NOT NULL,
+
+ CONSTRAINT "consumer_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "purchases" (
+ "id" SERIAL NOT NULL,
+ "value" JSONB NOT NULL,
+ "consumerId" INTEGER NOT NULL,
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updatedAt" TIMESTAMP(3) NOT NULL,
+
+ CONSTRAINT "purchases_pkey" PRIMARY KEY ("id")
+);
+
+-- AddForeignKey
+ALTER TABLE "purchases" ADD CONSTRAINT "purchases_consumerId_fkey" FOREIGN KEY ("consumerId") REFERENCES "consumer"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
diff --git a/prisma/migrations/20241204164538_correction_to_value_fields/migration.sql b/prisma/migrations/20241204164538_correction_to_value_fields/migration.sql
new file mode 100644
index 0000000..a8608e8
--- /dev/null
+++ b/prisma/migrations/20241204164538_correction_to_value_fields/migration.sql
@@ -0,0 +1,17 @@
+/*
+ Warnings:
+
+ - You are about to drop the column `persona` on the `consumer` table. All the data in the column will be lost.
+ - You are about to drop the column `year` on the `consumer` table. All the data in the column will be lost.
+ - Added the required column `birthday` to the `consumer` table without a default value. This is not possible if the table is not empty.
+
+*/
+-- AlterTable
+ALTER TABLE "consumer" DROP COLUMN "persona",
+DROP COLUMN "year",
+ADD COLUMN "birthday" TIMESTAMP(3) NOT NULL,
+ADD COLUMN "editedValue" JSONB,
+ADD COLUMN "value" JSONB;
+
+-- AlterTable
+ALTER TABLE "purchases" ALTER COLUMN "value" DROP NOT NULL;
diff --git a/prisma/migrations/20241204172334_consumer_fields_nullable/migration.sql b/prisma/migrations/20241204172334_consumer_fields_nullable/migration.sql
new file mode 100644
index 0000000..6091931
--- /dev/null
+++ b/prisma/migrations/20241204172334_consumer_fields_nullable/migration.sql
@@ -0,0 +1,4 @@
+-- AlterTable
+ALTER TABLE "consumer" ALTER COLUMN "letters" DROP NOT NULL,
+ALTER COLUMN "zipCode" DROP NOT NULL,
+ALTER COLUMN "birthday" DROP NOT NULL;
diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml
new file mode 100644
index 0000000..fbffa92
--- /dev/null
+++ b/prisma/migrations/migration_lock.toml
@@ -0,0 +1,3 @@
+# Please do not edit this file manually
+# It should be added in your version-control system (i.e. Git)
+provider = "postgresql"
\ No newline at end of file
diff --git a/prisma/prisma.ts b/prisma/prisma.ts
new file mode 100644
index 0000000..bb75fe7
--- /dev/null
+++ b/prisma/prisma.ts
@@ -0,0 +1,9 @@
+import { PrismaClient } from '@prisma/client';
+
+const globalForPrisma = global as unknown as { prisma: PrismaClient };
+
+export const prisma = globalForPrisma.prisma || new PrismaClient();
+
+if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
+
+export default prisma;
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
new file mode 100644
index 0000000..0d8ae64
--- /dev/null
+++ b/prisma/schema.prisma
@@ -0,0 +1,34 @@
+generator client {
+ provider = "prisma-client-js"
+}
+
+datasource db {
+ provider = "postgresql"
+ url = env("POSTGRES_PRISMA_URL") // uses connection pooling
+ directUrl = env("POSTGRES_URL_NON_POOLING") // uses a direct connection
+}
+
+model Consumer {
+ id Int @id @default(autoincrement())
+ letters String?
+ birthday DateTime?
+ zipCode String?
+ value Json?
+ editedValue Json?
+ purchaseLists PurchaseList[]
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+
+ @@map("consumer")
+}
+
+model PurchaseList {
+ id Int @id @default(autoincrement())
+ value Json?
+ consumer Consumer @relation(fields: [consumerId], references: [id])
+ consumerId Int
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+
+ @@map("purchases")
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..782f70d
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest
new file mode 100644
index 0000000..270eca2
--- /dev/null
+++ b/public/manifest.webmanifest
@@ -0,0 +1,16 @@
+{
+ "name": "Synthetic constumer data generator",
+ "short_name": "Synthetic data",
+ "description": "Generate synthetic consumer data and purchasing history",
+ "start_url": "/",
+ "display": "standalone",
+ "background_color": "#fff",
+ "theme_color": "#fff",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "any",
+ "type": "image/x-icon"
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/public/samples/consumer.json b/public/samples/consumer.json
new file mode 100644
index 0000000..52b5d5d
--- /dev/null
+++ b/public/samples/consumer.json
@@ -0,0 +1,209 @@
+{
+ "core": {
+ "age": 45,
+ "name": "Beatrice Ce",
+ "occupation": {
+ "title": "Operations Manager",
+ "level": "senior",
+ "income": 65000,
+ "location": "Brescia Industrial District",
+ "schedule": ["Monday-Friday, 8:30-17:30"]
+ },
+ "home": {
+ "type": "apartment",
+ "ownership": "owned",
+ "location": "Brescia Residential Area",
+ "commute_distance_km": 8.5
+ },
+ "household": {
+ "status": "married",
+ "members": ["husband", "daughter (14 years)"],
+ "pets": [
+ {
+ "type": "cat",
+ "name": "Luna"
+ }
+ ]
+ }
+ },
+ "routines": {
+ "weekday": {
+ "1800": {
+ "activity": "gym or family time",
+ "location": "varied",
+ "duration_minutes": 90
+ },
+ "0600": {
+ "activity": "wake up and prepare",
+ "location": "home",
+ "duration_minutes": 60
+ },
+ "0730": {
+ "activity": "school drop-off",
+ "location": "daughter's school",
+ "duration_minutes": 20
+ },
+ "0830": {
+ "activity": "work",
+ "location": "office",
+ "duration_minutes": 540
+ }
+ },
+ "weekend": [
+ "morning market visits",
+ "family activities",
+ "home organization",
+ "social gatherings",
+ "occasional day trips to Lake Garda"
+ ],
+ "commute": {
+ "method": "car",
+ "route": ["home", "daughter's school", "industrial district"],
+ "regular_stops": [
+ {
+ "location": "daughter's school",
+ "purpose": "school drop-off",
+ "frequency": "weekday mornings"
+ },
+ {
+ "location": "local café",
+ "purpose": "morning coffee",
+ "frequency": "2-3 times per week"
+ }
+ ]
+ }
+ },
+ "preferences": {
+ "diet": ["Mediterranean", "preference for local products"],
+ "brands": [
+ {
+ "name": "Benetton",
+ "loyalty_score": 8
+ },
+ {
+ "name": "Lavazza",
+ "loyalty_score": 7
+ },
+ {
+ "name": "Esselunga",
+ "loyalty_score": 9
+ }
+ ],
+ "price_sensitivity": 6,
+ "payment_methods": ["credit card", "contactless", "mobile payments"]
+ },
+ "finances": {
+ "subscriptions": [
+ {
+ "name": "Mortgage",
+ "amount": 1200,
+ "frequency": "monthly",
+ "next_due_date": "2023-12-01",
+ "category": "housing",
+ "is_fixed_expense": true,
+ "auto_payment": true
+ },
+ {
+ "name": "Utilities Bundle",
+ "amount": 180,
+ "frequency": "monthly",
+ "next_due_date": "2023-12-05",
+ "category": "utilities",
+ "is_fixed_expense": true,
+ "auto_payment": true
+ },
+ {
+ "name": "Home Insurance",
+ "amount": 45,
+ "frequency": "monthly",
+ "next_due_date": "2023-12-15",
+ "category": "insurance",
+ "is_fixed_expense": true,
+ "auto_payment": true
+ },
+ {
+ "name": "Netflix",
+ "amount": 18,
+ "frequency": "monthly",
+ "next_due_date": "2023-12-03",
+ "category": "digital",
+ "is_fixed_expense": false,
+ "auto_payment": true
+ },
+ {
+ "name": "Gym Membership",
+ "amount": 55,
+ "frequency": "monthly",
+ "next_due_date": "2023-12-01",
+ "category": "memberships",
+ "is_fixed_expense": false,
+ "auto_payment": true
+ }
+ ],
+ "spending_patterns": {
+ "impulsive_score": 4,
+ "categories": {
+ "groceries": {
+ "preference_score": 8,
+ "monthly_budget": 600
+ },
+ "dining": {
+ "preference_score": 7,
+ "monthly_budget": 300
+ },
+ "fashion": {
+ "preference_score": 6,
+ "monthly_budget": 200
+ }
+ }
+ }
+ },
+ "habits": {
+ "exercise": [
+ {
+ "activity": "gym workout",
+ "frequency": "3 times per week",
+ "duration_minutes": 60
+ },
+ {
+ "activity": "yoga",
+ "frequency": "once per week",
+ "duration_minutes": 45
+ }
+ ],
+ "social": [
+ {
+ "activity": "family dinner with parents",
+ "frequency": "bi-weekly"
+ },
+ {
+ "activity": "coffee with friends",
+ "frequency": "weekly"
+ }
+ ]
+ },
+ "context": {
+ "stress_triggers": [
+ "tight project deadlines",
+ "family-work balance",
+ "traffic during rush hour"
+ ],
+ "reward_behaviors": [
+ "weekend trips to Lake Garda",
+ "dining at favorite restaurants",
+ "shopping for home decor"
+ ],
+ "upcoming_events": [
+ {
+ "name": "Company's Annual Strategic Planning",
+ "date": "2024-01-15",
+ "importance": 8
+ },
+ {
+ "name": "Family Summer Vacation Planning",
+ "date": "2024-02-10",
+ "importance": 7
+ }
+ ]
+ }
+}
diff --git a/public/samples/purchases.json b/public/samples/purchases.json
new file mode 100644
index 0000000..c2ceced
--- /dev/null
+++ b/public/samples/purchases.json
@@ -0,0 +1,480 @@
+{
+ "weeks": [
+ {
+ "weekNumber": 1,
+ "startDate": "2024-11-25",
+ "endDate": "2024-12-01",
+ "purchases": [
+ {
+ "name": "Lavazza Coffee",
+ "amount": 3.5,
+ "datetime": "2024-11-25T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Weekly Groceries",
+ "amount": 135,
+ "datetime": "2024-11-25T17:30:00Z",
+ "location": "Esselunga Supermarket",
+ "category": "groceries",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Weekly grocery shopping aligned with meal planning. Got good deals on fresh produce and stocked up on Luna's cat food.",
+ "satisfactionScore": 8,
+ "date": "2024-11-25T20:00:00Z",
+ "mood": "content"
+ }
+ ]
+ },
+ {
+ "name": "Morning Pastry",
+ "amount": 2.5,
+ "datetime": "2024-11-26T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": false
+ },
+ {
+ "name": "Lunch with Colleagues",
+ "amount": 18,
+ "datetime": "2024-11-27T12:30:00Z",
+ "location": "Office District Restaurant",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Lavazza Coffee",
+ "amount": 3.5,
+ "datetime": "2024-11-28T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Family Dinner",
+ "amount": 65,
+ "datetime": "2024-11-28T19:00:00Z",
+ "location": "Trattoria Bella Vista",
+ "category": "dining",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Wonderful evening with family. The restaurant choice was perfect for our bi-weekly gathering.",
+ "satisfactionScore": 9,
+ "date": "2024-11-28T22:00:00Z",
+ "mood": "happy"
+ }
+ ]
+ },
+ {
+ "name": "Yoga Class Drop-in",
+ "amount": 15,
+ "datetime": "2024-11-29T16:30:00Z",
+ "location": "Zen Studio",
+ "category": "health",
+ "isPlanned": true
+ },
+ {
+ "name": "Winter Sweater",
+ "amount": 75,
+ "datetime": "2024-11-30T10:00:00Z",
+ "location": "Benetton Store",
+ "category": "fashion",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Quality winter piece from preferred brand. Good investment for the season.",
+ "satisfactionScore": 8,
+ "date": "2024-11-30T18:00:00Z",
+ "mood": "satisfied"
+ }
+ ]
+ },
+ {
+ "name": "Coffee with Friends",
+ "amount": 12,
+ "datetime": "2024-11-30T11:30:00Z",
+ "location": "City Center Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Weekend Market Produce",
+ "amount": 32,
+ "datetime": "2024-12-01T09:30:00Z",
+ "location": "Local Farmers Market",
+ "category": "groceries",
+ "isPlanned": true
+ },
+ {
+ "name": "Cat Supplies",
+ "amount": 25,
+ "datetime": "2024-12-01T14:00:00Z",
+ "location": "Pet Shop",
+ "category": "household",
+ "isPlanned": true
+ }
+ ],
+ "weekContext": {
+ "events": ["Bi-weekly family dinner", "Weekly coffee with friends"],
+ "stressLevel": 6,
+ "notes": "Regular work week with standard routines"
+ }
+ },
+ {
+ "weekNumber": 2,
+ "startDate": "2024-12-02",
+ "endDate": "2024-12-08",
+ "purchases": [
+ {
+ "name": "Lavazza Coffee",
+ "amount": 3.5,
+ "datetime": "2024-12-02T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Weekly Groceries",
+ "amount": 142,
+ "datetime": "2024-12-02T17:30:00Z",
+ "location": "Esselunga Supermarket",
+ "category": "groceries",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Monthly stock-up after salary. Got some extra items for upcoming meals.",
+ "satisfactionScore": 8,
+ "date": "2024-12-02T20:00:00Z",
+ "mood": "satisfied"
+ }
+ ]
+ },
+ {
+ "name": "Office Lunch",
+ "amount": 15,
+ "datetime": "2024-12-03T13:00:00Z",
+ "location": "Office District Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Lavazza Coffee",
+ "amount": 3.5,
+ "datetime": "2024-12-04T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Yoga Class Drop-in",
+ "amount": 15,
+ "datetime": "2024-12-05T16:30:00Z",
+ "location": "Zen Studio",
+ "category": "health",
+ "isPlanned": true
+ },
+ {
+ "name": "Winter Boots",
+ "amount": 95,
+ "datetime": "2024-12-06T17:00:00Z",
+ "location": "City Shopping Center",
+ "category": "fashion",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Necessary purchase for winter. Good quality and practical for daily commute.",
+ "satisfactionScore": 9,
+ "date": "2024-12-06T20:00:00Z",
+ "mood": "pleased"
+ }
+ ]
+ },
+ {
+ "name": "Coffee with Friends",
+ "amount": 10.5,
+ "datetime": "2024-12-07T10:30:00Z",
+ "location": "City Center Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Home Decor Items",
+ "amount": 55,
+ "datetime": "2024-12-07T12:00:00Z",
+ "location": "Home Goods Store",
+ "category": "household",
+ "isPlanned": false,
+ "reflections": [
+ {
+ "comment": "Impulse purchase but items will add warmth to living room for winter.",
+ "satisfactionScore": 7,
+ "date": "2024-12-07T18:00:00Z",
+ "mood": "content"
+ }
+ ]
+ },
+ {
+ "name": "Weekend Market Produce",
+ "amount": 28,
+ "datetime": "2024-12-08T09:30:00Z",
+ "location": "Local Farmers Market",
+ "category": "groceries",
+ "isPlanned": true
+ },
+ {
+ "name": "Daughter's School Supplies",
+ "amount": 22,
+ "datetime": "2024-12-08T14:00:00Z",
+ "location": "Stationery Store",
+ "category": "household",
+ "isPlanned": true
+ }
+ ],
+ "weekContext": {
+ "events": ["Weekly coffee with friends"],
+ "stressLevel": 5,
+ "notes": "Post-salary week with regular activities"
+ }
+ },
+ {
+ "weekNumber": 3,
+ "startDate": "2024-12-09",
+ "endDate": "2024-12-15",
+ "purchases": [
+ {
+ "name": "Lavazza Coffee",
+ "amount": 3.5,
+ "datetime": "2024-12-09T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Weekly Groceries",
+ "amount": 138,
+ "datetime": "2024-12-09T17:30:00Z",
+ "location": "Esselunga Supermarket",
+ "category": "groceries",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Efficient shopping trip despite work stress. Stocked up on easy-to-prepare meals for busy week.",
+ "satisfactionScore": 7,
+ "date": "2024-12-09T20:00:00Z",
+ "mood": "tired"
+ }
+ ]
+ },
+ {
+ "name": "Lavazza Coffee",
+ "amount": 3.5,
+ "datetime": "2024-12-10T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Work Lunch",
+ "amount": 16,
+ "datetime": "2024-12-11T12:30:00Z",
+ "location": "Office District Restaurant",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Family Dinner",
+ "amount": 70,
+ "datetime": "2024-12-12T19:00:00Z",
+ "location": "Local Restaurant",
+ "category": "dining",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Nice break from work stress. Quality time with family worth the expense.",
+ "satisfactionScore": 9,
+ "date": "2024-12-12T22:00:00Z",
+ "mood": "relaxed"
+ }
+ ]
+ },
+ {
+ "name": "Yoga Class Drop-in",
+ "amount": 15,
+ "datetime": "2024-12-13T16:30:00Z",
+ "location": "Zen Studio",
+ "category": "health",
+ "isPlanned": true
+ },
+ {
+ "name": "Coffee with Friends",
+ "amount": 11,
+ "datetime": "2024-12-14T10:30:00Z",
+ "location": "City Center Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Casual Dress",
+ "amount": 65,
+ "datetime": "2024-12-14T11:30:00Z",
+ "location": "Benetton Store",
+ "category": "fashion",
+ "isPlanned": false,
+ "reflections": [
+ {
+ "comment": "Stress-induced purchase, though it's from preferred brand. Could have waited for sales.",
+ "satisfactionScore": 6,
+ "date": "2024-12-14T18:00:00Z",
+ "mood": "guilty"
+ }
+ ]
+ },
+ {
+ "name": "Weekend Market Produce",
+ "amount": 35,
+ "datetime": "2024-12-15T09:30:00Z",
+ "location": "Local Farmers Market",
+ "category": "groceries",
+ "isPlanned": true
+ },
+ {
+ "name": "Cat Treats and Toys",
+ "amount": 18,
+ "datetime": "2024-12-15T15:00:00Z",
+ "location": "Pet Shop",
+ "category": "household",
+ "isPlanned": false
+ }
+ ],
+ "weekContext": {
+ "events": [
+ "Bi-weekly family dinner",
+ "Weekly coffee with friends",
+ "Work project deadline"
+ ],
+ "stressLevel": 7,
+ "notes": "Busy week with work deadlines"
+ }
+ },
+ {
+ "weekNumber": 4,
+ "startDate": "2024-12-16",
+ "endDate": "2024-12-22",
+ "purchases": [
+ {
+ "name": "Lavazza Coffee",
+ "amount": 3.5,
+ "datetime": "2024-12-16T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Weekly Groceries",
+ "amount": 145,
+ "datetime": "2024-12-16T17:30:00Z",
+ "location": "Esselunga Supermarket",
+ "category": "groceries",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Stocked up on holiday baking supplies and regular groceries. Good planning for upcoming festivities.",
+ "satisfactionScore": 8,
+ "date": "2024-12-16T20:00:00Z",
+ "mood": "organized"
+ }
+ ]
+ },
+ {
+ "name": "Morning Pastry",
+ "amount": 2.5,
+ "datetime": "2024-12-17T08:15:00Z",
+ "location": "Local Café",
+ "category": "dining",
+ "isPlanned": false
+ },
+ {
+ "name": "Lunch with Colleagues",
+ "amount": 17,
+ "datetime": "2024-12-18T12:30:00Z",
+ "location": "Office District Restaurant",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Yoga Class Drop-in",
+ "amount": 15,
+ "datetime": "2024-12-19T16:30:00Z",
+ "location": "Zen Studio",
+ "category": "health",
+ "isPlanned": true
+ },
+ {
+ "name": "Holiday Gifts",
+ "amount": 120,
+ "datetime": "2024-12-20T17:00:00Z",
+ "location": "Shopping Center",
+ "category": "gifts",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Got most holiday shopping done within budget. Found thoughtful gifts for family.",
+ "satisfactionScore": 8,
+ "date": "2024-12-20T20:00:00Z",
+ "mood": "satisfied"
+ }
+ ]
+ },
+ {
+ "name": "Coffee with Friends",
+ "amount": 11.5,
+ "datetime": "2024-12-21T10:30:00Z",
+ "location": "City Center Café",
+ "category": "dining",
+ "isPlanned": true
+ },
+ {
+ "name": "Holiday Decorations",
+ "amount": 55,
+ "datetime": "2024-12-21T12:00:00Z",
+ "location": "Home Goods Store",
+ "category": "household",
+ "isPlanned": true,
+ "reflections": [
+ {
+ "comment": "Nice additions to holiday decor. Will enhance family celebration atmosphere.",
+ "satisfactionScore": 8,
+ "date": "2024-12-21T18:00:00Z",
+ "mood": "festive"
+ }
+ ]
+ },
+ {
+ "name": "Weekend Market Produce",
+ "amount": 38,
+ "datetime": "2024-12-22T09:30:00Z",
+ "location": "Local Farmers Market",
+ "category": "groceries",
+ "isPlanned": true
+ },
+ {
+ "name": "Books for Daughter",
+ "amount": 45,
+ "datetime": "2024-12-22T14:00:00Z",
+ "location": "Bookstore",
+ "category": "education",
+ "isPlanned": true
+ }
+ ],
+ "weekContext": {
+ "events": ["Weekly coffee with friends", "Holiday shopping starts"],
+ "stressLevel": 6,
+ "notes": "Pre-holiday preparations beginning"
+ }
+ }
+ ]
+}
diff --git a/src/index.ts b/src/index.ts
deleted file mode 100644
index 233668a..0000000
--- a/src/index.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { generate as generatePersona } from './persona/store';
-
-import { generate as generatePurchases } from './purchase/store';
-
-const personaPromise = generatePersona();
-
-const date = new Date();
-const numWeeks = 4;
-
-console.log(`Generating persona...`);
-
-personaPromise.then(id => {
- console.log(`Generating purchases for id ${id}...`);
-
- const purchasesPromise = generatePurchases(id, date, numWeeks);
-
- purchasesPromise.then(() => {
- console.log('Complete');
- });
-});
diff --git a/src/persona/store.ts b/src/persona/store.ts
deleted file mode 100644
index f628864..0000000
--- a/src/persona/store.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import 'dotenv/config';
-import fs from 'fs';
-import { Persona, personaSchema } from './types';
-import { Tool } from './tool';
-import { BaseTool, makeRequest } from '../utils/anthropicClient';
-import { createFolderIfNotExists } from '../utils/createFolder';
-import { generatePrompt } from './prompt';
-import { randomUUID } from 'crypto';
-
-export async function generate() {
- const prompt = `${generatePrompt()} ${process.env.PERSONA_PROMPT}`;
-
- const result = (await makeRequest(prompt, Tool as BaseTool)) as Persona;
-
- const validPersona = personaSchema.safeParse(result);
-
- if (validPersona.error) {
- throw Error(`Invalid Persona generated: ${validPersona.error.message}`);
- }
-
- const id = randomUUID();
-
- await saveToJson(validPersona.data, id);
-
- console.log(`Persona name: ${validPersona.data.core.name}`);
-
- return id;
-}
-
-export async function saveToJson(persona: Persona, id: string) {
- await createFolderIfNotExists(`personas/${id}/`);
-
- const jsonName = `personas/${id}/${id}-persona.json`;
-
- await fs.promises.writeFile(jsonName, JSON.stringify(persona), 'utf8');
-
- console.log(`Persona '${persona.core.name}' saved as ${jsonName}`);
-}
diff --git a/src/purchase/store.ts b/src/purchase/store.ts
deleted file mode 100644
index 66d6c51..0000000
--- a/src/purchase/store.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import fs, { readFileSync } from 'fs';
-import { PurchaseList, purchaseListSchema } from './types';
-import { Tool } from './tool';
-import { BaseTool, makeRequest } from '../utils/anthropicClient';
-import { createFolderIfNotExists } from '../utils/createFolder';
-import { generatePrompt } from './prompt';
-import { Persona } from '../persona/types';
-
-export async function generate(
- personaId: string,
- date: Date,
- numWeeks: number
-) {
- try {
- const jsonFile = readFileSync(
- `personas/${personaId}/${personaId}-persona.json`,
- 'utf-8'
- );
- const persona: Persona = JSON.parse(jsonFile);
-
- const personaPrompt = await generatePrompt(
- persona,
- parseInt(process.env.PURCHASE_REFLECTION_THRESHOLD ?? '50'),
- date,
- numWeeks
- );
-
- const result = (await makeRequest(
- personaPrompt,
- Tool as BaseTool
- )) as PurchaseList;
-
- const validPurchases = purchaseListSchema.safeParse(result);
-
- if (validPurchases.error) {
- throw Error(`Invalid purchases: ${validPurchases.error.message}`);
- }
-
- await saveToJson(validPurchases.data, personaId);
-
- const totalPurchases = validPurchases.data.weeks.reduce(
- (acc, week) => acc + week.purchases.length,
- 0
- );
- console.log(
- `Generated ${totalPurchases} purchases for ${persona.core.name}`
- );
-
- return validPurchases.data;
- } catch (error) {
- console.error('Error generating purchases:', error);
- throw error;
- }
-}
-
-export async function saveToJson(purchaseList: PurchaseList, id: string) {
- await createFolderIfNotExists(`personas/${id}/`);
- const jsonName = `personas/${id}/${id}-purchases.json`;
-
- await fs.promises.writeFile(
- jsonName,
- JSON.stringify(purchaseList, null, 2),
- 'utf8'
- );
-
- const purchaseStats = purchaseList.weeks.reduce(
- (stats, week) => {
- return {
- total: stats.total + week.purchases.length,
- planned: stats.planned + week.purchases.filter(p => p.isPlanned).length,
- withReflections:
- stats.withReflections +
- week.purchases.filter(p => p.reflections?.length).length
- };
- },
- { total: 0, planned: 0, withReflections: 0 }
- );
-
- console.log(
- `Saved ${purchaseStats.total} purchases (${purchaseStats.planned} planned, ${purchaseStats.withReflections} with reflections) as ${jsonName}`
- );
-}
diff --git a/src/utils/createFolder.ts b/src/utils/createFolder.ts
deleted file mode 100644
index 20ba1fb..0000000
--- a/src/utils/createFolder.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { promises as fs } from 'fs';
-
-export async function createFolderIfNotExists(
- folderPath: string
-): Promise {
- try {
- await fs.access(folderPath);
- console.log('Folder already exists');
- } catch {
- try {
- await fs.mkdir(folderPath, { recursive: true });
- console.log('Folder created successfully');
- } catch (error) {
- console.error('Error creating folder:', error);
- throw error;
- }
- }
-}
diff --git a/tailwind.config.ts b/tailwind.config.ts
new file mode 100644
index 0000000..e3111c9
--- /dev/null
+++ b/tailwind.config.ts
@@ -0,0 +1,13 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: [
+ './app/**/*.{js,ts,jsx,tsx,mdx}',
+ './pages/**/*.{js,ts,jsx,tsx,mdx}',
+ './components/**/*.{js,ts,jsx,tsx,mdx}'
+ ],
+ theme: {
+ extend: {}
+ },
+ plugins: [],
+ important: true // Add this line
+};
diff --git a/tsconfig.json b/tsconfig.json
index 6324579..f27c76f 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,18 +1,31 @@
{
"compilerOptions": {
- "target": "es2017",
- "module": "commonjs",
- "lib": ["es6"],
+ "target": "ES5",
+ "lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
- "outDir": "dist",
- "rootDir": "src",
+ "skipLibCheck": true,
"strict": true,
- "noImplicitAny": true,
+ "noEmit": true,
"esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
"resolveJsonModule": true,
- "types": ["node"],
- "typeRoots": ["./node_modules/@types"]
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@app/*": ["./app/*"],
+ "@components/*": ["./components/*"],
+ "@utils/*": ["./utils/*"],
+ "@consumer/*": ["./utils/consumer/*"],
+ "@purchases/*": ["./utils/purchases/*"]
+ }
},
- "include": ["src/**/*", "utils/anthropicClient.ts"],
- "exclude": ["node_modules", "dist"]
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules", ".yarn", ".next", ".vercel", ".vscode"]
}
diff --git a/src/utils/anthropicClient.ts b/utils/anthropicClient.ts
similarity index 85%
rename from src/utils/anthropicClient.ts
rename to utils/anthropicClient.ts
index 5afbb48..c3bb9e9 100644
--- a/src/utils/anthropicClient.ts
+++ b/utils/anthropicClient.ts
@@ -13,15 +13,13 @@ export interface BaseTool {
export async function makeRequest(prompt: string, tool: T) {
if (!process.env.ANTHROPIC_API_KEY) {
- throw Error('Anthropic API key missing.');
+ throw Error('No Anthropic API key found.');
}
- const anthropic = new Anthropic({
- apiKey: process.env.ANTHROPIC_API_KEY
- });
+ const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
try {
- const response = await anthropic.messages.create({
+ const response = await client.messages.create({
model: 'claude-3-5-sonnet-20241022',
max_tokens: 8192,
temperature: 1,
diff --git a/src/persona/prompt.ts b/utils/consumer/prompt.ts
similarity index 75%
rename from src/persona/prompt.ts
rename to utils/consumer/prompt.ts
index b0263da..f020258 100644
--- a/src/persona/prompt.ts
+++ b/utils/consumer/prompt.ts
@@ -1,18 +1,19 @@
-import { generatePersonaSeed } from '../utils/generatePersonaSeed';
+import { Moment } from 'moment';
-export function generatePrompt(): string {
- const seed = generatePersonaSeed();
- const [letters, year, postalCode] = seed.split(':');
-
- return `You are tasked with creating a detailed persona of an Italian individual based on the following seed information:
+export function generatePrompt(
+ letters: string,
+ birthday: Moment,
+ zipCode: string
+): string {
+ return `You are tasked with creating a detailed consumer of an Italian individual based on the following seed information:
-
+
${letters}
- ${year}
- ${postalCode}
-
+ ${birthday.format('YYYY-MM-DD')}
+ ${zipCode}
+
- Your goal is to generate a realistic and diverse persona that reflects the complexity of Italian society. Follow these steps to create the persona:
+ Your goal is to generate a realistic and diverse consumer that reflects the complexity of Italian society. Follow these steps to create the consumer:
1. Analyze the demographic data:
- Create a full name that includes ALL the letters provided in , though it may contain additional letters.
@@ -52,7 +53,7 @@ export function generatePrompt(): string {
- Exercise routines or lack thereof
- Social activities
- 7. Add personal context:
+ 7. Add consumerl context:
- Key stress triggers
- Reward behaviors
- Upcoming significant events
@@ -66,9 +67,9 @@ export function generatePrompt(): string {
c) Professional sector norms
d) Local cost of living
- Before providing the final persona, wrap your analysis in tags. For each major section:
+ Before providing the final consumer, wrap your analysis in tags. For each major section:
1. Break down the postal code implications on the person's background and lifestyle.
2. Consider multiple options for each aspect (at least 2-3 choices).
3. Explain your reasoning for the final choice.
- This will help ensure a thorough and well-reasoned persona creation.`;
+ This will help ensure a thorough and well-reasoned consumer creation.`;
}
diff --git a/utils/consumer/store.ts b/utils/consumer/store.ts
new file mode 100644
index 0000000..2979cda
--- /dev/null
+++ b/utils/consumer/store.ts
@@ -0,0 +1,54 @@
+import 'dotenv/config';
+import { Consumer, consumerSchema } from './types';
+import { Tool } from './tool';
+import { BaseTool, makeRequest } from '../anthropicClient';
+import { generatePrompt } from './prompt';
+import { generateConsumerSeed } from '@utils/generateConsumerSeed';
+import prisma from '../../prisma/prisma';
+
+export async function generate() {
+ const { letters, birthday, zipCode } = generateConsumerSeed();
+
+ const newConsumer = await prisma.consumer.create({
+ data: {
+ letters,
+ birthday: birthday.toDate(),
+ zipCode
+ }
+ });
+
+ console.info(`New consumer being generated with id ${newConsumer.id}`);
+
+ const prompt = generatePrompt(letters, birthday, zipCode);
+
+ try {
+ const result = (await makeRequest(prompt, Tool as BaseTool)) as Consumer;
+
+ const validConsumer = consumerSchema.safeParse(result);
+
+ if (validConsumer.error) {
+ throw Error(`Invalid consumer generated: ${validConsumer.error.message}`);
+ }
+
+ console.info('Generated consumer by Anthropic', validConsumer.data);
+
+ await prisma.consumer.update({
+ where: {
+ id: newConsumer.id
+ },
+ data: {
+ value: validConsumer.data
+ }
+ });
+
+ console.info(`Consumer with id ${newConsumer.id} stored in database.`);
+
+ return {
+ id: newConsumer.id,
+ consumer: validConsumer.data
+ };
+ } catch (error) {
+ console.error('Error generating purchases:', error);
+ throw error;
+ }
+}
diff --git a/src/persona/tool.ts b/utils/consumer/tool.ts
similarity index 99%
rename from src/persona/tool.ts
rename to utils/consumer/tool.ts
index 7ad06d6..a53d2a5 100644
--- a/src/persona/tool.ts
+++ b/utils/consumer/tool.ts
@@ -1,8 +1,8 @@
export const Tool = {
- name: 'PersonaSchema' as const,
+ name: 'ConsumerSchema' as const,
input_schema: {
type: 'object' as const,
- description: 'User persona',
+ description: 'User consumer',
properties: {
core: {
type: 'object' as const,
diff --git a/src/persona/types.ts b/utils/consumer/types.ts
similarity index 96%
rename from src/persona/types.ts
rename to utils/consumer/types.ts
index dbf3bd5..fc17b78 100644
--- a/src/persona/types.ts
+++ b/utils/consumer/types.ts
@@ -126,7 +126,7 @@ const contextSchema = z.object({
upcoming_events: z.array(upcomingEventSchema)
});
-export const personaSchema = z.object({
+export const consumerSchema = z.object({
core: coreSchema,
routines: routinesSchema,
preferences: preferencesSchema,
@@ -135,4 +135,4 @@ export const personaSchema = z.object({
context: contextSchema
});
-export type Persona = z.infer;
+export type Consumer = z.infer;
diff --git a/src/utils/dateFunctions.ts b/utils/dateFunctions.ts
similarity index 100%
rename from src/utils/dateFunctions.ts
rename to utils/dateFunctions.ts
diff --git a/src/utils/generatePersonaSeed.ts b/utils/generateConsumerSeed.ts
similarity index 73%
rename from src/utils/generatePersonaSeed.ts
rename to utils/generateConsumerSeed.ts
index c1b7cb9..fc30c3b 100644
--- a/src/utils/generatePersonaSeed.ts
+++ b/utils/generateConsumerSeed.ts
@@ -1,3 +1,5 @@
+import moment, { Moment } from 'moment';
+
const PROVINCE_CODES = [
'00', // Roma
'04', // Latina
@@ -87,25 +89,27 @@ function generateLetters(): string {
.join('');
}
-function generateBirthYear(): string {
- const currentYear = new Date().getFullYear();
+function generateBirthYear(): Moment {
+ const currentYear = moment().year();
const minYear = currentYear - 50;
const maxYear = currentYear - 20;
- return Math.floor(Math.random() * (maxYear - minYear) + minYear).toString();
+ const year = Math.floor(Math.random() * (maxYear - minYear) + minYear);
+
+ const startDate = moment([year, 0, 1]); // January 1st
+ const endDate = moment([year, 11, 31]); // December 31st
+
+ const startTimestamp = startDate.valueOf();
+ const endTimestamp = endDate.valueOf();
+ const randomTimestamp =
+ startTimestamp + Math.random() * (endTimestamp - startTimestamp);
+
+ return moment(randomTimestamp).startOf('day');
}
-function formatPersonaSeed(
- letters: string,
- year: string,
- postalCode: string
-): string {
- return `${letters}:${year}:${postalCode}`;
-}
-
-export function generatePersonaSeed(): string {
+export function generateConsumerSeed() {
const letters = generateLetters();
- const birthYear = generateBirthYear();
- const postalCode = generateRandomCAP();
+ const birthday = generateBirthYear();
+ const zipCode = generateRandomCAP();
- return formatPersonaSeed(letters, birthYear, postalCode);
+ return { letters, birthday, zipCode };
}
diff --git a/src/purchase/prompt.ts b/utils/purchases/prompt.ts
similarity index 75%
rename from src/purchase/prompt.ts
rename to utils/purchases/prompt.ts
index 7c200f8..74d9f52 100644
--- a/src/purchase/prompt.ts
+++ b/utils/purchases/prompt.ts
@@ -1,5 +1,5 @@
-import { ExerciseActivity, Persona, SocialActivity } from '../persona/types';
-import { getWeekRanges, isDateInRange } from '../utils/dateFunctions';
+import { ExerciseActivity, Consumer, SocialActivity } from '../consumer/types';
+import { getWeekRanges, isDateInRange } from '../dateFunctions';
function formatCategories(
categories?: Record<
@@ -96,7 +96,7 @@ function formatContext(context: {
return sections.join('\n\n');
}
-function formatPersonaCore(core: Persona['core']): string {
+function formatConsumerCore(core: Consumer['core']): string {
const sections = [
`${core.name} is a ${core.age}-year-old ${core.occupation.title} at ${core.occupation.location}`,
`Living: ${core.household.status}, ${core.home.ownership} ${core.home.type} in ${core.home.location}`,
@@ -106,7 +106,7 @@ function formatPersonaCore(core: Persona['core']): string {
return sections.filter(Boolean).join('\n');
}
-function formatHousehold(household: Persona['core']['household']): string {
+function formatHousehold(household: Consumer['core']['household']): string {
const sections = [];
if (household.members.length) {
@@ -140,7 +140,7 @@ function formatDailySchedule(
.join('\n');
}
-function formatCommute(commute: Persona['routines']['commute']): string {
+function formatCommute(commute: Consumer['routines']['commute']): string {
return `${commute.method} (${commute.route.join(' â ')})
Regular stops: ${commute.regular_stops
.map(stop => `${stop.frequency} ${stop.purpose} at ${stop.location}`)
@@ -156,7 +156,7 @@ function formatPurchasingStyle(impulsiveScore: number): string {
}
function formatSubscriptions(
- subscriptions: Persona['finances']['subscriptions']
+ subscriptions: Consumer['finances']['subscriptions']
): string {
return subscriptions
.map(
@@ -166,7 +166,7 @@ function formatSubscriptions(
.join('\n');
}
-function formatBrands(brands: Persona['preferences']['brands']): string {
+function formatBrands(brands: Consumer['preferences']['brands']): string {
return brands
.map(brand => `${brand.name} (loyalty: ${brand.loyalty_score}/10)`)
.join(', ');
@@ -175,18 +175,18 @@ function formatBrands(brands: Persona['preferences']['brands']): string {
function formatWeekSection(
range: { start: Date; end: Date },
weekNum: number,
- persona: Persona
+ consumer: Consumer
): string {
return `=== WEEK ${weekNum}: ${range.start.toISOString().split('T')[0]} to ${range.end.toISOString().split('T')[0]} ===
Context:
-${formatWeekContext(range, persona)}
-${formatPurchaseOpportunities(persona)}`;
+${formatWeekContext(range, consumer)}
+${formatPurchaseOpportunities(consumer)}`;
}
function formatWeekContext(
range: { start: Date; end: Date },
- persona: Persona
+ consumer: Consumer
): string {
const contexts = [];
@@ -194,7 +194,7 @@ function formatWeekContext(
contexts.push('Post-salary period');
}
- const events = persona.context.upcoming_events.filter(event =>
+ const events = consumer.context.upcoming_events.filter(event =>
isDateInRange(new Date(event.date), range.start, range.end)
);
@@ -205,28 +205,28 @@ function formatWeekContext(
return contexts.map(c => `- ${c}`).join('\n');
}
-function formatPurchaseOpportunities(persona: Persona): string {
+function formatPurchaseOpportunities(consumer: Consumer): string {
const opportunities = [];
- if (persona.routines.commute.regular_stops.length) {
+ if (consumer.routines.commute.regular_stops.length) {
opportunities.push('Regular purchase points:');
- persona.routines.commute.regular_stops.forEach(stop => {
+ consumer.routines.commute.regular_stops.forEach(stop => {
opportunities.push(
`- ${stop.frequency} ${stop.purpose} at ${stop.location}`
);
});
}
- if (persona.habits.exercise.length) {
+ if (consumer.habits.exercise.length) {
opportunities.push('Activity-related purchases:');
- persona.habits.exercise.forEach(ex => {
+ consumer.habits.exercise.forEach(ex => {
opportunities.push(`- ${ex.frequency} ${ex.activity} sessions`);
});
}
- if (persona.habits.social.length) {
+ if (consumer.habits.social.length) {
opportunities.push('Social spending occasions:');
- persona.habits.social.forEach(soc => {
+ consumer.habits.social.forEach(soc => {
opportunities.push(`- ${soc.frequency} ${soc.activity}`);
});
}
@@ -235,51 +235,51 @@ function formatPurchaseOpportunities(persona: Persona): string {
}
export async function generatePrompt(
- persona: Persona,
+ consumer: Consumer,
reflectionThreshold: number,
targetDate: Date,
numWeeks: number
): Promise {
const weekRanges = getWeekRanges(targetDate, numWeeks);
- return `PERSONA PROFILE:
-${formatPersonaCore(persona.core)}
+ return `consumer PROFILE:
+${formatConsumerCore(consumer.core)}
Daily Schedule:
-${formatDailySchedule(persona.routines.weekday)}
-Commute: ${formatCommute(persona.routines.commute)}
+${formatDailySchedule(consumer.routines.weekday)}
+Commute: ${formatCommute(consumer.routines.commute)}
Weekend Activities:
-${persona.routines.weekend.map(activity => `- ${activity}`).join('\n')}
+${consumer.routines.weekend.map(activity => `- ${activity}`).join('\n')}
-${formatHabits(persona.habits)}
+${formatHabits(consumer.habits)}
Financial Profile:
-- Income: âŹ${persona.core.occupation.income.toLocaleString()}/year
-- Payment Methods: ${persona.preferences.payment_methods.join(', ')}
-- Price Sensitivity: ${persona.preferences.price_sensitivity}/10
-- Purchasing Style: ${formatPurchasingStyle(persona.finances.spending_patterns.impulsive_score)}
+- Income: âŹ${consumer.core.occupation.income.toLocaleString()}/year
+- Payment Methods: ${consumer.preferences.payment_methods.join(', ')}
+- Price Sensitivity: ${consumer.preferences.price_sensitivity}/10
+- Purchasing Style: ${formatPurchasingStyle(consumer.finances.spending_patterns.impulsive_score)}
Monthly Fixed Expenses:
-${formatSubscriptions(persona.finances.subscriptions)}
+${formatSubscriptions(consumer.finances.subscriptions)}
Spending Categories:
-${formatCategories(persona.finances.spending_patterns.categories)}
+${formatCategories(consumer.finances.spending_patterns.categories)}
Brand Preferences:
-${formatBrands(persona.preferences.brands)}
+${formatBrands(consumer.preferences.brands)}
Dietary Preferences:
-${persona.preferences.diet.join(', ')}
+${consumer.preferences.diet.join(', ')}
-${formatContext(persona.context)}
+${formatContext(consumer.context)}
PURCHASE GENERATION GUIDELINES:
-Generate ${numWeeks} weeks of purchases for ${persona.core.name}:
+Generate ${numWeeks} weeks of purchases for ${consumer.core.name}:
${weekRanges
- .map((range, i) => formatWeekSection(range, i + 1, persona))
+ .map((range, i) => formatWeekSection(range, i + 1, consumer))
.join('\n\n')}
Purchase Format:
diff --git a/utils/purchases/store.ts b/utils/purchases/store.ts
new file mode 100644
index 0000000..024b8ab
--- /dev/null
+++ b/utils/purchases/store.ts
@@ -0,0 +1,83 @@
+import { PurchaseList, purchaseListSchema } from './types';
+import { Tool } from './tool';
+import { BaseTool, makeRequest } from '../anthropicClient';
+import { generatePrompt } from './prompt';
+import { Consumer } from '../consumer/types';
+import prisma from '../../prisma/prisma';
+
+export async function generate(
+ id: number | undefined,
+ editedConsumer: Consumer,
+ date: Date
+) {
+ const consumerPrompt = await generatePrompt(
+ editedConsumer,
+ parseInt(process.env.PURCHASE_REFLECTION_THRESHOLD ?? '50'),
+ date,
+ parseInt(process.env.NUMBER_OF_WEEKS ?? '4')
+ );
+
+ const consumer = id
+ ? await prisma.consumer.update({
+ where: {
+ id
+ },
+ data: {
+ editedValue: editedConsumer
+ }
+ })
+ : await prisma.consumer.create({
+ data: {
+ editedValue: editedConsumer
+ }
+ });
+
+ const newPurchaseList = await prisma.purchaseList.create({
+ data: {
+ consumerId: consumer.id
+ }
+ });
+
+ console.info(
+ `Generating purchase list with id ${newPurchaseList.id} for consumer with id ${consumer.id}`
+ );
+
+ try {
+ const result = (await makeRequest(
+ consumerPrompt,
+ Tool as BaseTool
+ )) as PurchaseList;
+
+ const validPurchases = purchaseListSchema.safeParse(result);
+
+ if (validPurchases.error) {
+ throw Error(`Invalid purchases: ${validPurchases.error.message}`);
+ }
+
+ const totalPurchases = validPurchases.data.weeks.reduce(
+ (acc, week) => acc + week.purchases.length,
+ 0
+ );
+ console.info(
+ `Generated ${totalPurchases} purchases for purchase list with id ${newPurchaseList.id} for consumer wth id ${id}`
+ );
+
+ await prisma.purchaseList.update({
+ where: {
+ id: newPurchaseList.id
+ },
+ data: {
+ value: validPurchases.data
+ }
+ });
+
+ console.info(
+ `Purchase list with id ${newPurchaseList.id} for consumer with id ${id} stored in database.`
+ );
+
+ return validPurchases.data;
+ } catch (error) {
+ console.error('Error generating purchases:', error);
+ throw error;
+ }
+}
diff --git a/src/purchase/tool.ts b/utils/purchases/tool.ts
similarity index 98%
rename from src/purchase/tool.ts
rename to utils/purchases/tool.ts
index 2eb6013..e5cc94c 100644
--- a/src/purchase/tool.ts
+++ b/utils/purchases/tool.ts
@@ -47,7 +47,7 @@ export const Tool = {
category: {
type: 'string' as const,
description:
- 'Spending category (must match persona preferences)'
+ 'Spending category (must match consumer preferences)'
},
isPlanned: {
type: 'boolean' as const,
diff --git a/src/purchase/types.ts b/utils/purchases/types.ts
similarity index 88%
rename from src/purchase/types.ts
rename to utils/purchases/types.ts
index 899f90a..83a3a4b 100644
--- a/src/purchase/types.ts
+++ b/utils/purchases/types.ts
@@ -1,3 +1,4 @@
+import { consumerSchema } from '@utils/consumer/types';
import { z } from 'zod';
const isoDateTimeString = z.string().refine(
@@ -44,8 +45,8 @@ const weekSchema = z
endDate: z.string().regex(/^\d{4}-\d{2}-\d{2}$/, 'Invalid date format'),
purchases: z
.array(purchaseSchema)
- .min(12, 'Minimum 12 purchases required per week')
- .max(20, 'Maximum 20 purchases allowed per week'),
+ .min(7, 'Minimum 7 purchases required per week')
+ .max(21, 'Maximum 21 purchases allowed per week'),
weekContext: weekContextSchema.optional()
})
.refine(
@@ -78,3 +79,8 @@ export const purchaseListSchema = z
);
export type PurchaseList = z.infer;
+
+export const purchasesRequestSchema = z.object({
+ id: z.number().optional(),
+ consumer: consumerSchema
+});
diff --git a/utils/rateLimiter.ts b/utils/rateLimiter.ts
new file mode 100644
index 0000000..f65e497
--- /dev/null
+++ b/utils/rateLimiter.ts
@@ -0,0 +1,27 @@
+import prisma from '../prisma/prisma';
+
+export async function rateLimiter() {
+ if (!process.env.RATE_LIMIT) {
+ throw Error('Rate limit missing.');
+ }
+
+ const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000);
+
+ const consumersCount = await prisma.consumer.count({
+ where: {
+ createdAt: {
+ gt: yesterday
+ }
+ }
+ });
+
+ const purchaseListsCount = await prisma.purchaseList.count({
+ where: {
+ createdAt: {
+ gt: yesterday
+ }
+ }
+ });
+
+ return consumersCount + purchaseListsCount > parseInt(process.env.RATE_LIMIT);
+}
diff --git a/vercel.json b/vercel.json
new file mode 100644
index 0000000..6629acc
--- /dev/null
+++ b/vercel.json
@@ -0,0 +1,43 @@
+{
+ "functions": {
+ "app/api/**/*": {
+ "maxDuration": 90
+ }
+ },
+ "headers": [
+ {
+ "source": "/api/(.*)",
+ "headers": [
+ {
+ "key": "Access-Control-Allow-Methods",
+ "value": "GET, POST, OPTIONS"
+ },
+ {
+ "key": "Access-Control-Allow-Headers",
+ "value": "Content-Type, Accept"
+ },
+ {
+ "key": "Strict-Transport-Security",
+ "value": "max-age=63072000; includeSubDomains; preload"
+ },
+ {
+ "key": "Content-Security-Policy",
+ "value": "default-src 'none'"
+ },
+ {
+ "key": "X-Content-Type-Options",
+ "value": "nosniff"
+ },
+ {
+ "key": "X-Frame-Options",
+ "value": "DENY"
+ },
+ { "key": "Referrer-Policy", "value": "same-origin" },
+ {
+ "key": "X-XSS-Protection",
+ "value": "1; mode=block"
+ }
+ ]
+ }
+ ]
+}
diff --git a/yarn.lock b/yarn.lock
index 6473b84..8efe73d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5,6 +5,13 @@ __metadata:
version: 8
cacheKey: 10
+"@alloc/quick-lru@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "@alloc/quick-lru@npm:5.2.0"
+ checksum: 10/bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8
+ languageName: node
+ linkType: hard
+
"@anthropic-ai/sdk@npm:^0.32.1":
version: 0.32.1
resolution: "@anthropic-ai/sdk@npm:0.32.1"
@@ -232,15 +239,6 @@ __metadata:
languageName: node
linkType: hard
-"@cspotcode/source-map-support@npm:^0.8.0":
- version: 0.8.1
- resolution: "@cspotcode/source-map-support@npm:0.8.1"
- dependencies:
- "@jridgewell/trace-mapping": "npm:0.3.9"
- checksum: 10/b6e38a1712fab242c86a241c229cf562195aad985d0564bd352ac404be583029e89e93028ffd2c251d2c407ecac5fb0cbdca94a2d5c10f29ac806ede0508b3ff
- languageName: node
- linkType: hard
-
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
version: 4.4.1
resolution: "@eslint-community/eslint-utils@npm:4.4.1"
@@ -252,7 +250,7 @@ __metadata:
languageName: node
linkType: hard
-"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1":
+"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1":
version: 4.12.1
resolution: "@eslint-community/regexpp@npm:4.12.1"
checksum: 10/c08f1dd7dd18fbb60bdd0d85820656d1374dd898af9be7f82cb00451313402a22d5e30569c150315b4385907cdbca78c22389b2a72ab78883b3173be317620cc
@@ -322,27 +320,124 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/resolve-uri@npm:^3.0.3":
+"@jridgewell/gen-mapping@npm:^0.3.2":
+ version: 0.3.5
+ resolution: "@jridgewell/gen-mapping@npm:0.3.5"
+ dependencies:
+ "@jridgewell/set-array": "npm:^1.2.1"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.10"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10/81587b3c4dd8e6c60252122937cea0c637486311f4ed208b52b62aae2e7a87598f63ec330e6cd0984af494bfb16d3f0d60d3b21d7e5b4aedd2602ff3fe9d32e2
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
version: 3.1.2
resolution: "@jridgewell/resolve-uri@npm:3.1.2"
checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d
languageName: node
linkType: hard
-"@jridgewell/sourcemap-codec@npm:^1.4.10":
+"@jridgewell/set-array@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@jridgewell/set-array@npm:1.2.1"
+ checksum: 10/832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
version: 1.5.0
resolution: "@jridgewell/sourcemap-codec@npm:1.5.0"
checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:0.3.9":
- version: 0.3.9
- resolution: "@jridgewell/trace-mapping@npm:0.3.9"
+"@jridgewell/trace-mapping@npm:^0.3.24":
+ version: 0.3.25
+ resolution: "@jridgewell/trace-mapping@npm:0.3.25"
dependencies:
- "@jridgewell/resolve-uri": "npm:^3.0.3"
- "@jridgewell/sourcemap-codec": "npm:^1.4.10"
- checksum: 10/83deafb8e7a5ca98993c2c6eeaa93c270f6f647a4c0dc00deb38c9cf9b2d3b7bf15e8839540155247ef034a052c0ec4466f980bf0c9e2ab63b97d16c0cedd3ff
+ "@jridgewell/resolve-uri": "npm:^3.1.0"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.14"
+ checksum: 10/dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc
+ languageName: node
+ linkType: hard
+
+"@next/env@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/env@npm:14.2.10"
+ checksum: 10/52754033a280e2ea804bcf15df5f13fe24db6d7b9b571676e8ba79735675d66716c2d9e51a2f5b2ba6c6492178f4c82c572b3f4097efd890dfda38fd8a4328c4
+ languageName: node
+ linkType: hard
+
+"@next/eslint-plugin-next@npm:15.0.3":
+ version: 15.0.3
+ resolution: "@next/eslint-plugin-next@npm:15.0.3"
+ dependencies:
+ fast-glob: "npm:3.3.1"
+ checksum: 10/ef0d68b3e0f737f88b719353eb4dd65f8d7a98ddbdb8a7e2f2283e4696f9e4875c6f335dc18993254ea95ad481ae6cf004388657b7abbe7a6e1557641b31051e
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-arm64@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-darwin-arm64@npm:14.2.10"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-x64@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-darwin-x64@npm:14.2.10"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-gnu@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-linux-arm64-gnu@npm:14.2.10"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-musl@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-linux-arm64-musl@npm:14.2.10"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-gnu@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-linux-x64-gnu@npm:14.2.10"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-musl@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-linux-x64-musl@npm:14.2.10"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-arm64-msvc@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-win32-arm64-msvc@npm:14.2.10"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-ia32-msvc@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-win32-ia32-msvc@npm:14.2.10"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-x64-msvc@npm:14.2.10":
+ version: 14.2.10
+ resolution: "@next/swc-win32-x64-msvc@npm:14.2.10"
+ conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -373,6 +468,13 @@ __metadata:
languageName: node
linkType: hard
+"@nolyfill/is-core-module@npm:1.0.39":
+ version: 1.0.39
+ resolution: "@nolyfill/is-core-module@npm:1.0.39"
+ checksum: 10/0d6e098b871eca71d875651288e1f0fa770a63478b0b50479c99dc760c64175a56b5b04f58d5581bbcc6b552b8191ab415eada093d8df9597ab3423c8cac1815
+ languageName: node
+ linkType: hard
+
"@npmcli/agent@npm:^2.0.0":
version: 2.2.2
resolution: "@npmcli/agent@npm:2.2.2"
@@ -402,81 +504,92 @@ __metadata:
languageName: node
linkType: hard
-"@tsconfig/node10@npm:^1.0.7":
- version: 1.0.11
- resolution: "@tsconfig/node10@npm:1.0.11"
- checksum: 10/51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267
+"@prisma/client@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "@prisma/client@npm:6.0.1"
+ peerDependencies:
+ prisma: "*"
+ peerDependenciesMeta:
+ prisma:
+ optional: true
+ checksum: 10/de537c1ef3de528b2dfa93d661d16ff47a14e688dc0e26bc97d0cf3775e7049325cd36120308e0a85bea5188cbc4be9966e9ca9df3c4508e689830082e2f3a64
languageName: node
linkType: hard
-"@tsconfig/node12@npm:^1.0.7":
- version: 1.0.11
- resolution: "@tsconfig/node12@npm:1.0.11"
- checksum: 10/5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a
+"@prisma/debug@npm:6.0.1":
+ version: 6.0.1
+ resolution: "@prisma/debug@npm:6.0.1"
+ checksum: 10/f0c232faea07c73e85ddd0269db4b345fb3826bdf5d7e0c00702121037fde715d1b66f2d9cee18201b20d4284295c3555d47254622bdde604ec6dff5da4dad64
languageName: node
linkType: hard
-"@tsconfig/node14@npm:^1.0.0":
- version: 1.0.3
- resolution: "@tsconfig/node14@npm:1.0.3"
- checksum: 10/19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d
+"@prisma/engines-version@npm:5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e":
+ version: 5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e
+ resolution: "@prisma/engines-version@npm:5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e"
+ checksum: 10/f38106e183943014b8a7c5c7b748298ea598dbb10fba9d7cd14234daacbebdb64dda3a87d4c148a3dcca5028b3721dfdd4e506910d182771fa3c211ea279d9f4
languageName: node
linkType: hard
-"@tsconfig/node16@npm:^1.0.2":
- version: 1.0.4
- resolution: "@tsconfig/node16@npm:1.0.4"
- checksum: 10/202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff
- languageName: node
- linkType: hard
-
-"@types/body-parser@npm:*":
- version: 1.19.5
- resolution: "@types/body-parser@npm:1.19.5"
+"@prisma/engines@npm:6.0.1":
+ version: 6.0.1
+ resolution: "@prisma/engines@npm:6.0.1"
dependencies:
- "@types/connect": "npm:*"
- "@types/node": "npm:*"
- checksum: 10/1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82
+ "@prisma/debug": "npm:6.0.1"
+ "@prisma/engines-version": "npm:5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e"
+ "@prisma/fetch-engine": "npm:6.0.1"
+ "@prisma/get-platform": "npm:6.0.1"
+ checksum: 10/f70bd915df0996feba5e564dfc237c69a704ff9275773c32823f70277a130f62b17d9c0927b3761f8430555a2c9843a24cbc6351d107b7fbc2854e3f0ae03f9f
languageName: node
linkType: hard
-"@types/connect@npm:*":
- version: 3.4.38
- resolution: "@types/connect@npm:3.4.38"
+"@prisma/fetch-engine@npm:6.0.1":
+ version: 6.0.1
+ resolution: "@prisma/fetch-engine@npm:6.0.1"
dependencies:
- "@types/node": "npm:*"
- checksum: 10/7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99
+ "@prisma/debug": "npm:6.0.1"
+ "@prisma/engines-version": "npm:5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e"
+ "@prisma/get-platform": "npm:6.0.1"
+ checksum: 10/6c177443c828e1bab077caeac48c5b51601d48c58dc5ef3fb7825d96352708d6ad00827a85e5eab026ac30b1180e1f3e39c98e93f414b57e34235a0712e11ff0
languageName: node
linkType: hard
-"@types/express-serve-static-core@npm:^4.17.33":
- version: 4.19.6
- resolution: "@types/express-serve-static-core@npm:4.19.6"
+"@prisma/get-platform@npm:6.0.1":
+ version: 6.0.1
+ resolution: "@prisma/get-platform@npm:6.0.1"
dependencies:
- "@types/node": "npm:*"
- "@types/qs": "npm:*"
- "@types/range-parser": "npm:*"
- "@types/send": "npm:*"
- checksum: 10/a2e00b6c5993f0dd63ada2239be81076fe0220314b9e9fde586e8946c9c09ce60f9a2dd0d74410ee2b5fd10af8c3e755a32bb3abf134533e2158142488995455
+ "@prisma/debug": "npm:6.0.1"
+ checksum: 10/ab684fb05998374dc689b28775329742f4a91435b091f337bb6eff8ba9eeb0236fdf8365ce19b29948232adedbad0ba6cf1554d7f809009b5c0f3ea421e3e8cb
languageName: node
linkType: hard
-"@types/express@npm:^4.17.21":
- version: 4.17.21
- resolution: "@types/express@npm:4.17.21"
+"@rtsao/scc@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@rtsao/scc@npm:1.1.0"
+ checksum: 10/17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01
+ languageName: node
+ linkType: hard
+
+"@rushstack/eslint-patch@npm:^1.10.3":
+ version: 1.10.4
+ resolution: "@rushstack/eslint-patch@npm:1.10.4"
+ checksum: 10/fa14a091cc800e1fac75c03112db03eaebbdc2de6e1532ed7702e106c3ce0cbf9b896794d885d455b225e9cc696a5e10c7bfb803d00774461d691e7a39915fc7
+ languageName: node
+ linkType: hard
+
+"@swc/counter@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "@swc/counter@npm:0.1.3"
+ checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:0.5.5":
+ version: 0.5.5
+ resolution: "@swc/helpers@npm:0.5.5"
dependencies:
- "@types/body-parser": "npm:*"
- "@types/express-serve-static-core": "npm:^4.17.33"
- "@types/qs": "npm:*"
- "@types/serve-static": "npm:*"
- checksum: 10/7a6d26cf6f43d3151caf4fec66ea11c9d23166e4f3102edfe45a94170654a54ea08cf3103d26b3928d7ebcc24162c90488e33986b7e3a5f8941225edd5eb18c7
- languageName: node
- linkType: hard
-
-"@types/http-errors@npm:*":
- version: 2.0.4
- resolution: "@types/http-errors@npm:2.0.4"
- checksum: 10/1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3
+ "@swc/counter": "npm:^0.1.3"
+ tslib: "npm:^2.4.0"
+ checksum: 10/1c5ef04f642542212df28c669438f3e0f459dcde7b448a5b1fcafb2e9e4f13e76d8428535a270e91ed123dd2a21189dbed34086b88a8cf68baf84984d6d0e39b
languageName: node
linkType: hard
@@ -487,10 +600,10 @@ __metadata:
languageName: node
linkType: hard
-"@types/mime@npm:^1":
- version: 1.3.5
- resolution: "@types/mime@npm:1.3.5"
- checksum: 10/e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78
+"@types/json5@npm:^0.0.29":
+ version: 0.0.29
+ resolution: "@types/json5@npm:0.0.29"
+ checksum: 10/4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56
languageName: node
linkType: hard
@@ -511,30 +624,21 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:*":
- version: 22.9.3
- resolution: "@types/node@npm:22.9.3"
+"@types/node@npm:*, @types/node@npm:^22.10.1":
+ version: 22.10.1
+ resolution: "@types/node@npm:22.10.1"
dependencies:
- undici-types: "npm:~6.19.8"
- checksum: 10/c32a03ff998b8c6cf7d653216508a92b1e6569dd5031ea6cfc2aaa8c75ebbf4172bf1602f0e1f673086e210787dc96667b99ba4d919bc151f9a1f88aeac42822
+ undici-types: "npm:~6.20.0"
+ checksum: 10/c802a526da2f3fa3ccefd00a71244e7cb825329951719e79e8fec62b1dbc2855388c830489770611584665ce10be23c05ed585982038b24924e1ba2c2cce03fd
languageName: node
linkType: hard
"@types/node@npm:^18.11.18":
- version: 18.19.65
- resolution: "@types/node@npm:18.19.65"
+ version: 18.19.67
+ resolution: "@types/node@npm:18.19.67"
dependencies:
undici-types: "npm:~5.26.4"
- checksum: 10/9d580201ab049d5fbd9c834b6135deaa7d203b00f7a9676dfeedde06a48ac48b710706691bf6ea90cb6f8c8204424f3d0394c531d44ae6f71042c6333987adcf
- languageName: node
- linkType: hard
-
-"@types/node@npm:^20.10.0":
- version: 20.17.7
- resolution: "@types/node@npm:20.17.7"
- dependencies:
- undici-types: "npm:~6.19.2"
- checksum: 10/b54a9e6dedb75d86e2cc1ea249d2cff512fea3185d53e5a8b6b8ba93ad06f61347a4785a963323672f73f53a4847dd8ce9bb706ad4ba23650520abc67c7cffba
+ checksum: 10/7bb1d06cd1483dd02462a3dd2894790e5c27ba0fa4cdd4a3da1062d66ed47b66affaab314aa72b346ff3e5538a74d5c3cb14bb1a634547504a1643679738f494
languageName: node
linkType: hard
@@ -545,17 +649,29 @@ __metadata:
languageName: node
linkType: hard
-"@types/qs@npm:*":
- version: 6.9.17
- resolution: "@types/qs@npm:6.9.17"
- checksum: 10/fc3beda0be70e820ddabaa361e8dfec5e09b482b8f6cf1515615479a027dd06cd5ba0ffbd612b654c2605523f45f484c8905a475623d6cd0c4cadcf5d0c517f5
+"@types/prop-types@npm:*":
+ version: 15.7.13
+ resolution: "@types/prop-types@npm:15.7.13"
+ checksum: 10/8935cad87c683c665d09a055919d617fe951cb3b2d5c00544e3a913f861a2bd8d2145b51c9aa6d2457d19f3107ab40784c40205e757232f6a80cc8b1c815513c
languageName: node
linkType: hard
-"@types/range-parser@npm:*":
- version: 1.2.7
- resolution: "@types/range-parser@npm:1.2.7"
- checksum: 10/95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a
+"@types/react-dom@npm:^18.3.1":
+ version: 18.3.1
+ resolution: "@types/react-dom@npm:18.3.1"
+ dependencies:
+ "@types/react": "npm:*"
+ checksum: 10/33f9ba79b26641ddf00a8699c30066b7e3573ab254e97475bf08f82fab83a6d3ce8d4ebad86afeb49bb8df3374390a9ba93125cece33badc4b3e8f7eac3c84d8
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:*, @types/react@npm:^18.3.12":
+ version: 18.3.12
+ resolution: "@types/react@npm:18.3.12"
+ dependencies:
+ "@types/prop-types": "npm:*"
+ csstype: "npm:^3.0.2"
+ checksum: 10/c9bbdfeacd5347d2240e0d2cb5336bc57dbc1b9ff557b6c4024b49df83419e4955553518169d3736039f1b62608e15b35762a6c03d49bd86e33add4b43b19033
languageName: node
linkType: hard
@@ -566,24 +682,26 @@ __metadata:
languageName: node
linkType: hard
-"@types/send@npm:*":
- version: 0.17.4
- resolution: "@types/send@npm:0.17.4"
+"@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:8.16.0"
dependencies:
- "@types/mime": "npm:^1"
- "@types/node": "npm:*"
- checksum: 10/28320a2aa1eb704f7d96a65272a07c0bf3ae7ed5509c2c96ea5e33238980f71deeed51d3631927a77d5250e4091b3e66bce53b42d770873282c6a20bb8b0280d
- languageName: node
- linkType: hard
-
-"@types/serve-static@npm:*":
- version: 1.15.7
- resolution: "@types/serve-static@npm:1.15.7"
- dependencies:
- "@types/http-errors": "npm:*"
- "@types/node": "npm:*"
- "@types/send": "npm:*"
- checksum: 10/c5a7171d5647f9fbd096ed1a26105759f3153ccf683824d99fee4c7eb9cde2953509621c56a070dd9fb1159e799e86d300cbe4e42245ebc5b0c1767e8ca94a67
+ "@eslint-community/regexpp": "npm:^4.10.0"
+ "@typescript-eslint/scope-manager": "npm:8.16.0"
+ "@typescript-eslint/type-utils": "npm:8.16.0"
+ "@typescript-eslint/utils": "npm:8.16.0"
+ "@typescript-eslint/visitor-keys": "npm:8.16.0"
+ graphemer: "npm:^1.4.0"
+ ignore: "npm:^5.3.1"
+ natural-compare: "npm:^1.4.0"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependencies:
+ "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/aa3d551d4f09940eee0c08328cb0db3a2391a8bba6d044f6bb38c51ac864896519c647d4b8fd99f7c094cc677bcf22454b27322014a08b2f2fb25695a43820db
languageName: node
linkType: hard
@@ -612,6 +730,24 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/parser@npm:8.16.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": "npm:8.16.0"
+ "@typescript-eslint/types": "npm:8.16.0"
+ "@typescript-eslint/typescript-estree": "npm:8.16.0"
+ "@typescript-eslint/visitor-keys": "npm:8.16.0"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/ac1e2bfdbfe212da470bb17915b5228f7a6b027332b05eb8bcbbad440a81b2476c649e54e232084838e1edc005e6d7dc7a44899587d73672dd3d5484d9dbf9f8
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/parser@npm:^6.12.0":
version: 6.21.0
resolution: "@typescript-eslint/parser@npm:6.21.0"
@@ -640,6 +776,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:8.16.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/scope-manager@npm:8.16.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.16.0"
+ "@typescript-eslint/visitor-keys": "npm:8.16.0"
+ checksum: 10/e0aea61f248b39049d4ce21c19f9c8af1a8024f4f92abc8c1d5b79ea65b013c6c4ff41efb92995050036aa95b6a705601917b56809d9ec1fbbab387054aeb269
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/type-utils@npm:6.21.0"
@@ -657,6 +803,23 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/type-utils@npm:8.16.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/type-utils@npm:8.16.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree": "npm:8.16.0"
+ "@typescript-eslint/utils": "npm:8.16.0"
+ debug: "npm:^4.3.4"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/b91f6cef6af7e4f82a1dba9622d5ec9f46d1983eecfb88a1adbd310c7f980fedf5c8a198bfe968aae59fc386e4c437f55a7533988252eb9cbb0bdac8321e3dba
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/types@npm:6.21.0"
@@ -664,6 +827,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:8.16.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/types@npm:8.16.0"
+ checksum: 10/b37b26cd0e45b0cd6f7d492a07af583e4877d798495ab5fc1cfacb3c561b6d7981e3166f0475bb997e6c6d56ef903e160895174c7e63c08322dbb42d026cf7dc
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
@@ -683,6 +853,25 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:8.16.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/typescript-estree@npm:8.16.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.16.0"
+ "@typescript-eslint/visitor-keys": "npm:8.16.0"
+ debug: "npm:^4.3.4"
+ fast-glob: "npm:^3.3.2"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/823cf55d331cf7283547a2860a5d7bfd7dbd497be6e87b226dd7456b36db214de1504855afbbaef8d89932c11a1e589d4cb2a4093b6f1c542a4ce8319d988006
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/utils@npm:6.21.0"
@@ -700,6 +889,23 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:8.16.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/utils@npm:8.16.0"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.4.0"
+ "@typescript-eslint/scope-manager": "npm:8.16.0"
+ "@typescript-eslint/types": "npm:8.16.0"
+ "@typescript-eslint/typescript-estree": "npm:8.16.0"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/80ba35b97a8e80ac2b54a56ac041b4f4583328d764e1693e7d3750de383cbcefcb7e838b75e550e8aa4df446f4b41460da6dc83543517280a4e3a61546c1a8dc
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/visitor-keys@npm:6.21.0"
@@ -710,6 +916,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:8.16.0":
+ version: 8.16.0
+ resolution: "@typescript-eslint/visitor-keys@npm:8.16.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.16.0"
+ eslint-visitor-keys: "npm:^4.2.0"
+ checksum: 10/e3f231a3e8ca2f7a3dc0e9ebdc3ea1f51a377b1285727413b4c89c44dbfaf342f2574b1b4e7f478f295963045a6058e27b4827816fe2a5a2d09f565eb68522c7
+ languageName: node
+ linkType: hard
+
"@ungap/structured-clone@npm:^1.2.0":
version: 1.2.0
resolution: "@ungap/structured-clone@npm:1.2.0"
@@ -745,16 +961,6 @@ __metadata:
languageName: node
linkType: hard
-"accepts@npm:~1.3.8":
- version: 1.3.8
- resolution: "accepts@npm:1.3.8"
- dependencies:
- mime-types: "npm:~2.1.34"
- negotiator: "npm:0.6.3"
- checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6
- languageName: node
- linkType: hard
-
"acorn-jsx@npm:^5.3.2":
version: 5.3.2
resolution: "acorn-jsx@npm:5.3.2"
@@ -764,16 +970,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn-walk@npm:^8.1.1":
- version: 8.3.4
- resolution: "acorn-walk@npm:8.3.4"
- dependencies:
- acorn: "npm:^8.11.0"
- checksum: 10/871386764e1451c637bb8ab9f76f4995d408057e9909be6fb5ad68537ae3375d85e6a6f170b98989f44ab3ff6c74ad120bc2779a3d577606e7a0cd2b4efcaf77
- languageName: node
- linkType: hard
-
-"acorn@npm:^8.11.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0":
+"acorn@npm:^8.9.0":
version: 8.14.0
resolution: "acorn@npm:8.14.0"
bin:
@@ -873,6 +1070,13 @@ __metadata:
languageName: node
linkType: hard
+"any-promise@npm:^1.0.0":
+ version: 1.3.0
+ resolution: "any-promise@npm:1.3.0"
+ checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb
+ languageName: node
+ linkType: hard
+
"anymatch@npm:~3.1.2":
version: 3.1.3
resolution: "anymatch@npm:3.1.3"
@@ -883,10 +1087,10 @@ __metadata:
languageName: node
linkType: hard
-"arg@npm:^4.1.0":
- version: 4.1.3
- resolution: "arg@npm:4.1.3"
- checksum: 10/969b491082f20cad166649fa4d2073ea9e974a4e5ac36247ca23d2e5a8b3cb12d60e9ff70a8acfe26d76566c71fd351ee5e6a9a6595157eb36f92b1fd64e1599
+"arg@npm:^5.0.2":
+ version: 5.0.2
+ resolution: "arg@npm:5.0.2"
+ checksum: 10/92fe7de222054a060fd2329e92e867410b3ea260328147ee3fb7855f78efae005f4087e698d4e688a856893c56bb09951588c40f2c901cf6996cd8cd7bcfef2c
languageName: node
linkType: hard
@@ -897,10 +1101,20 @@ __metadata:
languageName: node
linkType: hard
-"array-flatten@npm:1.1.1":
- version: 1.1.1
- resolution: "array-flatten@npm:1.1.1"
- checksum: 10/e13c9d247241be82f8b4ec71d035ed7204baa82fae820d4db6948d30d3c4a9f2b3905eb2eec2b937d4aa3565200bd3a1c500480114cff649fa748747d2a50feb
+"aria-query@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "aria-query@npm:5.3.2"
+ checksum: 10/b2fe9bc98bd401bc322ccb99717c1ae2aaf53ea0d468d6e7aebdc02fac736e4a99b46971ee05b783b08ade23c675b2d8b60e4a1222a95f6e27bc4d2a0bfdcc03
+ languageName: node
+ linkType: hard
+
+"array-buffer-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "array-buffer-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ is-array-buffer: "npm:^3.0.4"
+ checksum: 10/53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e
languageName: node
linkType: hard
@@ -911,6 +1125,20 @@ __metadata:
languageName: node
linkType: hard
+"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8":
+ version: 3.1.8
+ resolution: "array-includes@npm:3.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ is-string: "npm:^1.0.7"
+ checksum: 10/290b206c9451f181fb2b1f79a3bf1c0b66bb259791290ffbada760c79b284eef6f5ae2aeb4bcff450ebc9690edd25732c4c73a3c2b340fcc0f4563aed83bf488
+ languageName: node
+ linkType: hard
+
"array-union@npm:^2.1.0":
version: 2.1.0
resolution: "array-union@npm:2.1.0"
@@ -918,6 +1146,87 @@ __metadata:
languageName: node
linkType: hard
+"array.prototype.findlast@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "array.prototype.findlast@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlastindex@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "array.prototype.findlastindex@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10/7c5c821f357cd53ab6cc305de8086430dd8d7a2485db87b13f843e868055e9582b1fd338f02338f67fc3a1603ceaf9610dd2a470b0b506f9d18934780f95b246
+ languageName: node
+ linkType: hard
+
+"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "array.prototype.flat@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10/d9d2f6f27584de92ec7995bc931103e6de722cd2498bdbfc4cba814fc3e52f056050a93be883018811f7c0a35875f5056584a0e940603a5e5934f0279896aebe
+ languageName: node
+ linkType: hard
+
+"array.prototype.flatmap@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "array.prototype.flatmap@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10/33f20006686e0cbe844fde7fd290971e8366c6c5e3380681c2df15738b1df766dd02c7784034aeeb3b037f65c496ee54de665388288edb323a2008bb550f77ea
+ languageName: node
+ linkType: hard
+
+"array.prototype.tosorted@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "array.prototype.tosorted@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d
+ languageName: node
+ linkType: hard
+
+"arraybuffer.prototype.slice@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "arraybuffer.prototype.slice@npm:1.0.3"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ call-bind: "npm:^1.0.5"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.22.3"
+ es-errors: "npm:^1.2.1"
+ get-intrinsic: "npm:^1.2.3"
+ is-array-buffer: "npm:^3.0.4"
+ is-shared-array-buffer: "npm:^1.0.2"
+ checksum: 10/0221f16c1e3ec7b67da870ee0e1f12b825b5f9189835392b59a22990f715827561a4f4cd5330dc7507de272d8df821be6cd4b0cb569babf5ea4be70e365a2f3d
+ languageName: node
+ linkType: hard
+
"arrify@npm:^1.0.1":
version: 1.0.1
resolution: "arrify@npm:1.0.1"
@@ -925,6 +1234,13 @@ __metadata:
languageName: node
linkType: hard
+"ast-types-flow@npm:^0.0.8":
+ version: 0.0.8
+ resolution: "ast-types-flow@npm:0.0.8"
+ checksum: 10/85a1c24af4707871c27cfe456bd2ff7fcbe678f3d1c878ac968c9557735a171a17bdcc8c8f903ceab3fc3c49d5b3da2194e6ab0a6be7fec0e133fa028f21ba1b
+ languageName: node
+ linkType: hard
+
"asynckit@npm:^0.4.0":
version: 0.4.0
resolution: "asynckit@npm:0.4.0"
@@ -950,6 +1266,47 @@ __metadata:
languageName: node
linkType: hard
+"autoprefixer@npm:^10.4.20":
+ version: 10.4.20
+ resolution: "autoprefixer@npm:10.4.20"
+ dependencies:
+ browserslist: "npm:^4.23.3"
+ caniuse-lite: "npm:^1.0.30001646"
+ fraction.js: "npm:^4.3.7"
+ normalize-range: "npm:^0.1.2"
+ picocolors: "npm:^1.0.1"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.1.0
+ bin:
+ autoprefixer: bin/autoprefixer
+ checksum: 10/d3c4b562fc4af2393623a0207cc336f5b9f94c4264ae1c316376904c279702ce2b12dc3f27205f491195d1e29bb52ffc269970ceb0f271f035fadee128a273f7
+ languageName: node
+ linkType: hard
+
+"available-typed-arrays@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "available-typed-arrays@npm:1.0.7"
+ dependencies:
+ possible-typed-array-names: "npm:^1.0.0"
+ checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab
+ languageName: node
+ linkType: hard
+
+"axe-core@npm:^4.10.0":
+ version: 4.10.2
+ resolution: "axe-core@npm:4.10.2"
+ checksum: 10/a69423b2ff16c15922c4ea7cf9cc5112728a2817bbe0f2cc212248d648885ffd1ba554e3a341dfc289cd9e67fc0d06f333b5c6837c5c38ca6652507381216fc1
+ languageName: node
+ linkType: hard
+
+"axobject-query@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "axobject-query@npm:4.1.0"
+ checksum: 10/e275dea9b673f71170d914f2d2a18be5d57d8d29717b629e7fedd907dcc2ebdc7a37803ff975874810bd423f222f299c020d28fde40a146f537448bf6bfecb6e
+ languageName: node
+ linkType: hard
+
"balanced-match@npm:^1.0.0":
version: 1.0.2
resolution: "balanced-match@npm:1.0.2"
@@ -964,26 +1321,6 @@ __metadata:
languageName: node
linkType: hard
-"body-parser@npm:1.20.3":
- version: 1.20.3
- resolution: "body-parser@npm:1.20.3"
- dependencies:
- bytes: "npm:3.1.2"
- content-type: "npm:~1.0.5"
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- destroy: "npm:1.2.0"
- http-errors: "npm:2.0.0"
- iconv-lite: "npm:0.4.24"
- on-finished: "npm:2.4.1"
- qs: "npm:6.13.0"
- raw-body: "npm:2.5.2"
- type-is: "npm:~1.6.18"
- unpipe: "npm:1.0.0"
- checksum: 10/8723e3d7a672eb50854327453bed85ac48d045f4958e81e7d470c56bf111f835b97e5b73ae9f6393d0011cc9e252771f46fd281bbabc57d33d3986edf1e6aeca
- languageName: node
- linkType: hard
-
"brace-expansion@npm:^1.1.7":
version: 1.1.11
resolution: "brace-expansion@npm:1.1.11"
@@ -1012,10 +1349,26 @@ __metadata:
languageName: node
linkType: hard
-"bytes@npm:3.1.2":
- version: 3.1.2
- resolution: "bytes@npm:3.1.2"
- checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388
+"browserslist@npm:^4.23.3":
+ version: 4.24.2
+ resolution: "browserslist@npm:4.24.2"
+ dependencies:
+ caniuse-lite: "npm:^1.0.30001669"
+ electron-to-chromium: "npm:^1.5.41"
+ node-releases: "npm:^2.0.18"
+ update-browserslist-db: "npm:^1.1.1"
+ bin:
+ browserslist: cli.js
+ checksum: 10/f8a9d78bbabe466c57ffd5c50a9e5582a5df9aa68f43078ca62a9f6d0d6c70ba72eca72d0a574dbf177cf55cdca85a46f7eb474917a47ae5398c66f8b76f7d1c
+ languageName: node
+ linkType: hard
+
+"busboy@npm:1.6.0":
+ version: 1.6.0
+ resolution: "busboy@npm:1.6.0"
+ dependencies:
+ streamsearch: "npm:^1.1.0"
+ checksum: 10/bee10fa10ea58e7e3e7489ffe4bda6eacd540a17de9f9cd21cc37e297b2dd9fe52b2715a5841afaec82900750d810d01d7edb4b2d456427f449b92b417579763
languageName: node
linkType: hard
@@ -1039,7 +1392,7 @@ __metadata:
languageName: node
linkType: hard
-"call-bind@npm:^1.0.7":
+"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7":
version: 1.0.7
resolution: "call-bind@npm:1.0.7"
dependencies:
@@ -1059,6 +1412,13 @@ __metadata:
languageName: node
linkType: hard
+"camelcase-css@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "camelcase-css@npm:2.0.1"
+ checksum: 10/1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1
+ languageName: node
+ linkType: hard
+
"camelcase-keys@npm:^6.2.2":
version: 6.2.2
resolution: "camelcase-keys@npm:6.2.2"
@@ -1077,6 +1437,13 @@ __metadata:
languageName: node
linkType: hard
+"caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001646, caniuse-lite@npm:^1.0.30001669":
+ version: 1.0.30001684
+ resolution: "caniuse-lite@npm:1.0.30001684"
+ checksum: 10/35dd0941dd32319c87409441e8400faea32114c4a74938c29262a613160d2890a4f57902e24c770f076dbd0b85c4442aa135f9f641d4a74a9246fe624e6f780a
+ languageName: node
+ linkType: hard
+
"chalk@npm:^4.0.0, chalk@npm:^4.1.0":
version: 4.1.2
resolution: "chalk@npm:4.1.2"
@@ -1094,7 +1461,7 @@ __metadata:
languageName: node
linkType: hard
-"chokidar@npm:^3.5.2":
+"chokidar@npm:^3.6.0":
version: 3.6.0
resolution: "chokidar@npm:3.6.0"
dependencies:
@@ -1120,6 +1487,15 @@ __metadata:
languageName: node
linkType: hard
+"class-variance-authority@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "class-variance-authority@npm:0.7.1"
+ dependencies:
+ clsx: "npm:^2.1.1"
+ checksum: 10/27a1face3f5ee88caa7813743461977aef5110830dc8e8960e7c9570598b37ffb8b2760b4e5d738dc827b0eb9058ddd204e9002e9af0ef39b6851f6ea9aa82c1
+ languageName: node
+ linkType: hard
+
"clean-stack@npm:^2.0.0":
version: 2.2.0
resolution: "clean-stack@npm:2.2.0"
@@ -1146,6 +1522,13 @@ __metadata:
languageName: node
linkType: hard
+"client-only@npm:0.0.1":
+ version: 0.0.1
+ resolution: "client-only@npm:0.0.1"
+ checksum: 10/0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8
+ languageName: node
+ linkType: hard
+
"cliui@npm:^8.0.1":
version: 8.0.1
resolution: "cliui@npm:8.0.1"
@@ -1157,6 +1540,13 @@ __metadata:
languageName: node
linkType: hard
+"clsx@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "clsx@npm:2.1.1"
+ checksum: 10/cdfb57fa6c7649bbff98d9028c2f0de2f91c86f551179541cf784b1cfdc1562dcb951955f46d54d930a3879931a980e32a46b598acaea274728dbe068deca919
+ languageName: node
+ linkType: hard
+
"color-convert@npm:^2.0.1":
version: 2.0.1
resolution: "color-convert@npm:2.0.1"
@@ -1189,6 +1579,13 @@ __metadata:
languageName: node
linkType: hard
+"commander@npm:^4.0.0":
+ version: 4.1.1
+ resolution: "commander@npm:4.1.1"
+ checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c
+ languageName: node
+ linkType: hard
+
"commander@npm:~12.1.0":
version: 12.1.0
resolution: "commander@npm:12.1.0"
@@ -1213,22 +1610,6 @@ __metadata:
languageName: node
linkType: hard
-"content-disposition@npm:0.5.4":
- version: 0.5.4
- resolution: "content-disposition@npm:0.5.4"
- dependencies:
- safe-buffer: "npm:5.2.1"
- checksum: 10/b7f4ce176e324f19324be69b05bf6f6e411160ac94bc523b782248129eb1ef3be006f6cff431aaea5e337fe5d176ce8830b8c2a1b721626ead8933f0cbe78720
- languageName: node
- linkType: hard
-
-"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
- version: 1.0.5
- resolution: "content-type@npm:1.0.5"
- checksum: 10/585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662
- languageName: node
- linkType: hard
-
"conventional-changelog-angular@npm:^7.0.0":
version: 7.0.0
resolution: "conventional-changelog-angular@npm:7.0.0"
@@ -1261,20 +1642,6 @@ __metadata:
languageName: node
linkType: hard
-"cookie-signature@npm:1.0.6":
- version: 1.0.6
- resolution: "cookie-signature@npm:1.0.6"
- checksum: 10/f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a
- languageName: node
- linkType: hard
-
-"cookie@npm:0.7.1":
- version: 0.7.1
- resolution: "cookie@npm:0.7.1"
- checksum: 10/aec6a6aa0781761bf55d60447d6be08861d381136a0fe94aa084fddd4f0300faa2b064df490c6798adfa1ebaef9e0af9b08a189c823e0811b8b313b3d9a03380
- languageName: node
- linkType: hard
-
"cosmiconfig-typescript-loader@npm:^5.0.0":
version: 5.1.0
resolution: "cosmiconfig-typescript-loader@npm:5.1.0"
@@ -1305,13 +1672,6 @@ __metadata:
languageName: node
linkType: hard
-"create-require@npm:^1.1.0":
- version: 1.1.1
- resolution: "create-require@npm:1.1.1"
- checksum: 10/a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff
- languageName: node
- linkType: hard
-
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
version: 7.0.6
resolution: "cross-spawn@npm:7.0.6"
@@ -1330,6 +1690,29 @@ __metadata:
languageName: node
linkType: hard
+"cssesc@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssesc@npm:3.0.0"
+ bin:
+ cssesc: bin/cssesc
+ checksum: 10/0e161912c1306861d8f46e1883be1cbc8b1b2879f0f509287c0db71796e4ddfb97ac96bdfca38f77f452e2c10554e1bb5678c99b07a5cf947a12778f73e47e12
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.0.2":
+ version: 3.1.3
+ resolution: "csstype@npm:3.1.3"
+ checksum: 10/f593cce41ff5ade23f44e77521e3a1bcc2c64107041e1bf6c3c32adc5187d0d60983292fda326154d20b01079e24931aa5b08e4467cc488b60bb1e7f6d478ade
+ languageName: node
+ linkType: hard
+
+"damerau-levenshtein@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "damerau-levenshtein@npm:1.0.8"
+ checksum: 10/f4eba1c90170f96be25d95fa3857141b5f81e254f7e4d530da929217b19990ea9a0390fc53d3c1cafac9152fda78e722ea4894f765cf6216be413b5af1fbf821
+ languageName: node
+ linkType: hard
+
"dargs@npm:^7.0.0":
version: 7.0.0
resolution: "dargs@npm:7.0.0"
@@ -1337,16 +1720,40 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:2.6.9":
- version: 2.6.9
- resolution: "debug@npm:2.6.9"
+"data-view-buffer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-buffer@npm:1.0.1"
dependencies:
- ms: "npm:2.0.0"
- checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10/5919a39a18ee919573336158fd162fdf8ada1bc23a139f28543fd45fac48e0ea4a3ad3bfde91de124d4106e65c4a7525f6a84c20ba0797ec890a77a96d13a82a
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:^4, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:~4.3.6":
+"data-view-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10/f33c65e58d8d0432ad79761f2e8a579818d724b5dc6dc4e700489b762d963ab30873c0f1c37d8f2ed12ef51c706d1195f64422856d25f067457aeec50cc40aac
+ languageName: node
+ linkType: hard
+
+"data-view-byte-offset@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "data-view-byte-offset@npm:1.0.0"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10/96f34f151bf02affb7b9f98762fb7aca1dd5f4553cb57b80bce750ca609c15d33ca659568ef1d422f7e35680736cbccb893a3d4b012760c758c1446bbdc4c6db
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.6":
version: 4.3.7
resolution: "debug@npm:4.3.7"
dependencies:
@@ -1358,6 +1765,15 @@ __metadata:
languageName: node
linkType: hard
+"debug@npm:^3.2.7":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: "npm:^2.1.1"
+ checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639
+ languageName: node
+ linkType: hard
+
"decamelize-keys@npm:^1.1.0":
version: 1.1.1
resolution: "decamelize-keys@npm:1.1.1"
@@ -1382,7 +1798,7 @@ __metadata:
languageName: node
linkType: hard
-"define-data-property@npm:^1.1.4":
+"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
version: 1.1.4
resolution: "define-data-property@npm:1.1.4"
dependencies:
@@ -1393,6 +1809,17 @@ __metadata:
languageName: node
linkType: hard
+"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "define-properties@npm:1.2.1"
+ dependencies:
+ define-data-property: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.0"
+ object-keys: "npm:^1.1.1"
+ checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12
+ languageName: node
+ linkType: hard
+
"delayed-stream@npm:~1.0.0":
version: 1.0.0
resolution: "delayed-stream@npm:1.0.0"
@@ -1400,24 +1827,10 @@ __metadata:
languageName: node
linkType: hard
-"depd@npm:2.0.0":
- version: 2.0.0
- resolution: "depd@npm:2.0.0"
- checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca
- languageName: node
- linkType: hard
-
-"destroy@npm:1.2.0":
- version: 1.2.0
- resolution: "destroy@npm:1.2.0"
- checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38
- languageName: node
- linkType: hard
-
-"diff@npm:^4.0.1":
- version: 4.0.2
- resolution: "diff@npm:4.0.2"
- checksum: 10/ec09ec2101934ca5966355a229d77afcad5911c92e2a77413efda5455636c4cf2ce84057e2d7715227a2eeeda04255b849bd3ae3a4dd22eb22e86e76456df069
+"didyoumean@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "didyoumean@npm:1.2.2"
+ checksum: 10/de7f11b6a0c8c61018629b7f405bb9746d6e994ce87c1a4b7655c3c718442dc69037a3d46d804950604fd9cbe85c074f7b224a119fc1bda851690a74540c6cf8
languageName: node
linkType: hard
@@ -1430,6 +1843,22 @@ __metadata:
languageName: node
linkType: hard
+"dlv@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "dlv@npm:1.1.3"
+ checksum: 10/836459ec6b50e43e9ed388a5fc28954be99e3481af3fa4b5d82a600762eb65ef8faacd454097ed7fc2f8a60aea2800d65a4cece5cd0d81ab82b2031f3f759e6e
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "doctrine@npm:2.1.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10/555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474
+ languageName: node
+ linkType: hard
+
"doctrine@npm:^3.0.0":
version: 3.0.0
resolution: "doctrine@npm:3.0.0"
@@ -1469,10 +1898,10 @@ __metadata:
languageName: node
linkType: hard
-"ee-first@npm:1.1.1":
- version: 1.1.1
- resolution: "ee-first@npm:1.1.1"
- checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f
+"electron-to-chromium@npm:^1.5.41":
+ version: 1.5.67
+ resolution: "electron-to-chromium@npm:1.5.67"
+ checksum: 10/02dc78eeaa5eb6630353e48a30f2f081e283a6e1ef9ba0d4a932ca289795fd98947b6fa85c9d74d8fb335b80ad8f65d893052b047a9ac78093e5b37501c3d34f
languageName: node
linkType: hard
@@ -1497,20 +1926,6 @@ __metadata:
languageName: node
linkType: hard
-"encodeurl@npm:~1.0.2":
- version: 1.0.2
- resolution: "encodeurl@npm:1.0.2"
- checksum: 10/e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c
- languageName: node
- linkType: hard
-
-"encodeurl@npm:~2.0.0":
- version: 2.0.0
- resolution: "encodeurl@npm:2.0.0"
- checksum: 10/abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe
- languageName: node
- linkType: hard
-
"encoding@npm:^0.1.13":
version: 0.1.13
resolution: "encoding@npm:0.1.13"
@@ -1520,6 +1935,16 @@ __metadata:
languageName: node
linkType: hard
+"enhanced-resolve@npm:^5.15.0":
+ version: 5.17.1
+ resolution: "enhanced-resolve@npm:5.17.1"
+ dependencies:
+ graceful-fs: "npm:^4.2.4"
+ tapable: "npm:^2.2.0"
+ checksum: 10/e8e03cb7a4bf3c0250a89afbd29e5ec20e90ba5fcd026066232a0754864d7d0a393fa6fc0e5379314a6529165a1834b36731147080714459d98924520410d8f5
+ languageName: node
+ linkType: hard
+
"env-paths@npm:^2.2.0":
version: 2.2.1
resolution: "env-paths@npm:2.2.1"
@@ -1550,6 +1975,60 @@ __metadata:
languageName: node
linkType: hard
+"es-abstract@npm:^1.17.5, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5":
+ version: 1.23.5
+ resolution: "es-abstract@npm:1.23.5"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ arraybuffer.prototype.slice: "npm:^1.0.3"
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ data-view-buffer: "npm:^1.0.1"
+ data-view-byte-length: "npm:^1.0.1"
+ data-view-byte-offset: "npm:^1.0.0"
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-set-tostringtag: "npm:^2.0.3"
+ es-to-primitive: "npm:^1.2.1"
+ function.prototype.name: "npm:^1.1.6"
+ get-intrinsic: "npm:^1.2.4"
+ get-symbol-description: "npm:^1.0.2"
+ globalthis: "npm:^1.0.4"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.0.3"
+ has-symbols: "npm:^1.0.3"
+ hasown: "npm:^2.0.2"
+ internal-slot: "npm:^1.0.7"
+ is-array-buffer: "npm:^3.0.4"
+ is-callable: "npm:^1.2.7"
+ is-data-view: "npm:^1.0.1"
+ is-negative-zero: "npm:^2.0.3"
+ is-regex: "npm:^1.1.4"
+ is-shared-array-buffer: "npm:^1.0.3"
+ is-string: "npm:^1.0.7"
+ is-typed-array: "npm:^1.1.13"
+ is-weakref: "npm:^1.0.2"
+ object-inspect: "npm:^1.13.3"
+ object-keys: "npm:^1.1.1"
+ object.assign: "npm:^4.1.5"
+ regexp.prototype.flags: "npm:^1.5.3"
+ safe-array-concat: "npm:^1.1.2"
+ safe-regex-test: "npm:^1.0.3"
+ string.prototype.trim: "npm:^1.2.9"
+ string.prototype.trimend: "npm:^1.0.8"
+ string.prototype.trimstart: "npm:^1.0.8"
+ typed-array-buffer: "npm:^1.0.2"
+ typed-array-byte-length: "npm:^1.0.1"
+ typed-array-byte-offset: "npm:^1.0.2"
+ typed-array-length: "npm:^1.0.6"
+ unbox-primitive: "npm:^1.0.2"
+ which-typed-array: "npm:^1.1.15"
+ checksum: 10/2170afde7e1d2497586ad74176c2e12196db947fb1b3287fc097781a871b75ebe3aef5247e951e3bb3972a830b8d0eaa82a509518836a6d9f9fb4934b9294467
+ languageName: node
+ linkType: hard
+
"es-define-property@npm:^1.0.0":
version: 1.0.0
resolution: "es-define-property@npm:1.0.0"
@@ -1559,24 +2038,80 @@ __metadata:
languageName: node
linkType: hard
-"es-errors@npm:^1.3.0":
+"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0":
version: 1.3.0
resolution: "es-errors@npm:1.3.0"
checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5
languageName: node
linkType: hard
-"escalade@npm:^3.1.1":
- version: 3.2.0
- resolution: "escalade@npm:3.2.0"
- checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6
+"es-iterator-helpers@npm:^1.1.0":
+ version: 1.2.0
+ resolution: "es-iterator-helpers@npm:1.2.0"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-set-tostringtag: "npm:^2.0.3"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ globalthis: "npm:^1.0.4"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.0.3"
+ has-symbols: "npm:^1.0.3"
+ internal-slot: "npm:^1.0.7"
+ iterator.prototype: "npm:^1.1.3"
+ safe-array-concat: "npm:^1.1.2"
+ checksum: 10/a4159e36c6bae03d4b636894fff2ff1acfcedc16c622939298b00adf4d2da6356ad92f682cc75c037a012a4b06adb903f67dfdfd05bac61847e9b763de2acbcb
languageName: node
linkType: hard
-"escape-html@npm:~1.0.3":
- version: 1.0.3
- resolution: "escape-html@npm:1.0.3"
- checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24
+"es-object-atoms@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-object-atoms@npm:1.0.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ checksum: 10/f8910cf477e53c0615f685c5c96210591841850871b81924fcf256bfbaa68c254457d994a4308c60d15b20805e7f61ce6abc669375e01a5349391a8c1767584f
+ languageName: node
+ linkType: hard
+
+"es-set-tostringtag@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "es-set-tostringtag@npm:2.0.3"
+ dependencies:
+ get-intrinsic: "npm:^1.2.4"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.1"
+ checksum: 10/7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "es-shim-unscopables@npm:1.0.2"
+ dependencies:
+ hasown: "npm:^2.0.0"
+ checksum: 10/6d3bf91f658a27cc7217cd32b407a0d714393a84d125ad576319b9e83a893bea165cf41270c29e9ceaa56d3cf41608945d7e2a2c31fd51c0009b0c31402b91c7
+ languageName: node
+ linkType: hard
+
+"es-to-primitive@npm:^1.2.1":
+ version: 1.3.0
+ resolution: "es-to-primitive@npm:1.3.0"
+ dependencies:
+ is-callable: "npm:^1.2.7"
+ is-date-object: "npm:^1.0.5"
+ is-symbol: "npm:^1.0.4"
+ checksum: 10/17faf35c221aad59a16286cbf58ef6f080bf3c485dff202c490d074d8e74da07884e29b852c245d894eac84f73c58330ec956dfd6d02c0b449d75eb1012a3f9b
+ languageName: node
+ linkType: hard
+
+"escalade@npm:^3.1.1, escalade@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "escalade@npm:3.2.0"
+ checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6
languageName: node
linkType: hard
@@ -1587,6 +2122,30 @@ __metadata:
languageName: node
linkType: hard
+"eslint-config-next@npm:^15.0.3":
+ version: 15.0.3
+ resolution: "eslint-config-next@npm:15.0.3"
+ dependencies:
+ "@next/eslint-plugin-next": "npm:15.0.3"
+ "@rushstack/eslint-patch": "npm:^1.10.3"
+ "@typescript-eslint/eslint-plugin": "npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@typescript-eslint/parser": "npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ eslint-import-resolver-node: "npm:^0.3.6"
+ eslint-import-resolver-typescript: "npm:^3.5.2"
+ eslint-plugin-import: "npm:^2.31.0"
+ eslint-plugin-jsx-a11y: "npm:^6.10.0"
+ eslint-plugin-react: "npm:^7.35.0"
+ eslint-plugin-react-hooks: "npm:^5.0.0"
+ peerDependencies:
+ eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
+ typescript: ">=3.3.1"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/5718afc3516ba162e2ff0d4d33df9c7957f3133c48c65ceef17e0a56b50403fa474635f4cdaff0b7c60423ce0884979be815fb45ee2d7246bd7af7fe39f1e915
+ languageName: node
+ linkType: hard
+
"eslint-config-prettier@npm:^9.0.0":
version: 9.1.0
resolution: "eslint-config-prettier@npm:9.1.0"
@@ -1598,6 +2157,145 @@ __metadata:
languageName: node
linkType: hard
+"eslint-import-resolver-node@npm:^0.3.6, eslint-import-resolver-node@npm:^0.3.9":
+ version: 0.3.9
+ resolution: "eslint-import-resolver-node@npm:0.3.9"
+ dependencies:
+ debug: "npm:^3.2.7"
+ is-core-module: "npm:^2.13.0"
+ resolve: "npm:^1.22.4"
+ checksum: 10/d52e08e1d96cf630957272e4f2644dcfb531e49dcfd1edd2e07e43369eb2ec7a7d4423d417beee613201206ff2efa4eb9a582b5825ee28802fc7c71fcd53ca83
+ languageName: node
+ linkType: hard
+
+"eslint-import-resolver-typescript@npm:^3.5.2":
+ version: 3.6.3
+ resolution: "eslint-import-resolver-typescript@npm:3.6.3"
+ dependencies:
+ "@nolyfill/is-core-module": "npm:1.0.39"
+ debug: "npm:^4.3.5"
+ enhanced-resolve: "npm:^5.15.0"
+ eslint-module-utils: "npm:^2.8.1"
+ fast-glob: "npm:^3.3.2"
+ get-tsconfig: "npm:^4.7.5"
+ is-bun-module: "npm:^1.0.2"
+ is-glob: "npm:^4.0.3"
+ peerDependencies:
+ eslint: "*"
+ eslint-plugin-import: "*"
+ eslint-plugin-import-x: "*"
+ peerDependenciesMeta:
+ eslint-plugin-import:
+ optional: true
+ eslint-plugin-import-x:
+ optional: true
+ checksum: 10/5f9956dbbd0becc3d6c6cb945dad0e5e6f529cfd0f488d5688f3c59840cd7f4a44ab6aee0f54b5c4188134dab9a01cb63c1201767bde7fc330b7c1a14747f8ac
+ languageName: node
+ linkType: hard
+
+"eslint-module-utils@npm:^2.12.0, eslint-module-utils@npm:^2.8.1":
+ version: 2.12.0
+ resolution: "eslint-module-utils@npm:2.12.0"
+ dependencies:
+ debug: "npm:^3.2.7"
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ checksum: 10/dd27791147eca17366afcb83f47d6825b6ce164abb256681e5de4ec1d7e87d8605641eb869298a0dbc70665e2446dbcc2f40d3e1631a9475dd64dd23d4ca5dee
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-import@npm:^2.31.0":
+ version: 2.31.0
+ resolution: "eslint-plugin-import@npm:2.31.0"
+ dependencies:
+ "@rtsao/scc": "npm:^1.1.0"
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlastindex: "npm:^1.2.5"
+ array.prototype.flat: "npm:^1.3.2"
+ array.prototype.flatmap: "npm:^1.3.2"
+ debug: "npm:^3.2.7"
+ doctrine: "npm:^2.1.0"
+ eslint-import-resolver-node: "npm:^0.3.9"
+ eslint-module-utils: "npm:^2.12.0"
+ hasown: "npm:^2.0.2"
+ is-core-module: "npm:^2.15.1"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^3.1.2"
+ object.fromentries: "npm:^2.0.8"
+ object.groupby: "npm:^1.0.3"
+ object.values: "npm:^1.2.0"
+ semver: "npm:^6.3.1"
+ string.prototype.trimend: "npm:^1.0.8"
+ tsconfig-paths: "npm:^3.15.0"
+ peerDependencies:
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
+ checksum: 10/6b76bd009ac2db0615d9019699d18e2a51a86cb8c1d0855a35fb1b418be23b40239e6debdc6e8c92c59f1468ed0ea8d7b85c817117a113d5cc225be8a02ad31c
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-jsx-a11y@npm:^6.10.0":
+ version: 6.10.2
+ resolution: "eslint-plugin-jsx-a11y@npm:6.10.2"
+ dependencies:
+ aria-query: "npm:^5.3.2"
+ array-includes: "npm:^3.1.8"
+ array.prototype.flatmap: "npm:^1.3.2"
+ ast-types-flow: "npm:^0.0.8"
+ axe-core: "npm:^4.10.0"
+ axobject-query: "npm:^4.1.0"
+ damerau-levenshtein: "npm:^1.0.8"
+ emoji-regex: "npm:^9.2.2"
+ hasown: "npm:^2.0.2"
+ jsx-ast-utils: "npm:^3.3.5"
+ language-tags: "npm:^1.0.9"
+ minimatch: "npm:^3.1.2"
+ object.fromentries: "npm:^2.0.8"
+ safe-regex-test: "npm:^1.0.3"
+ string.prototype.includes: "npm:^2.0.1"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
+ checksum: 10/388550798548d911e2286d530a29153ca00434a06fcfc0e31e0dda46a5e7960005e532fb29ce1ccbf1e394a3af3e5cf70c47ca43778861eacc5e3ed799adb79c
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-hooks@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "eslint-plugin-react-hooks@npm:5.0.0"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+ checksum: 10/b762789832806b6981e2d910994e72aa7a85136fe0880572334b26cf1274ba37bd3b1365e77d2c2f92465337c4a65c84ef647bc499d33b86fc1110f2df7ef1bb
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react@npm:^7.35.0":
+ version: 7.37.2
+ resolution: "eslint-plugin-react@npm:7.37.2"
+ dependencies:
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlast: "npm:^1.2.5"
+ array.prototype.flatmap: "npm:^1.3.2"
+ array.prototype.tosorted: "npm:^1.1.4"
+ doctrine: "npm:^2.1.0"
+ es-iterator-helpers: "npm:^1.1.0"
+ estraverse: "npm:^5.3.0"
+ hasown: "npm:^2.0.2"
+ jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
+ minimatch: "npm:^3.1.2"
+ object.entries: "npm:^1.1.8"
+ object.fromentries: "npm:^2.0.8"
+ object.values: "npm:^1.2.0"
+ prop-types: "npm:^15.8.1"
+ resolve: "npm:^2.0.0-next.5"
+ semver: "npm:^6.3.1"
+ string.prototype.matchall: "npm:^4.0.11"
+ string.prototype.repeat: "npm:^1.0.0"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
+ checksum: 10/df2f7ab198018d3378f305a8a5ceceebc9bd31f019fc7567a2ef9c77789dc8a6a2c3c3957f8b0805f26c11c02f9f86c972e02cd0eda12f4d0370526c11f8a9a3
+ languageName: node
+ linkType: hard
+
"eslint-scope@npm:^7.2.2":
version: 7.2.2
resolution: "eslint-scope@npm:7.2.2"
@@ -1615,6 +2313,13 @@ __metadata:
languageName: node
linkType: hard
+"eslint-visitor-keys@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "eslint-visitor-keys@npm:4.2.0"
+ checksum: 10/9651b3356b01760e586b4c631c5268c0e1a85236e3292bf754f0472f465bf9a856c0ddc261fceace155334118c0151778effafbab981413dbf9288349343fa25
+ languageName: node
+ linkType: hard
+
"eslint@npm:^8":
version: 8.57.1
resolution: "eslint@npm:8.57.1"
@@ -1692,7 +2397,7 @@ __metadata:
languageName: node
linkType: hard
-"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0":
+"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
version: 5.3.0
resolution: "estraverse@npm:5.3.0"
checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e
@@ -1706,13 +2411,6 @@ __metadata:
languageName: node
linkType: hard
-"etag@npm:~1.8.1":
- version: 1.8.1
- resolution: "etag@npm:1.8.1"
- checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff
- languageName: node
- linkType: hard
-
"event-stream@npm:4.0.1":
version: 4.0.1
resolution: "event-stream@npm:4.0.1"
@@ -1783,45 +2481,6 @@ __metadata:
languageName: node
linkType: hard
-"express@npm:^4.21.1":
- version: 4.21.1
- resolution: "express@npm:4.21.1"
- dependencies:
- accepts: "npm:~1.3.8"
- array-flatten: "npm:1.1.1"
- body-parser: "npm:1.20.3"
- content-disposition: "npm:0.5.4"
- content-type: "npm:~1.0.4"
- cookie: "npm:0.7.1"
- cookie-signature: "npm:1.0.6"
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- encodeurl: "npm:~2.0.0"
- escape-html: "npm:~1.0.3"
- etag: "npm:~1.8.1"
- finalhandler: "npm:1.3.1"
- fresh: "npm:0.5.2"
- http-errors: "npm:2.0.0"
- merge-descriptors: "npm:1.0.3"
- methods: "npm:~1.1.2"
- on-finished: "npm:2.4.1"
- parseurl: "npm:~1.3.3"
- path-to-regexp: "npm:0.1.10"
- proxy-addr: "npm:~2.0.7"
- qs: "npm:6.13.0"
- range-parser: "npm:~1.2.1"
- safe-buffer: "npm:5.2.1"
- send: "npm:0.19.0"
- serve-static: "npm:1.16.2"
- setprototypeof: "npm:1.2.0"
- statuses: "npm:2.0.1"
- type-is: "npm:~1.6.18"
- utils-merge: "npm:1.0.1"
- vary: "npm:~1.1.2"
- checksum: 10/5d4a36dd03c1d1cce93172e9b185b5cd13a978d29ee03adc51cd278be7b4a514ae2b63e2fdaec0c00fdc95c6cfb396d9dd1da147917ffd337d6cd0778e08c9bc
- languageName: node
- linkType: hard
-
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
version: 3.1.3
resolution: "fast-deep-equal@npm:3.1.3"
@@ -1829,7 +2488,20 @@ __metadata:
languageName: node
linkType: hard
-"fast-glob@npm:^3.2.9":
+"fast-glob@npm:3.3.1":
+ version: 3.3.1
+ resolution: "fast-glob@npm:3.3.1"
+ dependencies:
+ "@nodelib/fs.stat": "npm:^2.0.2"
+ "@nodelib/fs.walk": "npm:^1.2.3"
+ glob-parent: "npm:^5.1.2"
+ merge2: "npm:^1.3.0"
+ micromatch: "npm:^4.0.4"
+ checksum: 10/51bcd15472879dfe51d4b01c5b70bbc7652724d39cdd082ba11276dbd7d84db0f6b33757e1938af8b2768a4bf485d9be0c89153beae24ee8331d6dcc7550379f
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2":
version: 3.3.2
resolution: "fast-glob@npm:3.3.2"
dependencies:
@@ -1890,21 +2562,6 @@ __metadata:
languageName: node
linkType: hard
-"finalhandler@npm:1.3.1":
- version: 1.3.1
- resolution: "finalhandler@npm:1.3.1"
- dependencies:
- debug: "npm:2.6.9"
- encodeurl: "npm:~2.0.0"
- escape-html: "npm:~1.0.3"
- on-finished: "npm:2.4.1"
- parseurl: "npm:~1.3.3"
- statuses: "npm:2.0.1"
- unpipe: "npm:~1.0.0"
- checksum: 10/4babe72969b7373b5842bc9f75c3a641a4d0f8eb53af6b89fa714d4460ce03fb92b28de751d12ba415e96e7e02870c436d67412120555e2b382640535697305b
- languageName: node
- linkType: hard
-
"find-up@npm:^4.1.0":
version: 4.1.0
resolution: "find-up@npm:4.1.0"
@@ -1943,6 +2600,15 @@ __metadata:
languageName: node
linkType: hard
+"for-each@npm:^0.3.3":
+ version: 0.3.3
+ resolution: "for-each@npm:0.3.3"
+ dependencies:
+ is-callable: "npm:^1.1.3"
+ checksum: 10/fdac0cde1be35610bd635ae958422e8ce0cc1313e8d32ea6d34cfda7b60850940c1fd07c36456ad76bd9c24aef6ff5e03b02beb58c83af5ef6c968a64eada676
+ languageName: node
+ linkType: hard
+
"foreground-child@npm:^3.1.0":
version: 3.3.0
resolution: "foreground-child@npm:3.3.0"
@@ -1981,17 +2647,10 @@ __metadata:
languageName: node
linkType: hard
-"forwarded@npm:0.2.0":
- version: 0.2.0
- resolution: "forwarded@npm:0.2.0"
- checksum: 10/29ba9fd347117144e97cbb8852baae5e8b2acb7d1b591ef85695ed96f5b933b1804a7fac4a15dd09ca7ac7d0cdc104410e8102aae2dd3faa570a797ba07adb81
- languageName: node
- linkType: hard
-
-"fresh@npm:0.5.2":
- version: 0.5.2
- resolution: "fresh@npm:0.5.2"
- checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1
+"fraction.js@npm:^4.3.7":
+ version: 4.3.7
+ resolution: "fraction.js@npm:4.3.7"
+ checksum: 10/bb5ebcdeeffcdc37b68ead3bdfc244e68de188e0c64e9702197333c72963b95cc798883ad16adc21588088b942bca5b6a6ff4aeb1362d19f6f3b629035dc15f5
languageName: node
linkType: hard
@@ -2027,7 +2686,7 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@npm:~2.3.2":
+"fsevents@npm:2.3.3, fsevents@npm:~2.3.2":
version: 2.3.3
resolution: "fsevents@npm:2.3.3"
dependencies:
@@ -2037,7 +2696,7 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
+"fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
version: 2.3.3
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
dependencies:
@@ -2053,6 +2712,25 @@ __metadata:
languageName: node
linkType: hard
+"function.prototype.name@npm:^1.1.6":
+ version: 1.1.6
+ resolution: "function.prototype.name@npm:1.1.6"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ functions-have-names: "npm:^1.2.3"
+ checksum: 10/4d40be44d4609942e4e90c4fff77a811fa936f4985d92d2abfcf44f673ba344e2962bf223a33101f79c1a056465f36f09b072b9c289d7660ca554a12491cd5a2
+ languageName: node
+ linkType: hard
+
+"functions-have-names@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "functions-have-names@npm:1.2.3"
+ checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05
+ languageName: node
+ linkType: hard
+
"get-caller-file@npm:^2.0.5":
version: 2.0.5
resolution: "get-caller-file@npm:2.0.5"
@@ -2067,7 +2745,7 @@ __metadata:
languageName: node
linkType: hard
-"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4":
+"get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4":
version: 1.2.4
resolution: "get-intrinsic@npm:1.2.4"
dependencies:
@@ -2094,6 +2772,26 @@ __metadata:
languageName: node
linkType: hard
+"get-symbol-description@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "get-symbol-description@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10/e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973
+ languageName: node
+ linkType: hard
+
+"get-tsconfig@npm:^4.7.5":
+ version: 4.8.1
+ resolution: "get-tsconfig@npm:4.8.1"
+ dependencies:
+ resolve-pkg-maps: "npm:^1.0.0"
+ checksum: 10/3fb5a8ad57b9633eaea085d81661e9e5c9f78b35d8f8689eaf8b8b45a2a3ebf3b3422266d4d7df765e308cc1e6231648d114803ab3d018332e29916f2c1de036
+ languageName: node
+ linkType: hard
+
"git-raw-commits@npm:^2.0.11":
version: 2.0.11
resolution: "git-raw-commits@npm:2.0.11"
@@ -2175,6 +2873,16 @@ __metadata:
languageName: node
linkType: hard
+"globalthis@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "globalthis@npm:1.0.4"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ gopd: "npm:^1.0.1"
+ checksum: 10/1f1fd078fb2f7296306ef9dd51019491044ccf17a59ed49d375b576ca108ff37e47f3d29aead7add40763574a992f16a5367dd1e2173b8634ef18556ab719ac4
+ languageName: node
+ linkType: hard
+
"globby@npm:^11.1.0":
version: 11.1.0
resolution: "globby@npm:11.1.0"
@@ -2189,16 +2897,16 @@ __metadata:
languageName: node
linkType: hard
-"gopd@npm:^1.0.1":
- version: 1.0.1
- resolution: "gopd@npm:1.0.1"
+"gopd@npm:^1.0.1, gopd@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "gopd@npm:1.1.0"
dependencies:
- get-intrinsic: "npm:^1.1.3"
- checksum: 10/5fbc7ad57b368ae4cd2f41214bd947b045c1a4be2f194a7be1778d71f8af9dbf4004221f3b6f23e30820eb0d052b4f819fe6ebe8221e2a3c6f0ee4ef173421ca
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10/4e633d3425483d8639daf85ea5dc50f8cdfb497bcf5ac814a3d66595b2b39a008e5491ee59118e281d486e5e53487bc9a95f9477d022e99a0c2d956f8b91f9e9
languageName: node
linkType: hard
-"graceful-fs@npm:^4.2.6":
+"graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
@@ -2219,10 +2927,10 @@ __metadata:
languageName: node
linkType: hard
-"has-flag@npm:^3.0.0":
- version: 3.0.0
- resolution: "has-flag@npm:3.0.0"
- checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b
+"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-bigints@npm:1.0.2"
+ checksum: 10/4e0426c900af034d12db14abfece02ce7dbf53f2022d28af1a97913ff4c07adb8799476d57dc44fbca0e07d1dbda2a042c2928b1f33d3f09c15de0640a7fb81b
languageName: node
linkType: hard
@@ -2233,7 +2941,7 @@ __metadata:
languageName: node
linkType: hard
-"has-property-descriptors@npm:^1.0.2":
+"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2":
version: 1.0.2
resolution: "has-property-descriptors@npm:1.0.2"
dependencies:
@@ -2242,21 +2950,30 @@ __metadata:
languageName: node
linkType: hard
-"has-proto@npm:^1.0.1":
+"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3":
version: 1.0.3
resolution: "has-proto@npm:1.0.3"
checksum: 10/0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a
languageName: node
linkType: hard
-"has-symbols@npm:^1.0.3":
+"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3":
version: 1.0.3
resolution: "has-symbols@npm:1.0.3"
checksum: 10/464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b
languageName: node
linkType: hard
-"hasown@npm:^2.0.0, hasown@npm:^2.0.2":
+"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-tostringtag@npm:1.0.2"
+ dependencies:
+ has-symbols: "npm:^1.0.3"
+ checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2":
version: 2.0.2
resolution: "hasown@npm:2.0.2"
dependencies:
@@ -2288,19 +3005,6 @@ __metadata:
languageName: node
linkType: hard
-"http-errors@npm:2.0.0":
- version: 2.0.0
- resolution: "http-errors@npm:2.0.0"
- dependencies:
- depd: "npm:2.0.0"
- inherits: "npm:2.0.4"
- setprototypeof: "npm:1.2.0"
- statuses: "npm:2.0.1"
- toidentifier: "npm:1.0.1"
- checksum: 10/0e7f76ee8ff8a33e58a3281a469815b893c41357378f408be8f6d4aa7d1efafb0da064625518e7078381b6a92325949b119dc38fcb30bdbc4e3a35f78c44c439
- languageName: node
- linkType: hard
-
"http-proxy-agent@npm:^7.0.0":
version: 7.0.2
resolution: "http-proxy-agent@npm:7.0.2"
@@ -2353,15 +3057,6 @@ __metadata:
languageName: node
linkType: hard
-"iconv-lite@npm:0.4.24":
- version: 0.4.24
- resolution: "iconv-lite@npm:0.4.24"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3"
- checksum: 10/6d3a2dac6e5d1fb126d25645c25c3a1209f70cceecc68b8ef51ae0da3cdc078c151fade7524a30b12a3094926336831fca09c666ef55b37e2c69638b5d6bd2e3
- languageName: node
- linkType: hard
-
"iconv-lite@npm:^0.6.2":
version: 0.6.3
resolution: "iconv-lite@npm:0.6.3"
@@ -2371,14 +3066,7 @@ __metadata:
languageName: node
linkType: hard
-"ignore-by-default@npm:^1.0.1":
- version: 1.0.1
- resolution: "ignore-by-default@npm:1.0.1"
- checksum: 10/441509147b3615e0365e407a3c18e189f78c07af08564176c680be1fabc94b6c789cad1342ad887175d4ecd5225de86f73d376cec8e06b42fd9b429505ffcf8a
- languageName: node
- linkType: hard
-
-"ignore@npm:^5.2.0, ignore@npm:^5.2.4":
+"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1":
version: 5.3.2
resolution: "ignore@npm:5.3.2"
checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98
@@ -2419,7 +3107,7 @@ __metadata:
languageName: node
linkType: hard
-"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3":
+"inherits@npm:2, inherits@npm:^2.0.3":
version: 2.0.4
resolution: "inherits@npm:2.0.4"
checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521
@@ -2433,6 +3121,17 @@ __metadata:
languageName: node
linkType: hard
+"internal-slot@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "internal-slot@npm:1.0.7"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ hasown: "npm:^2.0.0"
+ side-channel: "npm:^1.0.4"
+ checksum: 10/3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053
+ languageName: node
+ linkType: hard
+
"ip-address@npm:^9.0.5":
version: 9.0.5
resolution: "ip-address@npm:9.0.5"
@@ -2443,10 +3142,13 @@ __metadata:
languageName: node
linkType: hard
-"ipaddr.js@npm:1.9.1":
- version: 1.9.1
- resolution: "ipaddr.js@npm:1.9.1"
- checksum: 10/864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca
+"is-array-buffer@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "is-array-buffer@npm:3.0.4"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ get-intrinsic: "npm:^1.2.1"
+ checksum: 10/34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b
languageName: node
linkType: hard
@@ -2457,6 +3159,24 @@ __metadata:
languageName: node
linkType: hard
+"is-async-function@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-async-function@npm:2.0.0"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10/2cf336fbf8cba3badcf526aa3d10384c30bab32615ac4831b74492eb4e843ccb7d8439a119c27f84bcf217d72024e611b1373f870f433b48f3fa57d3d1b863f1
+ languageName: node
+ linkType: hard
+
+"is-bigint@npm:^1.0.1":
+ version: 1.0.4
+ resolution: "is-bigint@npm:1.0.4"
+ dependencies:
+ has-bigints: "npm:^1.0.1"
+ checksum: 10/cc981cf0564c503aaccc1e5f39e994ae16ae2d1a8fcd14721f14ad431809071f39ec568cfceef901cff408045f1a6d6bac90d1b43eeb0b8e3bc34c8eb1bdb4c4
+ languageName: node
+ linkType: hard
+
"is-binary-path@npm:~2.1.0":
version: 2.1.0
resolution: "is-binary-path@npm:2.1.0"
@@ -2466,7 +3186,33 @@ __metadata:
languageName: node
linkType: hard
-"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0":
+"is-boolean-object@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "is-boolean-object@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10/ba794223b56a49a9f185e945eeeb6b7833b8ea52a335cec087d08196cf27b538940001615d3bb976511287cefe94e5907d55f00bb49580533f9ca9b4515fcc2e
+ languageName: node
+ linkType: hard
+
+"is-bun-module@npm:^1.0.2":
+ version: 1.3.0
+ resolution: "is-bun-module@npm:1.3.0"
+ dependencies:
+ semver: "npm:^7.6.3"
+ checksum: 10/b23d9ec7b4d4bfd89e4e72b5cd52e1bc153facad59fdd7394c656f8859a78740ef35996a2066240a32f39cc9a9da4b4eb69e68df3c71755a61ebbaf56d3daef0
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "is-callable@npm:1.2.7"
+ checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.5.0":
version: 2.15.1
resolution: "is-core-module@npm:2.15.1"
dependencies:
@@ -2475,6 +3221,24 @@ __metadata:
languageName: node
linkType: hard
+"is-data-view@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-data-view@npm:1.0.1"
+ dependencies:
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10/4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5
+ languageName: node
+ linkType: hard
+
+"is-date-object@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "is-date-object@npm:1.0.5"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10/cc80b3a4b42238fa0d358b9a6230dae40548b349e64a477cb7c5eff9b176ba194c11f8321daaf6dd157e44073e9b7fd01f87db1f14952a88d5657acdcd3a56e2
+ languageName: node
+ linkType: hard
+
"is-extglob@npm:^2.1.1":
version: 2.1.1
resolution: "is-extglob@npm:2.1.1"
@@ -2482,6 +3246,15 @@ __metadata:
languageName: node
linkType: hard
+"is-finalizationregistry@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-finalizationregistry@npm:1.1.0"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ checksum: 10/0a812f3ef86fa3e3caf6bb8c6d61b7fc65df88f9751f73617331a5a7e35bb0a192d0c320dbf2f8b97a6819491e52126615313ba9900529697f226235627c58b5
+ languageName: node
+ linkType: hard
+
"is-fullwidth-code-point@npm:^3.0.0":
version: 3.0.0
resolution: "is-fullwidth-code-point@npm:3.0.0"
@@ -2505,6 +3278,15 @@ __metadata:
languageName: node
linkType: hard
+"is-generator-function@npm:^1.0.10":
+ version: 1.0.10
+ resolution: "is-generator-function@npm:1.0.10"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10/499a3ce6361064c3bd27fbff5c8000212d48506ebe1977842bbd7b3e708832d0deb1f4cc69186ece3640770e8c4f1287b24d99588a0b8058b2dbdd344bc1f47f
+ languageName: node
+ linkType: hard
+
"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
version: 4.0.3
resolution: "is-glob@npm:4.0.3"
@@ -2521,6 +3303,29 @@ __metadata:
languageName: node
linkType: hard
+"is-map@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-map@npm:2.0.3"
+ checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb
+ languageName: node
+ linkType: hard
+
+"is-negative-zero@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-negative-zero@npm:2.0.3"
+ checksum: 10/8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5
+ languageName: node
+ linkType: hard
+
+"is-number-object@npm:^1.0.4":
+ version: 1.0.7
+ resolution: "is-number-object@npm:1.0.7"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10/8700dcf7f602e0a9625830541345b8615d04953655acbf5c6d379c58eb1af1465e71227e95d501343346e1d49b6f2d53cbc166b1fc686a7ec19151272df582f9
+ languageName: node
+ linkType: hard
+
"is-number@npm:^7.0.0":
version: 7.0.0
resolution: "is-number@npm:7.0.0"
@@ -2549,6 +3354,34 @@ __metadata:
languageName: node
linkType: hard
+"is-regex@npm:^1.1.4":
+ version: 1.2.0
+ resolution: "is-regex@npm:1.2.0"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ gopd: "npm:^1.1.0"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.2"
+ checksum: 10/68df70b5696f865f495551d506c0514e3a221db887d5375c6fb4412389a8ceaf4071e557126fead1bcee21ab38be4548f04e7f6510d793b5150df1e8e2556191
+ languageName: node
+ linkType: hard
+
+"is-set@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-set@npm:2.0.3"
+ checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669
+ languageName: node
+ linkType: hard
+
+"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "is-shared-array-buffer@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ checksum: 10/bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe
+ languageName: node
+ linkType: hard
+
"is-stream@npm:^2.0.0":
version: 2.0.1
resolution: "is-stream@npm:2.0.1"
@@ -2563,6 +3396,24 @@ __metadata:
languageName: node
linkType: hard
+"is-string@npm:^1.0.5, is-string@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "is-string@npm:1.0.7"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10/2bc292fe927493fb6dfc3338c099c3efdc41f635727c6ebccf704aeb2a27bca7acb9ce6fd34d103db78692b10b22111a8891de26e12bfa1c5e11e263c99d1fef
+ languageName: node
+ linkType: hard
+
+"is-symbol@npm:^1.0.3, is-symbol@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "is-symbol@npm:1.0.4"
+ dependencies:
+ has-symbols: "npm:^1.0.2"
+ checksum: 10/a47dd899a84322528b71318a89db25c7ecdec73197182dad291df15ffea501e17e3c92c8de0bfb50e63402747399981a687b31c519971b1fa1a27413612be929
+ languageName: node
+ linkType: hard
+
"is-text-path@npm:^2.0.0":
version: 2.0.0
resolution: "is-text-path@npm:2.0.0"
@@ -2572,6 +3423,48 @@ __metadata:
languageName: node
linkType: hard
+"is-typed-array@npm:^1.1.13":
+ version: 1.1.13
+ resolution: "is-typed-array@npm:1.1.13"
+ dependencies:
+ which-typed-array: "npm:^1.1.14"
+ checksum: 10/f850ba08286358b9a11aee6d93d371a45e3c59b5953549ee1c1a9a55ba5c1dd1bd9952488ae194ad8f32a9cf5e79c8fa5f0cc4d78c00720aa0bbcf238b38062d
+ languageName: node
+ linkType: hard
+
+"is-weakmap@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-weakmap@npm:2.0.2"
+ checksum: 10/a7b7e23206c542dcf2fa0abc483142731788771527e90e7e24f658c0833a0d91948a4f7b30d78f7a65255a48512e41a0288b778ba7fc396137515c12e201fd11
+ languageName: node
+ linkType: hard
+
+"is-weakref@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-weakref@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ checksum: 10/0023fd0e4bdf9c338438ffbe1eed7ebbbff7e7e18fb7cdc227caaf9d4bd024a2dcdf6a8c9f40c92192022eac8391243bb9e66cccebecbf6fe1d8a366108f8513
+ languageName: node
+ linkType: hard
+
+"is-weakset@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-weakset@npm:2.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10/40159582ff1b44fc40085f631baf19f56479b05af2faede65b4e6a0b6acab745c13fd070e35b475aafd8a1ee50879ba5a3f1265125b46bebdb446b6be1f62165
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "isarray@npm:2.0.5"
+ checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414
+ languageName: node
+ linkType: hard
+
"isexe@npm:^2.0.0":
version: 2.0.0
resolution: "isexe@npm:2.0.0"
@@ -2586,6 +3479,19 @@ __metadata:
languageName: node
linkType: hard
+"iterator.prototype@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "iterator.prototype@npm:1.1.3"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ get-intrinsic: "npm:^1.2.1"
+ has-symbols: "npm:^1.0.3"
+ reflect.getprototypeof: "npm:^1.0.4"
+ set-function-name: "npm:^2.0.1"
+ checksum: 10/1a2a508d3baac121b76c834404ff552d1bb96a173b1d74ff947b2c5763840c0b1e5be01be7e2183a19b08e99e38729812668ff1f23b35f6655a366017bc32519
+ languageName: node
+ linkType: hard
+
"jackspeak@npm:^3.1.2":
version: 3.4.3
resolution: "jackspeak@npm:3.4.3"
@@ -2615,7 +3521,7 @@ __metadata:
languageName: node
linkType: hard
-"js-tokens@npm:^4.0.0":
+"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
version: 4.0.0
resolution: "js-tokens@npm:4.0.0"
checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2
@@ -2675,6 +3581,17 @@ __metadata:
languageName: node
linkType: hard
+"json5@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "json5@npm:1.0.2"
+ dependencies:
+ minimist: "npm:^1.2.0"
+ bin:
+ json5: lib/cli.js
+ checksum: 10/a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6
+ languageName: node
+ linkType: hard
+
"jsonparse@npm:^1.2.0":
version: 1.3.1
resolution: "jsonparse@npm:1.3.1"
@@ -2682,6 +3599,18 @@ __metadata:
languageName: node
linkType: hard
+"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5":
+ version: 3.3.5
+ resolution: "jsx-ast-utils@npm:3.3.5"
+ dependencies:
+ array-includes: "npm:^3.1.6"
+ array.prototype.flat: "npm:^1.3.1"
+ object.assign: "npm:^4.1.4"
+ object.values: "npm:^1.1.6"
+ checksum: 10/b61d44613687dfe4cc8ad4b4fbf3711bf26c60b8d5ed1f494d723e0808415c59b24a7c0ed8ab10736a40ff84eef38cbbfb68b395e05d31117b44ffc59d31edfc
+ languageName: node
+ linkType: hard
+
"keyv@npm:^4.5.3":
version: 4.5.4
resolution: "keyv@npm:4.5.4"
@@ -2698,6 +3627,22 @@ __metadata:
languageName: node
linkType: hard
+"language-subtag-registry@npm:^0.3.20":
+ version: 0.3.23
+ resolution: "language-subtag-registry@npm:0.3.23"
+ checksum: 10/fe13ed74ab9f862db8e5747b98cc9aa08d52a19f85b5cdb4975cd364c8539bd2da3380e4560d2dbbd728ec33dff8a4b4421fcb2e5b1b1bdaa21d16f91a54d0d4
+ languageName: node
+ linkType: hard
+
+"language-tags@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "language-tags@npm:1.0.9"
+ dependencies:
+ language-subtag-registry: "npm:^0.3.20"
+ checksum: 10/d3a7c14b694e67f519153d6df6cb200681648d38d623c3bfa9d6a66a5ec5493628acb88e9df5aceef3cf1902ab263a205e7d59ee4cf1d6bb67e707b83538bd6d
+ languageName: node
+ linkType: hard
+
"levn@npm:^0.4.1":
version: 0.4.1
resolution: "levn@npm:0.4.1"
@@ -2708,7 +3653,14 @@ __metadata:
languageName: node
linkType: hard
-"lilconfig@npm:~3.1.2":
+"lilconfig@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "lilconfig@npm:2.1.0"
+ checksum: 10/b1314a2e55319013d5e7d7d08be39015829d2764a1eaee130129545d40388499d81b1c31b0f9b3417d4db12775a88008b72ec33dd06e0184cf7503b32ca7cc0b
+ languageName: node
+ linkType: hard
+
+"lilconfig@npm:^3.0.0, lilconfig@npm:~3.1.2":
version: 3.1.2
resolution: "lilconfig@npm:3.1.2"
checksum: 10/8058403850cfad76d6041b23db23f730e52b6c17a8c28d87b90766639ca0ee40c748a3e85c2d7bd133d572efabff166c4b015e5d25e01fd666cb4b13cfada7f0
@@ -2864,6 +3816,17 @@ __metadata:
languageName: node
linkType: hard
+"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4
+ languageName: node
+ linkType: hard
+
"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
version: 10.4.3
resolution: "lru-cache@npm:10.4.3"
@@ -2880,10 +3843,12 @@ __metadata:
languageName: node
linkType: hard
-"make-error@npm:^1.1.1":
- version: 1.3.6
- resolution: "make-error@npm:1.3.6"
- checksum: 10/b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402
+"lucide-react@npm:^0.462.0":
+ version: 0.462.0
+ resolution: "lucide-react@npm:0.462.0"
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc
+ checksum: 10/a9f4d1eae10d6bcd02de6e81f9aba4286fe734c0fe383437e1e6964a2cd8efaabacc38197b7f39eaf4e44cc71103533158b1a7ae06bdcc40506f090380e8b872
languageName: node
linkType: hard
@@ -2928,13 +3893,6 @@ __metadata:
languageName: node
linkType: hard
-"media-typer@npm:0.3.0":
- version: 0.3.0
- resolution: "media-typer@npm:0.3.0"
- checksum: 10/38e0984db39139604756903a01397e29e17dcb04207bb3e081412ce725ab17338ecc47220c1b186b6bbe79a658aad1b0d41142884f5a481f36290cdefbe6aa46
- languageName: node
- linkType: hard
-
"meow@npm:^12.0.1":
version: 12.1.1
resolution: "meow@npm:12.1.1"
@@ -2961,13 +3919,6 @@ __metadata:
languageName: node
linkType: hard
-"merge-descriptors@npm:1.0.3":
- version: 1.0.3
- resolution: "merge-descriptors@npm:1.0.3"
- checksum: 10/52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1
- languageName: node
- linkType: hard
-
"merge-stream@npm:^2.0.0":
version: 2.0.0
resolution: "merge-stream@npm:2.0.0"
@@ -2982,14 +3933,7 @@ __metadata:
languageName: node
linkType: hard
-"methods@npm:~1.1.2":
- version: 1.1.2
- resolution: "methods@npm:1.1.2"
- checksum: 10/a385dd974faa34b5dd021b2bbf78c722881bf6f003bfe6d391d7da3ea1ed625d1ff10ddd13c57531f628b3e785be38d3eed10ad03cebd90b76932413df9a1820
- languageName: node
- linkType: hard
-
-"micromatch@npm:^4.0.4, micromatch@npm:~4.0.8":
+"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8, micromatch@npm:~4.0.8":
version: 4.0.8
resolution: "micromatch@npm:4.0.8"
dependencies:
@@ -3006,7 +3950,7 @@ __metadata:
languageName: node
linkType: hard
-"mime-types@npm:^2.1.12, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
+"mime-types@npm:^2.1.12":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
@@ -3015,15 +3959,6 @@ __metadata:
languageName: node
linkType: hard
-"mime@npm:1.6.0":
- version: 1.6.0
- resolution: "mime@npm:1.6.0"
- bin:
- mime: cli.js
- checksum: 10/b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170
- languageName: node
- linkType: hard
-
"mimic-fn@npm:^2.1.0":
version: 2.1.0
resolution: "mimic-fn@npm:2.1.0"
@@ -3090,7 +4025,7 @@ __metadata:
languageName: node
linkType: hard
-"minimist@npm:^1.2.6":
+"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f
@@ -3190,20 +4125,40 @@ __metadata:
languageName: node
linkType: hard
-"ms@npm:2.0.0":
- version: 2.0.0
- resolution: "ms@npm:2.0.0"
- checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4
+"moment@npm:^2.30.1":
+ version: 2.30.1
+ resolution: "moment@npm:2.30.1"
+ checksum: 10/ae42d876d4ec831ef66110bdc302c0657c664991e45cf2afffc4b0f6cd6d251dde11375c982a5c0564ccc0fa593fc564576ddceb8c8845e87c15f58aa6baca69
languageName: node
linkType: hard
-"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.3":
+"ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3":
version: 2.1.3
resolution: "ms@npm:2.1.3"
checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
languageName: node
linkType: hard
+"mz@npm:^2.7.0":
+ version: 2.7.0
+ resolution: "mz@npm:2.7.0"
+ dependencies:
+ any-promise: "npm:^1.0.0"
+ object-assign: "npm:^4.0.1"
+ thenify-all: "npm:^1.0.0"
+ checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.6, nanoid@npm:^3.3.7":
+ version: 3.3.8
+ resolution: "nanoid@npm:3.3.8"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 10/2d1766606cf0d6f47b6f0fdab91761bb81609b2e3d367027aff45e6ee7006f660fb7e7781f4a34799fe6734f1268eeed2e37a5fdee809ade0c2d4eb11b0f9c40
+ languageName: node
+ linkType: hard
+
"natural-compare@npm:^1.4.0":
version: 1.4.0
resolution: "natural-compare@npm:1.4.0"
@@ -3211,13 +4166,6 @@ __metadata:
languageName: node
linkType: hard
-"negotiator@npm:0.6.3":
- version: 0.6.3
- resolution: "negotiator@npm:0.6.3"
- checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837
- languageName: node
- linkType: hard
-
"negotiator@npm:^0.6.3":
version: 0.6.4
resolution: "negotiator@npm:0.6.4"
@@ -3225,6 +4173,64 @@ __metadata:
languageName: node
linkType: hard
+"next@npm:14.2.10":
+ version: 14.2.10
+ resolution: "next@npm:14.2.10"
+ dependencies:
+ "@next/env": "npm:14.2.10"
+ "@next/swc-darwin-arm64": "npm:14.2.10"
+ "@next/swc-darwin-x64": "npm:14.2.10"
+ "@next/swc-linux-arm64-gnu": "npm:14.2.10"
+ "@next/swc-linux-arm64-musl": "npm:14.2.10"
+ "@next/swc-linux-x64-gnu": "npm:14.2.10"
+ "@next/swc-linux-x64-musl": "npm:14.2.10"
+ "@next/swc-win32-arm64-msvc": "npm:14.2.10"
+ "@next/swc-win32-ia32-msvc": "npm:14.2.10"
+ "@next/swc-win32-x64-msvc": "npm:14.2.10"
+ "@swc/helpers": "npm:0.5.5"
+ busboy: "npm:1.6.0"
+ caniuse-lite: "npm:^1.0.30001579"
+ graceful-fs: "npm:^4.2.11"
+ postcss: "npm:8.4.31"
+ styled-jsx: "npm:5.1.1"
+ peerDependencies:
+ "@opentelemetry/api": ^1.1.0
+ "@playwright/test": ^1.41.2
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ dependenciesMeta:
+ "@next/swc-darwin-arm64":
+ optional: true
+ "@next/swc-darwin-x64":
+ optional: true
+ "@next/swc-linux-arm64-gnu":
+ optional: true
+ "@next/swc-linux-arm64-musl":
+ optional: true
+ "@next/swc-linux-x64-gnu":
+ optional: true
+ "@next/swc-linux-x64-musl":
+ optional: true
+ "@next/swc-win32-arm64-msvc":
+ optional: true
+ "@next/swc-win32-ia32-msvc":
+ optional: true
+ "@next/swc-win32-x64-msvc":
+ optional: true
+ peerDependenciesMeta:
+ "@opentelemetry/api":
+ optional: true
+ "@playwright/test":
+ optional: true
+ sass:
+ optional: true
+ bin:
+ next: dist/bin/next
+ checksum: 10/73b254332a04d41885aa63b23d692d8e1c665de4db383b29363292729b128c22ade07cae1fd1e088a9cbb595106047397bbf92bc769b124f4069844833c0a06c
+ languageName: node
+ linkType: hard
+
"node-domexception@npm:1.0.0":
version: 1.0.0
resolution: "node-domexception@npm:1.0.0"
@@ -3266,23 +4272,10 @@ __metadata:
languageName: node
linkType: hard
-"nodemon@npm:^3.0.2":
- version: 3.1.7
- resolution: "nodemon@npm:3.1.7"
- dependencies:
- chokidar: "npm:^3.5.2"
- debug: "npm:^4"
- ignore-by-default: "npm:^1.0.1"
- minimatch: "npm:^3.1.2"
- pstree.remy: "npm:^1.1.8"
- semver: "npm:^7.5.3"
- simple-update-notifier: "npm:^2.0.0"
- supports-color: "npm:^5.5.0"
- touch: "npm:^3.1.0"
- undefsafe: "npm:^2.0.5"
- bin:
- nodemon: bin/nodemon.js
- checksum: 10/07c6b14e4915bfe11abd0ee95bdfd96087dcdb7a37f9d1a57d9526f5f564268432556aa726a4019abf7e48deeff4628a5b34e88ccba8bf46c310c5910ad4a075
+"node-releases@npm:^2.0.18":
+ version: 2.0.18
+ resolution: "node-releases@npm:2.0.18"
+ checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e
languageName: node
linkType: hard
@@ -3328,6 +4321,13 @@ __metadata:
languageName: node
linkType: hard
+"normalize-range@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "normalize-range@npm:0.1.2"
+ checksum: 10/9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184
+ languageName: node
+ linkType: hard
+
"npm-run-path@npm:^4.0.1":
version: 4.0.1
resolution: "npm-run-path@npm:4.0.1"
@@ -3346,19 +4346,88 @@ __metadata:
languageName: node
linkType: hard
-"object-inspect@npm:^1.13.1":
+"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
+ languageName: node
+ linkType: hard
+
+"object-hash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "object-hash@npm:3.0.0"
+ checksum: 10/f498d456a20512ba7be500cef4cf7b3c183cc72c65372a549c9a0e6dd78ce26f375e9b1315c07592d3fde8f10d5019986eba35970570d477ed9a2a702514432a
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.13.1, object-inspect@npm:^1.13.3":
version: 1.13.3
resolution: "object-inspect@npm:1.13.3"
checksum: 10/14cb973d8381c69e14d7f1c8c75044eb4caf04c6dabcf40ca5c2ce42dc2073ae0bb2a9939eeca142b0c05215afaa1cd5534adb7c8879c32cba2576e045ed8368
languageName: node
linkType: hard
-"on-finished@npm:2.4.1":
- version: 2.4.1
- resolution: "on-finished@npm:2.4.1"
+"object-keys@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "object-keys@npm:1.1.1"
+ checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5":
+ version: 4.1.5
+ resolution: "object.assign@npm:4.1.5"
dependencies:
- ee-first: "npm:1.1.1"
- checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea
+ call-bind: "npm:^1.0.5"
+ define-properties: "npm:^1.2.1"
+ has-symbols: "npm:^1.0.3"
+ object-keys: "npm:^1.1.1"
+ checksum: 10/dbb22da4cda82e1658349ea62b80815f587b47131b3dd7a4ab7f84190ab31d206bbd8fe7e26ae3220c55b65725ac4529825f6142154211220302aa6b1518045d
+ languageName: node
+ linkType: hard
+
+"object.entries@npm:^1.1.8":
+ version: 1.1.8
+ resolution: "object.entries@npm:1.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/2301918fbd1ee697cf6ff7cd94f060c738c0a7d92b22fd24c7c250e9b593642c9707ad2c44d339303c1439c5967d8964251cdfc855f7f6ec55db2dd79e8dc2a7
+ languageName: node
+ linkType: hard
+
+"object.fromentries@npm:^2.0.8":
+ version: 2.0.8
+ resolution: "object.fromentries@npm:2.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92
+ languageName: node
+ linkType: hard
+
+"object.groupby@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "object.groupby@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ checksum: 10/44cb86dd2c660434be65f7585c54b62f0425b0c96b5c948d2756be253ef06737da7e68d7106e35506ce4a44d16aa85a413d11c5034eb7ce5579ec28752eb42d0
+ languageName: node
+ linkType: hard
+
+"object.values@npm:^1.1.6, object.values@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "object.values@npm:1.2.0"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/db2e498019c354428c5dd30d02980d920ac365b155fce4dcf63eb9433f98ccf0f72624309e182ce7cc227c95e45d474e1d483418e60de2293dd23fa3ebe34903
languageName: node
linkType: hard
@@ -3492,13 +4561,6 @@ __metadata:
languageName: node
linkType: hard
-"parseurl@npm:~1.3.3":
- version: 1.3.3
- resolution: "parseurl@npm:1.3.3"
- checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2
- languageName: node
- linkType: hard
-
"path-exists@npm:^4.0.0":
version: 4.0.0
resolution: "path-exists@npm:4.0.0"
@@ -3544,13 +4606,6 @@ __metadata:
languageName: node
linkType: hard
-"path-to-regexp@npm:0.1.10":
- version: 0.1.10
- resolution: "path-to-regexp@npm:0.1.10"
- checksum: 10/894e31f1b20e592732a87db61fff5b95c892a3fe430f9ab18455ebe69ee88ef86f8eb49912e261f9926fc53da9f93b46521523e33aefd9cb0a7b0d85d7096006
- languageName: node
- linkType: hard
-
"path-type@npm:^4.0.0":
version: 4.0.0
resolution: "path-type@npm:4.0.0"
@@ -3567,7 +4622,7 @@ __metadata:
languageName: node
linkType: hard
-"picocolors@npm:^1.0.0":
+"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1":
version: 1.1.1
resolution: "picocolors@npm:1.1.1"
checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045
@@ -3590,6 +4645,119 @@ __metadata:
languageName: node
linkType: hard
+"pify@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "pify@npm:2.3.0"
+ checksum: 10/9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba
+ languageName: node
+ linkType: hard
+
+"pirates@npm:^4.0.1":
+ version: 4.0.6
+ resolution: "pirates@npm:4.0.6"
+ checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f
+ languageName: node
+ linkType: hard
+
+"possible-typed-array-names@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "possible-typed-array-names@npm:1.0.0"
+ checksum: 10/8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af
+ languageName: node
+ linkType: hard
+
+"postcss-import@npm:^15.1.0":
+ version: 15.1.0
+ resolution: "postcss-import@npm:15.1.0"
+ dependencies:
+ postcss-value-parser: "npm:^4.0.0"
+ read-cache: "npm:^1.0.0"
+ resolve: "npm:^1.1.7"
+ peerDependencies:
+ postcss: ^8.0.0
+ checksum: 10/33c91b7e6b794b5c33d7d7d4730e5f0729c131d2de1ada7fcc116955625a78c3ce613983f019fa9447681795cf3f851e9c38dfbe3f48a2d08a8aef917c70a32a
+ languageName: node
+ linkType: hard
+
+"postcss-js@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "postcss-js@npm:4.0.1"
+ dependencies:
+ camelcase-css: "npm:^2.0.1"
+ peerDependencies:
+ postcss: ^8.4.21
+ checksum: 10/ef2cfe8554daab4166cfcb290f376e7387964c36503f5bd42008778dba735685af8d4f5e0aba67cae999f47c855df40a1cd31ae840e0df320ded36352581045e
+ languageName: node
+ linkType: hard
+
+"postcss-load-config@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "postcss-load-config@npm:4.0.2"
+ dependencies:
+ lilconfig: "npm:^3.0.0"
+ yaml: "npm:^2.3.4"
+ peerDependencies:
+ postcss: ">=8.0.9"
+ ts-node: ">=9.0.0"
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ checksum: 10/e2c2ed9b7998a5b123e1ce0c124daf6504b1454c67dcc1c8fdbcc5ffb2597b7de245e3ac34f63afc928d3fd3260b1e36492ebbdb01a9ff63f16b3c8b7b925d1b
+ languageName: node
+ linkType: hard
+
+"postcss-nested@npm:^6.2.0":
+ version: 6.2.0
+ resolution: "postcss-nested@npm:6.2.0"
+ dependencies:
+ postcss-selector-parser: "npm:^6.1.1"
+ peerDependencies:
+ postcss: ^8.2.14
+ checksum: 10/d7f6ba6bfd03d42f84689a0630d4e393c421bb53723f16fe179a840f03ed17763b0fe494458577d2a015e857e0ec27c7e194909ffe209ee5f0676aec39737317
+ languageName: node
+ linkType: hard
+
+"postcss-selector-parser@npm:^6.1.1, postcss-selector-parser@npm:^6.1.2":
+ version: 6.1.2
+ resolution: "postcss-selector-parser@npm:6.1.2"
+ dependencies:
+ cssesc: "npm:^3.0.0"
+ util-deprecate: "npm:^1.0.2"
+ checksum: 10/190034c94d809c115cd2f32ee6aade84e933450a43ec3899c3e78e7d7b33efd3a2a975bb45d7700b6c5b196c06a7d9acf3f1ba6f1d87032d9675a29d8bca1dd3
+ languageName: node
+ linkType: hard
+
+"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "postcss-value-parser@npm:4.2.0"
+ checksum: 10/e4e4486f33b3163a606a6ed94f9c196ab49a37a7a7163abfcd469e5f113210120d70b8dd5e33d64636f41ad52316a3725655421eb9a1094f1bcab1db2f555c62
+ languageName: node
+ linkType: hard
+
+"postcss@npm:8.4.31":
+ version: 8.4.31
+ resolution: "postcss@npm:8.4.31"
+ dependencies:
+ nanoid: "npm:^3.3.6"
+ picocolors: "npm:^1.0.0"
+ source-map-js: "npm:^1.0.2"
+ checksum: 10/1a6653e72105907377f9d4f2cd341d8d90e3fde823a5ddea1e2237aaa56933ea07853f0f2758c28892a1d70c53bbaca200eb8b80f8ed55f13093003dbec5afa0
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^8.4.47, postcss@npm:^8.4.49":
+ version: 8.4.49
+ resolution: "postcss@npm:8.4.49"
+ dependencies:
+ nanoid: "npm:^3.3.7"
+ picocolors: "npm:^1.1.1"
+ source-map-js: "npm:^1.2.1"
+ checksum: 10/28fe1005b1339870e0a5006375ba5ac1213fd69800f79e7db09c398e074421ba6e162898e94f64942fed554037fd292db3811d87835d25ab5ef7f3c9daacb6ca
+ languageName: node
+ linkType: hard
+
"prelude-ls@npm:^1.2.1":
version: 1.2.1
resolution: "prelude-ls@npm:1.2.1"
@@ -3598,11 +4766,26 @@ __metadata:
linkType: hard
"prettier@npm:^3.1.0":
- version: 3.3.3
- resolution: "prettier@npm:3.3.3"
+ version: 3.4.1
+ resolution: "prettier@npm:3.4.1"
bin:
prettier: bin/prettier.cjs
- checksum: 10/5beac1f30b5b40162532b8e2f7c3a4eb650910a2695e9c8512a62ffdc09dae93190c29db9107fa7f26d1b6c71aad3628ecb9b5de1ecb0911191099be109434d7
+ checksum: 10/1ee4d1b1a9b6761cbb847cd81b9d87e51a0f4b2a4d5fe5755627c24828afe057a7ee9b764c3ee777d84abd46218d173d8a204ee9cb3acdd321ff9a6b25f99c1c
+ languageName: node
+ linkType: hard
+
+"prisma@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "prisma@npm:6.0.1"
+ dependencies:
+ "@prisma/engines": "npm:6.0.1"
+ fsevents: "npm:2.3.3"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ bin:
+ prisma: build/index.js
+ checksum: 10/276ef8120c75813b7b846c7eee1cf70dc5d0c3ecf5b16b3568cb69c728d401d620f822dfd7b143706493e05712d8512b57fdc3619e7077f85771477d8698284c
languageName: node
linkType: hard
@@ -3623,20 +4806,14 @@ __metadata:
languageName: node
linkType: hard
-"proxy-addr@npm:~2.0.7":
- version: 2.0.7
- resolution: "proxy-addr@npm:2.0.7"
+"prop-types@npm:^15.8.1":
+ version: 15.8.1
+ resolution: "prop-types@npm:15.8.1"
dependencies:
- forwarded: "npm:0.2.0"
- ipaddr.js: "npm:1.9.1"
- checksum: 10/f24a0c80af0e75d31e3451398670d73406ec642914da11a2965b80b1898ca6f66a0e3e091a11a4327079b2b268795f6fa06691923fef91887215c3d0e8ea3f68
- languageName: node
- linkType: hard
-
-"pstree.remy@npm:^1.1.8":
- version: 1.1.8
- resolution: "pstree.remy@npm:1.1.8"
- checksum: 10/ef13b1b5896b35f67dbd4fb7ba54bb2a5da1a5c317276cbad4bcad4159bf8f7b5e1748dc244bf36865f3d560d2fc952521581280a91468c9c2df166cc760c8c1
+ loose-envify: "npm:^1.4.0"
+ object-assign: "npm:^4.1.1"
+ react-is: "npm:^16.13.1"
+ checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0
languageName: node
linkType: hard
@@ -3647,42 +4824,6 @@ __metadata:
languageName: node
linkType: hard
-"purchases-personas@workspace:.":
- version: 0.0.0-use.local
- resolution: "purchases-personas@workspace:."
- dependencies:
- "@anthropic-ai/sdk": "npm:^0.32.1"
- "@commitlint/cli": "npm:^18.4.3"
- "@commitlint/config-conventional": "npm:^18.4.3"
- "@types/express": "npm:^4.17.21"
- "@types/node": "npm:^20.10.0"
- "@typescript-eslint/eslint-plugin": "npm:^6.12.0"
- "@typescript-eslint/parser": "npm:^6.12.0"
- audit-ci: "npm:^6.6.1"
- crypto: "npm:^1.0.1"
- dotenv: "npm:^16.4.5"
- eslint: "npm:^8"
- eslint-config-prettier: "npm:^9.0.0"
- express: "npm:^4.21.1"
- husky: "npm:^8.0.3"
- lint-staged: "npm:^15.1.0"
- nodemon: "npm:^3.0.2"
- prettier: "npm:^3.1.0"
- ts-node: "npm:^10.9.2"
- typescript: "npm:^5.3.0"
- zod: "npm:^3.23.8"
- languageName: unknown
- linkType: soft
-
-"qs@npm:6.13.0":
- version: 6.13.0
- resolution: "qs@npm:6.13.0"
- dependencies:
- side-channel: "npm:^1.0.6"
- checksum: 10/f548b376e685553d12e461409f0d6e5c59ec7c7d76f308e2a888fd9db3e0c5e89902bedd0754db3a9038eda5f27da2331a6f019c8517dc5e0a16b3c9a6e9cef8
- languageName: node
- linkType: hard
-
"queue-microtask@npm:^1.2.2":
version: 1.2.3
resolution: "queue-microtask@npm:1.2.3"
@@ -3697,22 +4838,40 @@ __metadata:
languageName: node
linkType: hard
-"range-parser@npm:~1.2.1":
- version: 1.2.1
- resolution: "range-parser@npm:1.2.1"
- checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26
+"react-dom@npm:^18.2.0":
+ version: 18.3.1
+ resolution: "react-dom@npm:18.3.1"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ scheduler: "npm:^0.23.2"
+ peerDependencies:
+ react: ^18.3.1
+ checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81
languageName: node
linkType: hard
-"raw-body@npm:2.5.2":
- version: 2.5.2
- resolution: "raw-body@npm:2.5.2"
+"react-is@npm:^16.13.1":
+ version: 16.13.1
+ resolution: "react-is@npm:16.13.1"
+ checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf
+ languageName: node
+ linkType: hard
+
+"react@npm:^18.2.0":
+ version: 18.3.1
+ resolution: "react@npm:18.3.1"
dependencies:
- bytes: "npm:3.1.2"
- http-errors: "npm:2.0.0"
- iconv-lite: "npm:0.4.24"
- unpipe: "npm:1.0.0"
- checksum: 10/863b5171e140546a4d99f349b720abac4410338e23df5e409cfcc3752538c9caf947ce382c89129ba976f71894bd38b5806c774edac35ebf168d02aa1ac11a95
+ loose-envify: "npm:^1.1.0"
+ checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf
+ languageName: node
+ linkType: hard
+
+"read-cache@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "read-cache@npm:1.0.0"
+ dependencies:
+ pify: "npm:^2.3.0"
+ checksum: 10/83a39149d9dfa38f0c482ea0d77b34773c92fef07fe7599cdd914d255b14d0453e0229ef6379d8d27d6947f42d7581635296d0cfa7708f05a9bd8e789d398b31
languageName: node
linkType: hard
@@ -3776,6 +4935,33 @@ __metadata:
languageName: node
linkType: hard
+"reflect.getprototypeof@npm:^1.0.4, reflect.getprototypeof@npm:^1.0.6":
+ version: 1.0.7
+ resolution: "reflect.getprototypeof@npm:1.0.7"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ which-builtin-type: "npm:^1.1.4"
+ checksum: 10/6ad3ef6da43b8de89431a16596d738a48b80eced64a182596098bb94f502e1b7ab12979ebb30f74e3b32623d6ab067289e0642e9ce72c8ec925f99fa1b490d83
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.5.2, regexp.prototype.flags@npm:^1.5.3":
+ version: 1.5.3
+ resolution: "regexp.prototype.flags@npm:1.5.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-errors: "npm:^1.3.0"
+ set-function-name: "npm:^2.0.2"
+ checksum: 10/fe17bc4eebbc72945aaf9dd059eb7784a5ca453a67cc4b5b3e399ab08452c9a05befd92063e2c52e7b24d9238c60031656af32dd57c555d1ba6330dbf8c23b43
+ languageName: node
+ linkType: hard
+
"require-directory@npm:^2.1.1":
version: 2.1.1
resolution: "require-directory@npm:2.1.1"
@@ -3813,7 +4999,14 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^1.10.0":
+"resolve-pkg-maps@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "resolve-pkg-maps@npm:1.0.0"
+ checksum: 10/0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.22.4, resolve@npm:^1.22.8":
version: 1.22.8
resolution: "resolve@npm:1.22.8"
dependencies:
@@ -3826,7 +5019,20 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin":
+"resolve@npm:^2.0.0-next.5":
+ version: 2.0.0-next.5
+ resolution: "resolve@npm:2.0.0-next.5"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/2d6fd28699f901744368e6f2032b4268b4c7b9185fd8beb64f68c93ac6b22e52ae13560ceefc96241a665b985edf9ffd393ae26d2946a7d3a07b7007b7d51e79
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin":
version: 1.22.8
resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
dependencies:
@@ -3839,6 +5045,19 @@ __metadata:
languageName: node
linkType: hard
+"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin":
+ version: 2.0.0-next.5
+ resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/05fa778de9d0347c8b889eb7a18f1f06bf0f801b0eb4610b4871a4b2f22e220900cf0ad525e94f990bb8d8921c07754ab2122c0c225ab4cdcea98f36e64fa4c2
+ languageName: node
+ linkType: hard
+
"restore-cursor@npm:^5.0.0":
version: 5.1.0
resolution: "restore-cursor@npm:5.1.0"
@@ -3890,20 +5109,52 @@ __metadata:
languageName: node
linkType: hard
-"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0":
+"safe-array-concat@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "safe-array-concat@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ get-intrinsic: "npm:^1.2.4"
+ has-symbols: "npm:^1.0.3"
+ isarray: "npm:^2.0.5"
+ checksum: 10/a54f8040d7cb696a1ee38d19cc71ab3cfb654b9b81bae00c6459618cfad8214ece7e6666592f9c925aafef43d0a20c5e6fbb3413a2b618e1ce9d516a2e6dcfc5
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.2.0":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451
languageName: node
linkType: hard
-"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0":
+"safe-regex-test@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "safe-regex-test@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-regex: "npm:^1.1.4"
+ checksum: 10/b04de61114b10274d92e25b6de7ccb5de07f11ea15637ff636de4b5190c0f5cd8823fe586dde718504cf78055437d70fd8804976894df502fcf5a210c970afb3
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3.0.0":
version: 2.1.2
resolution: "safer-buffer@npm:2.1.2"
checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83
languageName: node
linkType: hard
+"scheduler@npm:^0.23.2":
+ version: 0.23.2
+ resolution: "scheduler@npm:0.23.2"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9
+ languageName: node
+ linkType: hard
+
"semver@npm:2 || 3 || 4 || 5":
version: 5.7.2
resolution: "semver@npm:5.7.2"
@@ -3924,7 +5175,16 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4":
+"semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3":
version: 7.6.3
resolution: "semver@npm:7.6.3"
bin:
@@ -3933,39 +5193,6 @@ __metadata:
languageName: node
linkType: hard
-"send@npm:0.19.0":
- version: 0.19.0
- resolution: "send@npm:0.19.0"
- dependencies:
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- destroy: "npm:1.2.0"
- encodeurl: "npm:~1.0.2"
- escape-html: "npm:~1.0.3"
- etag: "npm:~1.8.1"
- fresh: "npm:0.5.2"
- http-errors: "npm:2.0.0"
- mime: "npm:1.6.0"
- ms: "npm:2.1.3"
- on-finished: "npm:2.4.1"
- range-parser: "npm:~1.2.1"
- statuses: "npm:2.0.1"
- checksum: 10/1f6064dea0ae4cbe4878437aedc9270c33f2a6650a77b56a16b62d057527f2766d96ee282997dd53ec0339082f2aad935bc7d989b46b48c82fc610800dc3a1d0
- languageName: node
- linkType: hard
-
-"serve-static@npm:1.16.2":
- version: 1.16.2
- resolution: "serve-static@npm:1.16.2"
- dependencies:
- encodeurl: "npm:~2.0.0"
- escape-html: "npm:~1.0.3"
- parseurl: "npm:~1.3.3"
- send: "npm:0.19.0"
- checksum: 10/7fa9d9c68090f6289976b34fc13c50ac8cd7f16ae6bce08d16459300f7fc61fbc2d7ebfa02884c073ec9d6ab9e7e704c89561882bbe338e99fcacb2912fde737
- languageName: node
- linkType: hard
-
"set-function-length@npm:^1.2.1":
version: 1.2.2
resolution: "set-function-length@npm:1.2.2"
@@ -3980,10 +5207,15 @@ __metadata:
languageName: node
linkType: hard
-"setprototypeof@npm:1.2.0":
- version: 1.2.0
- resolution: "setprototypeof@npm:1.2.0"
- checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e
+"set-function-name@npm:^2.0.1, set-function-name@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "set-function-name@npm:2.0.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ functions-have-names: "npm:^1.2.3"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74
languageName: node
linkType: hard
@@ -4003,7 +5235,7 @@ __metadata:
languageName: node
linkType: hard
-"side-channel@npm:^1.0.6":
+"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6":
version: 1.0.6
resolution: "side-channel@npm:1.0.6"
dependencies:
@@ -4029,15 +5261,6 @@ __metadata:
languageName: node
linkType: hard
-"simple-update-notifier@npm:^2.0.0":
- version: 2.0.0
- resolution: "simple-update-notifier@npm:2.0.0"
- dependencies:
- semver: "npm:^7.5.3"
- checksum: 10/40bd4f96aa89aedbf717ae9f4ab8fca70e8f7511e8b766feb15471cca3f6fe4fe673743309b08b4ba8abfe0965c9cd927e1de46550a757b819b70fc7430cc85d
- languageName: node
- linkType: hard
-
"slash@npm:^3.0.0":
version: 3.0.0
resolution: "slash@npm:3.0.0"
@@ -4093,6 +5316,13 @@ __metadata:
languageName: node
linkType: hard
+"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "source-map-js@npm:1.2.1"
+ checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3
+ languageName: node
+ linkType: hard
+
"spdx-correct@npm:^3.0.0":
version: 3.2.0
resolution: "spdx-correct@npm:3.2.0"
@@ -4168,13 +5398,6 @@ __metadata:
languageName: node
linkType: hard
-"statuses@npm:2.0.1":
- version: 2.0.1
- resolution: "statuses@npm:2.0.1"
- checksum: 10/18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb
- languageName: node
- linkType: hard
-
"stream-combiner@npm:^0.2.2":
version: 0.2.2
resolution: "stream-combiner@npm:0.2.2"
@@ -4185,6 +5408,13 @@ __metadata:
languageName: node
linkType: hard
+"streamsearch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "streamsearch@npm:1.1.0"
+ checksum: 10/612c2b2a7dbcc859f74597112f80a42cbe4d448d03da790d5b7b39673c1197dd3789e91cd67210353e58857395d32c1e955a9041c4e6d5bae723436b3ed9ed14
+ languageName: node
+ linkType: hard
+
"string-argv@npm:~0.3.2":
version: 0.3.2
resolution: "string-argv@npm:0.3.2"
@@ -4225,6 +5455,81 @@ __metadata:
languageName: node
linkType: hard
+"string.prototype.includes@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "string.prototype.includes@npm:2.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ checksum: 10/939a5447e4a99a86f29cc97fa24f358e5071f79e34746de4c7eb2cd736ed626ad24870a1e356f33915b3b352bb87f7e4d1cebc15d1e1aaae0923777e21b1b28b
+ languageName: node
+ linkType: hard
+
+"string.prototype.matchall@npm:^4.0.11":
+ version: 4.0.11
+ resolution: "string.prototype.matchall@npm:4.0.11"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ has-symbols: "npm:^1.0.3"
+ internal-slot: "npm:^1.0.7"
+ regexp.prototype.flags: "npm:^1.5.2"
+ set-function-name: "npm:^2.0.2"
+ side-channel: "npm:^1.0.6"
+ checksum: 10/a902ff4500f909f2a08e55cc5ab1ffbbc905f603b36837674370ee3921058edd0392147e15891910db62a2f31ace2adaf065eaa3bc6e9810bdbc8ca48e05a7b5
+ languageName: node
+ linkType: hard
+
+"string.prototype.repeat@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "string.prototype.repeat@npm:1.0.0"
+ dependencies:
+ define-properties: "npm:^1.1.3"
+ es-abstract: "npm:^1.17.5"
+ checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e
+ languageName: node
+ linkType: hard
+
+"string.prototype.trim@npm:^1.2.9":
+ version: 1.2.9
+ resolution: "string.prototype.trim@npm:1.2.9"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.0"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/b2170903de6a2fb5a49bb8850052144e04b67329d49f1343cdc6a87cb24fb4e4b8ad00d3e273a399b8a3d8c32c89775d93a8f43cb42fbff303f25382079fb58a
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimend@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimend@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/c2e862ae724f95771da9ea17c27559d4eeced9208b9c20f69bbfcd1b9bc92375adf8af63a103194dba17c4cc4a5cb08842d929f415ff9d89c062d44689c8761b
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimstart@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674
+ languageName: node
+ linkType: hard
+
"string_decoder@npm:^1.1.1":
version: 1.3.0
resolution: "string_decoder@npm:1.3.0"
@@ -4252,6 +5557,13 @@ __metadata:
languageName: node
linkType: hard
+"strip-bom@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-bom@npm:3.0.0"
+ checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b
+ languageName: node
+ linkType: hard
+
"strip-final-newline@npm:^2.0.0":
version: 2.0.0
resolution: "strip-final-newline@npm:2.0.0"
@@ -4282,12 +5594,37 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^5.5.0":
- version: 5.5.0
- resolution: "supports-color@npm:5.5.0"
+"styled-jsx@npm:5.1.1":
+ version: 5.1.1
+ resolution: "styled-jsx@npm:5.1.1"
dependencies:
- has-flag: "npm:^3.0.0"
- checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b
+ client-only: "npm:0.0.1"
+ peerDependencies:
+ react: ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ babel-plugin-macros:
+ optional: true
+ checksum: 10/4f6a5d0010770fdeea1183d919d528fd46c484e23c0535ef3e1dd49488116f639c594f3bd4440e3bc8a8686c9f8d53c5761599870ff039ede11a5c3bfe08a4be
+ languageName: node
+ linkType: hard
+
+"sucrase@npm:^3.35.0":
+ version: 3.35.0
+ resolution: "sucrase@npm:3.35.0"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.2"
+ commander: "npm:^4.0.0"
+ glob: "npm:^10.3.10"
+ lines-and-columns: "npm:^1.1.6"
+ mz: "npm:^2.7.0"
+ pirates: "npm:^4.0.1"
+ ts-interface-checker: "npm:^0.1.9"
+ bin:
+ sucrase: bin/sucrase
+ sucrase-node: bin/sucrase-node
+ checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe
languageName: node
linkType: hard
@@ -4307,6 +5644,102 @@ __metadata:
languageName: node
linkType: hard
+"synthetic-consumer-data@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "synthetic-consumer-data@workspace:."
+ dependencies:
+ "@anthropic-ai/sdk": "npm:^0.32.1"
+ "@commitlint/cli": "npm:^18.4.3"
+ "@commitlint/config-conventional": "npm:^18.4.3"
+ "@prisma/client": "npm:^6.0.1"
+ "@types/node": "npm:^22.10.1"
+ "@types/react": "npm:^18.3.12"
+ "@types/react-dom": "npm:^18.3.1"
+ "@typescript-eslint/eslint-plugin": "npm:^6.12.0"
+ "@typescript-eslint/parser": "npm:^6.12.0"
+ audit-ci: "npm:^6.6.1"
+ autoprefixer: "npm:^10.4.20"
+ class-variance-authority: "npm:^0.7.1"
+ clsx: "npm:^2.1.1"
+ crypto: "npm:^1.0.1"
+ dotenv: "npm:^16.4.5"
+ eslint: "npm:^8"
+ eslint-config-next: "npm:^15.0.3"
+ eslint-config-prettier: "npm:^9.0.0"
+ husky: "npm:^8.0.3"
+ lint-staged: "npm:^15.1.0"
+ lucide-react: "npm:^0.462.0"
+ moment: "npm:^2.30.1"
+ next: "npm:14.2.10"
+ postcss: "npm:^8.4.49"
+ prettier: "npm:^3.1.0"
+ prisma: "npm:^6.0.1"
+ react: "npm:^18.2.0"
+ react-dom: "npm:^18.2.0"
+ tailwind-merge: "npm:^2.5.5"
+ tailwindcss: "npm:^3.4.15"
+ tailwindcss-animate: "npm:^1.0.7"
+ typescript: "npm:^5.3.0"
+ zod: "npm:^3.23.8"
+ languageName: unknown
+ linkType: soft
+
+"tailwind-merge@npm:^2.5.5":
+ version: 2.5.5
+ resolution: "tailwind-merge@npm:2.5.5"
+ checksum: 10/a5bfa32559d95bacc422225e0287d7d023d72be97be41f34bba41651a9e51e37ea0524ade7f0b7ef96b5486de282e020a645597fd7f8c5e6c37562f0739a96b9
+ languageName: node
+ linkType: hard
+
+"tailwindcss-animate@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "tailwindcss-animate@npm:1.0.7"
+ peerDependencies:
+ tailwindcss: "*"
+ checksum: 10/ef176fbb0bf9dca84178b35b6a9615cd756358ea80be9c575456d12ecd7f3c431e9e571915c7df72959dc798a730959e9a4739d59eab55d8cc6db390870ff0d2
+ languageName: node
+ linkType: hard
+
+"tailwindcss@npm:^3.4.15":
+ version: 3.4.15
+ resolution: "tailwindcss@npm:3.4.15"
+ dependencies:
+ "@alloc/quick-lru": "npm:^5.2.0"
+ arg: "npm:^5.0.2"
+ chokidar: "npm:^3.6.0"
+ didyoumean: "npm:^1.2.2"
+ dlv: "npm:^1.1.3"
+ fast-glob: "npm:^3.3.2"
+ glob-parent: "npm:^6.0.2"
+ is-glob: "npm:^4.0.3"
+ jiti: "npm:^1.21.6"
+ lilconfig: "npm:^2.1.0"
+ micromatch: "npm:^4.0.8"
+ normalize-path: "npm:^3.0.0"
+ object-hash: "npm:^3.0.0"
+ picocolors: "npm:^1.1.1"
+ postcss: "npm:^8.4.47"
+ postcss-import: "npm:^15.1.0"
+ postcss-js: "npm:^4.0.1"
+ postcss-load-config: "npm:^4.0.2"
+ postcss-nested: "npm:^6.2.0"
+ postcss-selector-parser: "npm:^6.1.2"
+ resolve: "npm:^1.22.8"
+ sucrase: "npm:^3.35.0"
+ bin:
+ tailwind: lib/cli.js
+ tailwindcss: lib/cli.js
+ checksum: 10/670bc70ae98d36601990424067f1164eebcbe97493ce8d314e8baa85eb47a6b92caabcea3046dfa9e3888a40a4807c123e12dfa2e05d884ff0583c6a1b647cb7
+ languageName: node
+ linkType: hard
+
+"tapable@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "tapable@npm:2.2.1"
+ checksum: 10/1769336dd21481ae6347611ca5fca47add0962fd8e80466515032125eca0084a4f0ede11e65341b9c0018ef4e1cf1ad820adbb0fba7cc99865c6005734000b0a
+ languageName: node
+ linkType: hard
+
"tar@npm:^6.1.11, tar@npm:^6.2.1":
version: 6.2.1
resolution: "tar@npm:6.2.1"
@@ -4335,6 +5768,24 @@ __metadata:
languageName: node
linkType: hard
+"thenify-all@npm:^1.0.0":
+ version: 1.6.0
+ resolution: "thenify-all@npm:1.6.0"
+ dependencies:
+ thenify: "npm:>= 3.1.0 < 4"
+ checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e
+ languageName: node
+ linkType: hard
+
+"thenify@npm:>= 3.1.0 < 4":
+ version: 3.3.1
+ resolution: "thenify@npm:3.3.1"
+ dependencies:
+ any-promise: "npm:^1.0.0"
+ checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d
+ languageName: node
+ linkType: hard
+
"through2@npm:^4.0.0":
version: 4.0.2
resolution: "through2@npm:4.0.2"
@@ -4360,22 +5811,6 @@ __metadata:
languageName: node
linkType: hard
-"toidentifier@npm:1.0.1":
- version: 1.0.1
- resolution: "toidentifier@npm:1.0.1"
- checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45
- languageName: node
- linkType: hard
-
-"touch@npm:^3.1.0":
- version: 3.1.1
- resolution: "touch@npm:3.1.1"
- bin:
- nodetouch: bin/nodetouch.js
- checksum: 10/853e763a1f4903302c5654ed353f84ad85baf757dac62c2d37ab67e0477cfd271e8c64771fcfad42310aff7c9d284ddb435ee5ca13ff36d0f3693fedd8e971d1
- languageName: node
- linkType: hard
-
"tr46@npm:~0.0.3":
version: 0.0.3
resolution: "tr46@npm:0.0.3"
@@ -4390,50 +5825,38 @@ __metadata:
languageName: node
linkType: hard
-"ts-api-utils@npm:^1.0.1":
- version: 1.4.0
- resolution: "ts-api-utils@npm:1.4.0"
+"ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0":
+ version: 1.4.3
+ resolution: "ts-api-utils@npm:1.4.3"
peerDependencies:
typescript: ">=4.2.0"
- checksum: 10/b2020d5da55e28dc9dd32fb94730a4f6caefbd8e103029b6b6de5f15d18873067d734f64761c424c78ad1393a2b99d82b5a9fd34d663c12243acca7d3439090b
+ checksum: 10/713c51e7392323305bd4867422ba130fbf70873ef6edbf80ea6d7e9c8f41eeeb13e40e8e7fe7cd321d74e4864777329797077268c9f570464303a1723f1eed39
languageName: node
linkType: hard
-"ts-node@npm:^10.9.2":
- version: 10.9.2
- resolution: "ts-node@npm:10.9.2"
+"ts-interface-checker@npm:^0.1.9":
+ version: 0.1.13
+ resolution: "ts-interface-checker@npm:0.1.13"
+ checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00
+ languageName: node
+ linkType: hard
+
+"tsconfig-paths@npm:^3.15.0":
+ version: 3.15.0
+ resolution: "tsconfig-paths@npm:3.15.0"
dependencies:
- "@cspotcode/source-map-support": "npm:^0.8.0"
- "@tsconfig/node10": "npm:^1.0.7"
- "@tsconfig/node12": "npm:^1.0.7"
- "@tsconfig/node14": "npm:^1.0.0"
- "@tsconfig/node16": "npm:^1.0.2"
- acorn: "npm:^8.4.1"
- acorn-walk: "npm:^8.1.1"
- arg: "npm:^4.1.0"
- create-require: "npm:^1.1.0"
- diff: "npm:^4.0.1"
- make-error: "npm:^1.1.1"
- v8-compile-cache-lib: "npm:^3.0.1"
- yn: "npm:3.1.1"
- peerDependencies:
- "@swc/core": ">=1.2.50"
- "@swc/wasm": ">=1.2.50"
- "@types/node": "*"
- typescript: ">=2.7"
- peerDependenciesMeta:
- "@swc/core":
- optional: true
- "@swc/wasm":
- optional: true
- bin:
- ts-node: dist/bin.js
- ts-node-cwd: dist/bin-cwd.js
- ts-node-esm: dist/bin-esm.js
- ts-node-script: dist/bin-script.js
- ts-node-transpile-only: dist/bin-transpile.js
- ts-script: dist/bin-script-deprecated.js
- checksum: 10/a91a15b3c9f76ac462f006fa88b6bfa528130dcfb849dd7ef7f9d640832ab681e235b8a2bc58ecde42f72851cc1d5d4e22c901b0c11aa51001ea1d395074b794
+ "@types/json5": "npm:^0.0.29"
+ json5: "npm:^1.0.2"
+ minimist: "npm:^1.2.6"
+ strip-bom: "npm:^3.0.0"
+ checksum: 10/2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.4.0":
+ version: 2.8.1
+ resolution: "tslib@npm:2.8.1"
+ checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7
languageName: node
linkType: hard
@@ -4474,13 +5897,56 @@ __metadata:
languageName: node
linkType: hard
-"type-is@npm:~1.6.18":
- version: 1.6.18
- resolution: "type-is@npm:1.6.18"
+"typed-array-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "typed-array-buffer@npm:1.0.2"
dependencies:
- media-typer: "npm:0.3.0"
- mime-types: "npm:~2.1.24"
- checksum: 10/0bd9eeae5efd27d98fd63519f999908c009e148039d8e7179a074f105362d4fcc214c38b24f6cda79c87e563cbd12083a4691381ed28559220d4a10c2047bed4
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10/02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "typed-array-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10/e4a38329736fe6a73b52a09222d4a9e8de14caaa4ff6ad8e55217f6705b017d9815b7284c85065b3b8a7704e226ccff1372a72b78c2a5b6b71b7bf662308c903
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-offset@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "typed-array-byte-offset@npm:1.0.3"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ reflect.getprototypeof: "npm:^1.0.6"
+ checksum: 10/6c3bfba026616e656278a062dd5232d80fbb156b792045e698ecb0260a4c6e77e82412d6c8049f4e58bb66f509c90aacad09f02d4b5b8a4e67cf9c423a563be9
+ languageName: node
+ linkType: hard
+
+"typed-array-length@npm:^1.0.6":
+ version: 1.0.7
+ resolution: "typed-array-length@npm:1.0.7"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ is-typed-array: "npm:^1.1.13"
+ possible-typed-array-names: "npm:^1.0.0"
+ reflect.getprototypeof: "npm:^1.0.6"
+ checksum: 10/d6b2f0e81161682d2726eb92b1dc2b0890890f9930f33f9bcf6fc7272895ce66bc368066d273e6677776de167608adc53fcf81f1be39a146d64b630edbf2081c
languageName: node
linkType: hard
@@ -4504,10 +5970,15 @@ __metadata:
languageName: node
linkType: hard
-"undefsafe@npm:^2.0.5":
- version: 2.0.5
- resolution: "undefsafe@npm:2.0.5"
- checksum: 10/f42ab3b5770fedd4ada175fc1b2eb775b78f609156f7c389106aafd231bfc210813ee49f54483d7191d7b76e483bc7f537b5d92d19ded27156baf57592eb02cc
+"unbox-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "unbox-primitive@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-bigints: "npm:^1.0.2"
+ has-symbols: "npm:^1.0.3"
+ which-boxed-primitive: "npm:^1.0.2"
+ checksum: 10/06e1ee41c1095e37281cb71a975cb3350f7cb470a0665d2576f02cc9564f623bd90cfc0183693b8a7fdf2d242963dcc3010b509fa3ac683f540c765c0f3e7e43
languageName: node
linkType: hard
@@ -4518,10 +5989,10 @@ __metadata:
languageName: node
linkType: hard
-"undici-types@npm:~6.19.2, undici-types@npm:~6.19.8":
- version: 6.19.8
- resolution: "undici-types@npm:6.19.8"
- checksum: 10/cf0b48ed4fc99baf56584afa91aaffa5010c268b8842f62e02f752df209e3dea138b372a60a963b3b2576ed932f32329ce7ddb9cb5f27a6c83040d8cd74b7a70
+"undici-types@npm:~6.20.0":
+ version: 6.20.0
+ resolution: "undici-types@npm:6.20.0"
+ checksum: 10/583ac7bbf4ff69931d3985f4762cde2690bb607844c16a5e2fbb92ed312fe4fa1b365e953032d469fa28ba8b224e88a595f0b10a449332f83fa77c695e567dbe
languageName: node
linkType: hard
@@ -4543,10 +6014,17 @@ __metadata:
languageName: node
linkType: hard
-"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
- version: 1.0.0
- resolution: "unpipe@npm:1.0.0"
- checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2
+"update-browserslist-db@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "update-browserslist-db@npm:1.1.1"
+ dependencies:
+ escalade: "npm:^3.2.0"
+ picocolors: "npm:^1.1.0"
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 10/7678dd8609750588d01aa7460e8eddf2ff9d16c2a52fb1811190e0d056390f1fdffd94db3cf8fb209cf634ab4fa9407886338711c71cc6ccade5eeb22b093734
languageName: node
linkType: hard
@@ -4559,27 +6037,13 @@ __metadata:
languageName: node
linkType: hard
-"util-deprecate@npm:^1.0.1":
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2":
version: 1.0.2
resolution: "util-deprecate@npm:1.0.2"
checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2
languageName: node
linkType: hard
-"utils-merge@npm:1.0.1":
- version: 1.0.1
- resolution: "utils-merge@npm:1.0.1"
- checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798
- languageName: node
- linkType: hard
-
-"v8-compile-cache-lib@npm:^3.0.1":
- version: 3.0.1
- resolution: "v8-compile-cache-lib@npm:3.0.1"
- checksum: 10/88d3423a52b6aaf1836be779cab12f7016d47ad8430dffba6edf766695e6d90ad4adaa3d8eeb512cc05924f3e246c4a4ca51e089dccf4402caa536b5e5be8961
- languageName: node
- linkType: hard
-
"validate-npm-package-license@npm:^3.0.1":
version: 3.0.4
resolution: "validate-npm-package-license@npm:3.0.4"
@@ -4590,13 +6054,6 @@ __metadata:
languageName: node
linkType: hard
-"vary@npm:~1.1.2":
- version: 1.1.2
- resolution: "vary@npm:1.1.2"
- checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242
- languageName: node
- linkType: hard
-
"web-streams-polyfill@npm:4.0.0-beta.3":
version: 4.0.0-beta.3
resolution: "web-streams-polyfill@npm:4.0.0-beta.3"
@@ -4621,6 +6078,65 @@ __metadata:
languageName: node
linkType: hard
+"which-boxed-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-boxed-primitive@npm:1.0.2"
+ dependencies:
+ is-bigint: "npm:^1.0.1"
+ is-boolean-object: "npm:^1.1.0"
+ is-number-object: "npm:^1.0.4"
+ is-string: "npm:^1.0.5"
+ is-symbol: "npm:^1.0.3"
+ checksum: 10/9c7ca7855255f25ac47f4ce8b59c4cc33629e713fd7a165c9d77a2bb47bf3d9655a5664660c70337a3221cf96742f3589fae15a3a33639908d33e29aa2941efb
+ languageName: node
+ linkType: hard
+
+"which-builtin-type@npm:^1.1.4":
+ version: 1.2.0
+ resolution: "which-builtin-type@npm:1.2.0"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ function.prototype.name: "npm:^1.1.6"
+ has-tostringtag: "npm:^1.0.2"
+ is-async-function: "npm:^2.0.0"
+ is-date-object: "npm:^1.0.5"
+ is-finalizationregistry: "npm:^1.1.0"
+ is-generator-function: "npm:^1.0.10"
+ is-regex: "npm:^1.1.4"
+ is-weakref: "npm:^1.0.2"
+ isarray: "npm:^2.0.5"
+ which-boxed-primitive: "npm:^1.0.2"
+ which-collection: "npm:^1.0.2"
+ which-typed-array: "npm:^1.1.15"
+ checksum: 10/5824186d55c84d2310327147f5e6ea9bbe757ffdf422ae984e501d088d9162b479d37ebb85571399314628f97162c24c9578a4b3e1f4c4b684b1867a9a56819c
+ languageName: node
+ linkType: hard
+
+"which-collection@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-collection@npm:1.0.2"
+ dependencies:
+ is-map: "npm:^2.0.3"
+ is-set: "npm:^2.0.3"
+ is-weakmap: "npm:^2.0.2"
+ is-weakset: "npm:^2.0.3"
+ checksum: 10/674bf659b9bcfe4055f08634b48a8588e879161b9fefed57e9ec4ff5601e4d50a05ccd76cf10f698ef5873784e5df3223336d56c7ce88e13bcf52ebe582fc8d7
+ languageName: node
+ linkType: hard
+
+"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15":
+ version: 1.1.16
+ resolution: "which-typed-array@npm:1.1.16"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10/7106e94729632cdcedc94080442872392806b3364225156952981777f46b75d2e3b13813b5d935bdb2ac8523f8758fcf3513f7e1ed44a8e10d6c4f1029c3fa7d
+ languageName: node
+ linkType: hard
+
"which@npm:^2.0.1":
version: 2.0.2
resolution: "which@npm:2.0.2"
@@ -4704,6 +6220,15 @@ __metadata:
languageName: node
linkType: hard
+"yaml@npm:^2.3.4":
+ version: 2.6.1
+ resolution: "yaml@npm:2.6.1"
+ bin:
+ yaml: bin.mjs
+ checksum: 10/cf412f03a33886db0a3aac70bb4165588f4c5b3c6f8fc91520b71491e5537800b6c2c73ed52015617f6e191eb4644c73c92973960a1999779c62a200ee4c231d
+ languageName: node
+ linkType: hard
+
"yaml@npm:~2.5.0":
version: 2.5.1
resolution: "yaml@npm:2.5.1"
@@ -4742,13 +6267,6 @@ __metadata:
languageName: node
linkType: hard
-"yn@npm:3.1.1":
- version: 3.1.1
- resolution: "yn@npm:3.1.1"
- checksum: 10/2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6
- languageName: node
- linkType: hard
-
"yocto-queue@npm:^0.1.0":
version: 0.1.0
resolution: "yocto-queue@npm:0.1.0"